@wordpress/block-editor 13.0.3 → 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 (141) hide show
  1. package/CHANGELOG.md +21 -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/child-layout-control/index.js +185 -127
  8. package/build/components/child-layout-control/index.js.map +1 -1
  9. package/build/components/date-format-picker/index.js +18 -10
  10. package/build/components/date-format-picker/index.js.map +1 -1
  11. package/build/components/grid/grid-item-movers.js +97 -0
  12. package/build/components/grid/grid-item-movers.js.map +1 -0
  13. package/build/components/{grid-visualizer → grid}/grid-item-resizer.js +18 -56
  14. package/build/components/grid/grid-item-resizer.js.map +1 -0
  15. package/build/components/grid/grid-visualizer.js +225 -0
  16. package/build/components/grid/grid-visualizer.js.map +1 -0
  17. package/build/components/{grid-visualizer → grid}/index.js +14 -0
  18. package/build/components/grid/index.js.map +1 -0
  19. package/build/components/grid/use-get-number-of-blocks-before-cell.js +40 -0
  20. package/build/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  21. package/build/components/grid/use-grid-layout-sync.js +162 -0
  22. package/build/components/grid/use-grid-layout-sync.js.map +1 -0
  23. package/build/components/grid/utils.js +145 -0
  24. package/build/components/grid/utils.js.map +1 -0
  25. package/build/components/inner-blocks/index.js +1 -1
  26. package/build/components/inner-blocks/index.js.map +1 -1
  27. package/build/components/inserter/block-types-tab.native.js +1 -1
  28. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  29. package/build/components/link-control/link-preview.js +12 -1
  30. package/build/components/link-control/link-preview.js.map +1 -1
  31. package/build/components/provider/use-block-sync.js +1 -7
  32. package/build/components/provider/use-block-sync.js.map +1 -1
  33. package/build/components/rich-text/event-listeners/input-rules.js +1 -0
  34. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  35. package/build/components/rich-text/index.native.js +14 -4
  36. package/build/components/rich-text/index.native.js.map +1 -1
  37. package/build/components/rich-text/native/index.native.js +20 -4
  38. package/build/components/rich-text/native/index.native.js.map +1 -1
  39. package/build/hooks/block-style-variation.js +2 -2
  40. package/build/hooks/block-style-variation.js.map +1 -1
  41. package/build/hooks/layout-child.js +29 -21
  42. package/build/hooks/layout-child.js.map +1 -1
  43. package/build/layouts/grid.js +24 -47
  44. package/build/layouts/grid.js.map +1 -1
  45. package/build/store/private-actions.js +0 -34
  46. package/build/store/private-actions.js.map +1 -1
  47. package/build-module/components/block-lock/modal.js +67 -67
  48. package/build-module/components/block-lock/modal.js.map +1 -1
  49. package/build-module/components/block-mover/index.js +12 -6
  50. package/build-module/components/block-mover/index.js.map +1 -1
  51. package/build-module/components/child-layout-control/index.js +185 -127
  52. package/build-module/components/child-layout-control/index.js.map +1 -1
  53. package/build-module/components/date-format-picker/index.js +19 -11
  54. package/build-module/components/date-format-picker/index.js.map +1 -1
  55. package/build-module/components/grid/grid-item-movers.js +90 -0
  56. package/build-module/components/grid/grid-item-movers.js.map +1 -0
  57. package/build-module/components/{grid-visualizer → grid}/grid-item-resizer.js +13 -51
  58. package/build-module/components/grid/grid-item-resizer.js.map +1 -0
  59. package/build-module/components/grid/grid-visualizer.js +217 -0
  60. package/build-module/components/grid/grid-visualizer.js.map +1 -0
  61. package/build-module/components/grid/index.js +5 -0
  62. package/build-module/components/grid/index.js.map +1 -0
  63. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js +33 -0
  64. package/build-module/components/grid/use-get-number-of-blocks-before-cell.js.map +1 -0
  65. package/build-module/components/grid/use-grid-layout-sync.js +155 -0
  66. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -0
  67. package/build-module/components/grid/utils.js +131 -0
  68. package/build-module/components/grid/utils.js.map +1 -0
  69. package/build-module/components/inner-blocks/index.js +1 -1
  70. package/build-module/components/inner-blocks/index.js.map +1 -1
  71. package/build-module/components/inserter/block-types-tab.native.js +1 -1
  72. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  73. package/build-module/components/link-control/link-preview.js +14 -1
  74. package/build-module/components/link-control/link-preview.js.map +1 -1
  75. package/build-module/components/provider/use-block-sync.js +1 -7
  76. package/build-module/components/provider/use-block-sync.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 +15 -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 +20 -4
  82. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  83. package/build-module/hooks/block-style-variation.js +2 -2
  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/layouts/grid.js +24 -47
  88. package/build-module/layouts/grid.js.map +1 -1
  89. package/build-module/store/private-actions.js +0 -33
  90. package/build-module/store/private-actions.js.map +1 -1
  91. package/build-style/style-rtl.css +38 -16
  92. package/build-style/style.css +38 -16
  93. package/package.json +31 -31
  94. package/src/components/block-lock/modal.js +95 -82
  95. package/src/components/block-lock/style.scss +11 -1
  96. package/src/components/block-mover/index.js +37 -24
  97. package/src/components/child-layout-control/index.js +224 -159
  98. package/src/components/date-format-picker/index.js +25 -13
  99. package/src/components/grid/grid-item-movers.js +128 -0
  100. package/src/components/{grid-visualizer → grid}/grid-item-resizer.js +14 -52
  101. package/src/components/grid/grid-visualizer.js +267 -0
  102. package/src/components/grid/index.js +4 -0
  103. package/src/components/grid/style.scss +63 -0
  104. package/src/components/grid/use-get-number-of-blocks-before-cell.js +30 -0
  105. package/src/components/grid/use-grid-layout-sync.js +167 -0
  106. package/src/components/grid/utils.js +178 -0
  107. package/src/components/inner-blocks/index.js +3 -1
  108. package/src/components/inserter/block-types-tab.native.js +2 -1
  109. package/src/components/link-control/link-preview.js +18 -1
  110. package/src/components/provider/use-block-sync.js +0 -6
  111. package/src/components/rich-text/event-listeners/input-rules.js +1 -1
  112. package/src/components/rich-text/index.native.js +14 -8
  113. package/src/components/rich-text/native/index.native.js +20 -1
  114. package/src/hooks/block-style-variation.js +2 -2
  115. package/src/hooks/layout-child.js +34 -14
  116. package/src/layouts/grid.js +54 -62
  117. package/src/store/private-actions.js +0 -29
  118. package/src/style.scss +1 -1
  119. package/build/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  120. package/build/components/grid-visualizer/grid-visualizer.js +0 -92
  121. package/build/components/grid-visualizer/grid-visualizer.js.map +0 -1
  122. package/build/components/grid-visualizer/index.js.map +0 -1
  123. package/build/components/grid-visualizer/utils.js +0 -10
  124. package/build/components/grid-visualizer/utils.js.map +0 -1
  125. package/build/store/undo-ignore.js +0 -11
  126. package/build/store/undo-ignore.js.map +0 -1
  127. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +0 -1
  128. package/build-module/components/grid-visualizer/grid-visualizer.js +0 -84
  129. package/build-module/components/grid-visualizer/grid-visualizer.js.map +0 -1
  130. package/build-module/components/grid-visualizer/index.js +0 -3
  131. package/build-module/components/grid-visualizer/index.js.map +0 -1
  132. package/build-module/components/grid-visualizer/utils.js +0 -4
  133. package/build-module/components/grid-visualizer/utils.js.map +0 -1
  134. package/build-module/store/undo-ignore.js +0 -5
  135. package/build-module/store/undo-ignore.js.map +0 -1
  136. package/src/components/grid-visualizer/grid-visualizer.js +0 -101
  137. package/src/components/grid-visualizer/index.js +0 -2
  138. package/src/components/grid-visualizer/style.scss +0 -34
  139. package/src/components/grid-visualizer/utils.js +0 -5
  140. package/src/store/undo-ignore.js +0 -4
  141. /package/src/components/font-sizes/{README.MD → README.md} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 13.2.0 (2024-06-26)
6
+
7
+ ## 13.1.0 (2024-06-15)
8
+
5
9
  ## 13.0.0 (2024-05-31)
6
10
 
7
11
  ### Breaking Changes
@@ -78,7 +82,7 @@
78
82
 
79
83
  - Add `HeadingLevelDropdown` component for selecting H1-H6 and paragraph HTML tags from the block toolbar.
80
84
 
81
- ### Bug Fix
85
+ ### Bug Fixes
82
86
 
83
87
  - Fluid typography: custom font-sizes should use max viewport width ([#51516](https://github.com/WordPress/gutenberg/pull/51516)).
84
88
 
@@ -106,13 +110,13 @@
106
110
 
107
111
  ## 11.5.0 (2023-03-01)
108
112
 
109
- ### Bug Fix
113
+ ### Bug Fixes
110
114
 
111
115
  - `SpacingSizesControl`: fix white dot on thumb ([#48574](https://github.com/WordPress/gutenberg/pull/48574)).
112
116
 
113
117
  ## 11.4.0 (2023-02-15)
114
118
 
115
- ### Bug Fix
119
+ ### Bug Fixes
116
120
 
117
121
  - `LinkControl`: fix scrollbar displayed on toggle link settings ([#47986](https://github.com/WordPress/gutenberg/pull/47986)).
118
122
 
@@ -120,7 +124,7 @@
120
124
 
121
125
  ## 11.2.0 (2023-01-11)
122
126
 
123
- ### Bug Fix
127
+ ### Bug Fixes
124
128
 
125
129
  - `BlockInspector`: Fix browser warning error when block is not selected ([#46875](https://github.com/WordPress/gutenberg/pull/46875)).
126
130
  - Move component styles needed for iframes to content styles ([#47103](https://github.com/WordPress/gutenberg/pull/47103)).
@@ -141,33 +145,33 @@
141
145
  - Fluid typography: add configurable fluid typography settings for minimum font size to theme.json ([#42489](https://github.com/WordPress/gutenberg/pull/42489)).
142
146
  - `URLInput`: Add `__nextHasNoMarginBottom` prop for opting into the new margin-free styles ([46692](https://github.com/WordPress/gutenberg/pull/46692)).
143
147
 
144
- ### Bug Fix
148
+ ### Bug Fixes
145
149
 
146
150
  - `SpacingSizesControl`: Change ARIA role from `region` to `group` to avoid unwanted ARIA landmark regions ([#46530](https://github.com/WordPress/gutenberg/pull/46530)).
147
151
  - `FocalPointPicker`: Fix layout misalignment when placed in the `BlockInspector` ([#46631](https://github.com/WordPress/gutenberg/pull/46631)).
148
152
 
149
153
  ## 10.5.0 (2022-11-16)
150
154
 
151
- ### Enhancement
155
+ ### Enhancements
152
156
 
153
157
  - `BlockLockModal`: Move Icon component out of CheckboxControl label ([#45535](https://github.com/WordPress/gutenberg/pull/45535))
154
158
  - Fluid typography: adjust font size min and max rules ([#45536](https://github.com/WordPress/gutenberg/pull/45536)).
155
159
 
156
160
  ## 10.4.0 (2022-11-02)
157
161
 
158
- ### Bug Fix
162
+ ### Bug Fixes
159
163
 
160
164
  - `InserterListItem`: Fix dragging and dropping in Firefox. ([#44631](https://github.com/WordPress/gutenberg/pull/44631))
161
165
 
162
166
  ## 10.3.0 (2022-10-19)
163
167
 
164
- ### Bug Fix
168
+ ### Bug Fixes
165
169
 
166
170
  - `FontSizePicker`: Update fluid utils so that only string, floats and integers are treated as valid font sizes for the purposes of fluid typography ([#44847](https://github.com/WordPress/gutenberg/pull/44847))
167
171
  - `getTypographyClassesAndStyles()`: Ensure that font sizes are transformed into fluid values if fluid typography is activated ([#44852](https://github.com/WordPress/gutenberg/pull/44852))
168
172
  - `BlockPopover`: Ensure that padding and margin visualizers display in correct position even when scrolling past block. ([#44998](https://github.com/WordPress/gutenberg/pull/44998))
169
173
 
170
- ### New features
174
+ ### New Features
171
175
 
172
176
  - You can now drop files/blocks/HTML on unmodified default blocks to transform them into corresponding blocks ([#44647](https://github.com/WordPress/gutenberg/pull/44647)).
173
177
 
@@ -177,7 +181,7 @@
177
181
 
178
182
  ## 10.0.0 (2022-09-13)
179
183
 
180
- ### Breaking change
184
+ ### Breaking Changes
181
185
 
182
186
  - `FontSizePicker`: Deprecate bottom margin style. Add a `__nextHasNoMarginBottom` prop to start opting into the margin-free styles that will become the default in a future version, currently scheduled to be WordPress 6.4 ([#43870](https://github.com/WordPress/gutenberg/pull/43870)).
183
187
 
@@ -193,7 +197,7 @@
193
197
 
194
198
  ## 9.3.0 (2022-06-15)
195
199
 
196
- ### Bug fix
200
+ ### Bug Fixes
197
201
 
198
202
  - Fix focus trap on certain `input` elements when navigating within a block with the left/right arrow keys ([#41538](https://github.com/WordPress/gutenberg/pull/41538)).
199
203
 
@@ -203,7 +207,7 @@
203
207
 
204
208
  ## 9.0.0 (2022-05-04)
205
209
 
206
- ### Breaking change
210
+ ### Breaking Changes
207
211
 
208
212
  - `BlockNavigationDropdown` is now deprecated. Use the `Dropdown` component from the `@wordpress/components` package and the `ListView` component from this package ([#40777](https://github.com/WordPress/gutenberg/pull/40777)).
209
213
  - `ListView` no longer accepts the `__experimentalFeatures`, `__experimentalPersistentListViewFeatures`, `__experimentalHideContainerBlockActions`, and `showNestedBlocks` props. Passing additional undocumented props through to `ListView` is also now disallowed. ([#40777](https://github.com/WordPress/gutenberg/pull/40777)).
@@ -224,7 +228,7 @@
224
228
 
225
229
  ## 8.1.1 (2022-02-10)
226
230
 
227
- ### Bug Fix
231
+ ### Bug Fixes
228
232
 
229
233
  - Removed unused `@wordpress/block-serialization-default-parser`, `css-mediaquery`, `memize` and `redux-multi` dependencies ([#38388](https://github.com/WordPress/gutenberg/pull/38388)).
230
234
 
@@ -241,13 +245,13 @@
241
245
  - Avoid re-rendering all List View items on block focus [#35706](https://github.com/WordPress/gutenberg/pull/35706). When List View is open Block focus time is 4 times faster in large posts.
242
246
  - Render fixed number of items in List View [#35706](https://github.com/WordPress/gutenberg/pull/35230). Opening List View is 13 times faster in large posts.
243
247
 
244
- ### Breaking change
248
+ ### Breaking Changes
245
249
 
246
250
  - List View no longer supports the `showOnlyCurrentHierarchy` flag [#35706](https://github.com/WordPress/gutenberg/pull/35706). To display a subset of blocks, use the `blocks` parameter instead.
247
251
 
248
252
  ## 7.0.0 (2021-07-29)
249
253
 
250
- ### Breaking Change
254
+ ### Breaking Changes
251
255
 
252
256
  - Upgraded React components to work with v17.0 ([#29118](https://github.com/WordPress/gutenberg/pull/29118)). There are no new features in React v17.0 as explained in the [blog post](https://reactjs.org/blog/2020/10/20/react-v17.html).
253
257
 
@@ -272,7 +276,7 @@
272
276
 
273
277
  ## 5.2.0 (2020-12-17)
274
278
 
275
- ### New Feature
279
+ ### New Features
276
280
 
277
281
  - Added a store definition `store` for the block editor namespace to use with `@wordpress/data` API ([#26655](https://github.com/WordPress/gutenberg/pull/26655)).
278
282
 
@@ -301,7 +305,7 @@
301
305
 
302
306
  - Added a `label` prop to `URLInput`. This allows the label to be set without needing to wrap the `URLInput` in a `BaseControl`.
303
307
 
304
- ### Deprecation
308
+ ### Deprecations
305
309
 
306
310
  - `dropZoneUIOnly` prop in `MediaPlaceholder` component has been deprecated in favor of `disableMediaButtons` prop.
307
311
 
package/README.md CHANGED
@@ -45,7 +45,7 @@ In this example, we're instantiating a block editor. A block editor is composed
45
45
 
46
46
  Inside `BlockEditorProvider`, you can nest any of the available `@wordpress/block-editor` UI components to build the UI of your editor.
47
47
 
48
- In the example above we're rendering the `BlockList` to show and edit the block list. For instance we could add a custom sidebar and use the `BlockInspector` component to be able to edit the advanced settings for the currently selected block. (See the [API](#API) for the list of all the available components).
48
+ In the example above we're rendering the `BlockList` to show and edit the block list. For instance we could add a custom sidebar and use the `BlockInspector` component to be able to edit the advanced settings for the currently selected block. (See the [API](#api) for the list of all the available components).
49
49
 
50
50
  The `BlockTools` component is used to render the toolbar for a selected block.
51
51
 
@@ -9,7 +9,6 @@ var _i18n = require("@wordpress/i18n");
9
9
  var _element = require("@wordpress/element");
10
10
  var _components = require("@wordpress/components");
11
11
  var _icons = require("@wordpress/icons");
12
- var _compose = require("@wordpress/compose");
13
12
  var _data = require("@wordpress/data");
14
13
  var _blocks = require("@wordpress/blocks");
15
14
  var _useBlockLock = _interopRequireDefault(require("./use-block-lock"));
@@ -73,7 +72,6 @@ function BlockLockModal({
73
72
  updateBlockAttributes
74
73
  } = (0, _data.useDispatch)(_store.store);
75
74
  const blockInformation = (0, _useBlockDisplayInformation.default)(clientId);
76
- const instanceId = (0, _compose.useInstanceId)(BlockLockModal, 'block-editor-block-lock-modal__options-title');
77
75
  (0, _element.useEffect)(() => {
78
76
  setLock({
79
77
  move: !canMove,
@@ -85,14 +83,12 @@ function BlockLockModal({
85
83
  }, [canEdit, canMove, canRemove, allowsEditLocking]);
86
84
  const isAllChecked = Object.values(lock).every(Boolean);
87
85
  const isMixed = Object.values(lock).some(Boolean) && !isAllChecked;
88
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Modal, {
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Modal, {
89
87
  title: (0, _i18n.sprintf)( /* translators: %s: Name of the block. */
90
88
  (0, _i18n.__)('Lock %s'), blockInformation.title),
91
89
  overlayClassName: "block-editor-block-lock-modal",
92
90
  onRequestClose: onClose,
93
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
94
- children: (0, _i18n.__)('Choose specific attributes to restrict or lock all available options.')
95
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
96
92
  onSubmit: event => {
97
93
  event.preventDefault();
98
94
  updateBlockAttributes([clientId], {
@@ -101,71 +97,75 @@ function BlockLockModal({
101
97
  });
102
98
  onClose();
103
99
  },
104
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
105
- role: "group",
106
- "aria-labelledby": instanceId,
100
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", {
107
101
  className: "block-editor-block-lock-modal__options",
108
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
109
- __nextHasNoMarginBottom: true,
110
- className: "block-editor-block-lock-modal__options-title",
111
- label: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
112
- id: instanceId,
113
- children: (0, _i18n.__)('Lock all')
114
- }),
115
- checked: isAllChecked,
116
- indeterminate: isMixed,
117
- onChange: newValue => setLock({
118
- move: newValue,
119
- remove: newValue,
120
- ...(allowsEditLocking ? {
121
- edit: newValue
122
- } : {})
123
- })
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("legend", {
103
+ children: (0, _i18n.__)('Choose specific attributes to restrict or lock all available options.')
104
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
105
+ role: "list",
125
106
  className: "block-editor-block-lock-modal__checklist",
126
- children: [allowsEditLocking && /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
127
- className: "block-editor-block-lock-modal__checklist-item",
128
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
129
- __nextHasNoMarginBottom: true,
130
- label: (0, _i18n.__)('Restrict editing'),
131
- checked: !!lock.edit,
132
- onChange: edit => setLock(prevLock => ({
133
- ...prevLock,
134
- edit
135
- }))
136
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
137
- className: "block-editor-block-lock-modal__lock-icon",
138
- icon: lock.edit ? _icons.lock : _icons.unlock
139
- })]
140
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
141
- className: "block-editor-block-lock-modal__checklist-item",
107
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
142
108
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
143
109
  __nextHasNoMarginBottom: true,
144
- label: (0, _i18n.__)('Disable movement'),
145
- checked: lock.move,
146
- onChange: move => setLock(prevLock => ({
147
- ...prevLock,
148
- move
149
- }))
150
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
151
- className: "block-editor-block-lock-modal__lock-icon",
152
- icon: lock.move ? _icons.lock : _icons.unlock
110
+ className: "block-editor-block-lock-modal__options-all",
111
+ label: (0, _i18n.__)('Lock all'),
112
+ checked: isAllChecked,
113
+ indeterminate: isMixed,
114
+ onChange: newValue => setLock({
115
+ move: newValue,
116
+ remove: newValue,
117
+ ...(allowsEditLocking ? {
118
+ edit: newValue
119
+ } : {})
120
+ })
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
122
+ role: "list",
123
+ className: "block-editor-block-lock-modal__checklist",
124
+ children: [allowsEditLocking && /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
125
+ className: "block-editor-block-lock-modal__checklist-item",
126
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
127
+ __nextHasNoMarginBottom: true,
128
+ label: (0, _i18n.__)('Restrict editing'),
129
+ checked: !!lock.edit,
130
+ onChange: edit => setLock(prevLock => ({
131
+ ...prevLock,
132
+ edit
133
+ }))
134
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
135
+ className: "block-editor-block-lock-modal__lock-icon",
136
+ icon: lock.edit ? _icons.lock : _icons.unlock
137
+ })]
138
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
139
+ className: "block-editor-block-lock-modal__checklist-item",
140
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
141
+ __nextHasNoMarginBottom: true,
142
+ label: (0, _i18n.__)('Disable movement'),
143
+ checked: lock.move,
144
+ onChange: move => setLock(prevLock => ({
145
+ ...prevLock,
146
+ move
147
+ }))
148
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
149
+ className: "block-editor-block-lock-modal__lock-icon",
150
+ icon: lock.move ? _icons.lock : _icons.unlock
151
+ })]
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
153
+ className: "block-editor-block-lock-modal__checklist-item",
154
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
155
+ __nextHasNoMarginBottom: true,
156
+ label: (0, _i18n.__)('Prevent removal'),
157
+ checked: lock.remove,
158
+ onChange: remove => setLock(prevLock => ({
159
+ ...prevLock,
160
+ remove
161
+ }))
162
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
163
+ className: "block-editor-block-lock-modal__lock-icon",
164
+ icon: lock.remove ? _icons.lock : _icons.unlock
165
+ })]
166
+ })]
153
167
  })]
154
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
155
- className: "block-editor-block-lock-modal__checklist-item",
156
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
157
- __nextHasNoMarginBottom: true,
158
- label: (0, _i18n.__)('Prevent removal'),
159
- checked: lock.remove,
160
- onChange: remove => setLock(prevLock => ({
161
- ...prevLock,
162
- remove
163
- }))
164
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
165
- className: "block-editor-block-lock-modal__lock-icon",
166
- icon: lock.remove ? _icons.lock : _icons.unlock
167
- })]
168
- })]
168
+ })
169
169
  }), hasTemplateLock && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
170
170
  __nextHasNoMarginBottom: true,
171
171
  className: "block-editor-block-lock-modal__template-lock",
@@ -192,7 +192,7 @@ function BlockLockModal({
192
192
  })
193
193
  })]
194
194
  })]
195
- })]
195
+ })
196
196
  });
197
197
  }
198
198
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_icons","_compose","_data","_blocks","_useBlockLock","_interopRequireDefault","_useBlockDisplayInformation","_store","_jsxRuntime","ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","useState","canEdit","canMove","canRemove","useBlockLock","allowsEditLocking","templateLock","hasTemplateLock","useSelect","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","getBlockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","useDispatch","blockInformation","useBlockDisplayInformation","instanceId","useInstanceId","useEffect","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","jsxs","Modal","title","sprintf","__","overlayClassName","onRequestClose","children","jsx","onSubmit","event","preventDefault","undefined","role","className","CheckboxControl","__nextHasNoMarginBottom","label","id","checked","indeterminate","onChange","newValue","prevLock","Icon","icon","lockIcon","unlockIcon","ToggleControl","disabled","Flex","justify","expanded","FlexItem","Button","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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_icons","_data","_blocks","_useBlockLock","_interopRequireDefault","_useBlockDisplayInformation","_store","_jsxRuntime","ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","useState","canEdit","canMove","canRemove","useBlockLock","allowsEditLocking","templateLock","hasTemplateLock","useSelect","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","getBlockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","useDispatch","blockInformation","useBlockDisplayInformation","useEffect","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","jsx","Modal","title","sprintf","__","overlayClassName","onRequestClose","children","jsxs","onSubmit","event","preventDefault","undefined","className","role","CheckboxControl","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","Icon","icon","lockIcon","unlockIcon","ToggleControl","disabled","Flex","justify","expanded","FlexItem","Button","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":[]}
@@ -37,14 +37,17 @@ function BlockMover({
37
37
  rootClientId,
38
38
  isFirst,
39
39
  isLast,
40
- orientation
40
+ orientation,
41
+ isManualGrid
41
42
  } = (0, _data.useSelect)(select => {
43
+ var _getBlockAttributes;
42
44
  const {
43
45
  getBlockIndex,
44
46
  getBlockListSettings,
45
47
  canMoveBlocks,
46
48
  getBlockOrder,
47
- getBlockRootClientId
49
+ getBlockRootClientId,
50
+ getBlockAttributes
48
51
  } = select(_store.store);
49
52
  const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
50
53
  const firstClientId = normalizedClientIds[0];
@@ -52,18 +55,21 @@ function BlockMover({
52
55
  const firstIndex = getBlockIndex(firstClientId);
53
56
  const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
54
57
  const blockOrder = getBlockOrder(_rootClientId);
58
+ const {
59
+ layout = {}
60
+ } = (_getBlockAttributes = getBlockAttributes(_rootClientId)) !== null && _getBlockAttributes !== void 0 ? _getBlockAttributes : {};
55
61
  return {
56
62
  canMove: canMoveBlocks(clientIds),
57
63
  rootClientId: _rootClientId,
58
64
  isFirst: firstIndex === 0,
59
65
  isLast: lastIndex === blockOrder.length - 1,
60
- orientation: getBlockListSettings(_rootClientId)?.orientation
66
+ orientation: getBlockListSettings(_rootClientId)?.orientation,
67
+ isManualGrid: layout.type === 'grid' && !!layout.columnCount && window.__experimentalEnableGridInteractivity
61
68
  };
62
69
  }, [clientIds]);
63
70
  if (!canMove || isFirst && isLast && !rootClientId) {
64
71
  return null;
65
72
  }
66
- const dragHandleLabel = (0, _i18n.__)('Drag');
67
73
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.ToolbarGroup, {
68
74
  className: (0, _clsx.default)('block-editor-block-mover', {
69
75
  'is-horizontal': orientation === 'horizontal'
@@ -75,14 +81,14 @@ function BlockMover({
75
81
  icon: _icons.dragHandle,
76
82
  className: "block-editor-block-mover__drag-handle",
77
83
  "aria-hidden": "true",
78
- label: dragHandleLabel
84
+ label: (0, _i18n.__)('Drag')
79
85
  // Should not be able to tab to drag handle as this
80
86
  // button can only be used with a pointer device.
81
87
  ,
82
88
  tabIndex: "-1",
83
89
  ...draggableProps
84
90
  })
85
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
91
+ }), !isManualGrid && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
86
92
  className: "block-editor-block-mover__move-button-container",
87
93
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarItem, {
88
94
  children: itemProps => /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.BlockMoverUpButton, {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_i18n","_blockDraggable","_button","_store","_jsxRuntime","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","useSelect","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","__","jsxs","ToolbarGroup","className","clsx","children","jsx","default","fadeWhenDisabled","draggableProps","Button","icon","dragHandle","label","tabIndex","ToolbarItem","itemProps","BlockMoverUpButton","disabled","BlockMoverDownButton","_default","exports"],"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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_i18n","_blockDraggable","_button","_store","_jsxRuntime","BlockMover","clientIds","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","canMove","rootClientId","isFirst","isLast","orientation","isManualGrid","useSelect","select","_getBlockAttributes","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","getBlockAttributes","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","layout","type","columnCount","window","__experimentalEnableGridInteractivity","jsxs","ToolbarGroup","className","clsx","children","jsx","default","fadeWhenDisabled","draggableProps","Button","icon","dragHandle","label","__","tabIndex","ToolbarItem","itemProps","BlockMoverUpButton","disabled","BlockMoverDownButton","_default","exports"],"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":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,eAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAAwD,IAAAQ,WAAA,GAAAR,OAAA;AAnBxD;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAKA,SAASS,UAAUA,CAAE;EACpBC,SAAS;EACTC,cAAc;EACdC,4BAA4B;EAC5BC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,OAAO;IACPC,YAAY;IACZC,OAAO;IACPC,MAAM;IACNC,WAAW;IACXC;EACD,CAAC,GAAG,IAAAC,eAAS,EACVC,MAAM,IAAM;IAAA,IAAAC,mBAAA;IACb,MAAM;MACLC,aAAa;MACbC,oBAAoB;MACpBC,aAAa;MACbC,aAAa;MACbC,oBAAoB;MACpBC;IACD,CAAC,GAAGP,MAAM,CAAEQ,YAAiB,CAAC;IAC9B,MAAMC,mBAAmB,GAAGC,KAAK,CAACC,OAAO,CAAEtB,SAAU,CAAC,GACnDA,SAAS,GACT,CAAEA,SAAS,CAAE;IAChB,MAAMuB,aAAa,GAAGH,mBAAmB,CAAE,CAAC,CAAE;IAC9C,MAAMI,aAAa,GAAGP,oBAAoB,CAAEM,aAAc,CAAC;IAC3D,MAAME,UAAU,GAAGZ,aAAa,CAAEU,aAAc,CAAC;IACjD,MAAMG,SAAS,GAAGb,aAAa,CAC9BO,mBAAmB,CAAEA,mBAAmB,CAACO,MAAM,GAAG,CAAC,CACpD,CAAC;IACD,MAAMC,UAAU,GAAGZ,aAAa,CAAEQ,aAAc,CAAC;IACjD,MAAM;MAAEK,MAAM,GAAG,CAAC;IAAE,CAAC,IAAAjB,mBAAA,GAAGM,kBAAkB,CAAEM,aAAc,CAAC,cAAAZ,mBAAA,cAAAA,mBAAA,GAAI,CAAC,CAAC;IAEjE,OAAO;MACNR,OAAO,EAAEW,aAAa,CAAEf,SAAU,CAAC;MACnCK,YAAY,EAAEmB,aAAa;MAC3BlB,OAAO,EAAEmB,UAAU,KAAK,CAAC;MACzBlB,MAAM,EAAEmB,SAAS,KAAKE,UAAU,CAACD,MAAM,GAAG,CAAC;MAC3CnB,WAAW,EAAEM,oBAAoB,CAAEU,aAAc,CAAC,EAAEhB,WAAW;MAC/DC,YAAY,EACXoB,MAAM,CAACC,IAAI,KAAK,MAAM,IACtB,CAAC,CAAED,MAAM,CAACE,WAAW,IACrBC,MAAM,CAACC;IACT,CAAC;EACF,CAAC,EACD,CAAEjC,SAAS,CACZ,CAAC;EAED,IAAK,CAAEI,OAAO,IAAME,OAAO,IAAIC,MAAM,IAAI,CAAEF,YAAc,EAAG;IAC3D,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAP,WAAA,CAAAoC,IAAA,EAAC1C,WAAA,CAAA2C,YAAY;IACZC,SAAS,EAAG,IAAAC,aAAI,EAAE,0BAA0B,EAAE;MAC7C,eAAe,EAAE7B,WAAW,KAAK;IAClC,CAAE,CAAG;IAAA8B,QAAA,GAEH,CAAErC,cAAc,iBACjB,IAAAH,WAAA,CAAAyC,GAAA,EAAC5C,eAAA,CAAA6C,OAAc;MAACxC,SAAS,EAAGA,SAAW;MAACyC,gBAAgB;MAAAH,QAAA,EACnDI,cAAc,iBACjB,IAAA5C,WAAA,CAAAyC,GAAA,EAAC/C,WAAA,CAAAmD,MAAM;QACNC,IAAI,EAAGC,iBAAY;QACnBT,SAAS,EAAC,uCAAuC;QACjD,eAAY,MAAM;QAClBU,KAAK,EAAG,IAAAC,QAAE,EAAE,MAAO;QACnB;QACA;QAAA;QACAC,QAAQ,EAAC,IAAI;QAAA,GACRN;MAAc,CACnB;IACD,CACc,CAChB,EACC,CAAEjC,YAAY,iBACf,IAAAX,WAAA,CAAAoC,IAAA;MAAKE,SAAS,EAAC,iDAAiD;MAAAE,QAAA,gBAC/D,IAAAxC,WAAA,CAAAyC,GAAA,EAAC/C,WAAA,CAAAyD,WAAW;QAAAX,QAAA,EACPY,SAAS,iBACZ,IAAApD,WAAA,CAAAyC,GAAA,EAAC3C,OAAA,CAAAuD,kBAAkB;UAClBC,QAAQ,EAAGlD,4BAA8B;UACzCF,SAAS,EAAGA,SAAW;UAAA,GAClBkD;QAAS,CACd;MACD,CACW,CAAC,eACd,IAAApD,WAAA,CAAAyC,GAAA,EAAC/C,WAAA,CAAAyD,WAAW;QAAAX,QAAA,EACPY,SAAS,iBACZ,IAAApD,WAAA,CAAAyC,GAAA,EAAC3C,OAAA,CAAAyD,oBAAoB;UACpBD,QAAQ,EAAGjD,8BAAgC;UAC3CH,SAAS,EAAGA,SAAW;UAAA,GAClBkD;QAAS,CACd;MACD,CACW,CAAC;IAAA,CACV,CACL;EAAA,CACY,CAAC;AAEjB;;AAEA;AACA;AACA;AAFA,IAAAI,QAAA,GAAAC,OAAA,CAAAf,OAAA,GAGezC,UAAU","ignoreList":[]}