@wordpress/block-editor 14.3.5 → 14.3.7

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 (157) hide show
  1. package/README.md +6 -2
  2. package/build/components/block-list/block.js +0 -3
  3. package/build/components/block-list/block.js.map +1 -1
  4. package/build/components/block-list/use-block-props/index.js +1 -4
  5. package/build/components/block-list/use-block-props/index.js.map +1 -1
  6. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  7. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  8. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  9. package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  10. package/build/components/block-list/zoom-out-separator.js +10 -7
  11. package/build/components/block-list/zoom-out-separator.js.map +1 -1
  12. package/build/components/block-popover/index.js +1 -1
  13. package/build/components/block-popover/index.js.map +1 -1
  14. package/build/components/block-toolbar/index.js +28 -16
  15. package/build/components/block-toolbar/index.js.map +1 -1
  16. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -3
  17. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  18. package/build/components/block-tools/index.js +1 -6
  19. package/build/components/block-tools/index.js.map +1 -1
  20. package/build/components/block-tools/use-show-block-tools.js +4 -6
  21. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  22. package/build/components/block-tools/zoom-out-mode-inserters.js +22 -36
  23. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  24. package/build/components/iframe/index.js +45 -10
  25. package/build/components/iframe/index.js.map +1 -1
  26. package/build/components/inserter/block-patterns-tab/index.js +4 -0
  27. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  28. package/build/components/inserter/hooks/use-insertion-point.js +16 -4
  29. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  30. package/build/components/inserter/media-tab/media-tab.js +4 -0
  31. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  32. package/build/components/inserter/menu.js +8 -2
  33. package/build/components/inserter/menu.js.map +1 -1
  34. package/build/components/tool-selector/index.js +5 -1
  35. package/build/components/tool-selector/index.js.map +1 -1
  36. package/build/components/use-resize-canvas/index.js +1 -2
  37. package/build/components/use-resize-canvas/index.js.map +1 -1
  38. package/build/hooks/block-bindings.js +12 -1
  39. package/build/hooks/block-bindings.js.map +1 -1
  40. package/build/hooks/grid-visualizer.js +13 -11
  41. package/build/hooks/grid-visualizer.js.map +1 -1
  42. package/build/hooks/layout-child.js +41 -3
  43. package/build/hooks/layout-child.js.map +1 -1
  44. package/build/hooks/use-zoom-out.js +24 -16
  45. package/build/hooks/use-zoom-out.js.map +1 -1
  46. package/build/private-apis.js +2 -0
  47. package/build/private-apis.js.map +1 -1
  48. package/build/store/private-selectors.js +37 -2
  49. package/build/store/private-selectors.js.map +1 -1
  50. package/build/store/selectors.js +15 -8
  51. package/build/store/selectors.js.map +1 -1
  52. package/build/utils/block-bindings.js +9 -6
  53. package/build/utils/block-bindings.js.map +1 -1
  54. package/build-module/components/block-list/block.js +0 -3
  55. package/build-module/components/block-list/block.js.map +1 -1
  56. package/build-module/components/block-list/use-block-props/index.js +1 -4
  57. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  58. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +14 -6
  59. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  60. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
  61. package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
  62. package/build-module/components/block-list/zoom-out-separator.js +10 -7
  63. package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
  64. package/build-module/components/block-popover/index.js +1 -1
  65. package/build-module/components/block-popover/index.js.map +1 -1
  66. package/build-module/components/block-toolbar/index.js +30 -18
  67. package/build-module/components/block-toolbar/index.js.map +1 -1
  68. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -3
  69. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  70. package/build-module/components/block-tools/index.js +1 -6
  71. package/build-module/components/block-tools/index.js.map +1 -1
  72. package/build-module/components/block-tools/use-show-block-tools.js +4 -6
  73. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  74. package/build-module/components/block-tools/zoom-out-mode-inserters.js +22 -36
  75. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  76. package/build-module/components/iframe/index.js +45 -10
  77. package/build-module/components/iframe/index.js.map +1 -1
  78. package/build-module/components/inserter/block-patterns-tab/index.js +5 -1
  79. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  80. package/build-module/components/inserter/hooks/use-insertion-point.js +16 -4
  81. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  82. package/build-module/components/inserter/media-tab/media-tab.js +5 -1
  83. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  84. package/build-module/components/inserter/menu.js +8 -2
  85. package/build-module/components/inserter/menu.js.map +1 -1
  86. package/build-module/components/tool-selector/index.js +5 -1
  87. package/build-module/components/tool-selector/index.js.map +1 -1
  88. package/build-module/components/use-resize-canvas/index.js +1 -2
  89. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  90. package/build-module/hooks/block-bindings.js +13 -2
  91. package/build-module/hooks/block-bindings.js.map +1 -1
  92. package/build-module/hooks/grid-visualizer.js +13 -11
  93. package/build-module/hooks/grid-visualizer.js.map +1 -1
  94. package/build-module/hooks/layout-child.js +41 -3
  95. package/build-module/hooks/layout-child.js.map +1 -1
  96. package/build-module/hooks/use-zoom-out.js +24 -17
  97. package/build-module/hooks/use-zoom-out.js.map +1 -1
  98. package/build-module/private-apis.js +2 -0
  99. package/build-module/private-apis.js.map +1 -1
  100. package/build-module/store/private-selectors.js +35 -2
  101. package/build-module/store/private-selectors.js.map +1 -1
  102. package/build-module/store/selectors.js +15 -8
  103. package/build-module/store/selectors.js.map +1 -1
  104. package/build-module/utils/block-bindings.js +9 -6
  105. package/build-module/utils/block-bindings.js.map +1 -1
  106. package/build-style/content-rtl.css +19 -26
  107. package/build-style/content.css +19 -26
  108. package/build-style/style-rtl.css +36 -21
  109. package/build-style/style.css +36 -21
  110. package/package.json +6 -6
  111. package/src/components/block-canvas/style.scss +1 -0
  112. package/src/components/block-list/block.js +0 -3
  113. package/src/components/block-list/content.scss +3 -2
  114. package/src/components/block-list/use-block-props/index.js +1 -2
  115. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +25 -4
  116. package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
  117. package/src/components/block-list/zoom-out-separator.js +8 -6
  118. package/src/components/block-popover/index.js +2 -2
  119. package/src/components/block-toolbar/index.js +37 -24
  120. package/src/components/block-toolbar/style.scss +10 -1
  121. package/src/components/block-toolbar/use-has-block-toolbar.js +19 -28
  122. package/src/components/block-tools/index.js +0 -9
  123. package/src/components/block-tools/style.scss +2 -26
  124. package/src/components/block-tools/use-show-block-tools.js +2 -10
  125. package/src/components/block-tools/zoom-out-mode-inserters.js +26 -50
  126. package/src/components/iframe/content.scss +23 -32
  127. package/src/components/iframe/index.js +60 -13
  128. package/src/components/iframe/style.scss +18 -0
  129. package/src/components/inserter/block-patterns-tab/index.js +6 -1
  130. package/src/components/inserter/hooks/use-insertion-point.js +23 -5
  131. package/src/components/inserter/media-tab/media-tab.js +6 -1
  132. package/src/components/inserter/menu.js +12 -1
  133. package/src/components/inserter/style.scss +6 -0
  134. package/src/components/list-view/style.scss +9 -0
  135. package/src/components/rich-text/style.scss +5 -0
  136. package/src/components/tool-selector/index.js +5 -2
  137. package/src/components/use-resize-canvas/index.js +1 -3
  138. package/src/hooks/block-bindings.js +40 -23
  139. package/src/hooks/grid-visualizer.js +23 -9
  140. package/src/hooks/layout-child.js +48 -3
  141. package/src/hooks/use-zoom-out.js +36 -20
  142. package/src/private-apis.js +2 -0
  143. package/src/store/private-selectors.js +40 -1
  144. package/src/store/selectors.js +16 -8
  145. package/src/style.scss +1 -0
  146. package/src/utils/block-bindings.js +9 -6
  147. package/src/utils/test/use-block-bindings-utils.js +174 -0
  148. package/build/components/block-tools/zoom-out-popover.js +0 -57
  149. package/build/components/block-tools/zoom-out-popover.js.map +0 -1
  150. package/build/components/block-tools/zoom-out-toolbar.js +0 -159
  151. package/build/components/block-tools/zoom-out-toolbar.js.map +0 -1
  152. package/build-module/components/block-tools/zoom-out-popover.js +0 -48
  153. package/build-module/components/block-tools/zoom-out-popover.js.map +0 -1
  154. package/build-module/components/block-tools/zoom-out-toolbar.js +0 -152
  155. package/build-module/components/block-tools/zoom-out-toolbar.js.map +0 -1
  156. package/src/components/block-tools/zoom-out-popover.js +0 -46
  157. package/src/components/block-tools/zoom-out-toolbar.js +0 -167
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","rootClientId","getBlockRootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","jsx","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( useBlockPropsChildLayoutStyles );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","jsx","GridTools","rootClientId","isVisible","getBlockRootClientId","getBlockEditingMode","getTemplateLock","_rootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( useBlockPropsChildLayoutStyles );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GridTools\n\t\t\tclientId={ clientId }\n\t\t\tstyle={ style }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\tisManualPlacement={ isManualPlacement }\n\t\t\tparentLayout={ parentLayout }\n\t\t/>\n\t);\n}\n\nfunction GridTools( {\n\tclientId,\n\tstyle,\n\tsetAttributes,\n\tallowSizingOnChildren,\n\tisManualPlacement,\n\tparentLayout,\n} ) {\n\tconst { rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetTemplateLock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif (\n\t\t\t\tgetTemplateLock( _rootClientId ) ||\n\t\t\t\tgetBlockEditingMode( _rootClientId ) !== 'default'\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\tisVisible: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible: true,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
@@ -17,35 +17,43 @@ var _lockUnlock = require("../lock-unlock");
17
17
  */
18
18
 
19
19
  /**
20
- * A hook used to set the zoomed out view, invoking the hook sets the mode.
20
+ * A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.
21
21
  *
22
- * @param {boolean} zoomOut If we should zoom out or not.
22
+ * @param {boolean} zoomOut If we should enter into zoomOut mode or not
23
23
  */
24
24
  function useZoomOut(zoomOut = true) {
25
25
  const {
26
+ __unstableSetEditorMode,
26
27
  setZoomLevel
27
28
  } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
28
29
  const {
29
- isZoomOut
30
+ __unstableGetEditorMode
30
31
  } = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
31
- const originalIsZoomOutRef = (0, _element.useRef)(null);
32
+ const originalEditingModeRef = (0, _element.useRef)(null);
33
+ const mode = __unstableGetEditorMode();
32
34
  (0, _element.useEffect)(() => {
33
35
  // Only set this on mount so we know what to return to when we unmount.
34
- if (!originalIsZoomOutRef.current) {
35
- originalIsZoomOutRef.current = isZoomOut();
36
- }
37
-
38
- // The effect opens the zoom-out view if we want it open and the canvas is not currently zoomed-out.
39
- if (zoomOut && isZoomOut() === false) {
40
- setZoomLevel(50);
41
- } else if (!zoomOut && isZoomOut() && originalIsZoomOutRef.current !== isZoomOut()) {
42
- setZoomLevel(originalIsZoomOutRef.current ? 50 : 100);
36
+ if (!originalEditingModeRef.current) {
37
+ originalEditingModeRef.current = mode;
43
38
  }
44
39
  return () => {
45
- if (isZoomOut() && isZoomOut() !== originalIsZoomOutRef.current) {
46
- setZoomLevel(originalIsZoomOutRef.current ? 50 : 100);
40
+ // We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount
41
+ if (__unstableGetEditorMode() === 'zoom-out' && __unstableGetEditorMode() !== originalEditingModeRef.current) {
42
+ __unstableSetEditorMode(originalEditingModeRef.current);
43
+ setZoomLevel(100);
47
44
  }
48
45
  };
49
- }, [isZoomOut, setZoomLevel, zoomOut]);
46
+ }, []);
47
+
48
+ // The effect opens the zoom-out view if we want it open and it's not currently in zoom-out mode.
49
+ (0, _element.useEffect)(() => {
50
+ if (zoomOut && mode !== 'zoom-out') {
51
+ __unstableSetEditorMode('zoom-out');
52
+ setZoomLevel(50);
53
+ } else if (!zoomOut && __unstableGetEditorMode() === 'zoom-out' && originalEditingModeRef.current !== mode) {
54
+ __unstableSetEditorMode(originalEditingModeRef.current);
55
+ setZoomLevel(100);
56
+ }
57
+ }, [__unstableGetEditorMode, __unstableSetEditorMode, zoomOut, setZoomLevel]); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.
50
58
  }
51
59
  //# sourceMappingURL=use-zoom-out.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_store","_lockUnlock","useZoomOut","zoomOut","setZoomLevel","unlock","useDispatch","blockEditorStore","isZoomOut","useSelect","originalIsZoomOutRef","useRef","useEffect","current"],"sources":["@wordpress/block-editor/src/hooks/use-zoom-out.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\n/**\n * A hook used to set the zoomed out view, invoking the hook sets the mode.\n *\n * @param {boolean} zoomOut If we should zoom out or not.\n */\nexport function useZoomOut( zoomOut = true ) {\n\tconst { setZoomLevel } = unlock( useDispatch( blockEditorStore ) );\n\tconst { isZoomOut } = unlock( useSelect( blockEditorStore ) );\n\n\tconst originalIsZoomOutRef = useRef( null );\n\n\tuseEffect( () => {\n\t\t// Only set this on mount so we know what to return to when we unmount.\n\t\tif ( ! originalIsZoomOutRef.current ) {\n\t\t\toriginalIsZoomOutRef.current = isZoomOut();\n\t\t}\n\n\t\t// The effect opens the zoom-out view if we want it open and the canvas is not currently zoomed-out.\n\t\tif ( zoomOut && isZoomOut() === false ) {\n\t\t\tsetZoomLevel( 50 );\n\t\t} else if (\n\t\t\t! zoomOut &&\n\t\t\tisZoomOut() &&\n\t\t\toriginalIsZoomOutRef.current !== isZoomOut()\n\t\t) {\n\t\t\tsetZoomLevel( originalIsZoomOutRef.current ? 50 : 100 );\n\t\t}\n\n\t\treturn () => {\n\t\t\tif ( isZoomOut() && isZoomOut() !== originalIsZoomOutRef.current ) {\n\t\t\t\tsetZoomLevel( originalIsZoomOutRef.current ? 50 : 100 );\n\t\t\t}\n\t\t};\n\t}, [ isZoomOut, setZoomLevel, zoomOut ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACO,SAASI,UAAUA,CAAEC,OAAO,GAAG,IAAI,EAAG;EAC5C,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAC,kBAAM,EAAE,IAAAC,iBAAW,EAAEC,YAAiB,CAAE,CAAC;EAClE,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAH,kBAAM,EAAE,IAAAI,eAAS,EAAEF,YAAiB,CAAE,CAAC;EAE7D,MAAMG,oBAAoB,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EAE3C,IAAAC,kBAAS,EAAE,MAAM;IAChB;IACA,IAAK,CAAEF,oBAAoB,CAACG,OAAO,EAAG;MACrCH,oBAAoB,CAACG,OAAO,GAAGL,SAAS,CAAC,CAAC;IAC3C;;IAEA;IACA,IAAKL,OAAO,IAAIK,SAAS,CAAC,CAAC,KAAK,KAAK,EAAG;MACvCJ,YAAY,CAAE,EAAG,CAAC;IACnB,CAAC,MAAM,IACN,CAAED,OAAO,IACTK,SAAS,CAAC,CAAC,IACXE,oBAAoB,CAACG,OAAO,KAAKL,SAAS,CAAC,CAAC,EAC3C;MACDJ,YAAY,CAAEM,oBAAoB,CAACG,OAAO,GAAG,EAAE,GAAG,GAAI,CAAC;IACxD;IAEA,OAAO,MAAM;MACZ,IAAKL,SAAS,CAAC,CAAC,IAAIA,SAAS,CAAC,CAAC,KAAKE,oBAAoB,CAACG,OAAO,EAAG;QAClET,YAAY,CAAEM,oBAAoB,CAACG,OAAO,GAAG,EAAE,GAAG,GAAI,CAAC;MACxD;IACD,CAAC;EACF,CAAC,EAAE,CAAEL,SAAS,EAAEJ,YAAY,EAAED,OAAO,CAAG,CAAC;AAC1C","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_element","_store","_lockUnlock","useZoomOut","zoomOut","__unstableSetEditorMode","setZoomLevel","unlock","useDispatch","blockEditorStore","__unstableGetEditorMode","useSelect","originalEditingModeRef","useRef","mode","useEffect","current"],"sources":["@wordpress/block-editor/src/hooks/use-zoom-out.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\n/**\n * A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.\n *\n * @param {boolean} zoomOut If we should enter into zoomOut mode or not\n */\nexport function useZoomOut( zoomOut = true ) {\n\tconst { __unstableSetEditorMode, setZoomLevel } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst { __unstableGetEditorMode } = unlock( useSelect( blockEditorStore ) );\n\n\tconst originalEditingModeRef = useRef( null );\n\tconst mode = __unstableGetEditorMode();\n\n\tuseEffect( () => {\n\t\t// Only set this on mount so we know what to return to when we unmount.\n\t\tif ( ! originalEditingModeRef.current ) {\n\t\t\toriginalEditingModeRef.current = mode;\n\t\t}\n\n\t\treturn () => {\n\t\t\t// We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount\n\t\t\tif (\n\t\t\t\t__unstableGetEditorMode() === 'zoom-out' &&\n\t\t\t\t__unstableGetEditorMode() !== originalEditingModeRef.current\n\t\t\t) {\n\t\t\t\t__unstableSetEditorMode( originalEditingModeRef.current );\n\t\t\t\tsetZoomLevel( 100 );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\t// The effect opens the zoom-out view if we want it open and it's not currently in zoom-out mode.\n\tuseEffect( () => {\n\t\tif ( zoomOut && mode !== 'zoom-out' ) {\n\t\t\t__unstableSetEditorMode( 'zoom-out' );\n\t\t\tsetZoomLevel( 50 );\n\t\t} else if (\n\t\t\t! zoomOut &&\n\t\t\t__unstableGetEditorMode() === 'zoom-out' &&\n\t\t\toriginalEditingModeRef.current !== mode\n\t\t) {\n\t\t\t__unstableSetEditorMode( originalEditingModeRef.current );\n\t\t\tsetZoomLevel( 100 );\n\t\t}\n\t}, [\n\t\t__unstableGetEditorMode,\n\t\t__unstableSetEditorMode,\n\t\tzoomOut,\n\t\tsetZoomLevel,\n\t] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASI,UAAUA,CAAEC,OAAO,GAAG,IAAI,EAAG;EAC5C,MAAM;IAAEC,uBAAuB;IAAEC;EAAa,CAAC,GAAG,IAAAC,kBAAM,EACvD,IAAAC,iBAAW,EAAEC,YAAiB,CAC/B,CAAC;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG,IAAAH,kBAAM,EAAE,IAAAI,eAAS,EAAEF,YAAiB,CAAE,CAAC;EAE3E,MAAMG,sBAAsB,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EAC7C,MAAMC,IAAI,GAAGJ,uBAAuB,CAAC,CAAC;EAEtC,IAAAK,kBAAS,EAAE,MAAM;IAChB;IACA,IAAK,CAAEH,sBAAsB,CAACI,OAAO,EAAG;MACvCJ,sBAAsB,CAACI,OAAO,GAAGF,IAAI;IACtC;IAEA,OAAO,MAAM;MACZ;MACA,IACCJ,uBAAuB,CAAC,CAAC,KAAK,UAAU,IACxCA,uBAAuB,CAAC,CAAC,KAAKE,sBAAsB,CAACI,OAAO,EAC3D;QACDX,uBAAuB,CAAEO,sBAAsB,CAACI,OAAQ,CAAC;QACzDV,YAAY,CAAE,GAAI,CAAC;MACpB;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAEP;EACA,IAAAS,kBAAS,EAAE,MAAM;IAChB,IAAKX,OAAO,IAAIU,IAAI,KAAK,UAAU,EAAG;MACrCT,uBAAuB,CAAE,UAAW,CAAC;MACrCC,YAAY,CAAE,EAAG,CAAC;IACnB,CAAC,MAAM,IACN,CAAEF,OAAO,IACTM,uBAAuB,CAAC,CAAC,KAAK,UAAU,IACxCE,sBAAsB,CAACI,OAAO,KAAKF,IAAI,EACtC;MACDT,uBAAuB,CAAEO,sBAAsB,CAACI,OAAQ,CAAC;MACzDV,YAAY,CAAE,GAAI,CAAC;IACpB;EACD,CAAC,EAAE,CACFI,uBAAuB,EACvBL,uBAAuB,EACvBD,OAAO,EACPE,YAAY,CACX,CAAC,CAAC,CAAC;AACN","ignoreList":[]}
@@ -27,6 +27,7 @@ var _formatEdit = require("./components/rich-text/format-edit");
27
27
  var _blockCanvas = require("./components/block-canvas");
28
28
  var _utils2 = require("./components/duotone/utils");
29
29
  var _useFlashEditableBlocks = require("./components/use-flash-editable-blocks");
30
+ var _useZoomOutModeExit = require("./components/block-list/use-block-props/use-zoom-out-mode-exit");
30
31
  var _privateKeys = require("./store/private-keys");
31
32
  var _utils3 = require("./components/writing-flow/utils");
32
33
  var _richText = require("./components/rich-text/");
@@ -72,6 +73,7 @@ const privateApis = exports.privateApis = {};
72
73
  TextAlignmentControl: _textAlignmentControl.default,
73
74
  usesContextKey: _formatEdit.usesContextKey,
74
75
  useFlashEditableBlocks: _useFlashEditableBlocks.useFlashEditableBlocks,
76
+ useZoomOutModeExit: _useZoomOutModeExit.useZoomOutModeExit,
75
77
  globalStylesDataKey: _privateKeys.globalStylesDataKey,
76
78
  globalStylesLinksDataKey: _privateKeys.globalStylesLinksDataKey,
77
79
  selectBlockPatternsKey: _privateKeys.selectBlockPatternsKey,
@@ -1 +1 @@
1
- {"version":3,"names":["globalStyles","_interopRequireWildcard","require","_provider","_lockUnlock","_getRichTextValues","_resizableBoxPopover","_interopRequireDefault","_quickInserter","_searchItems","_listView","_blockInfoSlotFill","_useHasBlockToolbar","_utils","_blockQuickNavigation","_layout","_blockRemovalWarningModal","_hooks","_dimensionsTool","_resolutionTool","_textAlignmentControl","_formatEdit","_blockCanvas","_utils2","_useFlashEditableBlocks","_privateKeys","_utils3","_richText","_blockPopover","_library","_publishDateTimePicker","_useSpacingSizes","_useBlockDisplayTitle","_tabbedSidebar","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","privateApis","exports","lock","ExperimentalBlockCanvas","ExperimentalBlockEditorProvider","getDuotoneFilter","getRichTextValues","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","ResizableBoxPopover","BlockInfo","useHasBlockToolbar","cleanEmptyObject","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TabbedSidebar","TextAlignmentControl","usesContextKey","useFlashEditableBlocks","globalStylesDataKey","globalStylesLinksDataKey","selectBlockPatternsKey","requiresWrapperOnCopy","PrivateRichText","PrivateInserterLibrary","reusableBlocksSelectKey","PrivateBlockPopover","PrivatePublishDateTimePicker","useSpacingSizes","useBlockDisplayTitle","__unstableBlockStyleVariationOverridesWithConfig","setBackgroundStyleDefaults","sectionRootClientIdKey"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport {\n\tsetBackgroundStyleDefaults,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n} from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tsectionRootClientIdKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\nimport { PrivateBlockPopover } from './components/block-popover';\nimport { PrivateInserterLibrary } from './components/inserter/library';\nimport { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';\nimport useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';\nimport useBlockDisplayTitle from './components/block-title/use-block-display-title';\nimport TabbedSidebar from './components/tabbed-sidebar';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTabbedSidebar,\n\tTextAlignmentControl,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\tPrivateInserterLibrary,\n\treusableBlocksSelectKey,\n\tPrivateBlockPopover,\n\tPrivatePublishDateTimePicker,\n\tuseSpacingSizes,\n\tuseBlockDisplayTitle,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n\tsetBackgroundStyleDefaults,\n\tsectionRootClientIdKey,\n} );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["globalStyles","_interopRequireWildcard","require","_provider","_lockUnlock","_getRichTextValues","_resizableBoxPopover","_interopRequireDefault","_quickInserter","_searchItems","_listView","_blockInfoSlotFill","_useHasBlockToolbar","_utils","_blockQuickNavigation","_layout","_blockRemovalWarningModal","_hooks","_dimensionsTool","_resolutionTool","_textAlignmentControl","_formatEdit","_blockCanvas","_utils2","_useFlashEditableBlocks","_useZoomOutModeExit","_privateKeys","_utils3","_richText","_blockPopover","_library","_publishDateTimePicker","_useSpacingSizes","_useBlockDisplayTitle","_tabbedSidebar","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","privateApis","exports","lock","ExperimentalBlockCanvas","ExperimentalBlockEditorProvider","getDuotoneFilter","getRichTextValues","PrivateQuickInserter","extractWords","getNormalizedSearchTerms","normalizeString","PrivateListView","ResizableBoxPopover","BlockInfo","useHasBlockToolbar","cleanEmptyObject","BlockQuickNavigation","LayoutStyle","BlockRemovalWarningModal","useLayoutClasses","useLayoutStyles","DimensionsTool","ResolutionTool","TabbedSidebar","TextAlignmentControl","usesContextKey","useFlashEditableBlocks","useZoomOutModeExit","globalStylesDataKey","globalStylesLinksDataKey","selectBlockPatternsKey","requiresWrapperOnCopy","PrivateRichText","PrivateInserterLibrary","reusableBlocksSelectKey","PrivateBlockPopover","PrivatePublishDateTimePicker","useSpacingSizes","useBlockDisplayTitle","__unstableBlockStyleVariationOverridesWithConfig","setBackgroundStyleDefaults","sectionRootClientIdKey"],"sources":["@wordpress/block-editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport * as globalStyles from './components/global-styles';\nimport { ExperimentalBlockEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { getRichTextValues } from './components/rich-text/get-rich-text-values';\nimport ResizableBoxPopover from './components/resizable-box-popover';\nimport { default as PrivateQuickInserter } from './components/inserter/quick-inserter';\nimport {\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n} from './components/inserter/search-items';\nimport { PrivateListView } from './components/list-view';\nimport BlockInfo from './components/block-info-slot-fill';\nimport { useHasBlockToolbar } from './components/block-toolbar/use-has-block-toolbar';\nimport { cleanEmptyObject } from './hooks/utils';\nimport BlockQuickNavigation from './components/block-quick-navigation';\nimport { LayoutStyle } from './components/block-list/layout';\nimport { BlockRemovalWarningModal } from './components/block-removal-warning-modal';\nimport {\n\tsetBackgroundStyleDefaults,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n} from './hooks';\nimport DimensionsTool from './components/dimensions-tool';\nimport ResolutionTool from './components/resolution-tool';\nimport TextAlignmentControl from './components/text-alignment-control';\nimport { usesContextKey } from './components/rich-text/format-edit';\nimport { ExperimentalBlockCanvas } from './components/block-canvas';\nimport { getDuotoneFilter } from './components/duotone/utils';\nimport { useFlashEditableBlocks } from './components/use-flash-editable-blocks';\nimport { useZoomOutModeExit } from './components/block-list/use-block-props/use-zoom-out-mode-exit';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tsectionRootClientIdKey,\n} from './store/private-keys';\nimport { requiresWrapperOnCopy } from './components/writing-flow/utils';\nimport { PrivateRichText } from './components/rich-text/';\nimport { PrivateBlockPopover } from './components/block-popover';\nimport { PrivateInserterLibrary } from './components/inserter/library';\nimport { PrivatePublishDateTimePicker } from './components/publish-date-time-picker';\nimport useSpacingSizes from './components/spacing-sizes-control/hooks/use-spacing-sizes';\nimport useBlockDisplayTitle from './components/block-title/use-block-display-title';\nimport TabbedSidebar from './components/tabbed-sidebar';\n\n/**\n * Private @wordpress/block-editor APIs.\n */\nexport const privateApis = {};\nlock( privateApis, {\n\t...globalStyles,\n\tExperimentalBlockCanvas,\n\tExperimentalBlockEditorProvider,\n\tgetDuotoneFilter,\n\tgetRichTextValues,\n\tPrivateQuickInserter,\n\textractWords,\n\tgetNormalizedSearchTerms,\n\tnormalizeString,\n\tPrivateListView,\n\tResizableBoxPopover,\n\tBlockInfo,\n\tuseHasBlockToolbar,\n\tcleanEmptyObject,\n\tBlockQuickNavigation,\n\tLayoutStyle,\n\tBlockRemovalWarningModal,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tDimensionsTool,\n\tResolutionTool,\n\tTabbedSidebar,\n\tTextAlignmentControl,\n\tusesContextKey,\n\tuseFlashEditableBlocks,\n\tuseZoomOutModeExit,\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n\tselectBlockPatternsKey,\n\trequiresWrapperOnCopy,\n\tPrivateRichText,\n\tPrivateInserterLibrary,\n\treusableBlocksSelectKey,\n\tPrivateBlockPopover,\n\tPrivatePublishDateTimePicker,\n\tuseSpacingSizes,\n\tuseBlockDisplayTitle,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n\tsetBackgroundStyleDefaults,\n\tsectionRootClientIdKey,\n} );\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ exports.getInserterMediaCategories = void 0;
19
19
  exports.getLastFocus = getLastFocus;
20
20
  exports.getLastInsertedBlocksClientIds = getLastInsertedBlocksClientIds;
21
21
  exports.getOpenedBlockSettingsMenu = getOpenedBlockSettingsMenu;
22
- exports.getPatternBySlug = void 0;
22
+ exports.getPatternBySlug = exports.getParentSectionBlock = void 0;
23
23
  exports.getRegisteredInserterMediaCategories = getRegisteredInserterMediaCategories;
24
24
  exports.getRemovalPromptData = getRemovalPromptData;
25
25
  exports.getReusableBlocks = void 0;
@@ -33,6 +33,7 @@ exports.isBlockInterfaceHidden = isBlockInterfaceHidden;
33
33
  exports.isBlockSubtreeDisabled = void 0;
34
34
  exports.isDragging = isDragging;
35
35
  exports.isResolvingPatterns = void 0;
36
+ exports.isSectionBlock = isSectionBlock;
36
37
  exports.isZoomOut = isZoomOut;
37
38
  exports.isZoomOutMode = isZoomOutMode;
38
39
  var _data = require("@wordpress/data");
@@ -436,7 +437,7 @@ const getBlockStyles = exports.getBlockStyles = (0, _data.createSelector)((state
436
437
  * @return {boolean} Is zoom out mode enabled.
437
438
  */
438
439
  function isZoomOutMode(state) {
439
- return state.editorMode === 'zoom-out';
440
+ return (0, _selectors.__unstableGetEditorMode)(state) === 'zoom-out';
440
441
  }
441
442
 
442
443
  /**
@@ -471,4 +472,38 @@ function getZoomLevel(state) {
471
472
  function isZoomOut(state) {
472
473
  return getZoomLevel(state) < 100;
473
474
  }
475
+
476
+ /**
477
+ * Retrieves the client ID of the parent section block.
478
+ *
479
+ * @param {Object} state Global application state.
480
+ * @param {string} clientId Client Id of the block.
481
+ *
482
+ * @return {?string} Client ID of the ancestor block that is content locking the block.
483
+ */
484
+ const getParentSectionBlock = (state, clientId) => {
485
+ let current = clientId;
486
+ let result;
487
+ while (!result && (current = state.blocks.parents.get(current))) {
488
+ if (isSectionBlock(state, current)) {
489
+ result = current;
490
+ }
491
+ }
492
+ return result;
493
+ };
494
+
495
+ /**
496
+ * Retrieves the client ID is a content locking parent
497
+ *
498
+ * @param {Object} state Global application state.
499
+ * @param {string} clientId Client Id of the block.
500
+ *
501
+ * @return {boolean} Whether the block is a content locking parent.
502
+ */
503
+ exports.getParentSectionBlock = getParentSectionBlock;
504
+ function isSectionBlock(state, clientId) {
505
+ const sectionRootClientId = getSectionRootClientId(state);
506
+ const sectionClientIds = (0, _selectors.getBlockOrder)(state, sectionRootClientId);
507
+ return (0, _selectors.getBlockName)(state, clientId) === 'core/block' || (0, _selectors.getTemplateLock)(state, clientId) === 'contentOnly' || (0, _selectors.isNavigationMode)(state) && sectionClientIds.includes(clientId);
508
+ }
474
509
  //# sourceMappingURL=private-selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_selectors","_utils","_utils2","_constants","_lockUnlock","_privateKeys","_getBlockSettings","isBlockInterfaceHidden","state","getLastInsertedBlocksClientIds","lastBlockInserted","clientIds","getBlockWithoutAttributes","clientId","blocks","byClientId","get","isBlockSubtreeDisabled","isChildSubtreeDisabled","childClientId","getBlockEditingMode","getBlockOrder","every","exports","getEnabledClientIdsTreeUnmemoized","rootClientId","blockOrder","result","innerBlocks","push","getEnabledClientIdsTree","createSelector","order","blockEditingModes","settings","templateLock","blockListSettings","editorMode","getEnabledBlockParents","ascending","getBlockParents","filter","parent","parents","getRemovalPromptData","removalPromptData","getBlockRemovalRules","blockRemovalRules","getOpenedBlockSettingsMenu","openedBlockSettingsMenu","getStyleOverrides","getClientIdsWithDescendants","clientIdMap","reduce","acc","index","styleOverrides","sort","overrideA","overrideB","_clientIdMap$clientId","_clientIdMap$clientId2","clientIdA","clientIdB","aIndex","bIndex","getRegisteredInserterMediaCategories","registeredInserterMediaCategories","getInserterMediaCategories","inserterMediaCategories","allowedMimeTypes","enableOpenverseMediaCategory","length","coreInserterMediaCategoriesNames","map","name","mergedCategories","includes","category","Object","values","some","mimeType","startsWith","mediaType","hasAllowedPatterns","createRegistrySelector","select","getAllPatterns","unlock","STORE_NAME","patterns","allowedBlockTypes","getSettings","pattern","inserter","grammar","getGrammar","checkAllowListRecursive","blockName","canInsertBlockType","getAllPatternsDependants","getInsertBlockTypeDependants","mapUserPattern","userPattern","__experimentalUserPatternCategories","id","type","INSERTER_PATTERN_TYPES","user","title","raw","categories","wp_pattern_category","catId","find","slug","content","syncStatus","wp_pattern_sync_status","getPatternBySlug","patternName","_state$settings$__exp","_state$settings$selec","_id","parseInt","slice","block","getReusableBlocks","__experimentalBlockPatterns","selectBlockPatternsKey","__experimentalReusableBlocks","_state$settings$__exp2","_state$settings$selec2","x","arr","findIndex","y","isResolvingPatterns","blockPatternsSelect","reusableBlocksSelect","reusableBlocksSelectKey","undefined","EMPTY_ARRAY","_ref","getLastFocus","lastFocus","isDragging","getExpandedBlock","expandedBlock","getContentLockingParent","current","getBlockName","getTemplateLock","getTemporarilyEditingAsBlocks","temporarilyEditingAsBlocks","getTemporarilyEditingFocusModeToRevert","temporarilyEditingFocusModeRevert","getBlockStyles","styles","attributes","style","isZoomOutMode","getSectionRootClientId","sectionRootClientIdKey","getZoomLevel","zoomLevel","isZoomOut"],"sources":["@wordpress/block-editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetBlockOrder,\n\tgetBlockParents,\n\tgetBlockEditingMode,\n\tgetSettings,\n\tcanInsertBlockType,\n\tgetBlockName,\n\tgetTemplateLock,\n\tgetClientIdsWithDescendants,\n} from './selectors';\nimport {\n\tcheckAllowListRecursive,\n\tgetAllPatternsDependants,\n\tgetInsertBlockTypeDependants,\n\tgetGrammar,\n} from './utils';\nimport { INSERTER_PATTERN_TYPES } from '../components/inserter/block-patterns-tab/utils';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../lock-unlock';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tsectionRootClientIdKey,\n} from './private-keys';\n\nexport { getBlockSettings } from './get-block-settings';\n\n/**\n * Returns true if the block interface is hidden, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the block toolbar is hidden.\n */\nexport function isBlockInterfaceHidden( state ) {\n\treturn state.isBlockInterfaceHidden;\n}\n\n/**\n * Gets the client ids of the last inserted blocks.\n *\n * @param {Object} state Global application state.\n * @return {Array|undefined} Client Ids of the last inserted block(s).\n */\nexport function getLastInsertedBlocksClientIds( state ) {\n\treturn state?.lastBlockInserted?.clientIds;\n}\n\nexport function getBlockWithoutAttributes( state, clientId ) {\n\treturn state.blocks.byClientId.get( clientId );\n}\n\n/**\n * Returns true if all of the descendants of a block with the given client ID\n * have an editing mode of 'disabled', or false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block client ID.\n *\n * @return {boolean} Whether the block descendants are disabled.\n */\nexport const isBlockSubtreeDisabled = ( state, clientId ) => {\n\tconst isChildSubtreeDisabled = ( childClientId ) => {\n\t\treturn (\n\t\t\tgetBlockEditingMode( state, childClientId ) === 'disabled' &&\n\t\t\tgetBlockOrder( state, childClientId ).every(\n\t\t\t\tisChildSubtreeDisabled\n\t\t\t)\n\t\t);\n\t};\n\treturn getBlockOrder( state, clientId ).every( isChildSubtreeDisabled );\n};\n\nfunction getEnabledClientIdsTreeUnmemoized( state, rootClientId ) {\n\tconst blockOrder = getBlockOrder( state, rootClientId );\n\tconst result = [];\n\n\tfor ( const clientId of blockOrder ) {\n\t\tconst innerBlocks = getEnabledClientIdsTreeUnmemoized(\n\t\t\tstate,\n\t\t\tclientId\n\t\t);\n\t\tif ( getBlockEditingMode( state, clientId ) !== 'disabled' ) {\n\t\t\tresult.push( { clientId, innerBlocks } );\n\t\t} else {\n\t\t\tresult.push( ...innerBlocks );\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Returns a tree of block objects with only clientID and innerBlocks set.\n * Blocks with a 'disabled' editing mode are not included.\n *\n * @param {Object} state Global application state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {Object[]} Tree of block objects with only clientID and innerBlocks set.\n */\nexport const getEnabledClientIdsTree = createSelector(\n\tgetEnabledClientIdsTreeUnmemoized,\n\t( state ) => [\n\t\tstate.blocks.order,\n\t\tstate.blockEditingModes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockListSettings,\n\t\tstate.editorMode,\n\t]\n);\n\n/**\n * Returns a list of a given block's ancestors, from top to bottom. Blocks with\n * a 'disabled' editing mode are excluded.\n *\n * @see getBlockParents\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block client ID.\n * @param {boolean} ascending Order results from bottom to top (true) or top\n * to bottom (false).\n */\nexport const getEnabledBlockParents = createSelector(\n\t( state, clientId, ascending = false ) => {\n\t\treturn getBlockParents( state, clientId, ascending ).filter(\n\t\t\t( parent ) => getBlockEditingMode( state, parent ) !== 'disabled'\n\t\t);\n\t},\n\t( state ) => [\n\t\tstate.blocks.parents,\n\t\tstate.blockEditingModes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockListSettings,\n\t]\n);\n\n/**\n * Selector that returns the data needed to display a prompt when certain\n * blocks are removed, or `false` if no such prompt is requested.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object|false} Data for removal prompt display, if any.\n */\nexport function getRemovalPromptData( state ) {\n\treturn state.removalPromptData;\n}\n\n/**\n * Returns true if removal prompt exists, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether removal prompt exists.\n */\nexport function getBlockRemovalRules( state ) {\n\treturn state.blockRemovalRules;\n}\n\n/**\n * Returns the client ID of the block settings menu that is currently open.\n *\n * @param {Object} state Global application state.\n * @return {string|null} The client ID of the block menu that is currently open.\n */\nexport function getOpenedBlockSettingsMenu( state ) {\n\treturn state.openedBlockSettingsMenu;\n}\n\n/**\n * Returns all style overrides, intended to be merged with global editor styles.\n *\n * Overrides are sorted to match the order of the blocks they relate to. This\n * is useful to maintain correct CSS cascade order.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} An array of style ID to style override pairs.\n */\nexport const getStyleOverrides = createSelector(\n\t( state ) => {\n\t\tconst clientIds = getClientIdsWithDescendants( state );\n\t\tconst clientIdMap = clientIds.reduce( ( acc, clientId, index ) => {\n\t\t\tacc[ clientId ] = index;\n\t\t\treturn acc;\n\t\t}, {} );\n\n\t\treturn [ ...state.styleOverrides ].sort( ( overrideA, overrideB ) => {\n\t\t\t// Once the overrides Map is spread to an array, the first element\n\t\t\t// is the key, while the second is the override itself including\n\t\t\t// the clientId to sort by.\n\t\t\tconst [ , { clientId: clientIdA } ] = overrideA;\n\t\t\tconst [ , { clientId: clientIdB } ] = overrideB;\n\n\t\t\tconst aIndex = clientIdMap[ clientIdA ] ?? -1;\n\t\t\tconst bIndex = clientIdMap[ clientIdB ] ?? -1;\n\n\t\t\treturn aIndex - bIndex;\n\t\t} );\n\t},\n\t( state ) => [ state.blocks.order, state.styleOverrides ]\n);\n\n/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */\n/**\n * Returns the registered inserter media categories through the public API.\n *\n * @param {Object} state Editor state.\n *\n * @return {InserterMediaCategory[]} Inserter media categories.\n */\nexport function getRegisteredInserterMediaCategories( state ) {\n\treturn state.registeredInserterMediaCategories;\n}\n\n/**\n * Returns an array containing the allowed inserter media categories.\n * It merges the registered media categories from extenders with the\n * core ones. It also takes into account the allowed `mime_types`, which\n * can be altered by `upload_mimes` filter and restrict some of them.\n *\n * @param {Object} state Global application state.\n *\n * @return {InserterMediaCategory[]} Client IDs of descendants.\n */\nexport const getInserterMediaCategories = createSelector(\n\t( state ) => {\n\t\tconst {\n\t\t\tsettings: {\n\t\t\t\tinserterMediaCategories,\n\t\t\t\tallowedMimeTypes,\n\t\t\t\tenableOpenverseMediaCategory,\n\t\t\t},\n\t\t\tregisteredInserterMediaCategories,\n\t\t} = state;\n\t\t// The allowed `mime_types` can be altered by `upload_mimes` filter and restrict\n\t\t// some of them. In this case we shouldn't add the category to the available media\n\t\t// categories list in the inserter.\n\t\tif (\n\t\t\t( ! inserterMediaCategories &&\n\t\t\t\t! registeredInserterMediaCategories.length ) ||\n\t\t\t! allowedMimeTypes\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst coreInserterMediaCategoriesNames =\n\t\t\tinserterMediaCategories?.map( ( { name } ) => name ) || [];\n\t\tconst mergedCategories = [\n\t\t\t...( inserterMediaCategories || [] ),\n\t\t\t...( registeredInserterMediaCategories || [] ).filter(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\t! coreInserterMediaCategoriesNames.includes( name )\n\t\t\t),\n\t\t];\n\t\treturn mergedCategories.filter( ( category ) => {\n\t\t\t// Check if Openverse category is enabled.\n\t\t\tif (\n\t\t\t\t! enableOpenverseMediaCategory &&\n\t\t\t\tcategory.name === 'openverse'\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn Object.values( allowedMimeTypes ).some( ( mimeType ) =>\n\t\t\t\tmimeType.startsWith( `${ category.mediaType }/` )\n\t\t\t);\n\t\t} );\n\t},\n\t( state ) => [\n\t\tstate.settings.inserterMediaCategories,\n\t\tstate.settings.allowedMimeTypes,\n\t\tstate.settings.enableOpenverseMediaCategory,\n\t\tstate.registeredInserterMediaCategories,\n\t]\n);\n\n/**\n * Returns whether there is at least one allowed pattern for inner blocks children.\n * This is useful for deferring the parsing of all patterns until needed.\n *\n * @param {Object} state Editor state.\n * @param {string} [rootClientId=null] Target root client ID.\n *\n * @return {boolean} If there is at least one allowed pattern.\n */\nexport const hasAllowedPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state, rootClientId = null ) => {\n\t\t\tconst { getAllPatterns } = unlock( select( STORE_NAME ) );\n\t\t\tconst patterns = getAllPatterns();\n\t\t\tconst { allowedBlockTypes } = getSettings( state );\n\t\t\treturn patterns.some( ( pattern ) => {\n\t\t\t\tconst { inserter = true } = pattern;\n\t\t\t\tif ( ! inserter ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst grammar = getGrammar( pattern );\n\t\t\t\treturn (\n\t\t\t\t\tcheckAllowListRecursive( grammar, allowedBlockTypes ) &&\n\t\t\t\t\tgrammar.every( ( { name: blockName } ) =>\n\t\t\t\t\t\tcanInsertBlockType( state, blockName, rootClientId )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t( state, rootClientId ) => [\n\t\t\t...getAllPatternsDependants( select )( state ),\n\t\t\t...getInsertBlockTypeDependants( state, rootClientId ),\n\t\t]\n\t)\n);\n\nfunction mapUserPattern(\n\tuserPattern,\n\t__experimentalUserPatternCategories = []\n) {\n\treturn {\n\t\tname: `core/block/${ userPattern.id }`,\n\t\tid: userPattern.id,\n\t\ttype: INSERTER_PATTERN_TYPES.user,\n\t\ttitle: userPattern.title.raw,\n\t\tcategories: userPattern.wp_pattern_category.map( ( catId ) => {\n\t\t\tconst category = __experimentalUserPatternCategories.find(\n\t\t\t\t( { id } ) => id === catId\n\t\t\t);\n\t\t\treturn category ? category.slug : catId;\n\t\t} ),\n\t\tcontent: userPattern.content.raw,\n\t\tsyncStatus: userPattern.wp_pattern_sync_status,\n\t};\n}\n\nexport const getPatternBySlug = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state, patternName ) => {\n\t\t\t// Only fetch reusable blocks if we know we need them. To do: maybe\n\t\t\t// use the entity record API to retrieve the block by slug.\n\t\t\tif ( patternName?.startsWith( 'core/block/' ) ) {\n\t\t\t\tconst _id = parseInt(\n\t\t\t\t\tpatternName.slice( 'core/block/'.length ),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t\tconst block = unlock( select( STORE_NAME ) )\n\t\t\t\t\t.getReusableBlocks()\n\t\t\t\t\t.find( ( { id } ) => id === _id );\n\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn mapUserPattern(\n\t\t\t\t\tblock,\n\t\t\t\t\tstate.settings.__experimentalUserPatternCategories\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t// This setting is left for back compat.\n\t\t\t\t...( state.settings.__experimentalBlockPatterns ?? [] ),\n\t\t\t\t...( state.settings[ selectBlockPatternsKey ]?.( select ) ??\n\t\t\t\t\t[] ),\n\t\t\t].find( ( { name } ) => name === patternName );\n\t\t},\n\t\t( state, patternName ) =>\n\t\t\tpatternName?.startsWith( 'core/block/' )\n\t\t\t\t? [\n\t\t\t\t\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t\t\t\t\t\tstate.settings.__experimentalReusableBlocks,\n\t\t\t\t ]\n\t\t\t\t: [\n\t\t\t\t\t\tstate.settings.__experimentalBlockPatterns,\n\t\t\t\t\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\t\t\t ]\n\t)\n);\n\nexport const getAllPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector( ( state ) => {\n\t\treturn [\n\t\t\t...unlock( select( STORE_NAME ) )\n\t\t\t\t.getReusableBlocks()\n\t\t\t\t.map( ( userPattern ) =>\n\t\t\t\t\tmapUserPattern(\n\t\t\t\t\t\tuserPattern,\n\t\t\t\t\t\tstate.settings.__experimentalUserPatternCategories\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t// This setting is left for back compat.\n\t\t\t...( state.settings.__experimentalBlockPatterns ?? [] ),\n\t\t\t...( state.settings[ selectBlockPatternsKey ]?.( select ) ?? [] ),\n\t\t].filter(\n\t\t\t( x, index, arr ) =>\n\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t);\n\t}, getAllPatternsDependants( select ) )\n);\n\nexport const isResolvingPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector( ( state ) => {\n\t\tconst blockPatternsSelect = state.settings[ selectBlockPatternsKey ];\n\t\tconst reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];\n\t\treturn (\n\t\t\t( blockPatternsSelect\n\t\t\t\t? blockPatternsSelect( select ) === undefined\n\t\t\t\t: false ) ||\n\t\t\t( reusableBlocksSelect\n\t\t\t\t? reusableBlocksSelect( select ) === undefined\n\t\t\t\t: false )\n\t\t);\n\t}, getAllPatternsDependants( select ) )\n);\n\nconst EMPTY_ARRAY = [];\n\nexport const getReusableBlocks = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];\n\t\treturn (\n\t\t\t( reusableBlocksSelect\n\t\t\t\t? reusableBlocksSelect( select )\n\t\t\t\t: state.settings.__experimentalReusableBlocks ) ?? EMPTY_ARRAY\n\t\t);\n\t}\n);\n\n/**\n * Returns the element of the last element that had focus when focus left the editor canvas.\n *\n * @param {Object} state Block editor state.\n *\n * @return {Object} Element.\n */\nexport function getLastFocus( state ) {\n\treturn state.lastFocus;\n}\n\n/**\n * Returns true if the user is dragging anything, or false otherwise. It is possible for a\n * user to be dragging data from outside of the editor, so this selector is separate from\n * the `isDraggingBlocks` selector which only returns true if the user is dragging blocks.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether user is dragging.\n */\nexport function isDragging( state ) {\n\treturn state.isDragging;\n}\n\n/**\n * Retrieves the expanded block from the state.\n *\n * @param {Object} state Block editor state.\n *\n * @return {string|null} The client ID of the expanded block, if set.\n */\nexport function getExpandedBlock( state ) {\n\treturn state.expandedBlock;\n}\n\n/**\n * Retrieves the client ID of the ancestor block that is content locking the block\n * with the provided client ID.\n *\n * @param {Object} state Global application state.\n * @param {Object} clientId Client Id of the block.\n *\n * @return {?string} Client ID of the ancestor block that is content locking the block.\n */\nexport const getContentLockingParent = createSelector(\n\t( state, clientId ) => {\n\t\tlet current = clientId;\n\t\tlet result;\n\t\twhile ( ( current = state.blocks.parents.get( current ) ) ) {\n\t\t\tif (\n\t\t\t\tgetBlockName( state, current ) === 'core/block' ||\n\t\t\t\tgetTemplateLock( state, current ) === 'contentOnly'\n\t\t\t) {\n\t\t\t\tresult = current;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t},\n\t( state ) => [ state.blocks.parents, state.blockListSettings ]\n);\n\n/**\n * Retrieves the client ID of the block that is content locked but is\n * currently being temporarily edited as a non-locked block.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} The client ID of the block being temporarily edited as a non-locked block.\n */\nexport function getTemporarilyEditingAsBlocks( state ) {\n\treturn state.temporarilyEditingAsBlocks;\n}\n\n/**\n * Returns the focus mode that should be reapplied when the user stops editing\n * a content locked blocks as a block without locking.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} The focus mode that should be re-set when temporarily editing as blocks stops.\n */\nexport function getTemporarilyEditingFocusModeToRevert( state ) {\n\treturn state.temporarilyEditingFocusModeRevert;\n}\n\n/**\n * Returns the style attributes of multiple blocks.\n *\n * @param {Object} state Global application state.\n * @param {string[]} clientIds An array of block client IDs.\n *\n * @return {Object} An object where keys are client IDs and values are the corresponding block styles or undefined.\n */\nexport const getBlockStyles = createSelector(\n\t( state, clientIds ) =>\n\t\tclientIds.reduce( ( styles, clientId ) => {\n\t\t\tstyles[ clientId ] = state.blocks.attributes.get( clientId )?.style;\n\t\t\treturn styles;\n\t\t}, {} ),\n\t( state, clientIds ) => [\n\t\t...clientIds.map(\n\t\t\t( clientId ) => state.blocks.attributes.get( clientId )?.style\n\t\t),\n\t]\n);\n\n/**\n * Returns whether zoom out mode is enabled.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Is zoom out mode enabled.\n */\nexport function isZoomOutMode( state ) {\n\treturn state.editorMode === 'zoom-out';\n}\n\n/**\n * Retrieves the client ID of the block which contains the blocks\n * acting as \"sections\" in the editor. This is typically the \"main content\"\n * of the template/post.\n *\n * @param {Object} state Editor state.\n *\n * @return {string|undefined} The section root client ID or undefined if not set.\n */\nexport function getSectionRootClientId( state ) {\n\treturn state.settings?.[ sectionRootClientIdKey ];\n}\n\n/**\n * Returns the zoom out state.\n *\n * @param {Object} state Global application state.\n * @return {boolean} The zoom out state.\n */\nexport function getZoomLevel( state ) {\n\treturn state.zoomLevel;\n}\n\n/**\n * Returns whether the editor is considered zoomed out.\n *\n * @param {Object} state Global application state.\n * @return {boolean} Whether the editor is zoomed.\n */\nexport function isZoomOut( state ) {\n\treturn getZoomLevel( state ) < 100;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_selectors","_utils","_utils2","_constants","_lockUnlock","_privateKeys","_getBlockSettings","isBlockInterfaceHidden","state","getLastInsertedBlocksClientIds","lastBlockInserted","clientIds","getBlockWithoutAttributes","clientId","blocks","byClientId","get","isBlockSubtreeDisabled","isChildSubtreeDisabled","childClientId","getBlockEditingMode","getBlockOrder","every","exports","getEnabledClientIdsTreeUnmemoized","rootClientId","blockOrder","result","innerBlocks","push","getEnabledClientIdsTree","createSelector","order","blockEditingModes","settings","templateLock","blockListSettings","editorMode","getEnabledBlockParents","ascending","getBlockParents","filter","parent","parents","getRemovalPromptData","removalPromptData","getBlockRemovalRules","blockRemovalRules","getOpenedBlockSettingsMenu","openedBlockSettingsMenu","getStyleOverrides","getClientIdsWithDescendants","clientIdMap","reduce","acc","index","styleOverrides","sort","overrideA","overrideB","_clientIdMap$clientId","_clientIdMap$clientId2","clientIdA","clientIdB","aIndex","bIndex","getRegisteredInserterMediaCategories","registeredInserterMediaCategories","getInserterMediaCategories","inserterMediaCategories","allowedMimeTypes","enableOpenverseMediaCategory","length","coreInserterMediaCategoriesNames","map","name","mergedCategories","includes","category","Object","values","some","mimeType","startsWith","mediaType","hasAllowedPatterns","createRegistrySelector","select","getAllPatterns","unlock","STORE_NAME","patterns","allowedBlockTypes","getSettings","pattern","inserter","grammar","getGrammar","checkAllowListRecursive","blockName","canInsertBlockType","getAllPatternsDependants","getInsertBlockTypeDependants","mapUserPattern","userPattern","__experimentalUserPatternCategories","id","type","INSERTER_PATTERN_TYPES","user","title","raw","categories","wp_pattern_category","catId","find","slug","content","syncStatus","wp_pattern_sync_status","getPatternBySlug","patternName","_state$settings$__exp","_state$settings$selec","_id","parseInt","slice","block","getReusableBlocks","__experimentalBlockPatterns","selectBlockPatternsKey","__experimentalReusableBlocks","_state$settings$__exp2","_state$settings$selec2","x","arr","findIndex","y","isResolvingPatterns","blockPatternsSelect","reusableBlocksSelect","reusableBlocksSelectKey","undefined","EMPTY_ARRAY","_ref","getLastFocus","lastFocus","isDragging","getExpandedBlock","expandedBlock","getContentLockingParent","current","getBlockName","getTemplateLock","getTemporarilyEditingAsBlocks","temporarilyEditingAsBlocks","getTemporarilyEditingFocusModeToRevert","temporarilyEditingFocusModeRevert","getBlockStyles","styles","attributes","style","isZoomOutMode","__unstableGetEditorMode","getSectionRootClientId","sectionRootClientIdKey","getZoomLevel","zoomLevel","isZoomOut","getParentSectionBlock","isSectionBlock","sectionRootClientId","sectionClientIds","isNavigationMode"],"sources":["@wordpress/block-editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetBlockOrder,\n\tgetBlockParents,\n\tgetBlockEditingMode,\n\tgetSettings,\n\tcanInsertBlockType,\n\tgetBlockName,\n\tgetTemplateLock,\n\tgetClientIdsWithDescendants,\n\tisNavigationMode,\n\t__unstableGetEditorMode,\n} from './selectors';\nimport {\n\tcheckAllowListRecursive,\n\tgetAllPatternsDependants,\n\tgetInsertBlockTypeDependants,\n\tgetGrammar,\n} from './utils';\nimport { INSERTER_PATTERN_TYPES } from '../components/inserter/block-patterns-tab/utils';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../lock-unlock';\nimport {\n\tselectBlockPatternsKey,\n\treusableBlocksSelectKey,\n\tsectionRootClientIdKey,\n} from './private-keys';\n\nexport { getBlockSettings } from './get-block-settings';\n\n/**\n * Returns true if the block interface is hidden, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the block toolbar is hidden.\n */\nexport function isBlockInterfaceHidden( state ) {\n\treturn state.isBlockInterfaceHidden;\n}\n\n/**\n * Gets the client ids of the last inserted blocks.\n *\n * @param {Object} state Global application state.\n * @return {Array|undefined} Client Ids of the last inserted block(s).\n */\nexport function getLastInsertedBlocksClientIds( state ) {\n\treturn state?.lastBlockInserted?.clientIds;\n}\n\nexport function getBlockWithoutAttributes( state, clientId ) {\n\treturn state.blocks.byClientId.get( clientId );\n}\n\n/**\n * Returns true if all of the descendants of a block with the given client ID\n * have an editing mode of 'disabled', or false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block client ID.\n *\n * @return {boolean} Whether the block descendants are disabled.\n */\nexport const isBlockSubtreeDisabled = ( state, clientId ) => {\n\tconst isChildSubtreeDisabled = ( childClientId ) => {\n\t\treturn (\n\t\t\tgetBlockEditingMode( state, childClientId ) === 'disabled' &&\n\t\t\tgetBlockOrder( state, childClientId ).every(\n\t\t\t\tisChildSubtreeDisabled\n\t\t\t)\n\t\t);\n\t};\n\treturn getBlockOrder( state, clientId ).every( isChildSubtreeDisabled );\n};\n\nfunction getEnabledClientIdsTreeUnmemoized( state, rootClientId ) {\n\tconst blockOrder = getBlockOrder( state, rootClientId );\n\tconst result = [];\n\n\tfor ( const clientId of blockOrder ) {\n\t\tconst innerBlocks = getEnabledClientIdsTreeUnmemoized(\n\t\t\tstate,\n\t\t\tclientId\n\t\t);\n\t\tif ( getBlockEditingMode( state, clientId ) !== 'disabled' ) {\n\t\t\tresult.push( { clientId, innerBlocks } );\n\t\t} else {\n\t\t\tresult.push( ...innerBlocks );\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Returns a tree of block objects with only clientID and innerBlocks set.\n * Blocks with a 'disabled' editing mode are not included.\n *\n * @param {Object} state Global application state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {Object[]} Tree of block objects with only clientID and innerBlocks set.\n */\nexport const getEnabledClientIdsTree = createSelector(\n\tgetEnabledClientIdsTreeUnmemoized,\n\t( state ) => [\n\t\tstate.blocks.order,\n\t\tstate.blockEditingModes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockListSettings,\n\t\tstate.editorMode,\n\t]\n);\n\n/**\n * Returns a list of a given block's ancestors, from top to bottom. Blocks with\n * a 'disabled' editing mode are excluded.\n *\n * @see getBlockParents\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block client ID.\n * @param {boolean} ascending Order results from bottom to top (true) or top\n * to bottom (false).\n */\nexport const getEnabledBlockParents = createSelector(\n\t( state, clientId, ascending = false ) => {\n\t\treturn getBlockParents( state, clientId, ascending ).filter(\n\t\t\t( parent ) => getBlockEditingMode( state, parent ) !== 'disabled'\n\t\t);\n\t},\n\t( state ) => [\n\t\tstate.blocks.parents,\n\t\tstate.blockEditingModes,\n\t\tstate.settings.templateLock,\n\t\tstate.blockListSettings,\n\t]\n);\n\n/**\n * Selector that returns the data needed to display a prompt when certain\n * blocks are removed, or `false` if no such prompt is requested.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object|false} Data for removal prompt display, if any.\n */\nexport function getRemovalPromptData( state ) {\n\treturn state.removalPromptData;\n}\n\n/**\n * Returns true if removal prompt exists, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether removal prompt exists.\n */\nexport function getBlockRemovalRules( state ) {\n\treturn state.blockRemovalRules;\n}\n\n/**\n * Returns the client ID of the block settings menu that is currently open.\n *\n * @param {Object} state Global application state.\n * @return {string|null} The client ID of the block menu that is currently open.\n */\nexport function getOpenedBlockSettingsMenu( state ) {\n\treturn state.openedBlockSettingsMenu;\n}\n\n/**\n * Returns all style overrides, intended to be merged with global editor styles.\n *\n * Overrides are sorted to match the order of the blocks they relate to. This\n * is useful to maintain correct CSS cascade order.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} An array of style ID to style override pairs.\n */\nexport const getStyleOverrides = createSelector(\n\t( state ) => {\n\t\tconst clientIds = getClientIdsWithDescendants( state );\n\t\tconst clientIdMap = clientIds.reduce( ( acc, clientId, index ) => {\n\t\t\tacc[ clientId ] = index;\n\t\t\treturn acc;\n\t\t}, {} );\n\n\t\treturn [ ...state.styleOverrides ].sort( ( overrideA, overrideB ) => {\n\t\t\t// Once the overrides Map is spread to an array, the first element\n\t\t\t// is the key, while the second is the override itself including\n\t\t\t// the clientId to sort by.\n\t\t\tconst [ , { clientId: clientIdA } ] = overrideA;\n\t\t\tconst [ , { clientId: clientIdB } ] = overrideB;\n\n\t\t\tconst aIndex = clientIdMap[ clientIdA ] ?? -1;\n\t\t\tconst bIndex = clientIdMap[ clientIdB ] ?? -1;\n\n\t\t\treturn aIndex - bIndex;\n\t\t} );\n\t},\n\t( state ) => [ state.blocks.order, state.styleOverrides ]\n);\n\n/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */\n/**\n * Returns the registered inserter media categories through the public API.\n *\n * @param {Object} state Editor state.\n *\n * @return {InserterMediaCategory[]} Inserter media categories.\n */\nexport function getRegisteredInserterMediaCategories( state ) {\n\treturn state.registeredInserterMediaCategories;\n}\n\n/**\n * Returns an array containing the allowed inserter media categories.\n * It merges the registered media categories from extenders with the\n * core ones. It also takes into account the allowed `mime_types`, which\n * can be altered by `upload_mimes` filter and restrict some of them.\n *\n * @param {Object} state Global application state.\n *\n * @return {InserterMediaCategory[]} Client IDs of descendants.\n */\nexport const getInserterMediaCategories = createSelector(\n\t( state ) => {\n\t\tconst {\n\t\t\tsettings: {\n\t\t\t\tinserterMediaCategories,\n\t\t\t\tallowedMimeTypes,\n\t\t\t\tenableOpenverseMediaCategory,\n\t\t\t},\n\t\t\tregisteredInserterMediaCategories,\n\t\t} = state;\n\t\t// The allowed `mime_types` can be altered by `upload_mimes` filter and restrict\n\t\t// some of them. In this case we shouldn't add the category to the available media\n\t\t// categories list in the inserter.\n\t\tif (\n\t\t\t( ! inserterMediaCategories &&\n\t\t\t\t! registeredInserterMediaCategories.length ) ||\n\t\t\t! allowedMimeTypes\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst coreInserterMediaCategoriesNames =\n\t\t\tinserterMediaCategories?.map( ( { name } ) => name ) || [];\n\t\tconst mergedCategories = [\n\t\t\t...( inserterMediaCategories || [] ),\n\t\t\t...( registeredInserterMediaCategories || [] ).filter(\n\t\t\t\t( { name } ) =>\n\t\t\t\t\t! coreInserterMediaCategoriesNames.includes( name )\n\t\t\t),\n\t\t];\n\t\treturn mergedCategories.filter( ( category ) => {\n\t\t\t// Check if Openverse category is enabled.\n\t\t\tif (\n\t\t\t\t! enableOpenverseMediaCategory &&\n\t\t\t\tcategory.name === 'openverse'\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn Object.values( allowedMimeTypes ).some( ( mimeType ) =>\n\t\t\t\tmimeType.startsWith( `${ category.mediaType }/` )\n\t\t\t);\n\t\t} );\n\t},\n\t( state ) => [\n\t\tstate.settings.inserterMediaCategories,\n\t\tstate.settings.allowedMimeTypes,\n\t\tstate.settings.enableOpenverseMediaCategory,\n\t\tstate.registeredInserterMediaCategories,\n\t]\n);\n\n/**\n * Returns whether there is at least one allowed pattern for inner blocks children.\n * This is useful for deferring the parsing of all patterns until needed.\n *\n * @param {Object} state Editor state.\n * @param {string} [rootClientId=null] Target root client ID.\n *\n * @return {boolean} If there is at least one allowed pattern.\n */\nexport const hasAllowedPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state, rootClientId = null ) => {\n\t\t\tconst { getAllPatterns } = unlock( select( STORE_NAME ) );\n\t\t\tconst patterns = getAllPatterns();\n\t\t\tconst { allowedBlockTypes } = getSettings( state );\n\t\t\treturn patterns.some( ( pattern ) => {\n\t\t\t\tconst { inserter = true } = pattern;\n\t\t\t\tif ( ! inserter ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst grammar = getGrammar( pattern );\n\t\t\t\treturn (\n\t\t\t\t\tcheckAllowListRecursive( grammar, allowedBlockTypes ) &&\n\t\t\t\t\tgrammar.every( ( { name: blockName } ) =>\n\t\t\t\t\t\tcanInsertBlockType( state, blockName, rootClientId )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t},\n\t\t( state, rootClientId ) => [\n\t\t\t...getAllPatternsDependants( select )( state ),\n\t\t\t...getInsertBlockTypeDependants( state, rootClientId ),\n\t\t]\n\t)\n);\n\nfunction mapUserPattern(\n\tuserPattern,\n\t__experimentalUserPatternCategories = []\n) {\n\treturn {\n\t\tname: `core/block/${ userPattern.id }`,\n\t\tid: userPattern.id,\n\t\ttype: INSERTER_PATTERN_TYPES.user,\n\t\ttitle: userPattern.title.raw,\n\t\tcategories: userPattern.wp_pattern_category.map( ( catId ) => {\n\t\t\tconst category = __experimentalUserPatternCategories.find(\n\t\t\t\t( { id } ) => id === catId\n\t\t\t);\n\t\t\treturn category ? category.slug : catId;\n\t\t} ),\n\t\tcontent: userPattern.content.raw,\n\t\tsyncStatus: userPattern.wp_pattern_sync_status,\n\t};\n}\n\nexport const getPatternBySlug = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state, patternName ) => {\n\t\t\t// Only fetch reusable blocks if we know we need them. To do: maybe\n\t\t\t// use the entity record API to retrieve the block by slug.\n\t\t\tif ( patternName?.startsWith( 'core/block/' ) ) {\n\t\t\t\tconst _id = parseInt(\n\t\t\t\t\tpatternName.slice( 'core/block/'.length ),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t\tconst block = unlock( select( STORE_NAME ) )\n\t\t\t\t\t.getReusableBlocks()\n\t\t\t\t\t.find( ( { id } ) => id === _id );\n\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn mapUserPattern(\n\t\t\t\t\tblock,\n\t\t\t\t\tstate.settings.__experimentalUserPatternCategories\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t// This setting is left for back compat.\n\t\t\t\t...( state.settings.__experimentalBlockPatterns ?? [] ),\n\t\t\t\t...( state.settings[ selectBlockPatternsKey ]?.( select ) ??\n\t\t\t\t\t[] ),\n\t\t\t].find( ( { name } ) => name === patternName );\n\t\t},\n\t\t( state, patternName ) =>\n\t\t\tpatternName?.startsWith( 'core/block/' )\n\t\t\t\t? [\n\t\t\t\t\t\tunlock( select( STORE_NAME ) ).getReusableBlocks(),\n\t\t\t\t\t\tstate.settings.__experimentalReusableBlocks,\n\t\t\t\t ]\n\t\t\t\t: [\n\t\t\t\t\t\tstate.settings.__experimentalBlockPatterns,\n\t\t\t\t\t\tstate.settings[ selectBlockPatternsKey ]?.( select ),\n\t\t\t\t ]\n\t)\n);\n\nexport const getAllPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector( ( state ) => {\n\t\treturn [\n\t\t\t...unlock( select( STORE_NAME ) )\n\t\t\t\t.getReusableBlocks()\n\t\t\t\t.map( ( userPattern ) =>\n\t\t\t\t\tmapUserPattern(\n\t\t\t\t\t\tuserPattern,\n\t\t\t\t\t\tstate.settings.__experimentalUserPatternCategories\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t// This setting is left for back compat.\n\t\t\t...( state.settings.__experimentalBlockPatterns ?? [] ),\n\t\t\t...( state.settings[ selectBlockPatternsKey ]?.( select ) ?? [] ),\n\t\t].filter(\n\t\t\t( x, index, arr ) =>\n\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t);\n\t}, getAllPatternsDependants( select ) )\n);\n\nexport const isResolvingPatterns = createRegistrySelector( ( select ) =>\n\tcreateSelector( ( state ) => {\n\t\tconst blockPatternsSelect = state.settings[ selectBlockPatternsKey ];\n\t\tconst reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];\n\t\treturn (\n\t\t\t( blockPatternsSelect\n\t\t\t\t? blockPatternsSelect( select ) === undefined\n\t\t\t\t: false ) ||\n\t\t\t( reusableBlocksSelect\n\t\t\t\t? reusableBlocksSelect( select ) === undefined\n\t\t\t\t: false )\n\t\t);\n\t}, getAllPatternsDependants( select ) )\n);\n\nconst EMPTY_ARRAY = [];\n\nexport const getReusableBlocks = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];\n\t\treturn (\n\t\t\t( reusableBlocksSelect\n\t\t\t\t? reusableBlocksSelect( select )\n\t\t\t\t: state.settings.__experimentalReusableBlocks ) ?? EMPTY_ARRAY\n\t\t);\n\t}\n);\n\n/**\n * Returns the element of the last element that had focus when focus left the editor canvas.\n *\n * @param {Object} state Block editor state.\n *\n * @return {Object} Element.\n */\nexport function getLastFocus( state ) {\n\treturn state.lastFocus;\n}\n\n/**\n * Returns true if the user is dragging anything, or false otherwise. It is possible for a\n * user to be dragging data from outside of the editor, so this selector is separate from\n * the `isDraggingBlocks` selector which only returns true if the user is dragging blocks.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether user is dragging.\n */\nexport function isDragging( state ) {\n\treturn state.isDragging;\n}\n\n/**\n * Retrieves the expanded block from the state.\n *\n * @param {Object} state Block editor state.\n *\n * @return {string|null} The client ID of the expanded block, if set.\n */\nexport function getExpandedBlock( state ) {\n\treturn state.expandedBlock;\n}\n\n/**\n * Retrieves the client ID of the ancestor block that is content locking the block\n * with the provided client ID.\n *\n * @param {Object} state Global application state.\n * @param {Object} clientId Client Id of the block.\n *\n * @return {?string} Client ID of the ancestor block that is content locking the block.\n */\nexport const getContentLockingParent = createSelector(\n\t( state, clientId ) => {\n\t\tlet current = clientId;\n\t\tlet result;\n\t\twhile ( ( current = state.blocks.parents.get( current ) ) ) {\n\t\t\tif (\n\t\t\t\tgetBlockName( state, current ) === 'core/block' ||\n\t\t\t\tgetTemplateLock( state, current ) === 'contentOnly'\n\t\t\t) {\n\t\t\t\tresult = current;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t},\n\t( state ) => [ state.blocks.parents, state.blockListSettings ]\n);\n\n/**\n * Retrieves the client ID of the block that is content locked but is\n * currently being temporarily edited as a non-locked block.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} The client ID of the block being temporarily edited as a non-locked block.\n */\nexport function getTemporarilyEditingAsBlocks( state ) {\n\treturn state.temporarilyEditingAsBlocks;\n}\n\n/**\n * Returns the focus mode that should be reapplied when the user stops editing\n * a content locked blocks as a block without locking.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} The focus mode that should be re-set when temporarily editing as blocks stops.\n */\nexport function getTemporarilyEditingFocusModeToRevert( state ) {\n\treturn state.temporarilyEditingFocusModeRevert;\n}\n\n/**\n * Returns the style attributes of multiple blocks.\n *\n * @param {Object} state Global application state.\n * @param {string[]} clientIds An array of block client IDs.\n *\n * @return {Object} An object where keys are client IDs and values are the corresponding block styles or undefined.\n */\nexport const getBlockStyles = createSelector(\n\t( state, clientIds ) =>\n\t\tclientIds.reduce( ( styles, clientId ) => {\n\t\t\tstyles[ clientId ] = state.blocks.attributes.get( clientId )?.style;\n\t\t\treturn styles;\n\t\t}, {} ),\n\t( state, clientIds ) => [\n\t\t...clientIds.map(\n\t\t\t( clientId ) => state.blocks.attributes.get( clientId )?.style\n\t\t),\n\t]\n);\n\n/**\n * Returns whether zoom out mode is enabled.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Is zoom out mode enabled.\n */\nexport function isZoomOutMode( state ) {\n\treturn __unstableGetEditorMode( state ) === 'zoom-out';\n}\n\n/**\n * Retrieves the client ID of the block which contains the blocks\n * acting as \"sections\" in the editor. This is typically the \"main content\"\n * of the template/post.\n *\n * @param {Object} state Editor state.\n *\n * @return {string|undefined} The section root client ID or undefined if not set.\n */\nexport function getSectionRootClientId( state ) {\n\treturn state.settings?.[ sectionRootClientIdKey ];\n}\n\n/**\n * Returns the zoom out state.\n *\n * @param {Object} state Global application state.\n * @return {boolean} The zoom out state.\n */\nexport function getZoomLevel( state ) {\n\treturn state.zoomLevel;\n}\n\n/**\n * Returns whether the editor is considered zoomed out.\n *\n * @param {Object} state Global application state.\n * @return {boolean} Whether the editor is zoomed.\n */\nexport function isZoomOut( state ) {\n\treturn getZoomLevel( state ) < 100;\n}\n\n/**\n * Retrieves the client ID of the parent section block.\n *\n * @param {Object} state Global application state.\n * @param {string} clientId Client Id of the block.\n *\n * @return {?string} Client ID of the ancestor block that is content locking the block.\n */\nexport const getParentSectionBlock = ( state, clientId ) => {\n\tlet current = clientId;\n\tlet result;\n\twhile ( ! result && ( current = state.blocks.parents.get( current ) ) ) {\n\t\tif ( isSectionBlock( state, current ) ) {\n\t\t\tresult = current;\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Retrieves the client ID is a content locking parent\n *\n * @param {Object} state Global application state.\n * @param {string} clientId Client Id of the block.\n *\n * @return {boolean} Whether the block is a content locking parent.\n */\nexport function isSectionBlock( state, clientId ) {\n\tconst sectionRootClientId = getSectionRootClientId( state );\n\tconst sectionClientIds = getBlockOrder( state, sectionRootClientId );\n\treturn (\n\t\tgetBlockName( state, clientId ) === 'core/block' ||\n\t\tgetTemplateLock( state, clientId ) === 'contentOnly' ||\n\t\t( isNavigationMode( state ) && sectionClientIds.includes( clientId ) )\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2079,6 +2079,20 @@ const __experimentalGetParsedPattern = exports.__experimentalGetParsedPattern =
2079
2079
  return pattern ? (0, _utils.getParsedPattern)(pattern) : null;
2080
2080
  });
2081
2081
  const getAllowedPatternsDependants = select => (state, rootClientId) => [...(0, _utils.getAllPatternsDependants)(select)(state), ...(0, _utils.getInsertBlockTypeDependants)(state, rootClientId)];
2082
+ const patternsWithParsedBlocks = new WeakMap();
2083
+ function enhancePatternWithParsedBlocks(pattern) {
2084
+ let enhancedPattern = patternsWithParsedBlocks.get(pattern);
2085
+ if (!enhancedPattern) {
2086
+ enhancedPattern = {
2087
+ ...pattern,
2088
+ get blocks() {
2089
+ return (0, _utils.getParsedPattern)(pattern).blocks;
2090
+ }
2091
+ };
2092
+ patternsWithParsedBlocks.set(pattern, enhancedPattern);
2093
+ }
2094
+ return enhancedPattern;
2095
+ }
2082
2096
 
2083
2097
  /**
2084
2098
  * Returns the list of allowed patterns for inner blocks children.
@@ -2099,14 +2113,7 @@ const __experimentalGetAllowedPatterns = exports.__experimentalGetAllowedPattern
2099
2113
  } = getSettings(state);
2100
2114
  const parsedPatterns = patterns.filter(({
2101
2115
  inserter = true
2102
- }) => !!inserter).map(pattern => {
2103
- return {
2104
- ...pattern,
2105
- get blocks() {
2106
- return (0, _utils.getParsedPattern)(pattern).blocks;
2107
- }
2108
- };
2109
- });
2116
+ }) => !!inserter).map(enhancePatternWithParsedBlocks);
2110
2117
  const availableParsedPatterns = parsedPatterns.filter(pattern => (0, _utils.checkAllowListRecursive)((0, _utils.getGrammar)(pattern), allowedBlockTypes));
2111
2118
  const patternsAllowed = availableParsedPatterns.filter(pattern => (0, _utils.getGrammar)(pattern).every(({
2112
2119
  blockName: name