@wordpress/block-editor 9.4.0 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -8
  3. package/build/components/block-list/block-invalid-warning.native.js +54 -6
  4. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  5. package/build/components/block-list/block.js +2 -2
  6. package/build/components/block-list/block.js.map +1 -1
  7. package/build/components/block-list/block.native.js +2 -1
  8. package/build/components/block-list/block.native.js.map +1 -1
  9. package/build/components/block-list/index.native.js +4 -3
  10. package/build/components/block-list/index.native.js.map +1 -1
  11. package/build/components/block-list/layout.js +20 -5
  12. package/build/components/block-list/layout.js.map +1 -1
  13. package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
  14. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  15. package/build/components/block-lock/modal.js +35 -5
  16. package/build/components/block-lock/modal.js.map +1 -1
  17. package/build/components/block-pattern-setup/index.js +5 -17
  18. package/build/components/block-pattern-setup/index.js.map +1 -1
  19. package/build/components/block-popover/inbetween.js +1 -1
  20. package/build/components/block-popover/inbetween.js.map +1 -1
  21. package/build/components/block-popover/index.js +1 -1
  22. package/build/components/block-popover/index.js.map +1 -1
  23. package/build/components/block-settings-menu/block-mode-toggle.js +1 -1
  24. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  25. package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
  26. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  27. package/build/components/block-styles/preview.native.js +3 -1
  28. package/build/components/block-styles/preview.native.js.map +1 -1
  29. package/build/components/block-switcher/index.js +7 -1
  30. package/build/components/block-switcher/index.js.map +1 -1
  31. package/build/components/block-title/index.js +8 -2
  32. package/build/components/block-title/index.js.map +1 -1
  33. package/build/components/block-title/use-block-display-title.js +12 -5
  34. package/build/components/block-title/use-block-display-title.js.map +1 -1
  35. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  36. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  37. package/build/components/border-radius-control/index.js +2 -0
  38. package/build/components/border-radius-control/index.js.map +1 -1
  39. package/build/components/colors/with-colors.js +1 -1
  40. package/build/components/colors/with-colors.js.map +1 -1
  41. package/build/components/colors-gradients/control.js +45 -39
  42. package/build/components/colors-gradients/control.js.map +1 -1
  43. package/build/components/date-format-picker/index.js +1 -1
  44. package/build/components/date-format-picker/index.js.map +1 -1
  45. package/build/components/iframe/index.js +19 -6
  46. package/build/components/iframe/index.js.map +1 -1
  47. package/build/components/link-control/index.js +1 -1
  48. package/build/components/link-control/index.js.map +1 -1
  49. package/build/components/list-view/block-select-button.js +15 -7
  50. package/build/components/list-view/block-select-button.js.map +1 -1
  51. package/build/components/list-view/drop-indicator.js +1 -1
  52. package/build/components/list-view/drop-indicator.js.map +1 -1
  53. package/build/components/media-placeholder/index.js +13 -2
  54. package/build/components/media-placeholder/index.js.map +1 -1
  55. package/build/components/media-replace-flow/index.js +3 -6
  56. package/build/components/media-replace-flow/index.js.map +1 -1
  57. package/build/components/url-popover/index.js +2 -1
  58. package/build/components/url-popover/index.js.map +1 -1
  59. package/build/components/writing-flow/use-arrow-nav.js +34 -2
  60. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  61. package/build/components/writing-flow/use-multi-selection.js +3 -47
  62. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  63. package/build/components/writing-flow/use-selection-observer.js +1 -3
  64. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  65. package/build/hooks/color.js +2 -4
  66. package/build/hooks/color.js.map +1 -1
  67. package/build/hooks/index.js +8 -0
  68. package/build/hooks/index.js.map +1 -1
  69. package/build/hooks/layout.js +41 -14
  70. package/build/hooks/layout.js.map +1 -1
  71. package/build/hooks/utils.js +5 -3
  72. package/build/hooks/utils.js.map +1 -1
  73. package/build/index.js +7 -0
  74. package/build/index.js.map +1 -1
  75. package/build/layouts/flex.js +40 -36
  76. package/build/layouts/flex.js.map +1 -1
  77. package/build/layouts/flow.js +10 -35
  78. package/build/layouts/flow.js.map +1 -1
  79. package/build/layouts/utils.js +35 -3
  80. package/build/layouts/utils.js.map +1 -1
  81. package/build/store/actions.js +15 -18
  82. package/build/store/actions.js.map +1 -1
  83. package/build/store/index.js +0 -4
  84. package/build/store/index.js.map +1 -1
  85. package/build/store/reducer.js +5 -3
  86. package/build/store/reducer.js.map +1 -1
  87. package/build/store/selectors.js +3 -3
  88. package/build/store/selectors.js.map +1 -1
  89. package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
  90. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  91. package/build-module/components/block-list/block.js +2 -2
  92. package/build-module/components/block-list/block.js.map +1 -1
  93. package/build-module/components/block-list/block.native.js +2 -1
  94. package/build-module/components/block-list/block.native.js.map +1 -1
  95. package/build-module/components/block-list/index.native.js +3 -1
  96. package/build-module/components/block-list/index.native.js.map +1 -1
  97. package/build-module/components/block-list/layout.js +19 -4
  98. package/build-module/components/block-list/layout.js.map +1 -1
  99. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
  100. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  101. package/build-module/components/block-lock/modal.js +37 -6
  102. package/build-module/components/block-lock/modal.js.map +1 -1
  103. package/build-module/components/block-pattern-setup/index.js +6 -18
  104. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  105. package/build-module/components/block-popover/inbetween.js +1 -1
  106. package/build-module/components/block-popover/inbetween.js.map +1 -1
  107. package/build-module/components/block-popover/index.js +1 -1
  108. package/build-module/components/block-popover/index.js.map +1 -1
  109. package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
  110. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  111. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
  112. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  113. package/build-module/components/block-styles/preview.native.js +3 -2
  114. package/build-module/components/block-styles/preview.native.js.map +1 -1
  115. package/build-module/components/block-switcher/index.js +7 -1
  116. package/build-module/components/block-switcher/index.js.map +1 -1
  117. package/build-module/components/block-title/index.js +8 -2
  118. package/build-module/components/block-title/index.js.map +1 -1
  119. package/build-module/components/block-title/use-block-display-title.js +12 -5
  120. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  121. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  122. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  123. package/build-module/components/border-radius-control/index.js +2 -0
  124. package/build-module/components/border-radius-control/index.js.map +1 -1
  125. package/build-module/components/colors/with-colors.js +2 -2
  126. package/build-module/components/colors/with-colors.js.map +1 -1
  127. package/build-module/components/colors-gradients/control.js +46 -40
  128. package/build-module/components/colors-gradients/control.js.map +1 -1
  129. package/build-module/components/date-format-picker/index.js +1 -1
  130. package/build-module/components/date-format-picker/index.js.map +1 -1
  131. package/build-module/components/iframe/index.js +19 -6
  132. package/build-module/components/iframe/index.js.map +1 -1
  133. package/build-module/components/link-control/index.js +1 -1
  134. package/build-module/components/link-control/index.js.map +1 -1
  135. package/build-module/components/list-view/block-select-button.js +16 -8
  136. package/build-module/components/list-view/block-select-button.js.map +1 -1
  137. package/build-module/components/list-view/drop-indicator.js +1 -1
  138. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  139. package/build-module/components/media-placeholder/index.js +13 -2
  140. package/build-module/components/media-placeholder/index.js.map +1 -1
  141. package/build-module/components/media-replace-flow/index.js +4 -7
  142. package/build-module/components/media-replace-flow/index.js.map +1 -1
  143. package/build-module/components/url-popover/index.js +2 -1
  144. package/build-module/components/url-popover/index.js.map +1 -1
  145. package/build-module/components/writing-flow/use-arrow-nav.js +35 -3
  146. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  147. package/build-module/components/writing-flow/use-multi-selection.js +3 -45
  148. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  149. package/build-module/components/writing-flow/use-selection-observer.js +1 -3
  150. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  151. package/build-module/hooks/color.js +2 -3
  152. package/build-module/hooks/color.js.map +1 -1
  153. package/build-module/hooks/index.js +1 -0
  154. package/build-module/hooks/index.js.map +1 -1
  155. package/build-module/hooks/layout.js +42 -15
  156. package/build-module/hooks/layout.js.map +1 -1
  157. package/build-module/hooks/utils.js +5 -2
  158. package/build-module/hooks/utils.js.map +1 -1
  159. package/build-module/index.js +1 -1
  160. package/build-module/index.js.map +1 -1
  161. package/build-module/layouts/flex.js +41 -33
  162. package/build-module/layouts/flex.js.map +1 -1
  163. package/build-module/layouts/flow.js +11 -36
  164. package/build-module/layouts/flow.js.map +1 -1
  165. package/build-module/layouts/utils.js +33 -3
  166. package/build-module/layouts/utils.js.map +1 -1
  167. package/build-module/store/actions.js +9 -10
  168. package/build-module/store/actions.js.map +1 -1
  169. package/build-module/store/index.js +0 -4
  170. package/build-module/store/index.js.map +1 -1
  171. package/build-module/store/reducer.js +5 -2
  172. package/build-module/store/reducer.js.map +1 -1
  173. package/build-module/store/selectors.js +4 -4
  174. package/build-module/store/selectors.js.map +1 -1
  175. package/build-style/style-rtl.css +36 -10
  176. package/build-style/style.css +36 -10
  177. package/package.json +28 -28
  178. package/src/components/block-list/block-invalid-warning.native.js +42 -7
  179. package/src/components/block-list/block.js +2 -2
  180. package/src/components/block-list/block.native.js +1 -0
  181. package/src/components/block-list/index.native.js +1 -1
  182. package/src/components/block-list/layout.js +15 -3
  183. package/src/components/block-list/style.scss +1 -1
  184. package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
  185. package/src/components/block-lock/modal.js +42 -4
  186. package/src/components/block-lock/style.scss +10 -0
  187. package/src/components/block-pattern-setup/index.js +3 -15
  188. package/src/components/block-pattern-setup/style.scss +4 -2
  189. package/src/components/block-popover/inbetween.js +1 -1
  190. package/src/components/block-popover/index.js +1 -1
  191. package/src/components/block-settings-menu/block-mode-toggle.js +1 -0
  192. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  193. package/src/components/block-styles/preview.native.js +3 -2
  194. package/src/components/block-switcher/index.js +7 -1
  195. package/src/components/block-title/index.js +3 -2
  196. package/src/components/block-title/use-block-display-title.js +11 -5
  197. package/src/components/block-tools/block-contextual-toolbar.js +3 -1
  198. package/src/components/border-radius-control/index.js +2 -0
  199. package/src/components/colors/with-colors.js +2 -2
  200. package/src/components/colors-gradients/control.js +77 -65
  201. package/src/components/colors-gradients/style.scss +4 -0
  202. package/src/components/colors-gradients/test/control.js +16 -23
  203. package/src/components/date-format-picker/index.js +1 -0
  204. package/src/components/iframe/index.js +25 -6
  205. package/src/components/inserter/style.scss +1 -1
  206. package/src/components/link-control/index.js +1 -0
  207. package/src/components/link-control/test/index.js +6 -4
  208. package/src/components/list-view/block-select-button.js +29 -14
  209. package/src/components/list-view/drop-indicator.js +1 -1
  210. package/src/components/list-view/style.scss +18 -4
  211. package/src/components/media-placeholder/index.js +19 -0
  212. package/src/components/media-replace-flow/index.js +3 -6
  213. package/src/components/media-replace-flow/test/index.js +14 -4
  214. package/src/components/url-popover/index.js +1 -0
  215. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
  216. package/src/components/writing-flow/use-arrow-nav.js +32 -1
  217. package/src/components/writing-flow/use-multi-selection.js +1 -48
  218. package/src/components/writing-flow/use-selection-observer.js +2 -3
  219. package/src/hooks/color.js +10 -3
  220. package/src/hooks/index.js +1 -0
  221. package/src/hooks/layout.js +46 -20
  222. package/src/hooks/utils.js +7 -3
  223. package/src/index.js +1 -0
  224. package/src/layouts/flex.js +47 -41
  225. package/src/layouts/flow.js +14 -35
  226. package/src/layouts/test/flex.js +21 -0
  227. package/src/layouts/test/flow.js +21 -0
  228. package/src/layouts/test/utils.js +138 -0
  229. package/src/layouts/utils.js +44 -3
  230. package/src/store/actions.js +10 -11
  231. package/src/store/index.js +0 -4
  232. package/src/store/reducer.js +3 -2
  233. package/src/store/selectors.js +3 -4
  234. package/tsconfig.json +2 -1
@@ -31,7 +31,8 @@ export function useBlockClassNames(clientId) {
31
31
  getBlockName,
32
32
  getSettings,
33
33
  hasSelectedInnerBlock,
34
- isTyping
34
+ isTyping,
35
+ __unstableIsFullySelected
35
36
  } = select(blockEditorStore);
36
37
  const {
37
38
  outlineMode
@@ -42,10 +43,12 @@ export function useBlockClassNames(clientId) {
42
43
  const checkDeep = true; // "ancestor" is the more appropriate label due to "deep" check.
43
44
 
44
45
  const isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep);
46
+ const isMultiSelected = isBlockMultiSelected(clientId);
45
47
  return classnames({
46
48
  'is-selected': isSelected,
47
49
  'is-highlighted': isBlockHighlighted(clientId),
48
- 'is-multi-selected': isBlockMultiSelected(clientId),
50
+ 'is-multi-selected': isMultiSelected,
51
+ 'is-partially-selected': isMultiSelected && !__unstableIsFullySelected(),
49
52
  'is-reusable': isReusableBlock(getBlockType(name)),
50
53
  'is-dragging': isDragging,
51
54
  'has-child-selected': isAncestorOfSelectedBlock,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-class-names.js"],"names":["classnames","useSelect","isReusableBlock","getBlockType","store","blockEditorStore","useBlockClassNames","clientId","select","isBlockBeingDragged","isBlockHighlighted","isBlockSelected","isBlockMultiSelected","getBlockName","getSettings","hasSelectedInnerBlock","isTyping","outlineMode","isDragging","isSelected","name","checkDeep","isAncestorOfSelectedBlock"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,eAAT,EAA0BC,YAA1B,QAA8C,mBAA9C;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,gBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,kBAAT,CAA6BC,QAA7B,EAAwC;AAC9C,SAAON,SAAS,CACbO,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,mBADK;AAELC,MAAAA,kBAFK;AAGLC,MAAAA,eAHK;AAILC,MAAAA,oBAJK;AAKLC,MAAAA,YALK;AAMLC,MAAAA,WANK;AAOLC,MAAAA,qBAPK;AAQLC,MAAAA;AARK,QASFR,MAAM,CAAEH,gBAAF,CATV;AAUA,UAAM;AAAEY,MAAAA;AAAF,QAAkBH,WAAW,EAAnC;AACA,UAAMI,UAAU,GAAGT,mBAAmB,CAAEF,QAAF,CAAtC;AACA,UAAMY,UAAU,GAAGR,eAAe,CAAEJ,QAAF,CAAlC;AACA,UAAMa,IAAI,GAAGP,YAAY,CAAEN,QAAF,CAAzB;AACA,UAAMc,SAAS,GAAG,IAAlB,CAfa,CAgBb;;AACA,UAAMC,yBAAyB,GAAGP,qBAAqB,CACtDR,QADsD,EAEtDc,SAFsD,CAAvD;AAIA,WAAOrB,UAAU,CAAE;AAClB,qBAAemB,UADG;AAElB,wBAAkBT,kBAAkB,CAAEH,QAAF,CAFlB;AAGlB,2BAAqBK,oBAAoB,CAAEL,QAAF,CAHvB;AAIlB,qBAAeL,eAAe,CAAEC,YAAY,CAAEiB,IAAF,CAAd,CAJZ;AAKlB,qBAAeF,UALG;AAMlB,4BAAsBI,yBANJ;AAOlB,wBAAkBH,UAAU,IAAIF,WAAd,IAA6BD,QAAQ;AAPrC,KAAF,CAAjB;AASA,GA/Bc,EAgCf,CAAET,QAAF,CAhCe,CAAhB;AAkCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { isReusableBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Returns the class names used for the different states of the block.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {string} The class names.\n */\nexport function useBlockClassNames( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisTyping,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { outlineMode } = getSettings();\n\t\t\tconst isDragging = isBlockBeingDragged( clientId );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst name = getBlockName( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\t// \"ancestor\" is the more appropriate label due to \"deep\" check.\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\treturn classnames( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isBlockHighlighted( clientId ),\n\t\t\t\t'is-multi-selected': isBlockMultiSelected( clientId ),\n\t\t\t\t'is-reusable': isReusableBlock( getBlockType( name ) ),\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': isAncestorOfSelectedBlock,\n\t\t\t\t'remove-outline': isSelected && outlineMode && isTyping(),\n\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-block-class-names.js"],"names":["classnames","useSelect","isReusableBlock","getBlockType","store","blockEditorStore","useBlockClassNames","clientId","select","isBlockBeingDragged","isBlockHighlighted","isBlockSelected","isBlockMultiSelected","getBlockName","getSettings","hasSelectedInnerBlock","isTyping","__unstableIsFullySelected","outlineMode","isDragging","isSelected","name","checkDeep","isAncestorOfSelectedBlock","isMultiSelected"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,eAAT,EAA0BC,YAA1B,QAA8C,mBAA9C;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,gBAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,kBAAT,CAA6BC,QAA7B,EAAwC;AAC9C,SAAON,SAAS,CACbO,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,mBADK;AAELC,MAAAA,kBAFK;AAGLC,MAAAA,eAHK;AAILC,MAAAA,oBAJK;AAKLC,MAAAA,YALK;AAMLC,MAAAA,WANK;AAOLC,MAAAA,qBAPK;AAQLC,MAAAA,QARK;AASLC,MAAAA;AATK,QAUFT,MAAM,CAAEH,gBAAF,CAVV;AAWA,UAAM;AAAEa,MAAAA;AAAF,QAAkBJ,WAAW,EAAnC;AACA,UAAMK,UAAU,GAAGV,mBAAmB,CAAEF,QAAF,CAAtC;AACA,UAAMa,UAAU,GAAGT,eAAe,CAAEJ,QAAF,CAAlC;AACA,UAAMc,IAAI,GAAGR,YAAY,CAAEN,QAAF,CAAzB;AACA,UAAMe,SAAS,GAAG,IAAlB,CAhBa,CAiBb;;AACA,UAAMC,yBAAyB,GAAGR,qBAAqB,CACtDR,QADsD,EAEtDe,SAFsD,CAAvD;AAIA,UAAME,eAAe,GAAGZ,oBAAoB,CAAEL,QAAF,CAA5C;AACA,WAAOP,UAAU,CAAE;AAClB,qBAAeoB,UADG;AAElB,wBAAkBV,kBAAkB,CAAEH,QAAF,CAFlB;AAGlB,2BAAqBiB,eAHH;AAIlB,+BACCA,eAAe,IAAI,CAAEP,yBAAyB,EAL7B;AAMlB,qBAAef,eAAe,CAAEC,YAAY,CAAEkB,IAAF,CAAd,CANZ;AAOlB,qBAAeF,UAPG;AAQlB,4BAAsBI,yBARJ;AASlB,wBAAkBH,UAAU,IAAIF,WAAd,IAA6BF,QAAQ;AATrC,KAAF,CAAjB;AAWA,GAnCc,EAoCf,CAAET,QAAF,CApCe,CAAhB;AAsCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { isReusableBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Returns the class names used for the different states of the block.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {string} The class names.\n */\nexport function useBlockClassNames( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisTyping,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { outlineMode } = getSettings();\n\t\t\tconst isDragging = isBlockBeingDragged( clientId );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst name = getBlockName( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\t// \"ancestor\" is the more appropriate label due to \"deep\" check.\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\treturn classnames( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isBlockHighlighted( clientId ),\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected':\n\t\t\t\t\tisMultiSelected && ! __unstableIsFullySelected(),\n\t\t\t\t'is-reusable': isReusableBlock( getBlockType( name ) ),\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': isAncestorOfSelectedBlock,\n\t\t\t\t'remove-outline': isSelected && outlineMode && isTyping(),\n\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"]}
@@ -5,7 +5,7 @@ import { createElement, Fragment } from "@wordpress/element";
5
5
  */
6
6
  import { __, sprintf } from '@wordpress/i18n';
7
7
  import { useEffect, useState } from '@wordpress/element';
8
- import { Button, CheckboxControl, Flex, FlexItem, Icon, Modal } from '@wordpress/components';
8
+ import { Button, CheckboxControl, Flex, FlexItem, Icon, Modal, ToggleControl } from '@wordpress/components';
9
9
  import { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';
10
10
  import { useInstanceId } from '@wordpress/compose';
11
11
  import { useDispatch, useSelect } from '@wordpress/data';
@@ -17,6 +17,21 @@ import { isReusableBlock, getBlockType } from '@wordpress/blocks';
17
17
  import useBlockLock from './use-block-lock';
18
18
  import useBlockDisplayInformation from '../use-block-display-information';
19
19
  import { store as blockEditorStore } from '../../store';
20
+
21
+ function getTemplateLockValue(lock) {
22
+ // Prevents all operations.
23
+ if (lock.remove && lock.move) {
24
+ return 'all';
25
+ } // Prevents inserting or removing blocks, but allows moving existing blocks.
26
+
27
+
28
+ if (lock.remove && !lock.move) {
29
+ return 'insert';
30
+ }
31
+
32
+ return false;
33
+ }
34
+
20
35
  export default function BlockLockModal(_ref) {
21
36
  let {
22
37
  clientId,
@@ -32,16 +47,25 @@ export default function BlockLockModal(_ref) {
32
47
  canRemove
33
48
  } = useBlockLock(clientId);
34
49
  const {
35
- isReusable
50
+ isReusable,
51
+ templateLock,
52
+ hasTemplateLock
36
53
  } = useSelect(select => {
54
+ var _getBlockAttributes, _blockType$attributes;
55
+
37
56
  const {
38
- getBlockName
57
+ getBlockName,
58
+ getBlockAttributes
39
59
  } = select(blockEditorStore);
40
60
  const blockName = getBlockName(clientId);
61
+ const blockType = getBlockType(blockName);
41
62
  return {
42
- isReusable: isReusableBlock(getBlockType(blockName))
63
+ isReusable: isReusableBlock(blockType),
64
+ templateLock: (_getBlockAttributes = getBlockAttributes(clientId)) === null || _getBlockAttributes === void 0 ? void 0 : _getBlockAttributes.templateLock,
65
+ hasTemplateLock: !!(blockType !== null && blockType !== void 0 && (_blockType$attributes = blockType.attributes) !== null && _blockType$attributes !== void 0 && _blockType$attributes.templateLock)
43
66
  };
44
67
  }, [clientId]);
68
+ const [applyTemplateLock, setApplyTemplateLock] = useState(!!templateLock);
45
69
  const {
46
70
  updateBlockAttributes
47
71
  } = useDispatch(blockEditorStore);
@@ -69,7 +93,8 @@ export default function BlockLockModal(_ref) {
69
93
  onSubmit: event => {
70
94
  event.preventDefault();
71
95
  updateBlockAttributes([clientId], {
72
- lock
96
+ lock,
97
+ templateLock: applyTemplateLock ? getTemplateLockValue(lock) : undefined
73
98
  });
74
99
  onClose();
75
100
  }
@@ -123,7 +148,13 @@ export default function BlockLockModal(_ref) {
123
148
  onChange: remove => setLock(prevLock => ({ ...prevLock,
124
149
  remove
125
150
  }))
126
- })))), createElement(Flex, {
151
+ }))), hasTemplateLock && createElement(ToggleControl, {
152
+ className: "block-editor-block-lock-modal__template-lock",
153
+ label: __('Apply to all blocks inside'),
154
+ checked: applyTemplateLock,
155
+ disabled: lock.move && !lock.remove,
156
+ onChange: () => setApplyTemplateLock(!applyTemplateLock)
157
+ })), createElement(Flex, {
127
158
  className: "block-editor-block-lock-modal__actions",
128
159
  justify: "flex-end",
129
160
  expanded: false
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","lock","lockIcon","unlock","unlockIcon","useInstanceId","useDispatch","useSelect","isReusableBlock","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","BlockLockModal","clientId","onClose","setLock","move","remove","canEdit","canMove","canRemove","isReusable","select","getBlockName","blockName","updateBlockAttributes","blockInformation","instanceId","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","event","preventDefault","newValue","prevLock"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { isReusableBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { isReusable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName } = select( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\n\t\t\treturn {\n\t\t\t\tisReusable: isReusableBlock( getBlockType( blockName ) ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId(\n\t\tBlockLockModal,\n\t\t'block-editor-block-lock-modal__options-title'\n\t);\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( isReusable ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, isReusable ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], { lock } );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<div\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-labelledby={ instanceId }\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<span id={ instanceId }>{ __( 'Lock all' ) }</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t...( isReusable ? { edit: newValue } : {} ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ul className=\"block-editor-block-lock-modal__checklist\">\n\t\t\t\t\t\t{ isReusable && (\n\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.move\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.remove\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useInstanceId","useDispatch","useSelect","isReusableBlock","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","isReusable","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","instanceId","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","event","preventDefault","undefined","newValue","prevLock"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SACCC,MADD,EAECC,eAFD,EAGCC,IAHD,EAICC,QAJD,EAKCC,IALD,EAMCC,KAND,EAOCC,aAPD,QAQO,uBARP;AASA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,MAAM,IAAIC,UAArC,QAAuD,kBAAvD;AACA,SAASC,aAAT,QAA8B,oBAA9B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,eAAT,EAA0BC,YAA1B,QAA8C,mBAA9C;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,oBAAT,CAA+Bb,IAA/B,EAAsC;AACrC;AACA,MAAKA,IAAI,CAACc,MAAL,IAAed,IAAI,CAACe,IAAzB,EAAgC;AAC/B,WAAO,KAAP;AACA,GAJoC,CAMrC;;;AACA,MAAKf,IAAI,CAACc,MAAL,IAAe,CAAEd,IAAI,CAACe,IAA3B,EAAkC;AACjC,WAAO,QAAP;AACA;;AAED,SAAO,KAAP;AACA;;AAED,eAAe,SAASC,cAAT,OAAiD;AAAA,MAAxB;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAwB;AAC/D,QAAM,CAAElB,IAAF,EAAQmB,OAAR,IAAoB3B,QAAQ,CAAE;AAAEuB,IAAAA,IAAI,EAAE,KAAR;AAAeD,IAAAA,MAAM,EAAE;AAAvB,GAAF,CAAlC;AACA,QAAM;AAAEM,IAAAA,OAAF;AAAWC,IAAAA,OAAX;AAAoBC,IAAAA;AAApB,MAAkCb,YAAY,CAAEQ,QAAF,CAApD;AACA,QAAM;AAAEM,IAAAA,UAAF;AAAcC,IAAAA,YAAd;AAA4BC,IAAAA;AAA5B,MAAgDnB,SAAS,CAC5DoB,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QACLF,MAAM,CAAEd,gBAAF,CADP;AAEA,UAAMiB,SAAS,GAAGF,YAAY,CAAEV,QAAF,CAA9B;AACA,UAAMa,SAAS,GAAGtB,YAAY,CAAEqB,SAAF,CAA9B;AAEA,WAAO;AACNN,MAAAA,UAAU,EAAEhB,eAAe,CAAEuB,SAAF,CADrB;AAENN,MAAAA,YAAY,yBAAEI,kBAAkB,CAAEX,QAAF,CAApB,wDAAE,oBAAgCO,YAFxC;AAGNC,MAAAA,eAAe,EAAE,CAAC,EAAEK,SAAF,aAAEA,SAAF,wCAAEA,SAAS,CAAEC,UAAb,kDAAE,sBAAuBP,YAAzB;AAHZ,KAAP;AAKA,GAZ6D,EAa9D,CAAEP,QAAF,CAb8D,CAA/D;AAeA,QAAM,CAAEe,iBAAF,EAAqBC,oBAArB,IAA8CzC,QAAQ,CAC3D,CAAC,CAAEgC,YADwD,CAA5D;AAGA,QAAM;AAAEU,IAAAA;AAAF,MAA4B7B,WAAW,CAAEO,gBAAF,CAA7C;AACA,QAAMuB,gBAAgB,GAAGzB,0BAA0B,CAAEO,QAAF,CAAnD;AACA,QAAMmB,UAAU,GAAGhC,aAAa,CAC/BY,cAD+B,EAE/B,8CAF+B,CAAhC;AAKAzB,EAAAA,SAAS,CAAE,MAAM;AAChB4B,IAAAA,OAAO,CAAE;AACRJ,MAAAA,IAAI,EAAE,CAAEM,OADA;AAERP,MAAAA,MAAM,EAAE,CAAEQ,SAFF;AAGR,UAAKC,UAAU,GAAG;AAAEc,QAAAA,IAAI,EAAE,CAAEjB;AAAV,OAAH,GAAyB,EAAxC;AAHQ,KAAF,CAAP;AAKA,GANQ,EAMN,CAAEA,OAAF,EAAWC,OAAX,EAAoBC,SAApB,EAA+BC,UAA/B,CANM,CAAT;AAQA,QAAMe,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAexC,IAAf,EAAsByC,KAAtB,CAA6BC,OAA7B,CAArB;AACA,QAAMC,OAAO,GAAGJ,MAAM,CAACC,MAAP,CAAexC,IAAf,EAAsB4C,IAAtB,CAA4BF,OAA5B,KAAyC,CAAEJ,YAA3D;AAEA,SACC,cAAC,KAAD;AACC,IAAA,KAAK,EAAGhD,OAAO;AACd;AACAD,IAAAA,EAAE,CAAE,SAAF,CAFY,EAGd8C,gBAAgB,CAACU,KAHH,CADhB;AAMC,IAAA,gBAAgB,EAAC,+BANlB;AAOC,IAAA,UAAU,EAAGxD,EAAE,CAAE,OAAF,CAPhB;AAQC,IAAA,cAAc,EAAG6B;AARlB,KAUC;AACC,IAAA,QAAQ,EAAK4B,KAAF,IAAa;AACvBA,MAAAA,KAAK,CAACC,cAAN;AACAb,MAAAA,qBAAqB,CAAE,CAAEjB,QAAF,CAAF,EAAgB;AACpCjB,QAAAA,IADoC;AAEpCwB,QAAAA,YAAY,EAAEQ,iBAAiB,GAC5BnB,oBAAoB,CAAEb,IAAF,CADQ,GAE5BgD;AAJiC,OAAhB,CAArB;AAMA9B,MAAAA,OAAO;AACP;AAVF,KAYC,yBACG7B,EAAE,CACH,uEADG,CADL,CAZD,EAiBC;AACC,IAAA,IAAI,EAAC,OADN;AAEC,uBAAkB+C,UAFnB;AAGC,IAAA,SAAS,EAAC;AAHX,KAKC,cAAC,eAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EACJ;AAAM,MAAA,EAAE,EAAGA;AAAX,OAA0B/C,EAAE,CAAE,UAAF,CAA5B,CAHF;AAKC,IAAA,OAAO,EAAGiD,YALX;AAMC,IAAA,aAAa,EAAGK,OANjB;AAOC,IAAA,QAAQ,EAAKM,QAAF,IACV9B,OAAO,CAAE;AACRJ,MAAAA,IAAI,EAAEkC,QADE;AAERnC,MAAAA,MAAM,EAAEmC,QAFA;AAGR,UAAK1B,UAAU,GAAG;AAAEc,QAAAA,IAAI,EAAEY;AAAR,OAAH,GAAwB,EAAvC;AAHQ,KAAF;AART,IALD,EAoBC;AAAI,IAAA,SAAS,EAAC;AAAd,KACG1B,UAAU,IACX;AAAI,IAAA,SAAS,EAAC;AAAd,KACC,cAAC,eAAD;AACC,IAAA,KAAK,EACJ,8BACGlC,EAAE,CAAE,kBAAF,CADL,EAEC,cAAC,IAAD;AACC,MAAA,IAAI,EACHW,IAAI,CAACqC,IAAL,GACGpC,QADH,GAEGE;AAJL,MAFD,CAFF;AAaC,IAAA,OAAO,EAAG,CAAC,CAAEH,IAAI,CAACqC,IAbnB;AAcC,IAAA,QAAQ,EAAKA,IAAF,IACVlB,OAAO,CAAI+B,QAAF,KAAkB,EAC1B,GAAGA,QADuB;AAE1Bb,MAAAA;AAF0B,KAAlB,CAAF;AAfT,IADD,CAFF,EA0BC;AAAI,IAAA,SAAS,EAAC;AAAd,KACC,cAAC,eAAD;AACC,IAAA,KAAK,EACJ,8BACGhD,EAAE,CAAE,kBAAF,CADL,EAEC,cAAC,IAAD;AACC,MAAA,IAAI,EACHW,IAAI,CAACe,IAAL,GACGd,QADH,GAEGE;AAJL,MAFD,CAFF;AAaC,IAAA,OAAO,EAAGH,IAAI,CAACe,IAbhB;AAcC,IAAA,QAAQ,EAAKA,IAAF,IACVI,OAAO,CAAI+B,QAAF,KAAkB,EAC1B,GAAGA,QADuB;AAE1BnC,MAAAA;AAF0B,KAAlB,CAAF;AAfT,IADD,CA1BD,EAiDC;AAAI,IAAA,SAAS,EAAC;AAAd,KACC,cAAC,eAAD;AACC,IAAA,KAAK,EACJ,8BACG1B,EAAE,CAAE,iBAAF,CADL,EAEC,cAAC,IAAD;AACC,MAAA,IAAI,EACHW,IAAI,CAACc,MAAL,GACGb,QADH,GAEGE;AAJL,MAFD,CAFF;AAaC,IAAA,OAAO,EAAGH,IAAI,CAACc,MAbhB;AAcC,IAAA,QAAQ,EAAKA,MAAF,IACVK,OAAO,CAAI+B,QAAF,KAAkB,EAC1B,GAAGA,QADuB;AAE1BpC,MAAAA;AAF0B,KAAlB,CAAF;AAfT,IADD,CAjDD,CApBD,EA6FGW,eAAe,IAChB,cAAC,aAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EAAGpC,EAAE,CAAE,4BAAF,CAFX;AAGC,IAAA,OAAO,EAAG2C,iBAHX;AAIC,IAAA,QAAQ,EAAGhC,IAAI,CAACe,IAAL,IAAa,CAAEf,IAAI,CAACc,MAJhC;AAKC,IAAA,QAAQ,EAAG,MACVmB,oBAAoB,CAAE,CAAED,iBAAJ;AANtB,IA9FF,CAjBD,EA0HC,cAAC,IAAD;AACC,IAAA,SAAS,EAAC,wCADX;AAEC,IAAA,OAAO,EAAC,UAFT;AAGC,IAAA,QAAQ,EAAG;AAHZ,KAKC,cAAC,QAAD,QACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,UAAhB;AAA2B,IAAA,OAAO,EAAGd;AAArC,KACG7B,EAAE,CAAE,QAAF,CADL,CADD,CALD,EAUC,cAAC,QAAD,QACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,IAAI,EAAC;AAA/B,KACGA,EAAE,CAAE,OAAF,CADL,CADD,CAVD,CA1HD,CAVD,CADD;AAwJA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { isReusableBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { isReusable, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId(\n\t\tBlockLockModal,\n\t\t'block-editor-block-lock-modal__options-title'\n\t);\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( isReusable ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, isReusable ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<div\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-labelledby={ instanceId }\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-title\"\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<span id={ instanceId }>{ __( 'Lock all' ) }</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t...( isReusable ? { edit: newValue } : {} ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ul className=\"block-editor-block-lock-modal__checklist\">\n\t\t\t\t\t\t{ isReusable && (\n\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.move\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tmove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.remove\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\tremove,\n\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"]}
@@ -8,7 +8,7 @@ import { useDispatch } from '@wordpress/data';
8
8
  import { cloneBlock } from '@wordpress/blocks';
9
9
  import { VisuallyHidden, __unstableComposite as Composite, __unstableUseCompositeState as useCompositeState, __unstableCompositeItem as CompositeItem } from '@wordpress/components';
10
10
  import { useState } from '@wordpress/element';
11
- import { useInstanceId, useResizeObserver } from '@wordpress/compose';
11
+ import { useInstanceId } from '@wordpress/compose';
12
12
  import { __ } from '@wordpress/i18n';
13
13
  /**
14
14
  * Internal dependencies
@@ -25,8 +25,7 @@ const SetupContent = _ref => {
25
25
  viewMode,
26
26
  activeSlide,
27
27
  patterns,
28
- onBlockPatternSelect,
29
- height
28
+ onBlockPatternSelect
30
29
  } = _ref;
31
30
  const composite = useCompositeState();
32
31
  const containerClass = 'block-editor-block-pattern-setup__container';
@@ -34,10 +33,7 @@ const SetupContent = _ref => {
34
33
  if (viewMode === VIEWMODES.carousel) {
35
34
  const slideClass = new Map([[activeSlide, 'active-slide'], [activeSlide - 1, 'previous-slide'], [activeSlide + 1, 'next-slide']]);
36
35
  return createElement("div", {
37
- className: "block-editor-block-pattern-setup__carousel",
38
- style: {
39
- height
40
- }
36
+ className: "block-editor-block-pattern-setup__carousel"
41
37
  }, createElement("div", {
42
38
  className: containerClass
43
39
  }, createElement("ul", {
@@ -45,15 +41,11 @@ const SetupContent = _ref => {
45
41
  }, patterns.map((pattern, index) => createElement(BlockPatternSlide, {
46
42
  className: slideClass.get(index) || '',
47
43
  key: pattern.name,
48
- pattern: pattern,
49
- minHeight: height
44
+ pattern: pattern
50
45
  })))));
51
46
  }
52
47
 
53
48
  return createElement("div", {
54
- style: {
55
- height
56
- },
57
49
  className: "block-editor-block-pattern-setup__grid"
58
50
  }, createElement(Composite, _extends({}, composite, {
59
51
  role: "listbox",
@@ -135,9 +127,6 @@ const BlockPatternSetup = _ref4 => {
135
127
  replaceBlock
136
128
  } = useDispatch(blockEditorStore);
137
129
  const patterns = usePatternsSetup(clientId, blockName, filterPatternsFn);
138
- const [contentResizeListener, {
139
- height: contentHeight
140
- }] = useResizeObserver();
141
130
 
142
131
  if (!(patterns !== null && patterns !== void 0 && patterns.length)) {
143
132
  return null;
@@ -149,14 +138,13 @@ const BlockPatternSetup = _ref4 => {
149
138
  };
150
139
 
151
140
  const onPatternSelectCallback = onBlockPatternSelect || onBlockPatternSelectDefault;
152
- return createElement(Fragment, null, contentResizeListener, createElement("div", {
141
+ return createElement(Fragment, null, createElement("div", {
153
142
  className: `block-editor-block-pattern-setup view-mode-${viewMode}`
154
143
  }, createElement(SetupContent, {
155
144
  viewMode: viewMode,
156
145
  activeSlide: activeSlide,
157
146
  patterns: patterns,
158
- onBlockPatternSelect: onPatternSelectCallback,
159
- height: contentHeight - 2 * 60
147
+ onBlockPatternSelect: onPatternSelectCallback
160
148
  }), createElement(SetupToolbar, {
161
149
  viewMode: viewMode,
162
150
  setViewMode: setViewMode,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["useDispatch","cloneBlock","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","useState","useInstanceId","useResizeObserver","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","height","composite","containerClass","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","setViewMode","setActiveSlide","replaceBlock","contentResizeListener","contentHeight","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useResizeObserver } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n\theight,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-block-pattern-setup__carousel\"\n\t\t\t\tstyle={ { height } }\n\t\t\t>\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t\tminHeight={ height }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div\n\t\t\tstyle={ { height } }\n\t\t\tclassName=\"block-editor-block-pattern-setup__grid\"\n\t\t>\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( VIEWMODES.carousel );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t{ contentResizeListener }\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t\theight={ contentHeight - 2 * 60 }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["useDispatch","cloneBlock","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","useState","useInstanceId","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","composite","containerClass","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","setViewMode","setActiveSlide","replaceBlock","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( VIEWMODES.carousel );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
@@ -157,7 +157,7 @@ function BlockPopoverInbetween(_ref) {
157
157
  animate: false,
158
158
  getAnchorRect: getAnchorRect,
159
159
  focusOnMount: false // Render in the old slot if needed for backward compatibility,
160
- // otherwise render in place (not in the the default popover slot).
160
+ // otherwise render in place (not in the default popover slot).
161
161
  ,
162
162
  __unstableSlotName: __unstablePopoverSlot || null // Forces a remount of the popover when its position changes
163
163
  // This makes sure the popover doesn't animate from its previous position.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useMemo, createContext } from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId( previousClientId );\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement, isVertical ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\tif ( ! previousElement || ! nextElement || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\t__unstableForcePosition\n\t\t>\n\t\t\t<div style={ style }>{ children }</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useMemo, createContext } from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId( previousClientId );\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement, isVertical ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\tif ( ! previousElement || ! nextElement || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\t__unstableForcePosition\n\t\t>\n\t\t\t<div style={ style }>{ children }</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
@@ -57,7 +57,7 @@ export default function BlockPopover(_ref) {
57
57
  position: "top right left",
58
58
  focusOnMount: false,
59
59
  anchorRef: anchorRef // Render in the old slot if needed for backward compatibility,
60
- // otherwise render in place (not in the the default popover slot).
60
+ // otherwise render in place (not in the default popover slot).
61
61
  ,
62
62
  __unstableSlotName: __unstablePopoverSlot || null // Observe movement for block animations (especially horizontal).
63
63
  ,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","Popover","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","popoverScrollRef","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,eAAe,SAASC,YAAT,OASX;AAAA,MATkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,cAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,qBAJqC;AAKrCC,IAAAA,qBAAqB,GAAG,KALa;AAMrCC,IAAAA,qBANqC;AAOrCC,IAAAA,oBAPqC;AAQrC,OAAGC;AARkC,GASlC;AACH,QAAMC,eAAe,GAAGX,eAAe,CAAEG,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGZ,eAAe,CAAEI,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,gBAAgB,GAAGZ,gBAAgB,CAAEQ,oBAAF,CAAzC;AACA,QAAMK,KAAK,GAAGhB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEa,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,gBADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C,CASC;AATD;AAUC,IAAA,wBAAwB,EAAGG,eAV5B;AAWC,IAAA,uBAAuB,MAXxB;AAYC,IAAA,eAAe;AAZhB,KAaMD,KAbN;AAcC,IAAA,SAAS,EAAGd,UAAU,CACrB,4BADqB,EAErBc,KAAK,CAACa,SAFe;AAdvB,MAmBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAnB5B,EAoBG,CAAEE,qBAAF,IAA2BF,QApB9B,CADD;AAwBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport default function BlockPopover( {\n\tclientId,\n\tbottomClientId,\n\tchildren,\n\t__unstableRefreshSize,\n\t__unstableCoverTarget = false,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Observe movement for block animations (especially horizontal).\n\t\t\t__unstableObserveElement={ selectedElement }\n\t\t\t__unstableForcePosition\n\t\t\t__unstableShift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","Popover","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","popoverScrollRef","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,eAAe,SAASC,YAAT,OASX;AAAA,MATkC;AACrCC,IAAAA,QADqC;AAErCC,IAAAA,cAFqC;AAGrCC,IAAAA,QAHqC;AAIrCC,IAAAA,qBAJqC;AAKrCC,IAAAA,qBAAqB,GAAG,KALa;AAMrCC,IAAAA,qBANqC;AAOrCC,IAAAA,oBAPqC;AAQrC,OAAGC;AARkC,GASlC;AACH,QAAMC,eAAe,GAAGX,eAAe,CAAEG,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGZ,eAAe,CAAEI,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,gBAAgB,GAAGZ,gBAAgB,CAAEQ,oBAAF,CAAzC;AACA,QAAMK,KAAK,GAAGhB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEa,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,gBADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C,CASC;AATD;AAUC,IAAA,wBAAwB,EAAGG,eAV5B;AAWC,IAAA,uBAAuB,MAXxB;AAYC,IAAA,eAAe;AAZhB,KAaMD,KAbN;AAcC,IAAA,SAAS,EAAGd,UAAU,CACrB,4BADqB,EAErBc,KAAK,CAACa,SAFe;AAdvB,MAmBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAnB5B,EAoBG,CAAEE,qBAAF,IAA2BF,QApB9B,CADD;AAwBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport default function BlockPopover( {\n\tclientId,\n\tbottomClientId,\n\tchildren,\n\t__unstableRefreshSize,\n\t__unstableCoverTarget = false,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Observe movement for block animations (especially horizontal).\n\t\t\t__unstableObserveElement={ selectedElement }\n\t\t\t__unstableForcePosition\n\t\t\t__unstableShift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n"]}
@@ -25,7 +25,7 @@ export function BlockModeToggle(_ref) {
25
25
  isCodeEditingEnabled = true
26
26
  } = _ref;
27
27
 
28
- if (!hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) {
28
+ if (!blockType || !hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) {
29
29
  return null;
30
30
  }
31
31
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"names":["__","MenuItem","getBlockType","hasBlockSupport","withSelect","withDispatch","compose","store","blockEditorStore","noop","BlockModeToggle","blockType","mode","onToggleMode","small","isCodeEditingEnabled","label","select","clientId","getBlock","getBlockMode","getSettings","block","codeEditingEnabled","name","dispatch","onToggle","toggleBlockMode"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,OAAO,SAASC,eAAT,OAMH;AAAA,MAN6B;AAChCC,IAAAA,SADgC;AAEhCC,IAAAA,IAFgC;AAGhCC,IAAAA,YAHgC;AAIhCC,IAAAA,KAAK,GAAG,KAJwB;AAKhCC,IAAAA,oBAAoB,GAAG;AALS,GAM7B;;AACH,MACC,CAAEZ,eAAe,CAAEQ,SAAF,EAAa,MAAb,EAAqB,IAArB,CAAjB,IACA,CAAEI,oBAFH,EAGE;AACD,WAAO,IAAP;AACA;;AAED,QAAMC,KAAK,GACVJ,IAAI,KAAK,QAAT,GAAoBZ,EAAE,CAAE,cAAF,CAAtB,GAA2CA,EAAE,CAAE,eAAF,CAD9C;AAGA,SAAO,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGa;AAApB,KAAqC,CAAEC,KAAF,IAAWE,KAAhD,CAAP;AACA;AAED,eAAeV,OAAO,CAAE,CACvBF,UAAU,CAAE,CAAEa,MAAF,YAA4B;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACvC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,MACLJ,MAAM,CAAET,gBAAF,CADP;AAEA,QAAMc,KAAK,GAAGH,QAAQ,CAAED,QAAF,CAAtB;AACA,QAAMH,oBAAoB,GAAGM,WAAW,GAAGE,kBAA3C;AAEA,SAAO;AACNX,IAAAA,IAAI,EAAEQ,YAAY,CAAEF,QAAF,CADZ;AAENP,IAAAA,SAAS,EAAEW,KAAK,GAAGpB,YAAY,CAAEoB,KAAK,CAACE,IAAR,CAAf,GAAgC,IAF1C;AAGNT,IAAAA;AAHM,GAAP;AAKA,CAXS,CADa,EAavBV,YAAY,CAAE,CAAEoB,QAAF;AAAA,MAAY;AAAEC,IAAAA,QAAQ,GAAGjB,IAAb;AAAmBS,IAAAA;AAAnB,GAAZ;AAAA,SAAiD;AAC9DL,IAAAA,YAAY,GAAG;AACdY,MAAAA,QAAQ,CAAEjB,gBAAF,CAAR,CAA6BmB,eAA7B,CAA8CT,QAA9C;AACAQ,MAAAA,QAAQ;AACR;;AAJ6D,GAAjD;AAAA,CAAF,CAbW,CAAF,CAAP,CAmBVhB,eAnBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport function BlockModeToggle( {\n\tblockType,\n\tmode,\n\tonToggleMode,\n\tsmall = false,\n\tisCodeEditingEnabled = true,\n} ) {\n\tif (\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn <MenuItem onClick={ onToggleMode }>{ ! small && label }</MenuItem>;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst isCodeEditingEnabled = getSettings().codeEditingEnabled;\n\n\t\treturn {\n\t\t\tmode: getBlockMode( clientId ),\n\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\tisCodeEditingEnabled,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {\n\t\tonToggleMode() {\n\t\t\tdispatch( blockEditorStore ).toggleBlockMode( clientId );\n\t\t\tonToggle();\n\t\t},\n\t} ) ),\n] )( BlockModeToggle );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"names":["__","MenuItem","getBlockType","hasBlockSupport","withSelect","withDispatch","compose","store","blockEditorStore","noop","BlockModeToggle","blockType","mode","onToggleMode","small","isCodeEditingEnabled","label","select","clientId","getBlock","getBlockMode","getSettings","block","codeEditingEnabled","name","dispatch","onToggle","toggleBlockMode"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,OAAO,SAASC,eAAT,OAMH;AAAA,MAN6B;AAChCC,IAAAA,SADgC;AAEhCC,IAAAA,IAFgC;AAGhCC,IAAAA,YAHgC;AAIhCC,IAAAA,KAAK,GAAG,KAJwB;AAKhCC,IAAAA,oBAAoB,GAAG;AALS,GAM7B;;AACH,MACC,CAAEJ,SAAF,IACA,CAAER,eAAe,CAAEQ,SAAF,EAAa,MAAb,EAAqB,IAArB,CADjB,IAEA,CAAEI,oBAHH,EAIE;AACD,WAAO,IAAP;AACA;;AAED,QAAMC,KAAK,GACVJ,IAAI,KAAK,QAAT,GAAoBZ,EAAE,CAAE,cAAF,CAAtB,GAA2CA,EAAE,CAAE,eAAF,CAD9C;AAGA,SAAO,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGa;AAApB,KAAqC,CAAEC,KAAF,IAAWE,KAAhD,CAAP;AACA;AAED,eAAeV,OAAO,CAAE,CACvBF,UAAU,CAAE,CAAEa,MAAF,YAA4B;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACvC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,MACLJ,MAAM,CAAET,gBAAF,CADP;AAEA,QAAMc,KAAK,GAAGH,QAAQ,CAAED,QAAF,CAAtB;AACA,QAAMH,oBAAoB,GAAGM,WAAW,GAAGE,kBAA3C;AAEA,SAAO;AACNX,IAAAA,IAAI,EAAEQ,YAAY,CAAEF,QAAF,CADZ;AAENP,IAAAA,SAAS,EAAEW,KAAK,GAAGpB,YAAY,CAAEoB,KAAK,CAACE,IAAR,CAAf,GAAgC,IAF1C;AAGNT,IAAAA;AAHM,GAAP;AAKA,CAXS,CADa,EAavBV,YAAY,CAAE,CAAEoB,QAAF;AAAA,MAAY;AAAEC,IAAAA,QAAQ,GAAGjB,IAAb;AAAmBS,IAAAA;AAAnB,GAAZ;AAAA,SAAiD;AAC9DL,IAAAA,YAAY,GAAG;AACdY,MAAAA,QAAQ,CAAEjB,gBAAF,CAAR,CAA6BmB,eAA7B,CAA8CT,QAA9C;AACAQ,MAAAA,QAAQ;AACR;;AAJ6D,GAAjD;AAAA,CAAF,CAbW,CAAF,CAAP,CAmBVhB,eAnBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport function BlockModeToggle( {\n\tblockType,\n\tmode,\n\tonToggleMode,\n\tsmall = false,\n\tisCodeEditingEnabled = true,\n} ) {\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn <MenuItem onClick={ onToggleMode }>{ ! small && label }</MenuItem>;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst isCodeEditingEnabled = getSettings().codeEditingEnabled;\n\n\t\treturn {\n\t\t\tmode: getBlockMode( clientId ),\n\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\tisCodeEditingEnabled,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {\n\t\tonToggleMode() {\n\t\t\tdispatch( blockEditorStore ).toggleBlockMode( clientId );\n\t\t\tonToggle();\n\t\t},\n\t} ) ),\n] )( BlockModeToggle );\n"]}
@@ -114,7 +114,10 @@ export function BlockSettingsDropdown(_ref2) {
114
114
  __experimentalSelectBlock(ids[0]);
115
115
  }
116
116
  } : noop, [__experimentalSelectBlock]);
117
- const blockTitle = useBlockDisplayTitle(firstBlockClientId, 25);
117
+ const blockTitle = useBlockDisplayTitle({
118
+ clientId: firstBlockClientId,
119
+ maximumLength: 25
120
+ });
118
121
  const updateSelectionAfterRemove = useCallback(__experimentalSelectBlock ? () => {
119
122
  const blockToSelect = previousBlockClientId || nextBlockClientId;
120
123
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","noop","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","copyMenuItemLabel","length","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","onClose","undefined","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( firstBlockClientId, 25 );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","noop","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","copyMenuItemLabel","length","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","clientId","maximumLength","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","onClose","undefined","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: firstBlockClientId,\n\t\tmaximumLength: 25,\n\t} );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
@@ -3,7 +3,8 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { View, TouchableWithoutFeedback, Text, Dimensions, Animated, Easing, Image } from 'react-native';
6
+ import { View, TouchableWithoutFeedback, Text, Dimensions, Animated, Easing } from 'react-native';
7
+ import FastImage from 'react-native-fast-image';
7
8
  /**
8
9
  * WordPress dependencies
9
10
  */
@@ -80,7 +81,7 @@ function StylePreview(_ref) {
80
81
  }]
81
82
  }, createElement(View, {
82
83
  style: styles.imageWrapper
83
- }, isActive && getOutline([styles.outline, innerOutlineStyle]), createElement(Image, {
84
+ }, isActive && getOutline([styles.outline, innerOutlineStyle]), createElement(FastImage, {
84
85
  style: [styles.image, styles[name]],
85
86
  source: {
86
87
  uri: url