@wordpress/block-editor 8.0.9 → 8.0.12

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.
Files changed (144) hide show
  1. package/build/components/block-inspector/index.js +12 -2
  2. package/build/components/block-inspector/index.js.map +1 -1
  3. package/build/components/block-list/block.js +1 -1
  4. package/build/components/block-list/block.js.map +1 -1
  5. package/build/components/block-list/block.native.js +2 -3
  6. package/build/components/block-list/block.native.js.map +1 -1
  7. package/build/components/block-list/use-block-props/index.js +1 -3
  8. package/build/components/block-list/use-block-props/index.js.map +1 -1
  9. package/build/components/block-list/use-in-between-inserter.js +1 -1
  10. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  11. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
  12. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  13. package/build/components/block-mover/button.js +2 -2
  14. package/build/components/block-mover/button.js.map +1 -1
  15. package/build/components/block-mover/index.js +2 -2
  16. package/build/components/block-mover/index.js.map +1 -1
  17. package/build/components/block-mover/index.native.js +2 -2
  18. package/build/components/block-mover/index.native.js.map +1 -1
  19. package/build/components/block-preview/index.js +51 -0
  20. package/build/components/block-preview/index.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +3 -3
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/colors-gradients/control.js +1 -0
  24. package/build/components/colors-gradients/control.js.map +1 -1
  25. package/build/components/index.js +8 -1
  26. package/build/components/index.js.map +1 -1
  27. package/build/components/inserter/hooks/use-insertion-point.js +2 -2
  28. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  29. package/build/components/inserter/index.js +2 -2
  30. package/build/components/inserter/index.js.map +1 -1
  31. package/build/components/inserter/index.native.js +2 -2
  32. package/build/components/inserter/index.native.js.map +1 -1
  33. package/build/components/inserter/quick-inserter.js +1 -1
  34. package/build/components/inserter/quick-inserter.js.map +1 -1
  35. package/build/components/inspector-controls/block-support-tools-panel.js +50 -22
  36. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  37. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  38. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  39. package/build/components/provider/use-block-sync.js +37 -10
  40. package/build/components/provider/use-block-sync.js.map +1 -1
  41. package/build/components/use-on-block-drop/index.js +1 -1
  42. package/build/components/use-on-block-drop/index.js.map +1 -1
  43. package/build/components/use-setting/index.js +7 -0
  44. package/build/components/use-setting/index.js.map +1 -1
  45. package/build/layouts/flex.js +3 -27
  46. package/build/layouts/flex.js.map +1 -1
  47. package/build/store/actions.js +3 -3
  48. package/build/store/actions.js.map +1 -1
  49. package/build/store/reducer.js +34 -83
  50. package/build/store/reducer.js.map +1 -1
  51. package/build/store/selectors.js +2 -2
  52. package/build/store/selectors.js.map +1 -1
  53. package/build/utils/transform-styles/index.js +2 -3
  54. package/build/utils/transform-styles/index.js.map +1 -1
  55. package/build-module/components/block-inspector/index.js +12 -2
  56. package/build-module/components/block-inspector/index.js.map +1 -1
  57. package/build-module/components/block-list/block.js +1 -1
  58. package/build-module/components/block-list/block.js.map +1 -1
  59. package/build-module/components/block-list/block.native.js +2 -3
  60. package/build-module/components/block-list/block.native.js.map +1 -1
  61. package/build-module/components/block-list/use-block-props/index.js +1 -3
  62. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  63. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  64. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  65. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
  66. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  67. package/build-module/components/block-mover/button.js +2 -2
  68. package/build-module/components/block-mover/button.js.map +1 -1
  69. package/build-module/components/block-mover/index.js +2 -2
  70. package/build-module/components/block-mover/index.js.map +1 -1
  71. package/build-module/components/block-mover/index.native.js +2 -2
  72. package/build-module/components/block-mover/index.native.js.map +1 -1
  73. package/build-module/components/block-preview/index.js +46 -0
  74. package/build-module/components/block-preview/index.js.map +1 -1
  75. package/build-module/components/block-tools/block-selection-button.js +3 -3
  76. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  77. package/build-module/components/colors-gradients/control.js +1 -0
  78. package/build-module/components/colors-gradients/control.js.map +1 -1
  79. package/build-module/components/index.js +1 -1
  80. package/build-module/components/index.js.map +1 -1
  81. package/build-module/components/inserter/hooks/use-insertion-point.js +2 -2
  82. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  83. package/build-module/components/inserter/index.js +2 -2
  84. package/build-module/components/inserter/index.js.map +1 -1
  85. package/build-module/components/inserter/index.native.js +2 -2
  86. package/build-module/components/inserter/index.native.js.map +1 -1
  87. package/build-module/components/inserter/quick-inserter.js +1 -1
  88. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  89. package/build-module/components/inspector-controls/block-support-tools-panel.js +50 -22
  90. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  91. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  92. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  93. package/build-module/components/provider/use-block-sync.js +41 -14
  94. package/build-module/components/provider/use-block-sync.js.map +1 -1
  95. package/build-module/components/use-on-block-drop/index.js +1 -1
  96. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  97. package/build-module/components/use-setting/index.js +7 -0
  98. package/build-module/components/use-setting/index.js.map +1 -1
  99. package/build-module/layouts/flex.js +3 -27
  100. package/build-module/layouts/flex.js.map +1 -1
  101. package/build-module/store/actions.js +3 -3
  102. package/build-module/store/actions.js.map +1 -1
  103. package/build-module/store/reducer.js +35 -84
  104. package/build-module/store/reducer.js.map +1 -1
  105. package/build-module/store/selectors.js +2 -2
  106. package/build-module/store/selectors.js.map +1 -1
  107. package/build-module/utils/transform-styles/index.js +2 -3
  108. package/build-module/utils/transform-styles/index.js.map +1 -1
  109. package/build-style/style-rtl.css +17 -2
  110. package/build-style/style.css +17 -2
  111. package/package.json +9 -9
  112. package/src/components/block-inspector/index.js +17 -1
  113. package/src/components/block-list/block.js +1 -1
  114. package/src/components/block-list/block.native.js +2 -2
  115. package/src/components/block-list/use-block-props/index.js +1 -3
  116. package/src/components/block-list/use-in-between-inserter.js +1 -1
  117. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +2 -5
  118. package/src/components/block-mover/button.js +2 -6
  119. package/src/components/block-mover/index.js +2 -5
  120. package/src/components/block-mover/index.native.js +2 -5
  121. package/src/components/block-preview/index.js +60 -0
  122. package/src/components/block-preview/style.scss +23 -0
  123. package/src/components/block-preview/test/index.js +114 -0
  124. package/src/components/block-tools/block-selection-button.js +3 -9
  125. package/src/components/border-style-control/style.scss +3 -2
  126. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -0
  127. package/src/components/colors-gradients/control.js +3 -0
  128. package/src/components/index.js +4 -1
  129. package/src/components/inserter/hooks/use-insertion-point.js +2 -9
  130. package/src/components/inserter/index.js +2 -2
  131. package/src/components/inserter/index.native.js +2 -5
  132. package/src/components/inserter/quick-inserter.js +1 -1
  133. package/src/components/inspector-controls/block-support-tools-panel.js +57 -21
  134. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  135. package/src/components/provider/use-block-sync.js +45 -11
  136. package/src/components/use-on-block-drop/index.js +1 -4
  137. package/src/components/use-setting/index.js +9 -0
  138. package/src/layouts/flex.js +4 -25
  139. package/src/store/actions.js +3 -4
  140. package/src/store/reducer.js +36 -105
  141. package/src/store/selectors.js +2 -2
  142. package/src/store/test/reducer.js +35 -0
  143. package/src/store/test/selectors.js +1 -1
  144. package/src/utils/transform-styles/index.js +13 -16
@@ -75,7 +75,7 @@ export { default as BlockList } from './block-list';
75
75
  export { useBlockProps } from './block-list/use-block-props';
76
76
  export { LayoutStyle as __experimentalLayoutStyle } from './block-list/layout';
77
77
  export { default as BlockMover } from './block-mover';
78
- export { default as BlockPreview } from './block-preview';
78
+ export { default as BlockPreview, useBlockPreview as __experimentalUseBlockPreview } from './block-preview';
79
79
  export { default as BlockSelectionClearer, useBlockSelectionClearer as __unstableUseBlockSelectionClearer } from './block-selection-clearer';
80
80
  export { default as BlockSettingsMenu } from './block-settings-menu';
81
81
  export { default as BlockSettingsMenuControls } from './block-settings-menu-controls';
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":["AlignmentControl","AlignmentToolbar","default","Autocomplete","BlockAlignmentControl","BlockAlignmentToolbar","__experimentalBlockFullHeightAligmentControl","__experimentalBlockAlignmentMatrixControl","BlockBreadcrumb","__experimentalBlockContentOverlay","BlockContextProvider","BlockControls","BlockFormatControls","BlockColorsStyleSelector","BlockEdit","useBlockEditContext","BlockIcon","BlockNavigationDropdown","__experimentalBlockVariationPicker","__experimentalBlockPatternSetup","__experimentalBlockVariationTransforms","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","__experimentalBorderRadiusControl","__experimentalBorderStyleControl","ButtonBlockerAppender","ButtonBlockAppender","ColorPalette","ColorPaletteControl","ContrastChecker","__experimentalDuotoneControl","__experimentalFontAppearanceControl","__experimentalFontFamilyControl","__experimentalLetterSpacingControl","__experimentalTextDecorationControl","__experimentalTextTransformControl","__experimentalColorGradientControl","__experimentalPanelColorGradientSettings","__experimentalImageEditor","ImageEditingProvider","__experimentalImageEditingProvider","__experimentalImageSizeControl","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","__experimentalLinkControl","__experimentalLinkControlSearchInput","__experimentalLinkControlSearchResults","__experimentalLinkControlSearchItem","LineHeightControl","__experimentalListView","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MediaUploadCheck","PanelColorSettings","PlainText","__experimentalResponsiveBlockControl","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","ToolSelector","__experimentalUnitControl","URLInput","URLInputButton","URLPopover","__experimentalImageURLInputUI","withColorContext","__unstableBlockSettingsMenuFirstItem","__unstableInserterMenuExtension","__experimentalPreviewOptions","__experimentalUseResizeCanvas","BlockInspector","BlockList","useBlockProps","LayoutStyle","__experimentalLayoutStyle","BlockMover","BlockPreview","BlockSelectionClearer","useBlockSelectionClearer","__unstableUseBlockSelectionClearer","BlockSettingsMenu","BlockSettingsMenuControls","BlockTitle","BlockToolbar","BlockTools","CopyHandler","useClipboardHandler","__unstableUseClipboardHandler","DefaultBlockAppender","__unstableEditorStyles","Inserter","__experimentalLibrary","BlockEditorKeyboardShortcuts","MultiSelectScrollIntoView","NavigableToolbar","ObserveTyping","useTypingObserver","__unstableUseTypingObserver","useMouseMoveTypingReset","__unstableUseMouseMoveTypingReset","PreserveScrollInReorder","SkipToSelectedBlock","Typewriter","useTypewriter","__unstableUseTypewriter","Warning","WritingFlow","useCanvasClickRedirect","__unstableUseCanvasClickRedirect","useBlockDisplayInformation","__unstableIframe","__experimentalUseNoRecursiveRenders","BlockEditorProvider","useSetting"],"mappings":"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","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalBlockContentOverlay } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport { default as __experimentalBorderStyleControl } from './border-style-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport {\n\tdefault as __experimentalImageEditor,\n\tImageEditingProvider as __experimentalImageEditingProvider,\n} from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as ToolSelector } from './tool-selector';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\n\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { LayoutStyle as __experimentalLayoutStyle } from './block-list/layout';\nexport { default as BlockMover } from './block-mover';\nexport { default as BlockPreview } from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\tuseClipboardHandler as __unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as PreserveScrollInReorder } from './preserve-scroll-in-reorder';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { useCanvasClickRedirect as __unstableUseCanvasClickRedirect } from './use-canvas-click-redirect';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":["AlignmentControl","AlignmentToolbar","default","Autocomplete","BlockAlignmentControl","BlockAlignmentToolbar","__experimentalBlockFullHeightAligmentControl","__experimentalBlockAlignmentMatrixControl","BlockBreadcrumb","__experimentalBlockContentOverlay","BlockContextProvider","BlockControls","BlockFormatControls","BlockColorsStyleSelector","BlockEdit","useBlockEditContext","BlockIcon","BlockNavigationDropdown","__experimentalBlockVariationPicker","__experimentalBlockPatternSetup","__experimentalBlockVariationTransforms","BlockVerticalAlignmentToolbar","BlockVerticalAlignmentControl","__experimentalBorderRadiusControl","__experimentalBorderStyleControl","ButtonBlockerAppender","ButtonBlockAppender","ColorPalette","ColorPaletteControl","ContrastChecker","__experimentalDuotoneControl","__experimentalFontAppearanceControl","__experimentalFontFamilyControl","__experimentalLetterSpacingControl","__experimentalTextDecorationControl","__experimentalTextTransformControl","__experimentalColorGradientControl","__experimentalPanelColorGradientSettings","__experimentalImageEditor","ImageEditingProvider","__experimentalImageEditingProvider","__experimentalImageSizeControl","InnerBlocks","useInnerBlocksProps","InspectorControls","InspectorAdvancedControls","JustifyToolbar","JustifyContentControl","__experimentalLinkControl","__experimentalLinkControlSearchInput","__experimentalLinkControlSearchResults","__experimentalLinkControlSearchItem","LineHeightControl","__experimentalListView","MediaReplaceFlow","MediaPlaceholder","MediaUpload","MediaUploadCheck","PanelColorSettings","PlainText","__experimentalResponsiveBlockControl","RichText","RichTextShortcut","RichTextToolbarButton","__unstableRichTextInputEvent","ToolSelector","__experimentalUnitControl","URLInput","URLInputButton","URLPopover","__experimentalImageURLInputUI","withColorContext","__unstableBlockSettingsMenuFirstItem","__unstableInserterMenuExtension","__experimentalPreviewOptions","__experimentalUseResizeCanvas","BlockInspector","BlockList","useBlockProps","LayoutStyle","__experimentalLayoutStyle","BlockMover","BlockPreview","useBlockPreview","__experimentalUseBlockPreview","BlockSelectionClearer","useBlockSelectionClearer","__unstableUseBlockSelectionClearer","BlockSettingsMenu","BlockSettingsMenuControls","BlockTitle","BlockToolbar","BlockTools","CopyHandler","useClipboardHandler","__unstableUseClipboardHandler","DefaultBlockAppender","__unstableEditorStyles","Inserter","__experimentalLibrary","BlockEditorKeyboardShortcuts","MultiSelectScrollIntoView","NavigableToolbar","ObserveTyping","useTypingObserver","__unstableUseTypingObserver","useMouseMoveTypingReset","__unstableUseMouseMoveTypingReset","PreserveScrollInReorder","SkipToSelectedBlock","Typewriter","useTypewriter","__unstableUseTypewriter","Warning","WritingFlow","useCanvasClickRedirect","__unstableUseCanvasClickRedirect","useBlockDisplayInformation","__unstableIframe","__experimentalUseNoRecursiveRenders","BlockEditorProvider","useSetting"],"mappings":"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","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalBlockContentOverlay } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport { default as __experimentalBorderStyleControl } from './border-style-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport {\n\tdefault as __experimentalImageEditor,\n\tImageEditingProvider as __experimentalImageEditingProvider,\n} from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as ToolSelector } from './tool-selector';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\n\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { LayoutStyle as __experimentalLayoutStyle } from './block-list/layout';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\tuseClipboardHandler as __unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as PreserveScrollInReorder } from './preserve-scroll-in-reorder';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { useCanvasClickRedirect as __unstableUseCanvasClickRedirect } from './use-canvas-click-redirect';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n"]}
@@ -69,10 +69,10 @@ function useInsertionPoint(_ref) {
69
69
  _destinationIndex = insertionIndex;
70
70
  } else if (clientId) {
71
71
  // Insert after a specific client ID.
72
- _destinationIndex = getBlockIndex(clientId, _destinationRootClientId);
72
+ _destinationIndex = getBlockIndex(clientId);
73
73
  } else if (!isAppender && selectedBlockClientId) {
74
74
  _destinationRootClientId = getBlockRootClientId(selectedBlockClientId);
75
- _destinationIndex = getBlockIndex(selectedBlockClientId, _destinationRootClientId) + 1;
75
+ _destinationIndex = getBlockIndex(selectedBlockClientId) + 1;
76
76
  } else {
77
77
  // Insert at the end of the list.
78
78
  _destinationIndex = getBlockOrder(_destinationRootClientId).length;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-insertion-point.js"],"names":["castArray","useDispatch","useSelect","isUnmodifiedDefaultBlock","_n","sprintf","speak","useCallback","store","blockEditorStore","useInsertionPoint","rootClientId","insertionIndex","clientId","isAppender","onSelect","shouldFocusBlock","getSelectedBlock","destinationRootClientId","destinationIndex","select","getSelectedBlockClientId","getBlockRootClientId","getBlockIndex","getBlockOrder","selectedBlockClientId","_destinationRootClientId","_destinationIndex","undefined","length","replaceBlocks","insertBlocks","showInsertionPoint","hideInsertionPoint","onInsertBlocks","blocks","meta","shouldForceFocusBlock","selectedBlock","message","onToggleInsertionPoint","show"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * @typedef WPInserterConfig\n *\n * @property {string=} rootClientId If set, insertion will be into the\n * block with this ID.\n * @property {number=} insertionIndex If set, insertion will be into this\n * explicit position.\n * @property {string=} clientId If set, insertion will be after the\n * block with this ID.\n * @property {boolean=} isAppender Whether the inserter is an appender\n * or not.\n * @property {Function=} onSelect Called after insertion.\n */\n\n/**\n * Returns the insertion point state given the inserter config.\n *\n * @param {WPInserterConfig} config Inserter Config.\n * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle).\n */\nfunction useInsertionPoint( {\n\trootClientId = '',\n\tinsertionIndex,\n\tclientId,\n\tisAppender,\n\tonSelect,\n\tshouldFocusBlock = true,\n} ) {\n\tconst { getSelectedBlock } = useSelect( blockEditorStore );\n\tconst { destinationRootClientId, destinationIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tlet _destinationRootClientId = rootClientId;\n\t\t\tlet _destinationIndex;\n\n\t\t\tif ( insertionIndex !== undefined ) {\n\t\t\t\t// Insert into a specific index.\n\t\t\t\t_destinationIndex = insertionIndex;\n\t\t\t} else if ( clientId ) {\n\t\t\t\t// Insert after a specific client ID.\n\t\t\t\t_destinationIndex = getBlockIndex(\n\t\t\t\t\tclientId,\n\t\t\t\t\t_destinationRootClientId\n\t\t\t\t);\n\t\t\t} else if ( ! isAppender && selectedBlockClientId ) {\n\t\t\t\t_destinationRootClientId = getBlockRootClientId(\n\t\t\t\t\tselectedBlockClientId\n\t\t\t\t);\n\t\t\t\t_destinationIndex =\n\t\t\t\t\tgetBlockIndex(\n\t\t\t\t\t\tselectedBlockClientId,\n\t\t\t\t\t\t_destinationRootClientId\n\t\t\t\t\t) + 1;\n\t\t\t} else {\n\t\t\t\t// Insert at the end of the list.\n\t\t\t\t_destinationIndex = getBlockOrder( _destinationRootClientId )\n\t\t\t\t\t.length;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdestinationRootClientId: _destinationRootClientId,\n\t\t\t\tdestinationIndex: _destinationIndex,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, insertionIndex, clientId, isAppender ]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tinsertBlocks,\n\t\tshowInsertionPoint,\n\t\thideInsertionPoint,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onInsertBlocks = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock = false ) => {\n\t\t\tconst selectedBlock = getSelectedBlock();\n\n\t\t\tif (\n\t\t\t\t! isAppender &&\n\t\t\t\tselectedBlock &&\n\t\t\t\tisUnmodifiedDefaultBlock( selectedBlock )\n\t\t\t) {\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\tblocks,\n\t\t\t\t\tnull,\n\t\t\t\t\tshouldFocusBlock || shouldForceFocusBlock ? 0 : null,\n\t\t\t\t\tmeta\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tinsertBlocks(\n\t\t\t\t\tblocks,\n\t\t\t\t\tdestinationIndex,\n\t\t\t\t\tdestinationRootClientId,\n\t\t\t\t\ttrue,\n\t\t\t\t\tshouldFocusBlock || shouldForceFocusBlock ? 0 : null,\n\t\t\t\t\tmeta\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst message = sprintf(\n\t\t\t\t// translators: %d: the name of the block that has been added\n\t\t\t\t_n(\n\t\t\t\t\t'%d block added.',\n\t\t\t\t\t'%d blocks added.',\n\t\t\t\t\tcastArray( blocks ).length\n\t\t\t\t),\n\t\t\t\tcastArray( blocks ).length\n\t\t\t);\n\t\t\tspeak( message );\n\n\t\t\tif ( onSelect ) {\n\t\t\t\tonSelect();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tisAppender,\n\t\t\tgetSelectedBlock,\n\t\t\treplaceBlocks,\n\t\t\tinsertBlocks,\n\t\t\tdestinationRootClientId,\n\t\t\tdestinationIndex,\n\t\t\tonSelect,\n\t\t\tshouldFocusBlock,\n\t\t]\n\t);\n\n\tconst onToggleInsertionPoint = useCallback(\n\t\t( show ) => {\n\t\t\tif ( show ) {\n\t\t\t\tshowInsertionPoint( destinationRootClientId, destinationIndex );\n\t\t\t} else {\n\t\t\t\thideInsertionPoint();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tdestinationRootClientId,\n\t\t\tdestinationIndex,\n\t\t]\n\t);\n\n\treturn [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ];\n}\n\nexport default useInsertionPoint;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-insertion-point.js"],"names":["castArray","useDispatch","useSelect","isUnmodifiedDefaultBlock","_n","sprintf","speak","useCallback","store","blockEditorStore","useInsertionPoint","rootClientId","insertionIndex","clientId","isAppender","onSelect","shouldFocusBlock","getSelectedBlock","destinationRootClientId","destinationIndex","select","getSelectedBlockClientId","getBlockRootClientId","getBlockIndex","getBlockOrder","selectedBlockClientId","_destinationRootClientId","_destinationIndex","undefined","length","replaceBlocks","insertBlocks","showInsertionPoint","hideInsertionPoint","onInsertBlocks","blocks","meta","shouldForceFocusBlock","selectedBlock","message","onToggleInsertionPoint","show"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * @typedef WPInserterConfig\n *\n * @property {string=} rootClientId If set, insertion will be into the\n * block with this ID.\n * @property {number=} insertionIndex If set, insertion will be into this\n * explicit position.\n * @property {string=} clientId If set, insertion will be after the\n * block with this ID.\n * @property {boolean=} isAppender Whether the inserter is an appender\n * or not.\n * @property {Function=} onSelect Called after insertion.\n */\n\n/**\n * Returns the insertion point state given the inserter config.\n *\n * @param {WPInserterConfig} config Inserter Config.\n * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle).\n */\nfunction useInsertionPoint( {\n\trootClientId = '',\n\tinsertionIndex,\n\tclientId,\n\tisAppender,\n\tonSelect,\n\tshouldFocusBlock = true,\n} ) {\n\tconst { getSelectedBlock } = useSelect( blockEditorStore );\n\tconst { destinationRootClientId, destinationIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tlet _destinationRootClientId = rootClientId;\n\t\t\tlet _destinationIndex;\n\n\t\t\tif ( insertionIndex !== undefined ) {\n\t\t\t\t// Insert into a specific index.\n\t\t\t\t_destinationIndex = insertionIndex;\n\t\t\t} else if ( clientId ) {\n\t\t\t\t// Insert after a specific client ID.\n\t\t\t\t_destinationIndex = getBlockIndex( clientId );\n\t\t\t} else if ( ! isAppender && selectedBlockClientId ) {\n\t\t\t\t_destinationRootClientId = getBlockRootClientId(\n\t\t\t\t\tselectedBlockClientId\n\t\t\t\t);\n\t\t\t\t_destinationIndex = getBlockIndex( selectedBlockClientId ) + 1;\n\t\t\t} else {\n\t\t\t\t// Insert at the end of the list.\n\t\t\t\t_destinationIndex = getBlockOrder( _destinationRootClientId )\n\t\t\t\t\t.length;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdestinationRootClientId: _destinationRootClientId,\n\t\t\t\tdestinationIndex: _destinationIndex,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, insertionIndex, clientId, isAppender ]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tinsertBlocks,\n\t\tshowInsertionPoint,\n\t\thideInsertionPoint,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onInsertBlocks = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock = false ) => {\n\t\t\tconst selectedBlock = getSelectedBlock();\n\n\t\t\tif (\n\t\t\t\t! isAppender &&\n\t\t\t\tselectedBlock &&\n\t\t\t\tisUnmodifiedDefaultBlock( selectedBlock )\n\t\t\t) {\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\tblocks,\n\t\t\t\t\tnull,\n\t\t\t\t\tshouldFocusBlock || shouldForceFocusBlock ? 0 : null,\n\t\t\t\t\tmeta\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tinsertBlocks(\n\t\t\t\t\tblocks,\n\t\t\t\t\tdestinationIndex,\n\t\t\t\t\tdestinationRootClientId,\n\t\t\t\t\ttrue,\n\t\t\t\t\tshouldFocusBlock || shouldForceFocusBlock ? 0 : null,\n\t\t\t\t\tmeta\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst message = sprintf(\n\t\t\t\t// translators: %d: the name of the block that has been added\n\t\t\t\t_n(\n\t\t\t\t\t'%d block added.',\n\t\t\t\t\t'%d blocks added.',\n\t\t\t\t\tcastArray( blocks ).length\n\t\t\t\t),\n\t\t\t\tcastArray( blocks ).length\n\t\t\t);\n\t\t\tspeak( message );\n\n\t\t\tif ( onSelect ) {\n\t\t\t\tonSelect();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tisAppender,\n\t\t\tgetSelectedBlock,\n\t\t\treplaceBlocks,\n\t\t\tinsertBlocks,\n\t\t\tdestinationRootClientId,\n\t\t\tdestinationIndex,\n\t\t\tonSelect,\n\t\t\tshouldFocusBlock,\n\t\t]\n\t);\n\n\tconst onToggleInsertionPoint = useCallback(\n\t\t( show ) => {\n\t\t\tif ( show ) {\n\t\t\t\tshowInsertionPoint( destinationRootClientId, destinationIndex );\n\t\t\t} else {\n\t\t\t\thideInsertionPoint();\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tdestinationRootClientId,\n\t\t\tdestinationIndex,\n\t\t]\n\t);\n\n\treturn [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ];\n}\n\nexport default useInsertionPoint;\n"]}
@@ -268,14 +268,14 @@ export default compose([withSelect((select, _ref4) => {
268
268
  } = select(blockEditorStore); // If the clientId is defined, we insert at the position of the block.
269
269
 
270
270
  if (clientId) {
271
- return getBlockIndex(clientId, rootClientId);
271
+ return getBlockIndex(clientId);
272
272
  } // If there a selected block, we insert after the selected block.
273
273
 
274
274
 
275
275
  const end = getBlockSelectionEnd();
276
276
 
277
277
  if (!isAppender && end && getBlockRootClientId(end) === rootClientId) {
278
- return getBlockIndex(end, rootClientId) + 1;
278
+ return getBlockIndex(end) + 1;
279
279
  } // Otherwise, we insert at the end of the current rootClientId
280
280
 
281
281
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["size","classnames","speak","__","_x","sprintf","Dropdown","Button","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","label","onClick","rest","handleClick","event","Inserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","length","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getBlockVariations","undefined","allowedBlocks","name","allowedBlockType","title","dispatch","ownProps","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { size } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock?.length ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock = __experimentalGetDirectInsertBlock(\n\t\t\trootClientId\n\t\t);\n\n\t\tconst hasSingleBlockType =\n\t\t\tsize( allowedBlocks ) === 1 &&\n\t\t\tsize(\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t) === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end, rootClientId ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tconst blockToInsert = directInsertBlock?.length\n\t\t\t\t\t? createBlock( ...directInsertBlock )\n\t\t\t\t\t: createBlock( allowedBlockType.name );\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["size","classnames","speak","__","_x","sprintf","Dropdown","Button","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","label","onClick","rest","handleClick","event","Inserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","length","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getBlockVariations","undefined","allowedBlocks","name","allowedBlockType","title","dispatch","ownProps","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { size } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock?.length ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock = __experimentalGetDirectInsertBlock(\n\t\t\trootClientId\n\t\t);\n\n\t\tconst hasSingleBlockType =\n\t\t\tsize( allowedBlocks ) === 1 &&\n\t\t\tsize(\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t) === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tconst blockToInsert = directInsertBlock?.length\n\t\t\t\t\t? createBlock( ...directInsertBlock )\n\t\t\t\t\t: createBlock( allowedBlockType.name );\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
@@ -330,7 +330,7 @@ export default compose([withDispatch(dispatch => {
330
330
 
331
331
  const isAnyBlockSelected = !isAppender && end && getBlock(end);
332
332
  const destinationRootClientId = isAnyBlockSelected ? getBlockRootClientId(end) : rootClientId;
333
- const selectedBlockIndex = getBlockIndex(end, destinationRootClientId);
333
+ const selectedBlockIndex = getBlockIndex(end);
334
334
  const endOfRootIndex = getBlockOrder(rootClientId).length;
335
335
  const isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected ? isUnmodifiedDefaultBlock(getBlock(end)) : undefined;
336
336
 
@@ -345,7 +345,7 @@ export default compose([withDispatch(dispatch => {
345
345
 
346
346
 
347
347
  if (clientId) {
348
- return getBlockIndex(clientId, rootClientId);
348
+ return getBlockIndex(clientId);
349
349
  } // If there is a selected block,
350
350
 
351
351
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["AccessibilityInfo","Platform","delay","__","Dropdown","ToolbarButton","Picker","Component","withDispatch","withSelect","compose","withPreferredColorScheme","isUnmodifiedDefaultBlock","Icon","plusCircle","plusCircleFilled","insertAfter","insertBefore","setBlockTypeImpressions","styles","InserterMenu","BlockInsertionPoint","store","blockEditorStore","VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","onLongPress","color","hint","testID","Inserter","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","icon","replaceCurrentOption","addAfterOption","addToBeginningOption","addToEndOption","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","isScreenReaderEnabled","done","isEnabled","isIOS","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","addBlockButton","addBlockButtonDark","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( { onToggle, disabled, style, onLongPress } ) => (\n\t<ToolbarButton\n\t\ttitle={ __( 'Add block' ) }\n\t\ticon={\n\t\t\t<Icon\n\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\tstyle={ style }\n\t\t\t\tcolor={ style.color }\n\t\t\t/>\n\t\t}\n\t\tonClick={ onToggle }\n\t\textraProps={ {\n\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\ttestID: 'add-block-button',\n\t\t\tonLongPress,\n\t\t} }\n\t\tisDisabled={ disabled }\n\t/>\n);\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = getStylesFromColorScheme(\n\t\t\tstyles.addBlockButton,\n\t\t\tstyles.addBlockButtonDark\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex(\n\t\t\tend,\n\t\t\tdestinationRootClientId\n\t\t);\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// if post title is selected insert as first block\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId, rootClientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// and the last selected block is unmodified (empty), it will be replaced\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// we insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["AccessibilityInfo","Platform","delay","__","Dropdown","ToolbarButton","Picker","Component","withDispatch","withSelect","compose","withPreferredColorScheme","isUnmodifiedDefaultBlock","Icon","plusCircle","plusCircleFilled","insertAfter","insertBefore","setBlockTypeImpressions","styles","InserterMenu","BlockInsertionPoint","store","blockEditorStore","VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","onLongPress","color","hint","testID","Inserter","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","icon","replaceCurrentOption","addAfterOption","addToBeginningOption","addToEndOption","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","isScreenReaderEnabled","done","isEnabled","isIOS","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","addBlockButton","addBlockButtonDark","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,QAA5B,QAA4C,cAA5C;AACA,SAASC,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,EAAmBC,aAAnB,EAAkCC,MAAlC,QAAgD,uBAAhD;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,iBAAzC;AACA,SAASC,OAAT,EAAkBC,wBAAlB,QAAkD,oBAAlD;AACA,SAASC,wBAAT,QAAyC,mBAAzC;AACA,SACCC,IADD,EAECC,UAFD,EAGCC,gBAHD,EAICC,WAJD,EAKCC,YALD,QAMO,kBANP;AAOA,SAASC,uBAAT,QAAwC,gCAAxC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,YAAP,MAAyB,QAAzB;AACA,OAAOC,mBAAP,MAAgC,+BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,6BAA6B,GAAG,IAAtC;;AAEA,MAAMC,mBAAmB,GAAG;AAAA,MAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,KAAtB;AAA6BC,IAAAA;AAA7B,GAAF;AAAA,SAC3B,cAAC,aAAD;AACC,IAAA,KAAK,EAAG1B,EAAE,CAAE,WAAF,CADX;AAEC,IAAA,IAAI,EACH,cAAC,IAAD;AACC,MAAA,IAAI,EAAGY,gBADR;AAEC,MAAA,KAAK,EAAGa,KAFT;AAGC,MAAA,KAAK,EAAGA,KAAK,CAACE;AAHf,MAHF;AASC,IAAA,OAAO,EAAGJ,QATX;AAUC,IAAA,UAAU,EAAG;AACZK,MAAAA,IAAI,EAAE5B,EAAE,CAAE,2BAAF,CADI;AAEZ;AACA;AACA6B,MAAAA,MAAM,EAAE,kBAJI;AAKZH,MAAAA;AALY,KAVd;AAiBC,IAAA,UAAU,EAAGF;AAjBd,IAD2B;AAAA,CAA5B;;AAsBA,OAAO,MAAMM,QAAN,SAAuB1B,SAAvB,CAAiC;AACvC2B,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKT,QAAL,GAAgB,KAAKA,QAAL,CAAcU,IAAd,CAAoB,IAApB,CAAhB;AACA,SAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BD,IAA1B,CAAgC,IAAhC,CAA5B;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAyB,IAAzB,CAArB;AACA;;AAEDG,EAAAA,mBAAmB,GAAG;AACrB,UAAMC,eAAe,GAAG;AACvBC,MAAAA,KAAK,EAAE,QADgB;AAEvBC,MAAAA,KAAK,EAAEvC,EAAE,CAAE,kBAAF,CAFc;AAGvBwC,MAAAA,IAAI,EAAE7B;AAHiB,KAAxB;AAMA,UAAM8B,oBAAoB,GAAG;AAC5BH,MAAAA,KAAK,EAAE,SADqB;AAE5BC,MAAAA,KAAK,EAAEvC,EAAE,CAAE,uBAAF,CAFmB;AAG5BwC,MAAAA,IAAI,EAAE5B;AAHsB,KAA7B;AAMA,UAAM8B,cAAc,GAAG;AACtBJ,MAAAA,KAAK,EAAE,OADe;AAEtBC,MAAAA,KAAK,EAAEvC,EAAE,CAAE,iBAAF,CAFa;AAGtBwC,MAAAA,IAAI,EAAE7B;AAHgB,KAAvB;AAMA,UAAMgC,oBAAoB,GAAG;AAC5BL,MAAAA,KAAK,EAAE,OADqB;AAE5BC,MAAAA,KAAK,EAAEvC,EAAE,CAAE,kBAAF,CAFmB;AAG5BwC,MAAAA,IAAI,EAAE1B;AAHsB,KAA7B;AAMA,UAAM8B,cAAc,GAAG;AACtBN,MAAAA,KAAK,EAAE,KADe;AAEtBC,MAAAA,KAAK,EAAEvC,EAAE,CAAE,YAAF,CAFa;AAGtBwC,MAAAA,IAAI,EAAE3B;AAHgB,KAAvB;AAMA,UAAM;AAAEgC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAqD,KAAKC,KAAhE;;AACA,QAAKF,kBAAL,EAA0B;AACzB,UAAKC,0BAAL,EAAkC;AACjC,eAAO,CACNH,oBADM,EAENN,eAFM,EAGNI,oBAHM,EAINC,cAJM,EAKNE,cALM,CAAP;AAOA;;AACD,aAAO,CACND,oBADM,EAENN,eAFM,EAGNK,cAHM,EAINE,cAJM,CAAP;AAMA;;AACD,WAAO,CAAED,oBAAF,EAAwBC,cAAxB,CAAP;AACA;;AAEDI,EAAAA,iBAAiB,CAAEC,aAAF,EAAkB;AAClC,UAAM;AACLC,MAAAA,qBADK;AAELC,MAAAA,mBAFK;AAGLC,MAAAA,oBAHK;AAILC,MAAAA,mBAJK;AAKLC,MAAAA;AALK,QAMF,KAAKP,KANT;;AAOA,QAAKE,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOE,mBAAP;AACA;;AACD,QAAKF,aAAa,KAAK,QAAlB,IAA8BA,aAAa,KAAK,SAArD,EAAiE;AAChE,aAAOG,oBAAP;AACA;;AACD,QAAKH,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOI,mBAAP;AACA;;AACD,QAAKJ,aAAa,KAAK,KAAvB,EAA+B;AAC9B,aAAOK,iBAAP;AACA;;AACD,WAAOJ,qBAAP;AACA;;AAEDK,EAAAA,kBAAkB,CAAEN,aAAF,EAAkB;AACnC,UAAM;AAAEH,MAAAA;AAAF,QAAiC,KAAKC,KAA5C;;AACA,QAAKE,aAAa,KAAK,SAAvB,EAAmC;AAClC,aAAO,IAAP;AACA;;AACD,QAAKA,aAAa,KAAK,SAAlB,IAA+BH,0BAApC,EAAiE;AAChE,aAAO,IAAP;AACA;;AACD,WAAO,KAAP;AACA;;AAEDvB,EAAAA,QAAQ,CAAEiC,MAAF,EAAW;AAClB,UAAM;AAAEC,MAAAA,oBAAF;AAAwBlC,MAAAA,QAAxB;AAAkCmC,MAAAA;AAAlC,QAAqD,KAAKX,KAAhE;;AAEA,QAAK,CAAES,MAAP,EAAgB;AACf,YAAMG,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CACzBJ,oBADyB,EAExBK,IAFwB,CAEhBC,KAAF,IAAaA,KAAK,GAAG,CAFH,CAA1B;;AAIA,UAAKJ,iBAAL,EAAyB;AACxB,cAAMK,sBAAsB,GAAGJ,MAAM,CAACK,OAAP,CAC9BR,oBAD8B,EAE7BS,MAF6B,CAG9B,CAAEC,GAAF;AAAA,cAAO,CAAEC,SAAF,EAAaL,KAAb,CAAP;AAAA,iBAAmC,EAClC,GAAGI,GAD+B;AAElC,aAAEC,SAAF,GAAeC,IAAI,CAACC,GAAL,CAAUP,KAAK,GAAG,CAAlB,EAAqB,CAArB;AAFmB,WAAnC;AAAA,SAH8B,EAO9B,EAP8B,CAA/B,CADwB,CAWxB;;AACAL,QAAAA,cAAc,CAAE;AACfa,UAAAA,WAAW,EAAEP;AADE,SAAF,CAAd,CAZwB,CAgBxB;;AACAjD,QAAAA,uBAAuB,CAAEiD,sBAAF,CAAvB;AACA;AACD,KA3BiB,CA6BlB;;;AACA,QAAKzC,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEiC,MAAF,CAAR;AACA;;AACD,SAAKgB,6BAAL,CAAoChB,MAApC;AACA;;AAEDgB,EAAAA,6BAA6B,CAAEhB,MAAF,EAAW;AACvC3D,IAAAA,iBAAiB,CAAC4E,qBAAlB,GAA0CC,IAA1C,CAAkDC,SAAF,IAAiB;AAChE,UAAKA,SAAL,EAAiB;AAChB,cAAMC,KAAK,GAAG9E,QAAQ,CAAC+E,EAAT,KAAgB,KAA9B;AACA,cAAMC,YAAY,GAAGtB,MAAM,GACxBxD,EAAE,CAAE,+CAAF,CADsB,GAExBA,EAAE,CAAE,+BAAF,CAFL;AAGAD,QAAAA,KAAK,CACJ,MACCF,iBAAiB,CAACkF,wBAAlB,CACCD,YADD,CAFG,EAKJF,KAAK,GAAGvD,6BAAH,GAAmC,CALpC,CAAL;AAOA;AACD,KAdD;AAeA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACCa,EAAAA,oBAAoB,QAAyB;AAAA,QAAvB;AAAEX,MAAAA,QAAF;AAAYiC,MAAAA;AAAZ,KAAuB;AAC5C,UAAM;AACLhC,MAAAA,QADK;AAELwD,MAAAA,YAAY,GAAG1D,mBAFV;AAGL2D,MAAAA,wBAHK;AAILC,MAAAA;AAJK,QAKF,KAAKnC,KALT;;AAMA,QAAKmC,aAAa,IAAI1B,MAAtB,EAA+B;AAC9B,aAAO,cAAC,mBAAD,OAAP;AACA;;AACD,UAAM/B,KAAK,GAAGwD,wBAAwB,CACrCjE,MAAM,CAACmE,cAD8B,EAErCnE,MAAM,CAACoE,kBAF8B,CAAtC;;AAKA,UAAMC,OAAO,GAAG,MAAM;AACrB,WAAKC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAKxC,KAAL,CAAWwC,uBADrC;AAEChC,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CAAyB,SAAzB,CAFrB;AAGCiC,QAAAA,cAAc,EAAE,KAAKxC,iBAAL,CAAwB,SAAxB;AAHjB,OADD,EAMCzB,QAND;AAQA,KATD;;AAWA,UAAMG,WAAW,GAAG,MAAM;AACzB,UAAK,KAAK+D,MAAV,EAAmB;AAClB,aAAKA,MAAL,CAAYC,aAAZ;AACA;AACD,KAJD;;AAMA,UAAMC,cAAc,GAAK1C,aAAF,IAAqB;AAC3C,WAAKqC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAKxC,KAAL,CAAWwC,uBADrC;AAEChC,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CACnBN,aADmB,CAFrB;AAKCuC,QAAAA,cAAc,EAAE,KAAKxC,iBAAL,CAAwBC,aAAxB;AALjB,OADD,EAQC1B,QARD;AAUA,KAXD;;AAaA,WACC,8BACGyD,YAAY,CAAE;AACfzD,MAAAA,QAAQ,EAAE8D,OADK;AAEf7B,MAAAA,MAFe;AAGfhC,MAAAA,QAHe;AAIfC,MAAAA,KAJe;AAKfC,MAAAA;AALe,KAAF,CADf,EAQC,cAAC,MAAD;AACC,MAAA,GAAG,EAAKkE,QAAF,IAAkB,KAAKH,MAAL,GAAcG,QADvC;AAEC,MAAA,OAAO,EAAG,KAAKxD,mBAAL,EAFX;AAGC,MAAA,QAAQ,EAAGuD,cAHZ;AAIC,MAAA,gBAAgB;AAJjB,MARD,CADD;AAiBA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACCxD,EAAAA,aAAa,QAAwB;AAAA,QAAtB;AAAE0D,MAAAA,OAAF;AAAWrC,MAAAA;AAAX,KAAsB;AACpC,UAAM;AAAEsC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA2B,KAAKhD,KAAtC;AACA,UAAM;AACLwC,MAAAA,uBADK;AAELhC,MAAAA,kBAFK;AAGLiC,MAAAA;AAHK,QAIF,KAAKQ,KAJT;AAKA,WACC,cAAC,YAAD;AACC,MAAA,MAAM,EAAGxC,MADV;AAEC,MAAA,QAAQ,EAAGqC,OAFZ;AAGC,MAAA,SAAS,EAAGA,OAHb;AAIC,MAAA,YAAY,EAAGN,uBAJhB;AAKC,MAAA,QAAQ,EAAGO,QALZ;AAMC,MAAA,UAAU,EAAGC,UANd;AAOC,MAAA,kBAAkB,EAAGxC,kBAPtB;AAQC,MAAA,cAAc,EAAGiC;AARlB,MADD;AAYA;;AAEDS,EAAAA,MAAM,GAAG;AACR,WACC,cAAC,QAAD;AACC,MAAA,QAAQ,EAAG,KAAK1E,QADjB;AAEC,MAAA,WAAW,EAAGvB,EAAE,CAAE,aAAF,CAFjB;AAGC,MAAA,YAAY,EAAG,KAAKkC,oBAHrB;AAIC,MAAA,aAAa,EAAG,KAAKC;AAJtB,MADD;AAQA;;AAvQsC;AA0QxC,eAAe5B,OAAO,CAAE,CACvBF,YAAY,CAAI6F,QAAF,IAAgB;AAC7B,QAAM;AAAExC,IAAAA;AAAF,MAAqBwC,QAAQ,CAAE9E,gBAAF,CAAnC;AACA,SAAO;AAAEsC,IAAAA;AAAF,GAAP;AACA,CAHW,CADW,EAKvBpD,UAAU,CAAE,CAAE6F,MAAF,YAAsD;AAAA,MAA5C;AAAEL,IAAAA,QAAF;AAAYC,IAAAA,UAAZ;AAAwBK,IAAAA;AAAxB,GAA4C;AACjE,QAAM;AACLC,IAAAA,oBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,aAJK;AAKLC,IAAAA,QALK;AAMLC,IAAAA,WAAW,EAAEC;AANR,MAOFR,MAAM,CAAE/E,gBAAF,CAPV;AASA,QAAMwF,GAAG,GAAGN,oBAAoB,EAAhC,CAViE,CAWjE;AACA;AACA;;AACA,QAAMzD,kBAAkB,GAAG,CAAEkD,UAAF,IAAgBa,GAAhB,IAAuBH,QAAQ,CAAEG,GAAF,CAA1D;AACA,QAAMrB,uBAAuB,GAAG1C,kBAAkB,GAC/CwD,oBAAoB,CAAEO,GAAF,CAD2B,GAE/CR,YAFH;AAGA,QAAMS,kBAAkB,GAAGL,aAAa,CAAEI,GAAF,CAAxC;AACA,QAAME,cAAc,GAAGP,aAAa,CAAEH,YAAF,CAAb,CAA8BW,MAArD;AACA,QAAMC,gCAAgC,GAAGnE,kBAAkB,GACxDpC,wBAAwB,CAAEgG,QAAQ,CAAEG,GAAF,CAAV,CADgC,GAExDK,SAFH;;AAIA,WAASC,wBAAT,GAAoC;AACnC,UAAM;AACLC,MAAAA,kCAAkC,EAAEC;AAD/B,QAEFT,sBAAsB,EAF1B,CADmC,CAKnC;;AACA,QAAKS,oBAAL,EAA4B;AAC3B,aAAO,CAAP;AACA,KARkC,CAUnC;;;AACA,QAAKtB,QAAL,EAAgB;AACf,aAAOU,aAAa,CAAEV,QAAF,CAApB;AACA,KAbkC,CAenC;;;AACA,QAAKjD,kBAAL,EAA0B;AACzB;AACA,UAAKmE,gCAAL,EAAwC;AACvC,eAAOH,kBAAP;AACA,OAJwB,CAMzB;;;AACA,aAAOA,kBAAkB,GAAG,CAA5B;AACA,KAxBkC,CA0BnC;;;AACA,WAAOC,cAAP;AACA;;AAED,QAAM3D,mBAAmB,GAAG,CAA5B;AAEA,QAAMC,oBAAoB,GAAGP,kBAAkB,GAC5CgE,kBAD4C,GAE5C1D,mBAFH;AAIA,QAAME,mBAAmB,GAAGR,kBAAkB,GAC3CgE,kBAAkB,GAAG,CADsB,GAE3CC,cAFH;AAIA,QAAMxD,iBAAiB,GAAGwD,cAA1B;AAEA,SAAO;AACNrD,IAAAA,oBAAoB,EAAEkD,sBAAsB,GAAGpC,WADzC;AAENgB,IAAAA,uBAFM;AAGNrC,IAAAA,qBAAqB,EAAEgE,wBAAwB,EAHzC;AAIN9D,IAAAA,oBAJM;AAKNC,IAAAA,mBALM;AAMNF,IAAAA,mBANM;AAONG,IAAAA,iBAPM;AAQNT,IAAAA,kBAAkB,EAAE,CAAC,CAAEA,kBARjB;AASNC,IAAAA,0BAA0B,EAAEkE;AATtB,GAAP;AAWA,CA7ES,CALa,EAoFvBxG,wBApFuB,CAAF,CAAP,CAqFVsB,QArFU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( { onToggle, disabled, style, onLongPress } ) => (\n\t<ToolbarButton\n\t\ttitle={ __( 'Add block' ) }\n\t\ticon={\n\t\t\t<Icon\n\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\tstyle={ style }\n\t\t\t\tcolor={ style.color }\n\t\t\t/>\n\t\t}\n\t\tonClick={ onToggle }\n\t\textraProps={ {\n\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\ttestID: 'add-block-button',\n\t\t\tonLongPress,\n\t\t} }\n\t\tisDisabled={ disabled }\n\t/>\n);\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = getStylesFromColorScheme(\n\t\t\tstyles.addBlockButton,\n\t\t\tstyles.addBlockButtonDark\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex( end );\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// if post title is selected insert as first block\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// and the last selected block is unmodified (empty), it will be replaced\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// we insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
@@ -51,7 +51,7 @@ export default function QuickInserter(_ref) {
51
51
  getBlockIndex,
52
52
  getBlockCount
53
53
  } = select(blockEditorStore);
54
- const index = getBlockIndex(clientId, rootClientId);
54
+ const index = getBlockIndex(clientId);
55
55
  return {
56
56
  setInserterIsOpened: getSettings().__experimentalSetIsInserterOpened,
57
57
  insertionIndex: index === -1 ? getBlockCount() : index
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","QuickInserter","onSelect","rootClientId","clientId","isAppender","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","showPatterns","length","showSearch","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","index","__experimentalSetIsInserterOpened","onBrowseAll","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\tconst showPatterns = patterns.length && !! filterValue;\n\tconst showSearch =\n\t\t( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\tblockTypes.length > SEARCH_THRESHOLD;\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst index = getBlockIndex( clientId, rootClientId );\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: getSettings()\n\t\t\t\t\t.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? getBlockCount() : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( { rootClientId, insertionIndex, filterValue } );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ showPatterns ? SHOWN_BLOCK_PATTERNS : 0 }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","QuickInserter","onSelect","rootClientId","clientId","isAppender","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","showPatterns","length","showSearch","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","index","__experimentalSetIsInserterOpened","onBrowseAll","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\tconst showPatterns = patterns.length && !! filterValue;\n\tconst showSearch =\n\t\t( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\tblockTypes.length > SEARCH_THRESHOLD;\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: getSettings()\n\t\t\t\t\t.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? getBlockCount() : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( { rootClientId, insertionIndex, filterValue } );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ showPatterns ? SHOWN_BLOCK_PATTERNS : 0 }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
@@ -18,17 +18,41 @@ export default function BlockSupportToolsPanel(_ref) {
18
18
  label
19
19
  } = _ref;
20
20
  const {
21
- clientId,
22
- attributes
21
+ attributes,
22
+ clientIds,
23
+ panelId
23
24
  } = useSelect(select => {
24
25
  const {
25
26
  getBlockAttributes,
26
- getSelectedBlockClientId
27
- } = select(blockEditorStore);
27
+ getMultiSelectedBlockClientIds,
28
+ getSelectedBlockClientId,
29
+ hasMultiSelection
30
+ } = select(blockEditorStore); // When we currently have a multi-selection, the value returned from
31
+ // `getSelectedBlockClientId()` is `null`. When a `null` value is used
32
+ // for the `panelId`, a `ToolsPanel` will still allow panel items to
33
+ // register themselves despite their panelIds not matching.
34
+
28
35
  const selectedBlockClientId = getSelectedBlockClientId();
36
+
37
+ if (hasMultiSelection()) {
38
+ const selectedBlockClientIds = getMultiSelectedBlockClientIds();
39
+ const selectedBlockAttributes = selectedBlockClientIds.reduce((blockAttributes, blockId) => {
40
+ blockAttributes[blockId] = getBlockAttributes(blockId);
41
+ return blockAttributes;
42
+ }, {});
43
+ return {
44
+ panelId: selectedBlockClientId,
45
+ clientIds: selectedBlockClientIds,
46
+ attributes: selectedBlockAttributes
47
+ };
48
+ }
49
+
29
50
  return {
30
- clientId: selectedBlockClientId,
31
- attributes: getBlockAttributes(selectedBlockClientId)
51
+ panelId: selectedBlockClientId,
52
+ clientIds: [selectedBlockClientId],
53
+ attributes: {
54
+ [selectedBlockClientId]: getBlockAttributes(selectedBlockClientId)
55
+ }
32
56
  };
33
57
  }, []);
34
58
  const {
@@ -37,30 +61,34 @@ export default function BlockSupportToolsPanel(_ref) {
37
61
 
38
62
  const resetAll = function () {
39
63
  let resetFilters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
40
- const {
41
- style
42
- } = attributes;
43
- let newAttributes = {
44
- style
45
- };
46
- resetFilters.forEach(resetFilter => {
47
- newAttributes = { ...newAttributes,
48
- ...resetFilter(newAttributes)
64
+ const newAttributes = {};
65
+ clientIds.forEach(clientId => {
66
+ const {
67
+ style
68
+ } = attributes[clientId];
69
+ let newBlockAttributes = {
70
+ style
49
71
  };
50
- }); // Enforce a cleaned style object.
72
+ resetFilters.forEach(resetFilter => {
73
+ newBlockAttributes = { ...newBlockAttributes,
74
+ ...resetFilter(newBlockAttributes)
75
+ };
76
+ }); // Enforce a cleaned style object.
51
77
 
52
- newAttributes = { ...newAttributes,
53
- style: cleanEmptyObject(newAttributes.style)
54
- };
55
- updateBlockAttributes(clientId, newAttributes);
78
+ newBlockAttributes = { ...newBlockAttributes,
79
+ style: cleanEmptyObject(newBlockAttributes.style)
80
+ };
81
+ newAttributes[clientId] = newBlockAttributes;
82
+ });
83
+ updateBlockAttributes(clientIds, newAttributes, true);
56
84
  };
57
85
 
58
86
  return createElement(ToolsPanel, {
59
87
  className: `${group}-block-support-panel`,
60
88
  label: label,
61
89
  resetAll: resetAll,
62
- key: clientId,
63
- panelId: clientId,
90
+ key: panelId,
91
+ panelId: panelId,
64
92
  hasInnerWrapper: true,
65
93
  shouldRenderPlaceholderItems: true // Required to maintain fills ordering.
66
94
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","clientId","attributes","select","getBlockAttributes","getSelectedBlockClientId","selectedBlockClientId","updateBlockAttributes","resetAll","resetFilters","style","newAttributes","forEach","resetFilter"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAwB,IAAIC,UAArC,QAAuD,uBAAvD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,gBAAT,QAAiC,mBAAjC;AAEA,eAAe,SAASC,sBAAT,OAA8D;AAAA,MAA7B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,GAA6B;AAC5E,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA2BT,SAAS,CAAIU,MAAF,IAAc;AACzD,UAAM;AAAEC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAmDF,MAAM,CAC9DR,gBAD8D,CAA/D;AAGA,UAAMW,qBAAqB,GAAGD,wBAAwB,EAAtD;AAEA,WAAO;AACNJ,MAAAA,QAAQ,EAAEK,qBADJ;AAENJ,MAAAA,UAAU,EAAEE,kBAAkB,CAAEE,qBAAF;AAFxB,KAAP;AAIA,GAVyC,EAUvC,EAVuC,CAA1C;AAWA,QAAM;AAAEC,IAAAA;AAAF,MAA4Bf,WAAW,CAAEG,gBAAF,CAA7C;;AAEA,QAAMa,QAAQ,GAAG,YAAyB;AAAA,QAAvBC,YAAuB,uEAAR,EAAQ;AACzC,UAAM;AAAEC,MAAAA;AAAF,QAAYR,UAAlB;AACA,QAAIS,aAAa,GAAG;AAAED,MAAAA;AAAF,KAApB;AAEAD,IAAAA,YAAY,CAACG,OAAb,CAAwBC,WAAF,IAAmB;AACxCF,MAAAA,aAAa,GAAG,EACf,GAAGA,aADY;AAEf,WAAGE,WAAW,CAAEF,aAAF;AAFC,OAAhB;AAIA,KALD,EAJyC,CAWzC;;AACAA,IAAAA,aAAa,GAAG,EACf,GAAGA,aADY;AAEfD,MAAAA,KAAK,EAAEd,gBAAgB,CAAEe,aAAa,CAACD,KAAhB;AAFR,KAAhB;AAKAH,IAAAA,qBAAqB,CAAEN,QAAF,EAAYU,aAAZ,CAArB;AACA,GAlBD;;AAoBA,SACC,cAAC,UAAD;AACC,IAAA,SAAS,EAAI,GAAGZ,KAAO,sBADxB;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAGQ,QAHZ;AAIC,IAAA,GAAG,EAAGP,QAJP;AAKC,IAAA,OAAO,EAAGA,QALX;AAMC,IAAA,eAAe,EAAG,IANnB;AAOC,IAAA,4BAA4B,EAAG,IAPhC,CAOuC;;AAPvC,KASGH,QATH,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { clientId, attributes } = useSelect( ( select ) => {\n\t\tconst { getBlockAttributes, getSelectedBlockClientId } = select(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\treturn {\n\t\t\tclientId: selectedBlockClientId,\n\t\t\tattributes: getBlockAttributes( selectedBlockClientId ),\n\t\t};\n\t}, [] );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst resetAll = ( resetFilters = [] ) => {\n\t\tconst { style } = attributes;\n\t\tlet newAttributes = { style };\n\n\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\tnewAttributes = {\n\t\t\t\t...newAttributes,\n\t\t\t\t...resetFilter( newAttributes ),\n\t\t\t};\n\t\t} );\n\n\t\t// Enforce a cleaned style object.\n\t\tnewAttributes = {\n\t\t\t...newAttributes,\n\t\t\tstyle: cleanEmptyObject( newAttributes.style ),\n\t\t};\n\n\t\tupdateBlockAttributes( clientId, newAttributes );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ clientId }\n\t\t\tpanelId={ clientId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","attributes","clientIds","panelId","select","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","selectedBlockClientId","selectedBlockClientIds","selectedBlockAttributes","reduce","blockAttributes","blockId","updateBlockAttributes","resetAll","resetFilters","newAttributes","forEach","clientId","style","newBlockAttributes","resetFilter"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { attributes, clientIds, panelId } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\tgetSelectedBlockClientId,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\t// When we currently have a multi-selection, the value returned from\n\t\t// `getSelectedBlockClientId()` is `null`. When a `null` value is used\n\t\t// for the `panelId`, a `ToolsPanel` will still allow panel items to\n\t\t// register themselves despite their panelIds not matching.\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tif ( hasMultiSelection() ) {\n\t\t\tconst selectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst selectedBlockAttributes = selectedBlockClientIds.reduce(\n\t\t\t\t( blockAttributes, blockId ) => {\n\t\t\t\t\tblockAttributes[ blockId ] = getBlockAttributes( blockId );\n\t\t\t\t\treturn blockAttributes;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tpanelId: selectedBlockClientId,\n\t\t\t\tclientIds: selectedBlockClientIds,\n\t\t\t\tattributes: selectedBlockAttributes,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tpanelId: selectedBlockClientId,\n\t\t\tclientIds: [ selectedBlockClientId ],\n\t\t\tattributes: {\n\t\t\t\t[ selectedBlockClientId ]: getBlockAttributes(\n\t\t\t\t\tselectedBlockClientId\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}, [] );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst resetAll = ( resetFilters = [] ) => {\n\t\tconst newAttributes = {};\n\n\t\tclientIds.forEach( ( clientId ) => {\n\t\t\tconst { style } = attributes[ clientId ];\n\t\t\tlet newBlockAttributes = { style };\n\n\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\t// Enforce a cleaned style object.\n\t\t\tnewBlockAttributes = {\n\t\t\t\t...newBlockAttributes,\n\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t};\n\n\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t} );\n\n\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
@@ -195,7 +195,7 @@ export default function useListViewDropZone() {
195
195
  return {
196
196
  clientId,
197
197
  rootClientId,
198
- blockIndex: getBlockIndex(clientId, rootClientId),
198
+ blockIndex: getBlockIndex(clientId),
199
199
  element: blockElement,
200
200
  isDraggedBlock: isBlockDrag ? draggedBlockClientIds.includes(clientId) : false,
201
201
  innerBlockCount: getBlockCount(clientId),