@wordpress/block-editor 13.1.0 → 13.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +19 -17
  2. package/README.md +1 -1
  3. package/build/components/block-lock/modal.js +67 -67
  4. package/build/components/block-lock/modal.js.map +1 -1
  5. package/build/components/block-mover/index.js +12 -6
  6. package/build/components/block-mover/index.js.map +1 -1
  7. package/build/components/block-toolbar/shuffle.js +3 -1
  8. package/build/components/block-toolbar/shuffle.js.map +1 -1
  9. package/build/components/child-layout-control/index.js +185 -127
  10. package/build/components/child-layout-control/index.js.map +1 -1
  11. package/build/components/global-styles/use-global-styles-output.js +4 -3
  12. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  13. package/build/components/grid/grid-item-movers.js +97 -0
  14. package/build/components/grid/grid-item-movers.js.map +1 -0
  15. package/build/components/{grid-visualizer → grid}/grid-item-resizer.js +18 -56
  16. package/build/components/grid/grid-item-resizer.js.map +1 -0
  17. package/build/components/grid/grid-visualizer.js +225 -0
  18. package/build/components/grid/grid-visualizer.js.map +1 -0
  19. package/build/components/{grid-visualizer → grid}/index.js +14 -0
  20. package/build/components/grid/index.js.map +1 -0
  21. package/build/components/grid/use-get-number-of-blocks-before-cell.js +40 -0
  22. package/build/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  23. package/build/components/grid/use-grid-layout-sync.js +162 -0
  24. package/build/components/grid/use-grid-layout-sync.js.map +1 -0
  25. package/build/components/grid/utils.js +145 -0
  26. package/build/components/grid/utils.js.map +1 -0
  27. package/build/components/image-editor/aspect-ratio-dropdown.js +0 -1
  28. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  29. package/build/components/inner-blocks/index.js +1 -1
  30. package/build/components/inner-blocks/index.js.map +1 -1
  31. package/build/components/rich-text/event-listeners/input-rules.js +1 -0
  32. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  33. package/build/components/rich-text/index.native.js +10 -4
  34. package/build/components/rich-text/index.native.js.map +1 -1
  35. package/build/components/rich-text/native/index.native.js +14 -0
  36. package/build/components/rich-text/native/index.native.js.map +1 -1
  37. package/build/hooks/block-style-variation.js +26 -7
  38. package/build/hooks/block-style-variation.js.map +1 -1
  39. package/build/hooks/layout-child.js +29 -21
  40. package/build/hooks/layout-child.js.map +1 -1
  41. package/build/hooks/utils.js +3 -2
  42. package/build/hooks/utils.js.map +1 -1
  43. package/build/layouts/grid.js +24 -47
  44. package/build/layouts/grid.js.map +1 -1
  45. package/build/lock-unlock.js +1 -1
  46. package/build/lock-unlock.js.map +1 -1
  47. package/build/store/actions.js +17 -1
  48. package/build/store/actions.js.map +1 -1
  49. package/build-module/components/block-lock/modal.js +67 -67
  50. package/build-module/components/block-lock/modal.js.map +1 -1
  51. package/build-module/components/block-mover/index.js +12 -6
  52. package/build-module/components/block-mover/index.js.map +1 -1
  53. package/build-module/components/block-toolbar/shuffle.js +3 -1
  54. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  55. package/build-module/components/child-layout-control/index.js +185 -127
  56. package/build-module/components/child-layout-control/index.js.map +1 -1
  57. package/build-module/components/global-styles/use-global-styles-output.js +4 -3
  58. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  59. package/build-module/components/grid/grid-item-movers.js +90 -0
  60. package/build-module/components/grid/grid-item-movers.js.map +1 -0
  61. package/build-module/components/{grid-visualizer → grid}/grid-item-resizer.js +13 -51
  62. package/build-module/components/grid/grid-item-resizer.js.map +1 -0
  63. package/build-module/components/grid/grid-visualizer.js +217 -0
  64. package/build-module/components/grid/grid-visualizer.js.map +1 -0
  65. package/build-module/components/grid/index.js +5 -0
  66. package/build-module/components/grid/index.js.map +1 -0
  67. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js +33 -0
  68. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  69. package/build-module/components/grid/use-grid-layout-sync.js +155 -0
  70. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -0
  71. package/build-module/components/grid/utils.js +131 -0
  72. package/build-module/components/grid/utils.js.map +1 -0
  73. package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -1
  74. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  75. package/build-module/components/inner-blocks/index.js +1 -1
  76. package/build-module/components/inner-blocks/index.js.map +1 -1
  77. package/build-module/components/rich-text/event-listeners/input-rules.js +1 -1
  78. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  79. package/build-module/components/rich-text/index.native.js +11 -5
  80. package/build-module/components/rich-text/index.native.js.map +1 -1
  81. package/build-module/components/rich-text/native/index.native.js +14 -0
  82. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  83. package/build-module/hooks/block-style-variation.js +25 -7
  84. package/build-module/hooks/block-style-variation.js.map +1 -1
  85. package/build-module/hooks/layout-child.js +27 -19
  86. package/build-module/hooks/layout-child.js.map +1 -1
  87. package/build-module/hooks/utils.js +3 -2
  88. package/build-module/hooks/utils.js.map +1 -1
  89. package/build-module/layouts/grid.js +24 -47
  90. package/build-module/layouts/grid.js.map +1 -1
  91. package/build-module/lock-unlock.js +1 -1
  92. package/build-module/lock-unlock.js.map +1 -1
  93. package/build-module/store/actions.js +17 -1
  94. package/build-module/store/actions.js.map +1 -1
  95. package/build-style/style-rtl.css +39 -18
  96. package/build-style/style.css +39 -18
  97. package/package.json +31 -31
  98. package/src/components/block-lock/modal.js +95 -82
  99. package/src/components/block-lock/style.scss +11 -1
  100. package/src/components/block-mover/index.js +37 -24
  101. package/src/components/block-toolbar/shuffle.js +3 -1
  102. package/src/components/child-layout-control/index.js +224 -159
  103. package/src/components/global-styles/test/use-global-styles-output.js +38 -3
  104. package/src/components/global-styles/use-global-styles-output.js +4 -3
  105. package/src/components/grid/grid-item-movers.js +128 -0
  106. package/src/components/{grid-visualizer → grid}/grid-item-resizer.js +14 -52
  107. package/src/components/grid/grid-visualizer.js +267 -0
  108. package/src/components/grid/index.js +4 -0
  109. package/src/components/grid/style.scss +63 -0
  110. package/src/components/grid/use-get-number-of-blocks-before-cell.js +30 -0
  111. package/src/components/grid/use-grid-layout-sync.js +167 -0
  112. package/src/components/grid/utils.js +178 -0
  113. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -1
  114. package/src/components/inner-blocks/index.js +3 -1
  115. package/src/components/rich-text/event-listeners/input-rules.js +1 -1
  116. package/src/components/rich-text/index.native.js +10 -8
  117. package/src/components/rich-text/native/index.native.js +17 -0
  118. package/src/hooks/block-style-variation.js +24 -6
  119. package/src/hooks/layout-child.js +34 -14
  120. package/src/hooks/utils.js +3 -1
  121. package/src/layouts/grid.js +54 -62
  122. package/src/lock-unlock.js +1 -1
  123. package/src/store/actions.js +21 -1
  124. package/src/style.scss +1 -1
  125. package/build/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  126. package/build/components/grid-visualizer/grid-visualizer.js +0 -92
  127. package/build/components/grid-visualizer/grid-visualizer.js.map +0 -1
  128. package/build/components/grid-visualizer/index.js.map +0 -1
  129. package/build/components/grid-visualizer/utils.js +0 -10
  130. package/build/components/grid-visualizer/utils.js.map +0 -1
  131. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  132. package/build-module/components/grid-visualizer/grid-visualizer.js +0 -84
  133. package/build-module/components/grid-visualizer/grid-visualizer.js.map +0 -1
  134. package/build-module/components/grid-visualizer/index.js +0 -3
  135. package/build-module/components/grid-visualizer/index.js.map +0 -1
  136. package/build-module/components/grid-visualizer/utils.js +0 -4
  137. package/build-module/components/grid-visualizer/utils.js.map +0 -1
  138. package/src/components/grid-visualizer/grid-visualizer.js +0 -101
  139. package/src/components/grid-visualizer/index.js +0 -2
  140. package/src/components/grid-visualizer/style.scss +0 -34
  141. package/src/components/grid-visualizer/utils.js +0 -5
  142. /package/src/components/font-sizes/{README.MD → README.md} +0 -0
@@ -5,7 +5,6 @@ import { __, sprintf } from '@wordpress/i18n';
5
5
  import { useEffect, useState } from '@wordpress/element';
6
6
  import { Button, CheckboxControl, Flex, FlexItem, Icon, Modal, ToggleControl } from '@wordpress/components';
7
7
  import { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';
8
- import { useInstanceId } from '@wordpress/compose';
9
8
  import { useDispatch, useSelect } from '@wordpress/data';
10
9
  import { getBlockType } from '@wordpress/blocks';
11
10
 
@@ -67,7 +66,6 @@ export default function BlockLockModal({
67
66
  updateBlockAttributes
68
67
  } = useDispatch(blockEditorStore);
69
68
  const blockInformation = useBlockDisplayInformation(clientId);
70
- const instanceId = useInstanceId(BlockLockModal, 'block-editor-block-lock-modal__options-title');
71
69
  useEffect(() => {
72
70
  setLock({
73
71
  move: !canMove,
@@ -79,14 +77,12 @@ export default function BlockLockModal({
79
77
  }, [canEdit, canMove, canRemove, allowsEditLocking]);
80
78
  const isAllChecked = Object.values(lock).every(Boolean);
81
79
  const isMixed = Object.values(lock).some(Boolean) && !isAllChecked;
82
- return /*#__PURE__*/_jsxs(Modal, {
80
+ return /*#__PURE__*/_jsx(Modal, {
83
81
  title: sprintf( /* translators: %s: Name of the block. */
84
82
  __('Lock %s'), blockInformation.title),
85
83
  overlayClassName: "block-editor-block-lock-modal",
86
84
  onRequestClose: onClose,
87
- children: [/*#__PURE__*/_jsx("p", {
88
- children: __('Choose specific attributes to restrict or lock all available options.')
89
- }), /*#__PURE__*/_jsxs("form", {
85
+ children: /*#__PURE__*/_jsxs("form", {
90
86
  onSubmit: event => {
91
87
  event.preventDefault();
92
88
  updateBlockAttributes([clientId], {
@@ -95,71 +91,75 @@ export default function BlockLockModal({
95
91
  });
96
92
  onClose();
97
93
  },
98
- children: [/*#__PURE__*/_jsxs("div", {
99
- role: "group",
100
- "aria-labelledby": instanceId,
94
+ children: [/*#__PURE__*/_jsxs("fieldset", {
101
95
  className: "block-editor-block-lock-modal__options",
102
- children: [/*#__PURE__*/_jsx(CheckboxControl, {
103
- __nextHasNoMarginBottom: true,
104
- className: "block-editor-block-lock-modal__options-title",
105
- label: /*#__PURE__*/_jsx("span", {
106
- id: instanceId,
107
- children: __('Lock all')
108
- }),
109
- checked: isAllChecked,
110
- indeterminate: isMixed,
111
- onChange: newValue => setLock({
112
- move: newValue,
113
- remove: newValue,
114
- ...(allowsEditLocking ? {
115
- edit: newValue
116
- } : {})
117
- })
118
- }), /*#__PURE__*/_jsxs("ul", {
96
+ children: [/*#__PURE__*/_jsx("legend", {
97
+ children: __('Choose specific attributes to restrict or lock all available options.')
98
+ }), /*#__PURE__*/_jsx("ul", {
99
+ role: "list",
119
100
  className: "block-editor-block-lock-modal__checklist",
120
- children: [allowsEditLocking && /*#__PURE__*/_jsxs("li", {
121
- className: "block-editor-block-lock-modal__checklist-item",
122
- children: [/*#__PURE__*/_jsx(CheckboxControl, {
123
- __nextHasNoMarginBottom: true,
124
- label: __('Restrict editing'),
125
- checked: !!lock.edit,
126
- onChange: edit => setLock(prevLock => ({
127
- ...prevLock,
128
- edit
129
- }))
130
- }), /*#__PURE__*/_jsx(Icon, {
131
- className: "block-editor-block-lock-modal__lock-icon",
132
- icon: lock.edit ? lockIcon : unlockIcon
133
- })]
134
- }), /*#__PURE__*/_jsxs("li", {
135
- className: "block-editor-block-lock-modal__checklist-item",
101
+ children: /*#__PURE__*/_jsxs("li", {
136
102
  children: [/*#__PURE__*/_jsx(CheckboxControl, {
137
103
  __nextHasNoMarginBottom: true,
138
- label: __('Disable movement'),
139
- checked: lock.move,
140
- onChange: move => setLock(prevLock => ({
141
- ...prevLock,
142
- move
143
- }))
144
- }), /*#__PURE__*/_jsx(Icon, {
145
- className: "block-editor-block-lock-modal__lock-icon",
146
- icon: lock.move ? lockIcon : unlockIcon
104
+ className: "block-editor-block-lock-modal__options-all",
105
+ label: __('Lock all'),
106
+ checked: isAllChecked,
107
+ indeterminate: isMixed,
108
+ onChange: newValue => setLock({
109
+ move: newValue,
110
+ remove: newValue,
111
+ ...(allowsEditLocking ? {
112
+ edit: newValue
113
+ } : {})
114
+ })
115
+ }), /*#__PURE__*/_jsxs("ul", {
116
+ role: "list",
117
+ className: "block-editor-block-lock-modal__checklist",
118
+ children: [allowsEditLocking && /*#__PURE__*/_jsxs("li", {
119
+ className: "block-editor-block-lock-modal__checklist-item",
120
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
121
+ __nextHasNoMarginBottom: true,
122
+ label: __('Restrict editing'),
123
+ checked: !!lock.edit,
124
+ onChange: edit => setLock(prevLock => ({
125
+ ...prevLock,
126
+ edit
127
+ }))
128
+ }), /*#__PURE__*/_jsx(Icon, {
129
+ className: "block-editor-block-lock-modal__lock-icon",
130
+ icon: lock.edit ? lockIcon : unlockIcon
131
+ })]
132
+ }), /*#__PURE__*/_jsxs("li", {
133
+ className: "block-editor-block-lock-modal__checklist-item",
134
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
135
+ __nextHasNoMarginBottom: true,
136
+ label: __('Disable movement'),
137
+ checked: lock.move,
138
+ onChange: move => setLock(prevLock => ({
139
+ ...prevLock,
140
+ move
141
+ }))
142
+ }), /*#__PURE__*/_jsx(Icon, {
143
+ className: "block-editor-block-lock-modal__lock-icon",
144
+ icon: lock.move ? lockIcon : unlockIcon
145
+ })]
146
+ }), /*#__PURE__*/_jsxs("li", {
147
+ className: "block-editor-block-lock-modal__checklist-item",
148
+ children: [/*#__PURE__*/_jsx(CheckboxControl, {
149
+ __nextHasNoMarginBottom: true,
150
+ label: __('Prevent removal'),
151
+ checked: lock.remove,
152
+ onChange: remove => setLock(prevLock => ({
153
+ ...prevLock,
154
+ remove
155
+ }))
156
+ }), /*#__PURE__*/_jsx(Icon, {
157
+ className: "block-editor-block-lock-modal__lock-icon",
158
+ icon: lock.remove ? lockIcon : unlockIcon
159
+ })]
160
+ })]
147
161
  })]
148
- }), /*#__PURE__*/_jsxs("li", {
149
- className: "block-editor-block-lock-modal__checklist-item",
150
- children: [/*#__PURE__*/_jsx(CheckboxControl, {
151
- __nextHasNoMarginBottom: true,
152
- label: __('Prevent removal'),
153
- checked: lock.remove,
154
- onChange: remove => setLock(prevLock => ({
155
- ...prevLock,
156
- remove
157
- }))
158
- }), /*#__PURE__*/_jsx(Icon, {
159
- className: "block-editor-block-lock-modal__lock-icon",
160
- icon: lock.remove ? lockIcon : unlockIcon
161
- })]
162
- })]
162
+ })
163
163
  }), hasTemplateLock && /*#__PURE__*/_jsx(ToggleControl, {
164
164
  __nextHasNoMarginBottom: true,
165
165
  className: "block-editor-block-lock-modal__template-lock",
@@ -186,7 +186,7 @@ export default function BlockLockModal({
186
186
  })
187
187
  })]
188
188
  })]
189
- })]
189
+ })
190
190
  });
191
191
  }
192
192
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useInstanceId","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","instanceId","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","children","onSubmit","event","preventDefault","undefined","role","className","__nextHasNoMarginBottom","label","id","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"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 { 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\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/block', 'core/navigation' ];\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 { allowsEditLocking, 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\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\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...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\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\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t) }\n\t\t\t</p>\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<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\t__nextHasNoMarginBottom\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...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t: {} ),\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{ allowsEditLocking && (\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Restrict editing' ) }\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\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lock.edit ? lockIcon : unlockIcon }\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Disable movement' ) }\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\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\ticon={ lock.move ? lockIcon : unlockIcon }\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Prevent removal' ) }\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\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\ticon={ lock.remove ? lockIcon : unlockIcon }\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\t__nextHasNoMarginBottom\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"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,oBAAoB;AACxD,SACCC,MAAM,EACNC,eAAe,EACfC,IAAI,EACJC,QAAQ,EACRC,IAAI,EACJC,KAAK,EACLC,aAAa,QACP,uBAAuB;AAC9B,SAASC,IAAI,IAAIC,QAAQ,EAAEC,MAAM,IAAIC,UAAU,QAAQ,kBAAkB;AACzE,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,YAAY,QAAQ,mBAAmB;;AAEhD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,0BAA0B,MAAM,kCAAkC;AACzE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,mBAAmB,GAAG,CAAE,YAAY,EAAE,iBAAiB,CAAE;AAE/D,SAASC,oBAAoBA,CAAEjB,IAAI,EAAG;EACrC;EACA,IAAKA,IAAI,CAACkB,MAAM,IAAIlB,IAAI,CAACmB,IAAI,EAAG;IAC/B,OAAO,KAAK;EACb;;EAEA;EACA,IAAKnB,IAAI,CAACkB,MAAM,IAAI,CAAElB,IAAI,CAACmB,IAAI,EAAG;IACjC,OAAO,QAAQ;EAChB;EAEA,OAAO,KAAK;AACb;AAEA,eAAe,SAASC,cAAcA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAC/D,MAAM,CAAEtB,IAAI,EAAEuB,OAAO,CAAE,GAAG/B,QAAQ,CAAE;IAAE2B,IAAI,EAAE,KAAK;IAAED,MAAM,EAAE;EAAM,CAAE,CAAC;EACpE,MAAM;IAAEM,OAAO;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGlB,YAAY,CAAEa,QAAS,CAAC;EAChE,MAAM;IAAEM,iBAAiB;IAAEC,YAAY;IAAEC;EAAgB,CAAC,GAAGvB,SAAS,CACnEwB,MAAM,IAAM;IACb,MAAM;MAAEC,YAAY;MAAEC;IAAmB,CAAC,GACzCF,MAAM,CAAEnB,gBAAiB,CAAC;IAC3B,MAAMsB,SAAS,GAAGF,YAAY,CAAEV,QAAS,CAAC;IAC1C,MAAMa,SAAS,GAAG3B,YAAY,CAAE0B,SAAU,CAAC;IAE3C,OAAO;MACNN,iBAAiB,EAAEX,mBAAmB,CAACmB,QAAQ,CAAEF,SAAU,CAAC;MAC5DL,YAAY,EAAEI,kBAAkB,CAAEX,QAAS,CAAC,EAAEO,YAAY;MAC1DC,eAAe,EAAE,CAAC,CAAEK,SAAS,EAAEE,UAAU,EAAER;IAC5C,CAAC;EACF,CAAC,EACD,CAAEP,QAAQ,CACX,CAAC;EACD,MAAM,CAAEgB,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG9C,QAAQ,CAC3D,CAAC,CAAEoC,YACJ,CAAC;EACD,MAAM;IAAEW;EAAsB,CAAC,GAAGlC,WAAW,CAAEM,gBAAiB,CAAC;EACjE,MAAM6B,gBAAgB,GAAG/B,0BAA0B,CAAEY,QAAS,CAAC;EAC/D,MAAMoB,UAAU,GAAGrC,aAAa,CAC/BgB,cAAc,EACd,8CACD,CAAC;EAED7B,SAAS,CAAE,MAAM;IAChBgC,OAAO,CAAE;MACRJ,IAAI,EAAE,CAAEM,OAAO;MACfP,MAAM,EAAE,CAAEQ,SAAS;MACnB,IAAKC,iBAAiB,GAAG;QAAEe,IAAI,EAAE,CAAElB;MAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEA,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAEC,iBAAiB,CAAG,CAAC;EAEvD,MAAMgB,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAE7C,IAAK,CAAC,CAAC8C,KAAK,CAAEC,OAAQ,CAAC;EAC3D,MAAMC,OAAO,GAAGJ,MAAM,CAACC,MAAM,CAAE7C,IAAK,CAAC,CAACiD,IAAI,CAAEF,OAAQ,CAAC,IAAI,CAAEJ,YAAY;EAEvE,oBACC5B,KAAA,CAACjB,KAAK;IACLoD,KAAK,EAAG5D,OAAO,EACd;IACAD,EAAE,CAAE,SAAU,CAAC,EACfmD,gBAAgB,CAACU,KAClB,CAAG;IACHC,gBAAgB,EAAC,+BAA+B;IAChDC,cAAc,EAAG9B,OAAS;IAAA+B,QAAA,gBAE1BxC,IAAA;MAAAwC,QAAA,EACGhE,EAAE,CACH,uEACD;IAAC,CACC,CAAC,eACJ0B,KAAA;MACCuC,QAAQ,EAAKC,KAAK,IAAM;QACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;QACtBjB,qBAAqB,CAAE,CAAElB,QAAQ,CAAE,EAAE;UACpCrB,IAAI;UACJ4B,YAAY,EAAES,iBAAiB,GAC5BpB,oBAAoB,CAAEjB,IAAK,CAAC,GAC5ByD;QACJ,CAAE,CAAC;QACHnC,OAAO,CAAC,CAAC;MACV,CAAG;MAAA+B,QAAA,gBAEHtC,KAAA;QACC2C,IAAI,EAAC,OAAO;QACZ,mBAAkBjB,UAAY;QAC9BkB,SAAS,EAAC,wCAAwC;QAAAN,QAAA,gBAElDxC,IAAA,CAACnB,eAAe;UACfkE,uBAAuB;UACvBD,SAAS,EAAC,8CAA8C;UACxDE,KAAK,eACJhD,IAAA;YAAMiD,EAAE,EAAGrB,UAAY;YAAAY,QAAA,EAAGhE,EAAE,CAAE,UAAW;UAAC,CAAQ,CAClD;UACD0E,OAAO,EAAGpB,YAAc;UACxBqB,aAAa,EAAGhB,OAAS;UACzBiB,QAAQ,EAAKC,QAAQ,IACpB3C,OAAO,CAAE;YACRJ,IAAI,EAAE+C,QAAQ;YACdhD,MAAM,EAAEgD,QAAQ;YAChB,IAAKvC,iBAAiB,GACnB;cAAEe,IAAI,EAAEwB;YAAS,CAAC,GAClB,CAAC,CAAC;UACN,CAAE;QACF,CACD,CAAC,eACFnD,KAAA;UAAI4C,SAAS,EAAC,0CAA0C;UAAAN,QAAA,GACrD1B,iBAAiB,iBAClBZ,KAAA;YAAI4C,SAAS,EAAC,+CAA+C;YAAAN,QAAA,gBAC5DxC,IAAA,CAACnB,eAAe;cACfkE,uBAAuB;cACvBC,KAAK,EAAGxE,EAAE,CAAE,kBAAmB,CAAG;cAClC0E,OAAO,EAAG,CAAC,CAAE/D,IAAI,CAAC0C,IAAM;cACxBuB,QAAQ,EAAKvB,IAAI,IAChBnB,OAAO,CAAI4C,QAAQ,KAAQ;gBAC1B,GAAGA,QAAQ;gBACXzB;cACD,CAAC,CAAG;YACJ,CACD,CAAC,eACF7B,IAAA,CAAChB,IAAI;cACJ8D,SAAS,EAAC,0CAA0C;cACpDS,IAAI,EAAGpE,IAAI,CAAC0C,IAAI,GAAGzC,QAAQ,GAAGE;YAAY,CAC1C,CAAC;UAAA,CACC,CACJ,eACDY,KAAA;YAAI4C,SAAS,EAAC,+CAA+C;YAAAN,QAAA,gBAC5DxC,IAAA,CAACnB,eAAe;cACfkE,uBAAuB;cACvBC,KAAK,EAAGxE,EAAE,CAAE,kBAAmB,CAAG;cAClC0E,OAAO,EAAG/D,IAAI,CAACmB,IAAM;cACrB8C,QAAQ,EAAK9C,IAAI,IAChBI,OAAO,CAAI4C,QAAQ,KAAQ;gBAC1B,GAAGA,QAAQ;gBACXhD;cACD,CAAC,CAAG;YACJ,CACD,CAAC,eACFN,IAAA,CAAChB,IAAI;cACJ8D,SAAS,EAAC,0CAA0C;cACpDS,IAAI,EAAGpE,IAAI,CAACmB,IAAI,GAAGlB,QAAQ,GAAGE;YAAY,CAC1C,CAAC;UAAA,CACC,CAAC,eACLY,KAAA;YAAI4C,SAAS,EAAC,+CAA+C;YAAAN,QAAA,gBAC5DxC,IAAA,CAACnB,eAAe;cACfkE,uBAAuB;cACvBC,KAAK,EAAGxE,EAAE,CAAE,iBAAkB,CAAG;cACjC0E,OAAO,EAAG/D,IAAI,CAACkB,MAAQ;cACvB+C,QAAQ,EAAK/C,MAAM,IAClBK,OAAO,CAAI4C,QAAQ,KAAQ;gBAC1B,GAAGA,QAAQ;gBACXjD;cACD,CAAC,CAAG;YACJ,CACD,CAAC,eACFL,IAAA,CAAChB,IAAI;cACJ8D,SAAS,EAAC,0CAA0C;cACpDS,IAAI,EAAGpE,IAAI,CAACkB,MAAM,GAAGjB,QAAQ,GAAGE;YAAY,CAC5C,CAAC;UAAA,CACC,CAAC;QAAA,CACF,CAAC,EACH0B,eAAe,iBAChBhB,IAAA,CAACd,aAAa;UACb6D,uBAAuB;UACvBD,SAAS,EAAC,8CAA8C;UACxDE,KAAK,EAAGxE,EAAE,CAAE,4BAA6B,CAAG;UAC5C0E,OAAO,EAAG1B,iBAAmB;UAC7BgC,QAAQ,EAAGrE,IAAI,CAACmB,IAAI,IAAI,CAAEnB,IAAI,CAACkB,MAAQ;UACvC+C,QAAQ,EAAGA,CAAA,KACV3B,oBAAoB,CAAE,CAAED,iBAAkB;QAC1C,CACD,CACD;MAAA,CACG,CAAC,eACNtB,KAAA,CAACpB,IAAI;QACJgE,SAAS,EAAC,wCAAwC;QAClDW,OAAO,EAAC,UAAU;QAClBC,QAAQ,EAAG,KAAO;QAAAlB,QAAA,gBAElBxC,IAAA,CAACjB,QAAQ;UAAAyD,QAAA,eACRxC,IAAA,CAACpB,MAAM;YAAC+E,OAAO,EAAC,UAAU;YAACC,OAAO,EAAGnD,OAAS;YAAA+B,QAAA,EAC3ChE,EAAE,CAAE,QAAS;UAAC,CACT;QAAC,CACA,CAAC,eACXwB,IAAA,CAACjB,QAAQ;UAAAyD,QAAA,eACRxC,IAAA,CAACpB,MAAM;YAAC+E,OAAO,EAAC,SAAS;YAACE,IAAI,EAAC,QAAQ;YAAArB,QAAA,EACpChE,EAAE,CAAE,OAAQ;UAAC,CACR;QAAC,CACA,CAAC;MAAA,CACN,CAAC;IAAA,CACF,CAAC;EAAA,CACD,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["__","sprintf","useEffect","useState","Button","CheckboxControl","Flex","FlexItem","Icon","Modal","ToggleControl","lock","lockIcon","unlock","unlockIcon","useDispatch","useSelect","getBlockType","useBlockLock","useBlockDisplayInformation","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","ALLOWS_EDIT_LOCKING","getTemplateLockValue","remove","move","BlockLockModal","clientId","onClose","setLock","canEdit","canMove","canRemove","allowsEditLocking","templateLock","hasTemplateLock","select","getBlockName","getBlockAttributes","blockName","blockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","blockInformation","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","title","overlayClassName","onRequestClose","children","onSubmit","event","preventDefault","undefined","className","role","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","icon","disabled","justify","expanded","variant","onClick","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"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 { useDispatch, useSelect } from '@wordpress/data';\nimport { 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\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/block', 'core/navigation' ];\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 { allowsEditLocking, 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\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\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\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\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\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<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Choose specific attributes to restrict or lock all available options.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\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/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\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\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Restrict editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\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\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-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.edit\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</li>\n\t\t\t\t\t\t\t\t) }\n\t\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\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Disable movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\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\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\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</li>\n\t\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\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Prevent removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\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\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\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</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</fieldset>\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"],"mappings":"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","ignoreList":[]}
@@ -31,14 +31,17 @@ function BlockMover({
31
31
  rootClientId,
32
32
  isFirst,
33
33
  isLast,
34
- orientation
34
+ orientation,
35
+ isManualGrid
35
36
  } = useSelect(select => {
37
+ var _getBlockAttributes;
36
38
  const {
37
39
  getBlockIndex,
38
40
  getBlockListSettings,
39
41
  canMoveBlocks,
40
42
  getBlockOrder,
41
- getBlockRootClientId
43
+ getBlockRootClientId,
44
+ getBlockAttributes
42
45
  } = select(blockEditorStore);
43
46
  const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
44
47
  const firstClientId = normalizedClientIds[0];
@@ -46,18 +49,21 @@ function BlockMover({
46
49
  const firstIndex = getBlockIndex(firstClientId);
47
50
  const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
48
51
  const blockOrder = getBlockOrder(_rootClientId);
52
+ const {
53
+ layout = {}
54
+ } = (_getBlockAttributes = getBlockAttributes(_rootClientId)) !== null && _getBlockAttributes !== void 0 ? _getBlockAttributes : {};
49
55
  return {
50
56
  canMove: canMoveBlocks(clientIds),
51
57
  rootClientId: _rootClientId,
52
58
  isFirst: firstIndex === 0,
53
59
  isLast: lastIndex === blockOrder.length - 1,
54
- orientation: getBlockListSettings(_rootClientId)?.orientation
60
+ orientation: getBlockListSettings(_rootClientId)?.orientation,
61
+ isManualGrid: layout.type === 'grid' && !!layout.columnCount && window.__experimentalEnableGridInteractivity
55
62
  };
56
63
  }, [clientIds]);
57
64
  if (!canMove || isFirst && isLast && !rootClientId) {
58
65
  return null;
59
66
  }
60
- const dragHandleLabel = __('Drag');
61
67
  return /*#__PURE__*/_jsxs(ToolbarGroup, {
62
68
  className: clsx('block-editor-block-mover', {
63
69
  'is-horizontal': orientation === 'horizontal'
@@ -69,14 +75,14 @@ function BlockMover({
69
75
  icon: dragHandle,
70
76
  className: "block-editor-block-mover__drag-handle",
71
77
  "aria-hidden": "true",
72
- label: dragHandleLabel
78
+ label: __('Drag')
73
79
  // Should not be able to tab to drag handle as this
74
80
  // button can only be used with a pointer device.
75
81
  ,
76
82
  tabIndex: "-1",
77
83
  ...draggableProps
78
84
  })
79
- }), /*#__PURE__*/_jsxs("div", {
85
+ }), !isManualGrid && /*#__PURE__*/_jsxs("div", {
80
86
  className: "block-editor-block-mover__move-button-container",
81
87
  children: [/*#__PURE__*/_jsx(ToolbarItem, {
82
88
  children: itemProps => /*#__PURE__*/_jsx(BlockMoverUpButton, {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","className","children","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps","disabled"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;;AAEA,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,YAAY,EAAEC,WAAW,EAAEC,MAAM,QAAQ,uBAAuB;AACzE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,UAAU;AACnE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAExD,SAASC,UAAUA,CAAE;EACpBC,SAAS;EACTC,cAAc;EACdC,4BAA4B;EAC5BC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,OAAO;IAAEC,YAAY;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAGpB,SAAS,CACtEqB,MAAM,IAAM;IACb,MAAM;MACLC,aAAa;MACbC,oBAAoB;MACpBC,aAAa;MACbC,aAAa;MACbC;IACD,CAAC,GAAGL,MAAM,CAAEf,gBAAiB,CAAC;IAC9B,MAAMqB,mBAAmB,GAAGC,KAAK,CAACC,OAAO,CAAEjB,SAAU,CAAC,GACnDA,SAAS,GACT,CAAEA,SAAS,CAAE;IAChB,MAAMkB,aAAa,GAAGH,mBAAmB,CAAE,CAAC,CAAE;IAC9C,MAAMI,aAAa,GAAGL,oBAAoB,CAAEI,aAAc,CAAC;IAC3D,MAAME,UAAU,GAAGV,aAAa,CAAEQ,aAAc,CAAC;IACjD,MAAMG,SAAS,GAAGX,aAAa,CAC9BK,mBAAmB,CAAEA,mBAAmB,CAACO,MAAM,GAAG,CAAC,CACpD,CAAC;IACD,MAAMC,UAAU,GAAGV,aAAa,CAAEM,aAAc,CAAC;IAEjD,OAAO;MACNf,OAAO,EAAEQ,aAAa,CAAEZ,SAAU,CAAC;MACnCK,YAAY,EAAEc,aAAa;MAC3Bb,OAAO,EAAEc,UAAU,KAAK,CAAC;MACzBb,MAAM,EAAEc,SAAS,KAAKE,UAAU,CAACD,MAAM,GAAG,CAAC;MAC3Cd,WAAW,EAAEG,oBAAoB,CAAEQ,aAAc,CAAC,EAAEX;IACrD,CAAC;EACF,CAAC,EACD,CAAER,SAAS,CACZ,CAAC;EAED,IAAK,CAAEI,OAAO,IAAME,OAAO,IAAIC,MAAM,IAAI,CAAEF,YAAc,EAAG;IAC3D,OAAO,IAAI;EACZ;EAEA,MAAMmB,eAAe,GAAGnC,EAAE,CAAE,MAAO,CAAC;EAEpC,oBACCS,KAAA,CAACb,YAAY;IACZwC,SAAS,EAAG1C,IAAI,CAAE,0BAA0B,EAAE;MAC7C,eAAe,EAAEyB,WAAW,KAAK;IAClC,CAAE,CAAG;IAAAkB,QAAA,GAEH,CAAEzB,cAAc,iBACjBL,IAAA,CAACN,cAAc;MAACU,SAAS,EAAGA,SAAW;MAAC2B,gBAAgB;MAAAD,QAAA,EACnDE,cAAc,iBACjBhC,IAAA,CAACT,MAAM;QACN0C,IAAI,EAAG7C,UAAY;QACnByC,SAAS,EAAC,uCAAuC;QACjD,eAAY,MAAM;QAClBK,KAAK,EAAGN;QACR;QACA;QAAA;QACAO,QAAQ,EAAC,IAAI;QAAA,GACRH;MAAc,CACnB;IACD,CACc,CAChB,eACD9B,KAAA;MAAK2B,SAAS,EAAC,iDAAiD;MAAAC,QAAA,gBAC/D9B,IAAA,CAACV,WAAW;QAAAwC,QAAA,EACPM,SAAS,iBACZpC,IAAA,CAACL,kBAAkB;UAClB0C,QAAQ,EAAG/B,4BAA8B;UACzCF,SAAS,EAAGA,SAAW;UAAA,GAClBgC;QAAS,CACd;MACD,CACW,CAAC,eACdpC,IAAA,CAACV,WAAW;QAAAwC,QAAA,EACPM,SAAS,iBACZpC,IAAA,CAACJ,oBAAoB;UACpByC,QAAQ,EAAG9B,8BAAgC;UAC3CH,SAAS,EAAGA,SAAW;UAAA,GAClBgC;QAAS,CACd;MACD,CACW,CAAC;IAAA,CACV,CAAC;EAAA,CACO,CAAC;AAEjB;;AAEA;AACA;AACA;AACA,eAAejC,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["clsx","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","isManualGrid","select","_getBlockAttributes","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","getBlockAttributes","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","layout","type","columnCount","window","__experimentalEnableGridInteractivity","className","children","fadeWhenDisabled","draggableProps","icon","label","tabIndex","itemProps","disabled"],"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tclientIds,\n\thideDragHandle,\n\tisBlockMoverUpButtonDisabled,\n\tisBlockMoverDownButtonDisabled,\n} ) {\n\tconst {\n\t\tcanMove,\n\t\trootClientId,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation,\n\t\tisManualGrid,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\t\t\tconst { layout = {} } = getBlockAttributes( _rootClientId ) ?? {};\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t\tisManualGrid:\n\t\t\t\t\tlayout.type === 'grid' &&\n\t\t\t\t\t!! layout.columnCount &&\n\t\t\t\t\twindow.__experimentalEnableGridInteractivity,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds } fadeWhenDisabled>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ __( 'Drag' ) }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t{ ! isManualGrid && (\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverUpButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\tdisabled={ isBlockMoverDownButtonDisabled }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"],"mappings":"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","ignoreList":[]}
@@ -58,7 +58,9 @@ export default function Shuffle({
58
58
  // otherwise we may shuffle to pattern that will not allow to continue shuffling.
59
59
  pattern.blocks.length === 1 && pattern.categories?.some(category => {
60
60
  return categories.includes(category);
61
- })
61
+ }) && (
62
+ // Check if the pattern is not a synced pattern.
63
+ pattern.syncStatus === 'unsynced' || !pattern.id)
62
64
  );
63
65
  });
64
66
  }, [categories, patterns]);
@@ -1 +1 @@
1
- {"version":3,"names":["shuffle","ToolbarButton","ToolbarGroup","__","useMemo","useSelect","useDispatch","store","blockEditorStore","jsx","_jsx","EMPTY_ARRAY","Container","props","children","Shuffle","clientId","as","categories","patterns","patternName","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","sameCategoryPatternsWithSingleWrapper","length","filter","pattern","blocks","some","category","includes","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","icon","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tfunction getNextPattern() {\n\t\tconst numberOfPatterns = sameCategoryPatternsWithSingleWrapper.length;\n\t\tconst patternIndex = sameCategoryPatternsWithSingleWrapper.findIndex(\n\t\t\t( { name } ) => name === patternName\n\t\t);\n\t\tconst nextPatternIndex =\n\t\t\tpatternIndex + 1 < numberOfPatterns ? patternIndex + 1 : 0;\n\t\treturn sameCategoryPatternsWithSingleWrapper[ nextPatternIndex ];\n\t}\n\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tonClick={ () => {\n\t\t\t\tconst nextPattern = getNextPattern();\n\t\t\t\tnextPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, nextPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["shuffle","ToolbarButton","ToolbarGroup","__","useMemo","useSelect","useDispatch","store","blockEditorStore","jsx","_jsx","EMPTY_ARRAY","Container","props","children","Shuffle","clientId","as","categories","patterns","patternName","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","attributes","_categories","metadata","_patternName","rootBlock","_patterns","replaceBlocks","sameCategoryPatternsWithSingleWrapper","length","filter","pattern","blocks","some","category","includes","syncStatus","id","getNextPattern","numberOfPatterns","patternIndex","findIndex","name","nextPatternIndex","ComponentToUse","label","icon","onClick","nextPattern"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns, patternName } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst _patternName = attributes?.metadata?.patternName;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t\tpatternName: _patternName,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories?.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} ) &&\n\t\t\t\t// Check if the pattern is not a synced pattern.\n\t\t\t\t( pattern.syncStatus === 'unsynced' || ! pattern.id )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tfunction getNextPattern() {\n\t\tconst numberOfPatterns = sameCategoryPatternsWithSingleWrapper.length;\n\t\tconst patternIndex = sameCategoryPatternsWithSingleWrapper.findIndex(\n\t\t\t( { name } ) => name === patternName\n\t\t);\n\t\tconst nextPatternIndex =\n\t\t\tpatternIndex + 1 < numberOfPatterns ? patternIndex + 1 : 0;\n\t\treturn sameCategoryPatternsWithSingleWrapper[ nextPatternIndex ];\n\t}\n\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tonClick={ () => {\n\t\t\t\tconst nextPattern = getNextPattern();\n\t\t\t\tnextPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...nextPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, nextPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}