@wordpress/block-library 6.0.9 → 6.0.10

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 (132) hide show
  1. package/build/cover/edit.js +8 -3
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/gallery/edit.js +1 -1
  4. package/build/gallery/edit.js.map +1 -1
  5. package/build/gallery/v1/update-gallery-modal.js +1 -1
  6. package/build/gallery/v1/update-gallery-modal.js.map +1 -1
  7. package/build/index.js +3 -2
  8. package/build/index.js.map +1 -1
  9. package/build/navigation/deprecated.js +118 -12
  10. package/build/navigation/deprecated.js.map +1 -1
  11. package/build/navigation/edit/index.js +45 -31
  12. package/build/navigation/edit/index.js.map +1 -1
  13. package/build/navigation/edit/navigation-menu-selector.js +2 -2
  14. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  15. package/build/navigation/edit/placeholder/index.js +16 -48
  16. package/build/navigation/edit/placeholder/index.js.map +1 -1
  17. package/build/navigation/edit/unsaved-inner-blocks.js +4 -35
  18. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  19. package/build/navigation/edit/use-create-navigation-menu.js +50 -0
  20. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -0
  21. package/build/navigation/edit/use-generate-default-navigation-title.js +73 -0
  22. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  23. package/build/navigation/index.js +1 -1
  24. package/build/navigation/save.js +2 -2
  25. package/build/navigation/save.js.map +1 -1
  26. package/build/navigation/use-navigation-menu.js +19 -8
  27. package/build/navigation/use-navigation-menu.js.map +1 -1
  28. package/build/pattern/index.js +1 -1
  29. package/build/post-featured-image/edit.js +2 -3
  30. package/build/post-featured-image/edit.js.map +1 -1
  31. package/build/post-terms/index.js +1 -1
  32. package/build/post-title/edit.js +2 -2
  33. package/build/post-title/edit.js.map +1 -1
  34. package/build/query-title/index.js +1 -1
  35. package/build/site-logo/index.js +1 -1
  36. package/build/site-tagline/index.js +1 -1
  37. package/build/site-title/index.js +1 -1
  38. package/build/template-part/edit/placeholder/index.js +1 -1
  39. package/build/template-part/edit/placeholder/index.js.map +1 -1
  40. package/build/template-part/index.js +2 -1
  41. package/build/template-part/index.js.map +1 -1
  42. package/build-module/cover/edit.js +8 -3
  43. package/build-module/cover/edit.js.map +1 -1
  44. package/build-module/gallery/edit.js +1 -1
  45. package/build-module/gallery/edit.js.map +1 -1
  46. package/build-module/gallery/v1/update-gallery-modal.js +1 -1
  47. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -1
  48. package/build-module/index.js +3 -2
  49. package/build-module/index.js.map +1 -1
  50. package/build-module/navigation/deprecated.js +118 -12
  51. package/build-module/navigation/deprecated.js.map +1 -1
  52. package/build-module/navigation/edit/index.js +46 -31
  53. package/build-module/navigation/edit/index.js.map +1 -1
  54. package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
  55. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  56. package/build-module/navigation/edit/placeholder/index.js +15 -45
  57. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  58. package/build-module/navigation/edit/unsaved-inner-blocks.js +6 -35
  59. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  60. package/build-module/navigation/edit/use-create-navigation-menu.js +36 -0
  61. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -0
  62. package/build-module/navigation/edit/use-generate-default-navigation-title.js +57 -0
  63. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  64. package/build-module/navigation/index.js +1 -1
  65. package/build-module/navigation/save.js +2 -2
  66. package/build-module/navigation/save.js.map +1 -1
  67. package/build-module/navigation/use-navigation-menu.js +19 -8
  68. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  69. package/build-module/pattern/index.js +1 -1
  70. package/build-module/post-featured-image/edit.js +2 -3
  71. package/build-module/post-featured-image/edit.js.map +1 -1
  72. package/build-module/post-terms/index.js +1 -1
  73. package/build-module/post-title/edit.js +2 -2
  74. package/build-module/post-title/edit.js.map +1 -1
  75. package/build-module/query-title/index.js +1 -1
  76. package/build-module/site-logo/index.js +1 -1
  77. package/build-module/site-tagline/index.js +1 -1
  78. package/build-module/site-title/index.js +1 -1
  79. package/build-module/template-part/edit/placeholder/index.js +2 -2
  80. package/build-module/template-part/edit/placeholder/index.js.map +1 -1
  81. package/build-module/template-part/index.js +2 -1
  82. package/build-module/template-part/index.js.map +1 -1
  83. package/build-style/editor-rtl.css +5 -4
  84. package/build-style/editor.css +5 -4
  85. package/build-style/gallery/editor-rtl.css +1 -0
  86. package/build-style/gallery/editor.css +1 -0
  87. package/build-style/post-featured-image/editor-rtl.css +2 -2
  88. package/build-style/post-featured-image/editor.css +2 -2
  89. package/build-style/site-logo/editor-rtl.css +2 -2
  90. package/build-style/site-logo/editor.css +2 -2
  91. package/package.json +8 -8
  92. package/src/calendar/index.php +2 -2
  93. package/src/cover/edit.js +8 -1
  94. package/src/gallery/edit.js +1 -1
  95. package/src/gallery/editor.scss +1 -0
  96. package/src/gallery/v1/update-gallery-modal.js +1 -1
  97. package/src/index.js +27 -25
  98. package/src/navigation/block.json +1 -1
  99. package/src/navigation/deprecated.js +105 -4
  100. package/src/navigation/edit/index.js +43 -36
  101. package/src/navigation/edit/navigation-menu-selector.js +2 -2
  102. package/src/navigation/edit/placeholder/index.js +16 -62
  103. package/src/navigation/edit/unsaved-inner-blocks.js +6 -57
  104. package/src/navigation/edit/use-create-navigation-menu.js +39 -0
  105. package/src/navigation/edit/use-generate-default-navigation-title.js +79 -0
  106. package/src/navigation/index.php +128 -14
  107. package/src/navigation/save.js +2 -2
  108. package/src/navigation/use-navigation-menu.js +20 -9
  109. package/src/page-list/index.php +5 -0
  110. package/src/pattern/block.json +1 -1
  111. package/src/post-featured-image/edit.js +2 -5
  112. package/src/post-featured-image/editor.scss +2 -2
  113. package/src/post-terms/block.json +1 -1
  114. package/src/post-title/edit.js +2 -2
  115. package/src/query-title/block.json +1 -1
  116. package/src/site-logo/block.json +1 -1
  117. package/src/site-logo/editor.scss +2 -2
  118. package/src/site-tagline/block.json +1 -1
  119. package/src/site-title/block.json +1 -1
  120. package/src/template-part/block.json +2 -1
  121. package/src/template-part/edit/placeholder/index.js +2 -2
  122. package/src/template-part/index.php +2 -1
  123. package/build/navigation/edit/navigation-menu-name-modal.js +0 -55
  124. package/build/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  125. package/build/navigation/edit/navigation-menu-publish-button.js +0 -53
  126. package/build/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  127. package/build-module/navigation/edit/navigation-menu-name-modal.js +0 -47
  128. package/build-module/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  129. package/build-module/navigation/edit/navigation-menu-publish-button.js +0 -40
  130. package/build-module/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  131. package/src/navigation/edit/navigation-menu-name-modal.js +0 -69
  132. package/src/navigation/edit/navigation-menu-publish-button.js +0 -57
@@ -12,7 +12,7 @@ import { useState, useEffect, useRef, useCallback, Platform } from '@wordpress/e
12
12
  import { InspectorControls, BlockControls, useBlockProps, __experimentalUseNoRecursiveRenders as useNoRecursiveRenders, store as blockEditorStore, withColors, PanelColorSettings, ContrastChecker, getColorClassName, Warning } from '@wordpress/block-editor';
13
13
  import { EntityProvider, useEntityProp } from '@wordpress/core-data';
14
14
  import { useDispatch, useSelect } from '@wordpress/data';
15
- import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, ToolbarGroup, ToolbarDropdownMenu } from '@wordpress/components';
15
+ import { PanelBody, ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, ToolbarGroup, ToolbarDropdownMenu, Button } from '@wordpress/components';
16
16
  import { __ } from '@wordpress/i18n';
17
17
  /**
18
18
  * Internal dependencies
@@ -26,7 +26,6 @@ import ResponsiveWrapper from './responsive-wrapper';
26
26
  import NavigationInnerBlocks from './inner-blocks';
27
27
  import NavigationMenuSelector from './navigation-menu-selector';
28
28
  import NavigationMenuNameControl from './navigation-menu-name-control';
29
- import NavigationMenuPublishButton from './navigation-menu-publish-button';
30
29
  import UnsavedInnerBlocks from './unsaved-inner-blocks';
31
30
  import NavigationMenuDeleteControl from './navigation-menu-delete-control';
32
31
 
@@ -87,17 +86,17 @@ function Navigation(_ref) {
87
86
  } = attributes;
88
87
  const [areaMenu, setAreaMenu] = useEntityProp('root', 'navigationArea', 'navigation', navigationArea);
89
88
  const navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;
90
- const navigationMenuId = navigationArea ? navigationAreaMenu : attributes.navigationMenuId;
91
- const setNavigationMenuId = useCallback(postId => {
89
+ const ref = navigationArea ? navigationAreaMenu : attributes.ref;
90
+ const setRef = useCallback(postId => {
92
91
  setAttributes({
93
- navigationMenuId: postId
92
+ ref: postId
94
93
  });
95
94
 
96
95
  if (navigationArea) {
97
96
  setAreaMenu(postId);
98
97
  }
99
98
  }, [navigationArea]);
100
- const [hasAlreadyRendered, RecursionProvider] = useNoRecursiveRenders(`navigationMenu/${navigationMenuId}`);
99
+ const [hasAlreadyRendered, RecursionProvider] = useNoRecursiveRenders(`navigationMenu/${ref}`);
101
100
  const {
102
101
  innerBlocks,
103
102
  isInnerBlockSelected
@@ -118,7 +117,7 @@ function Navigation(_ref) {
118
117
  __unstableMarkNextChangeAsNotPersistent
119
118
  } = useDispatch(blockEditorStore);
120
119
  const [hasSavedUnsavedInnerBlocks, setHasSavedUnsavedInnerBlocks] = useState(false);
121
- const isWithinUnassignedArea = navigationArea && !navigationMenuId;
120
+ const isWithinUnassignedArea = navigationArea && !ref;
122
121
  const [isPlaceholderShown, setIsPlaceholderShown] = useState(!hasExistingNavItems || isWithinUnassignedArea);
123
122
  const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = useState(false);
124
123
  const {
@@ -128,7 +127,7 @@ function Navigation(_ref) {
128
127
  hasResolvedNavigationMenus,
129
128
  navigationMenus,
130
129
  navigationMenu
131
- } = useNavigationMenu(navigationMenuId);
130
+ } = useNavigationMenu(ref);
132
131
  const navRef = useRef();
133
132
  const isDraftNavigationMenu = (navigationMenu === null || navigationMenu === void 0 ? void 0 : navigationMenu.status) === 'draft';
134
133
  const {
@@ -194,7 +193,26 @@ function Navigation(_ref) {
194
193
 
195
194
  useEffect(() => {
196
195
  setIsPlaceholderShown(!isEntityAvailable);
197
- }, [isEntityAvailable]); // If the block has inner blocks, but no menu id, this was an older
196
+ }, [isEntityAvailable]); // If the ref no longer exists the reset the inner blocks
197
+ // to provide a clean slate.
198
+
199
+ useEffect(() => {
200
+ if (ref === undefined && innerBlocks.length > 0) {
201
+ replaceInnerBlocks(clientId, []);
202
+ } // innerBlocks are intentionally not listed as deps. This function is only concerned
203
+ // with the snapshot from the time when ref became undefined.
204
+
205
+ }, [clientId, ref, innerBlocks]);
206
+ const startWithEmptyMenu = useCallback(() => {
207
+ if (navigationArea) {
208
+ setAreaMenu(0);
209
+ }
210
+
211
+ setAttributes({
212
+ ref: undefined
213
+ });
214
+ setIsPlaceholderShown(true);
215
+ }, [clientId]); // If the block has inner blocks, but no menu id, this was an older
198
216
  // navigation block added before the block used a wp_navigation entity.
199
217
  // Either this block was saved in the content or inserted by a pattern.
200
218
  // Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,
@@ -213,15 +231,18 @@ function Navigation(_ref) {
213
231
  onSave: post => {
214
232
  setHasSavedUnsavedInnerBlocks(true); // Switch to using the wp_navigation entity.
215
233
 
216
- setNavigationMenuId(post.id);
234
+ setRef(post.id);
217
235
  }
218
236
  });
219
237
  } // Show a warning if the selected menu is no longer available.
220
238
  // TODO - the user should be able to select a new one?
221
239
 
222
240
 
223
- if (navigationMenuId && isNavigationMenuMissing) {
224
- return createElement("div", blockProps, createElement(Warning, null, __('Navigation menu has been deleted or is unavailable')));
241
+ if (ref && isNavigationMenuMissing) {
242
+ return createElement("div", blockProps, createElement(Warning, null, __('Navigation menu has been deleted or is unavailable. '), createElement(Button, {
243
+ onClick: startWithEmptyMenu,
244
+ variant: "link"
245
+ }, __('Create a new menu?'))));
225
246
  }
226
247
 
227
248
  if (isEntityAvailable && hasAlreadyRendered) {
@@ -232,7 +253,7 @@ function Navigation(_ref) {
232
253
  return createElement(EntityProvider, {
233
254
  kind: "postType",
234
255
  type: "wp_navigation",
235
- id: navigationMenuId
256
+ id: ref
236
257
  }, createElement(RecursionProvider, null, createElement(BlockControls, null, !isDraftNavigationMenu && isEntityAvailable && createElement(ToolbarGroup, null, createElement(ToolbarDropdownMenu, {
237
258
  label: __('Select Menu'),
238
259
  text: __('Select Menu'),
@@ -246,21 +267,12 @@ function Navigation(_ref) {
246
267
  let {
247
268
  id
248
269
  } = _ref3;
249
- setNavigationMenuId(id);
270
+ setRef(id);
250
271
  onClose();
251
272
  },
252
- onCreateNew: () => {
253
- if (navigationArea) {
254
- setAreaMenu(0);
255
- }
256
-
257
- setAttributes({
258
- navigationMenuId: undefined
259
- });
260
- setIsPlaceholderShown(true);
261
- }
273
+ onCreateNew: startWithEmptyMenu
262
274
  });
263
- })), createElement(ToolbarGroup, null, listViewToolbarButton), isDraftNavigationMenu && createElement(ToolbarGroup, null, createElement(NavigationMenuPublishButton, null))), listViewModal, createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
275
+ })), createElement(ToolbarGroup, null, listViewToolbarButton)), listViewModal, createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
264
276
  title: __('Display')
265
277
  }, createElement("h3", null, __('Overlay Menu')), createElement(ToggleGroupControl, {
266
278
  label: __('Configure overlay menu'),
@@ -327,25 +339,28 @@ function Navigation(_ref) {
327
339
  __experimentalGroup: "advanced"
328
340
  }, createElement(NavigationMenuNameControl, null), createElement(NavigationMenuDeleteControl, {
329
341
  onDelete: () => {
330
- replaceInnerBlocks(clientId, []);
331
-
332
342
  if (navigationArea) {
333
343
  setAreaMenu(0);
334
344
  }
335
345
 
336
346
  setAttributes({
337
- navigationMenuId: undefined
347
+ ref: undefined
338
348
  });
339
349
  setIsPlaceholderShown(true);
340
350
  }
341
- })), createElement("nav", blockProps, !isEntityAvailable && isPlaceholderShown && createElement(PlaceholderComponent, {
351
+ })), createElement("nav", blockProps, isPlaceholderShown && createElement(PlaceholderComponent, {
342
352
  onFinish: post => {
343
353
  setIsPlaceholderShown(false);
344
- setNavigationMenuId(post.id);
354
+
355
+ if (post) {
356
+ setRef(post.id);
357
+ }
358
+
345
359
  selectBlock(clientId);
346
360
  },
347
361
  canSwitchNavigationMenu: canSwitchNavigationMenu,
348
- hasResolvedNavigationMenus: hasResolvedNavigationMenus
362
+ hasResolvedNavigationMenus: hasResolvedNavigationMenus,
363
+ clientId: clientId
349
364
  }), !isEntityAvailable && !isPlaceholderShown && createElement(PlaceholderPreview, {
350
365
  isLoading: true
351
366
  }), !isPlaceholderShown && createElement(ResponsiveWrapper, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","EntityProvider","useEntityProp","useDispatch","useSelect","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","ToolbarDropdownMenu","__","useListViewModal","useNavigationMenu","Placeholder","PlaceholderPreview","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","NavigationMenuPublishButton","UnsavedInnerBlocks","NavigationMenuDeleteControl","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","customAppender","CustomAppender","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","areaMenu","setAreaMenu","navigationAreaMenu","undefined","navigationMenuId","setNavigationMenuId","postId","hasAlreadyRendered","RecursionProvider","innerBlocks","isInnerBlockSelected","select","getBlocks","hasSelectedInnerBlock","hasExistingNavItems","length","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","ref","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","hasUnsavedBlocks","post","id","PlaceholderComponent","onClose","value","onChange","label"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,QADD,EAECC,SAFD,EAGCC,MAHD,EAICC,WAJD,EAKCC,QALD,QAMO,oBANP;AAOA,SACCC,iBADD,EAECC,aAFD,EAGCC,aAHD,EAICC,mCAAmC,IAAIC,qBAJxC,EAKCC,KAAK,IAAIC,gBALV,EAMCC,UAND,EAOCC,kBAPD,EAQCC,eARD,EASCC,iBATD,EAUCC,OAVD,QAWO,yBAXP;AAYA,SAASC,cAAT,EAAyBC,aAAzB,QAA8C,sBAA9C;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SACCC,SADD,EAECC,aAFD,EAGCC,gCAAgC,IAAIC,kBAHrC,EAICC,sCAAsC,IAAIC,wBAJ3C,EAKCC,YALD,EAMCC,mBAND,QAOO,uBAPP;AAQA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,gBAAP,MAA6B,uBAA7B;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,kBAAP,MAA+B,mCAA/B;AACA,OAAOC,iBAAP,MAA8B,sBAA9B;AACA,OAAOC,qBAAP,MAAkC,gBAAlC;AACA,OAAOC,sBAAP,MAAmC,4BAAnC;AACA,OAAOC,yBAAP,MAAsC,gCAAtC;AACA,OAAOC,2BAAP,MAAwC,kCAAxC;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,2BAAP,MAAwC,kCAAxC;;AAEA,SAASC,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,CAACC,aAAL,CAAmBC,WAAnB,CAA+BH,gBAA/B,CAAiDC,IAAjD,CAAP;AACA;;AAED,SAASG,YAAT,CAAuBC,sBAAvB,EAA+CC,QAA/C,EAAyDC,aAAzD,EAAyE;AACxE,MAAK,CAAEF,sBAAP,EAAgC;AAC/B;AACA;;AACDC,EAAAA,QAAQ,CAAEN,gBAAgB,CAAEK,sBAAF,CAAhB,CAA2CG,KAA7C,CAAR;AAEA,MAAIC,mBAAmB,GAAGJ,sBAA1B;AACA,MAAIK,eAAe,GAAGV,gBAAgB,CAAES,mBAAF,CAAhB,CACpBC,eADF;;AAEA,SACCA,eAAe,KAAK,kBAApB,IACAD,mBAAmB,CAACE,UADpB,IAEAF,mBAAmB,CAACE,UAApB,CAA+BC,QAA/B,KACCH,mBAAmB,CAACE,UAApB,CAA+BE,YAJjC,EAKE;AACDJ,IAAAA,mBAAmB,GAAGA,mBAAmB,CAACE,UAA1C;AACAD,IAAAA,eAAe,GAAGV,gBAAgB,CAAES,mBAAF,CAAhB,CAChBC,eADF;AAEA;;AAEDH,EAAAA,aAAa,CAAEG,eAAF,CAAb;AACA;;AAED,SAASI,UAAT,OAsBI;AAAA,MAtBiB;AACpBC,IAAAA,UADoB;AAEpBC,IAAAA,aAFoB;AAGpBC,IAAAA,QAHoB;AAIpBC,IAAAA,UAJoB;AAKpBC,IAAAA,SALoB;AAMpBT,IAAAA,eANoB;AAOpBU,IAAAA,kBAPoB;AAQpBC,IAAAA,SARoB;AASpBC,IAAAA,YAToB;AAUpBC,IAAAA,sBAVoB;AAWpBC,IAAAA,yBAXoB;AAYpBC,IAAAA,gBAZoB;AAapBC,IAAAA,mBAboB;AAcpBC,IAAAA,OAAO,EAAE;AAAEC,MAAAA;AAAF,KAdW;AAgBpB;AACA;AACAC,IAAAA,0BAA0B,GAAG,IAlBT;AAmBpBC,IAAAA,gBAAgB,GAAG,IAnBC;AAoBpBC,IAAAA,iBAAiB,EAAEC,iBAAiB,GAAG,IApBnB;AAqBpBC,IAAAA,cAAc,EAAEC,cAAc,GAAG;AArBb,GAsBjB;AACH,QAAM;AACLC,IAAAA,mBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,cAAF;AAAkBC,MAAAA,WAAW,GAAG;AAAhC,QAAiD;AAJpD,MAKFzB,UALJ;AAOA,QAAM,CAAE0B,QAAF,EAAYC,WAAZ,IAA4BjE,aAAa,CAC9C,MAD8C,EAE9C,gBAF8C,EAG9C,YAH8C,EAI9CmD,cAJ8C,CAA/C;AAOA,QAAMe,kBAAkB,GAAGF,QAAQ,KAAK,CAAb,GAAiBG,SAAjB,GAA6BH,QAAxD;AAEA,QAAMI,gBAAgB,GAAGjB,cAAc,GACpCe,kBADoC,GAEpC5B,UAAU,CAAC8B,gBAFd;AAIA,QAAMC,mBAAmB,GAAGpF,WAAW,CACpCqF,MAAF,IAAc;AACb/B,IAAAA,aAAa,CAAE;AAAE6B,MAAAA,gBAAgB,EAAEE;AAApB,KAAF,CAAb;;AACA,QAAKnB,cAAL,EAAsB;AACrBc,MAAAA,WAAW,CAAEK,MAAF,CAAX;AACA;AACD,GANqC,EAOtC,CAAEnB,cAAF,CAPsC,CAAvC;AAUA,QAAM,CAAEoB,kBAAF,EAAsBC,iBAAtB,IAA4CjF,qBAAqB,CACrE,kBAAkB6E,gBAAkB,EADiC,CAAvE;AAIA,QAAM;AAAEK,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAwCxE,SAAS,CACpDyE,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA;AAAb,QAAuCF,MAAM,CAClDlF,gBADkD,CAAnD;AAGA,WAAO;AACNgF,MAAAA,WAAW,EAAEG,SAAS,CAAEpC,QAAF,CADhB;AAENkC,MAAAA,oBAAoB,EAAEG,qBAAqB,CAAErC,QAAF,EAAY,IAAZ;AAFrC,KAAP;AAIA,GATqD,EAUtD,CAAEA,QAAF,CAVsD,CAAvD;AAYA,QAAMsC,mBAAmB,GAAG,CAAC,CAAEL,WAAW,CAACM,MAA3C;AACA,QAAM;AACLC,IAAAA,kBADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA;AAHK,MAIFjF,WAAW,CAAER,gBAAF,CAJf;AAMA,QAAM,CACL0F,0BADK,EAELC,6BAFK,IAGFtG,QAAQ,CAAE,KAAF,CAHZ;AAKA,QAAMuG,sBAAsB,GAAGlC,cAAc,IAAI,CAAEiB,gBAAnD;AAEA,QAAM,CAAEkB,kBAAF,EAAsBC,qBAAtB,IAAgDzG,QAAQ,CAC7D,CAAEgG,mBAAF,IAAyBO,sBADoC,CAA9D;AAIA,QAAM,CAAEG,oBAAF,EAAwBC,2BAAxB,IAAwD3G,QAAQ,CACrE,KADqE,CAAtE;AAIA,QAAM;AACL4G,IAAAA,wBADK;AAELC,IAAAA,uBAFK;AAGLC,IAAAA,uBAHK;AAILC,IAAAA,0BAJK;AAKLC,IAAAA,eALK;AAMLC,IAAAA;AANK,MAOFlF,iBAAiB,CAAEuD,gBAAF,CAPrB;AASA,QAAM4B,MAAM,GAAGhH,MAAM,EAArB;AACA,QAAMiH,qBAAqB,GAAG,CAAAF,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEG,MAAhB,MAA2B,OAAzD;AAEA,QAAM;AAAEC,IAAAA,qBAAF;AAAyBC,IAAAA;AAAzB,MAA2CxF,gBAAgB,CAChE4B,QADgE,CAAjE;AAIA,QAAM6D,iBAAiB,GACtB,CAAEV,uBAAF,IAA6BD,wBAD9B;AAGA,QAAMY,UAAU,GAAGjH,aAAa,CAAE;AACjCkH,IAAAA,GAAG,EAAEP,MAD4B;AAEjCtD,IAAAA,SAAS,EAAE7D,UAAU,CAAE6D,SAAF,EAAa;AACjC,+BAAyBoB,cAAc,KAAK,OADX;AAEjC,uCAAiCA,cAAc,KAAK,eAFnB;AAGjC,uBAAiB,YAAYH,WAHI;AAIjC,wBAAkB,CAAC,CAAEf,SAAS,CAACb,KAAb,IAAsB,CAAC,EAAEa,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE4D,KAAb,CAJR;AAKjC,OAAE3G,iBAAiB,CAClB,OADkB,EAElB+C,SAFkB,aAElBA,SAFkB,uBAElBA,SAAS,CAAE6D,IAFO,CAAnB,GAGK,CAAC,EAAE7D,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE6D,IAAb,CAR2B;AASjC,wBAAkB,CAAC,CAAExE,eAAe,CAACF,KAAnB,IAA4BE,eAAe,CAACuE,KAT7B;AAUjC,OAAE3G,iBAAiB,CAClB,kBADkB,EAElBoC,eAFkB,aAElBA,eAFkB,uBAElBA,eAAe,CAAEwE,IAFC,CAAnB,GAGK,CAAC,EAAExE,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEwE,IAAnB;AAb2B,KAAb,CAFY;AAiBjCC,IAAAA,KAAK,EAAE;AACN3E,MAAAA,KAAK,EAAE,EAAEa,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAE6D,IAAb,MAAqB7D,SAArB,aAAqBA,SAArB,uBAAqBA,SAAS,CAAEb,KAAhC,CADD;AAENE,MAAAA,eAAe,EAAE,EAAEA,eAAF,aAAEA,eAAF,eAAEA,eAAe,CAAEwE,IAAnB,MAA2BxE,eAA3B,aAA2BA,eAA3B,uBAA2BA,eAAe,CAAEF,KAA5C;AAFX;AAjB0B,GAAF,CAAhC;AAuBA,QAAM4E,iBAAiB,GAAG9H,UAAU,CAAE;AACrC,sBACC,CAAC,CAAEmE,gBAAgB,CAACjB,KAApB,IAA6B,CAAC,EAAEiB,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEwD,KAApB,CAFM;AAGrC,KAAE3G,iBAAiB,CAClB,OADkB,EAElBmD,gBAFkB,aAElBA,gBAFkB,uBAElBA,gBAAgB,CAAEyD,IAFA,CAAnB,GAGK,CAAC,EAAEzD,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEyD,IAApB,CAN+B;AAOrC,sBACC,CAAC,CAAE3D,sBAAsB,CAACf,KAA1B,KAAmCe,sBAAnC,aAAmCA,sBAAnC,uBAAmCA,sBAAsB,CAAE0D,KAA3D,CARoC;AASrC,KAAE3G,iBAAiB,CAClB,kBADkB,EAElBiD,sBAFkB,aAElBA,sBAFkB,uBAElBA,sBAAsB,CAAE2D,IAFN,CAAnB,GAGK,CAAC,EAAE3D,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAE2D,IAA1B;AAZ+B,GAAF,CAApC;AAeA,QAAMG,aAAa,GAAG;AACrB7E,IAAAA,KAAK,EAAE,EAAEiB,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEyD,IAApB,MAA4BzD,gBAA5B,aAA4BA,gBAA5B,uBAA4BA,gBAAgB,CAAEjB,KAA9C,CADc;AAErBE,IAAAA,eAAe,EACd,EAAEa,sBAAF,aAAEA,sBAAF,eAAEA,sBAAsB,CAAE2D,IAA1B,MACA3D,sBADA,aACAA,sBADA,uBACAA,sBAAsB,CAAEf,KADxB,KAEAe,sBAAsB,CAACf;AALH,GAAtB,CA9HG,CAsIH;;AACA,QAAM8E,sBAAsB,GAAG3H,QAAQ,CAAC4H,EAAT,KAAgB,KAA/C;AAEA,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0DlI,QAAQ,EAAxE;AACA,QAAM,CAAEmI,aAAF,EAAiBC,gBAAjB,IAAsCpI,QAAQ,EAApD;AACA,QAAM,CACLqI,8BADK,EAELC,iCAFK,IAGFtI,QAAQ,EAHZ;AAIA,QAAM,CAAEuI,oBAAF,EAAwBC,uBAAxB,IAAoDxI,QAAQ,EAAlE,CA/IG,CAiJH;AACA;;AACAC,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKgF,WAAL,EAAmB;AAClBmB,MAAAA,uCAAuC;;AACvC3C,MAAAA,aAAa,CAAE;AAAEwB,QAAAA;AAAF,OAAF,CAAb;AACA;AACD,GALQ,EAKN,CAAEA,WAAF,CALM,CAAT;AAOAhF,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE8H,sBAAP,EAAgC;AAC/B;AACA;;AACDlF,IAAAA,YAAY,CACXqE,MAAM,CAACuB,OADI,EAEXL,gBAFW,EAGXF,0BAHW,CAAZ;AAKA,UAAMQ,cAAc,GAAGxB,MAAM,CAACuB,OAAP,CAAeE,aAAf,CACtB,uEADsB,CAAvB;;AAGA,QAAKD,cAAL,EAAsB;AACrB7F,MAAAA,YAAY,CACX6F,cADW,EAEXF,uBAFW,EAGXF,iCAHW,CAAZ;AAKA;AACD,GAnBQ,CAAT,CA1JG,CA+KH;;AACArI,EAAAA,SAAS,CAAE,MAAM;AAChBwG,IAAAA,qBAAqB,CAAE,CAAEc,iBAAJ,CAArB;AACA,GAFQ,EAEN,CAAEA,iBAAF,CAFM,CAAT,CAhLG,CAoLH;AACA;AACA;AACA;AACA;;AACA,QAAMqB,gBAAgB,GACrB5C,mBAAmB,IAAI,CAAEuB,iBAAzB,IAA8C,CAAEhB,sBADjD;;AAEA,MAAKqC,gBAAL,EAAwB;AACvB,WACC,cAAC,kBAAD;AACC,MAAA,UAAU,EAAGpB,UADd;AAEC,MAAA,MAAM,EAAG7B,WAFV;AAGC,MAAA,QAAQ,EAAGjC,QAHZ;AAIC,MAAA,eAAe,EAAGsD,eAJnB;AAKC,MAAA,YAAY,EAAGrD,UAAU,IAAIiC,oBAL9B;AAMC,MAAA,0BAA0B,EAAGS,0BAN9B;AAOC,MAAA,MAAM,EAAKwC,IAAF,IAAY;AACpBvC,QAAAA,6BAA6B,CAAE,IAAF,CAA7B,CADoB,CAEpB;;AACAf,QAAAA,mBAAmB,CAAEsD,IAAI,CAACC,EAAP,CAAnB;AACA;AAXF,MADD;AAeA,GA3ME,CA6MH;AACA;;;AACA,MAAKxD,gBAAgB,IAAIuB,uBAAzB,EAAmD;AAClD,WACC,qBAAUW,UAAV,EACC,cAAC,OAAD,QACG3F,EAAE,CACH,oDADG,CADL,CADD,CADD;AASA;;AAED,MAAK0F,iBAAiB,IAAI9B,kBAA1B,EAA+C;AAC9C,WACC,qBAAU+B,UAAV,EACC,cAAC,OAAD,QACG3F,EAAE,CAAE,yCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAMkH,oBAAoB,GAAGtE,iBAAiB,GAC3CA,iBAD2C,GAE3CzC,WAFH;AAIA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,UADN;AAEC,IAAA,IAAI,EAAC,eAFN;AAGC,IAAA,EAAE,EAAGsD;AAHN,KAKC,cAAC,iBAAD,QACC,cAAC,aAAD,QACG,CAAE6B,qBAAF,IAA2BI,iBAA3B,IACD,cAAC,YAAD,QACC,cAAC,mBAAD;AACC,IAAA,KAAK,EAAG1F,EAAE,CAAE,aAAF,CADX;AAEC,IAAA,IAAI,EAAGA,EAAE,CAAE,aAAF,CAFV;AAGC,IAAA,IAAI,EAAG;AAHR,KAKG;AAAA,QAAE;AAAEmH,MAAAA;AAAF,KAAF;AAAA,WACD,cAAC,sBAAD;AACC,MAAA,QAAQ,EAAG,SAAc;AAAA,YAAZ;AAAEF,UAAAA;AAAF,SAAY;AACxBvD,QAAAA,mBAAmB,CAAEuD,EAAF,CAAnB;AACAE,QAAAA,OAAO;AACP,OAJF;AAKC,MAAA,WAAW,EAAG,MAAM;AACnB,YAAK3E,cAAL,EAAsB;AACrBc,UAAAA,WAAW,CAAE,CAAF,CAAX;AACA;;AACD1B,QAAAA,aAAa,CAAE;AACd6B,UAAAA,gBAAgB,EAAED;AADJ,SAAF,CAAb;AAGAoB,QAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA;AAbF,MADC;AAAA,GALH,CADD,CAFF,EA4BC,cAAC,YAAD,QAAgBY,qBAAhB,CA5BD,EA6BGF,qBAAqB,IACtB,cAAC,YAAD,QACC,cAAC,2BAAD,OADD,CA9BF,CADD,EAoCGG,aApCH,EAqCC,cAAC,iBAAD,QACGhD,0BAA0B,IAC3B,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGzC,EAAE,CAAE,SAAF;AAArB,KACC,0BAAMA,EAAE,CAAE,cAAF,CAAR,CADD,EAEC,cAAC,kBAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,wBAAF,CADX;AAEC,IAAA,KAAK,EAAGgD,WAFT;AAGC,IAAA,IAAI,EAAGhD,EAAE,CACR,qEADQ,CAHV;AAMC,IAAA,QAAQ,EAAKoH,KAAF,IACVxF,aAAa,CAAE;AAAEoB,MAAAA,WAAW,EAAEoE;AAAf,KAAF,CAPf;AASC,IAAA,OAAO,MATR;AAUC,IAAA,mBAAmB;AAVpB,KAYC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,KAAK,EAAGpH,EAAE,CAAE,KAAF;AAFX,IAZD,EAgBC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,QAAF;AAFX,IAhBD,EAoBC,cAAC,wBAAD;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,KAAK,EAAGA,EAAE,CAAE,QAAF;AAFX,IApBD,CAFD,EA2BC,0BAAMA,EAAE,CAAE,UAAF,CAAR,CA3BD,EA4BC,cAAC,aAAD;AACC,IAAA,OAAO,EAAG+C,mBADX;AAEC,IAAA,QAAQ,EAAKqE,KAAF,IAAa;AACvBxF,MAAAA,aAAa,CAAE;AACdmB,QAAAA,mBAAmB,EAAEqE;AADP,OAAF,CAAb;AAGA,KANF;AAOC,IAAA,KAAK,EAAGpH,EAAE,CAAE,eAAF;AAPX,IA5BD,EAqCG,CAAE2B,UAAU,CAACoB,mBAAb,IACD,cAAC,aAAD;AACC,IAAA,OAAO,EAAGE,eADX;AAEC,IAAA,QAAQ,EAAKmE,KAAF,IAAa;AACvBxF,MAAAA,aAAa,CAAE;AACdqB,QAAAA,eAAe,EAAEmE;AADH,OAAF,CAAb;AAGA,KANF;AAOC,IAAA,KAAK,EAAGpH,EAAE,CAAE,YAAF;AAPX,IAtCF,CAFF,EAoDG0C,gBAAgB,IACjB,cAAC,kBAAD;AACC,IAAA,gCAAgC,MADjC;AAEC,IAAA,KAAK,EAAG1C,EAAE,CAAE,OAAF,CAFX;AAGC,IAAA,WAAW,EAAG,KAHf;AAIC,IAAA,aAAa,EAAG,CACf;AACCoH,MAAAA,KAAK,EAAEnF,SAAS,CAACb,KADlB;AAECiG,MAAAA,QAAQ,EAAEnF,YAFX;AAGCoF,MAAAA,KAAK,EAAEtH,EAAE,CAAE,MAAF;AAHV,KADe,EAMf;AACCoH,MAAAA,KAAK,EAAE9F,eAAe,CAACF,KADxB;AAECiG,MAAAA,QAAQ,EAAErF,kBAFX;AAGCsF,MAAAA,KAAK,EAAEtH,EAAE,CAAE,YAAF;AAHV,KANe,EAWf;AACCoH,MAAAA,KAAK,EAAE/E,gBAAgB,CAACjB,KADzB;AAECiG,MAAAA,QAAQ,EAAE/E,mBAFX;AAGCgF,MAAAA,KAAK,EAAEtH,EAAE,CAAE,wBAAF;AAHV,KAXe,EAgBf;AACCoH,MAAAA,KAAK,EAAEjF,sBAAsB,CAACf,KAD/B;AAECiG,MAAAA,QAAQ,EAAEjF,yBAFX;AAGCkF,MAAAA,KAAK,EAAEtH,EAAE,CAAE,8BAAF;AAHV,KAhBe;AAJjB,KA2BGkG,sBAAsB,IACvB,8BACC,cAAC,eAAD;AACC,IAAA,eAAe,EACdE,uBAFF;AAIC,IAAA,SAAS,EAAGE;AAJb,IADD,EAOC,cAAC,eAAD;AACC,IAAA,eAAe,EACdE,8BAFF;AAIC,IAAA,SAAS,EAAGE;AAJb,IAPD,CA5BF,CArDF,CArCD,EAwIGhB,iBAAiB,IAClB,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,cAAC,yBAAD,OADD,EAEC,cAAC,2BAAD;AACC,IAAA,QAAQ,EAAG,MAAM;AAChBrB,MAAAA,kBAAkB,CAAExC,QAAF,EAAY,EAAZ,CAAlB;;AACA,UAAKW,cAAL,EAAsB;AACrBc,QAAAA,WAAW,CAAE,CAAF,CAAX;AACA;;AACD1B,MAAAA,aAAa,CAAE;AACd6B,QAAAA,gBAAgB,EAAED;AADJ,OAAF,CAAb;AAGAoB,MAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA;AAVF,IAFD,CAzIF,EAyJC,qBAAUe,UAAV,EACG,CAAED,iBAAF,IAAuBf,kBAAvB,IACD,cAAC,oBAAD;AACC,IAAA,QAAQ,EAAKqC,IAAF,IAAY;AACtBpC,MAAAA,qBAAqB,CAAE,KAAF,CAArB;AACAlB,MAAAA,mBAAmB,CAAEsD,IAAI,CAACC,EAAP,CAAnB;AACA3C,MAAAA,WAAW,CAAEzC,QAAF,CAAX;AACA,KALF;AAMC,IAAA,uBAAuB,EAAGoD,uBAN3B;AAOC,IAAA,0BAA0B,EACzBC;AARF,IAFF,EAcG,CAAEQ,iBAAF,IAAuB,CAAEf,kBAAzB,IACD,cAAC,kBAAD;AAAoB,IAAA,SAAS;AAA7B,IAfF,EAiBG,CAAEA,kBAAF,IACD,cAAC,iBAAD;AACC,IAAA,EAAE,EAAG9C,QADN;AAEC,IAAA,QAAQ,EAAGiD,2BAFZ;AAGC,IAAA,MAAM,EAAGD,oBAHV;AAIC,IAAA,YAAY,EAAG,YAAY7B,WAJ5B;AAKC,IAAA,iBAAiB,EAAG,aAAaA,WALlC;AAMC,IAAA,UAAU,EAAGgD,iBANd;AAOC,IAAA,MAAM,EAAGC;AAPV,KASGP,iBAAiB,IAClB,cAAC,qBAAD;AACC,IAAA,SAAS,EAAG,CAAEf,kBADf;AAEC,IAAA,QAAQ,EAAG9C,QAFZ;AAGC,IAAA,QAAQ,EAAGiB,cAHZ;AAIC,IAAA,oBAAoB,EACnB,CAAC,CAAEF,iBALL;AAOC,IAAA,WAAW,EAAGQ;AAPf,IAVF,CAlBF,CAzJD,CALD,CADD;AA2MA;;AAED,eAAerE,UAAU,CACxB;AAAEkD,EAAAA,SAAS,EAAE;AAAb,CADwB,EAExB;AAAEX,EAAAA,eAAe,EAAE;AAAnB,CAFwB,EAGxB;AAAEa,EAAAA,sBAAsB,EAAE;AAA1B,CAHwB,EAIxB;AAAEE,EAAAA,gBAAgB,EAAE;AAApB,CAJwB,CAAV,CAKZX,UALY,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport NavigationMenuPublishButton from './navigation-menu-publish-button';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\tcustomAppender: CustomAppender = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: { justifyContent, orientation = 'horizontal' } = {},\n\t} = attributes;\n\n\tconst [ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t'root',\n\t\t'navigationArea',\n\t\t'navigation',\n\t\tnavigationArea\n\t);\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst navigationMenuId = navigationArea\n\t\t? navigationAreaMenu\n\t\t: attributes.navigationMenuId;\n\n\tconst setNavigationMenuId = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { navigationMenuId: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ navigationMenuId }`\n\t);\n\n\tconst { innerBlocks, isInnerBlockSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst hasExistingNavItems = !! innerBlocks.length;\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = navigationArea && ! navigationMenuId;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasExistingNavItems || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t} = useNavigationMenu( navigationMenuId );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks =\n\t\thasExistingNavItems && ! isEntityAvailable && ! isWithinUnassignedArea;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<UnsavedInnerBlocks\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tblocks={ innerBlocks }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\thasSavedUnsavedInnerBlocks={ hasSavedUnsavedInnerBlocks }\n\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\tsetNavigationMenuId( post.id );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( navigationMenuId && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\treturn (\n\t\t<EntityProvider\n\t\t\tkind=\"postType\"\n\t\t\ttype=\"wp_navigation\"\n\t\t\tid={ navigationMenuId }\n\t\t>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetNavigationMenuId( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( navigationArea ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetAreaMenu( 0 );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tnavigationMenuId: undefined,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\tsetIsPlaceholderShown( true );\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t\t{ isDraftNavigationMenu && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<NavigationMenuPublishButton />\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ ! attributes.openSubmenusOnClick && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tlabel={ __( 'Show icons' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\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\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\tif ( navigationArea ) {\n\t\t\t\t\t\t\t\t\tsetAreaMenu( 0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tnavigationMenuId: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ ! isEntityAvailable && isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tsetNavigationMenuId( post.id );\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\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{ ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tisVisible={ ! isPlaceholderShown }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tappender={ CustomAppender }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t) }\n\t\t\t\t</nav>\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/index.js"],"names":["classnames","useState","useEffect","useRef","useCallback","Platform","InspectorControls","BlockControls","useBlockProps","__experimentalUseNoRecursiveRenders","useNoRecursiveRenders","store","blockEditorStore","withColors","PanelColorSettings","ContrastChecker","getColorClassName","Warning","EntityProvider","useEntityProp","useDispatch","useSelect","PanelBody","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToolbarGroup","ToolbarDropdownMenu","Button","__","useListViewModal","useNavigationMenu","Placeholder","PlaceholderPreview","ResponsiveWrapper","NavigationInnerBlocks","NavigationMenuSelector","NavigationMenuNameControl","UnsavedInnerBlocks","NavigationMenuDeleteControl","getComputedStyle","node","ownerDocument","defaultView","detectColors","colorsDetectionElement","setColor","setBackground","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE","Navigation","attributes","setAttributes","clientId","isSelected","className","setBackgroundColor","textColor","setTextColor","overlayBackgroundColor","setOverlayBackgroundColor","overlayTextColor","setOverlayTextColor","context","navigationArea","hasSubmenuIndicatorSetting","hasColorSettings","customPlaceholder","CustomPlaceholder","customAppender","CustomAppender","openSubmenusOnClick","overlayMenu","showSubmenuIcon","layout","justifyContent","orientation","areaMenu","setAreaMenu","navigationAreaMenu","undefined","ref","setRef","postId","hasAlreadyRendered","RecursionProvider","innerBlocks","isInnerBlockSelected","select","getBlocks","hasSelectedInnerBlock","hasExistingNavItems","length","replaceInnerBlocks","selectBlock","__unstableMarkNextChangeAsNotPersistent","hasSavedUnsavedInnerBlocks","setHasSavedUnsavedInnerBlocks","isWithinUnassignedArea","isPlaceholderShown","setIsPlaceholderShown","isResponsiveMenuOpen","setResponsiveMenuVisibility","isNavigationMenuResolved","isNavigationMenuMissing","canSwitchNavigationMenu","hasResolvedNavigationMenus","navigationMenus","navigationMenu","navRef","isDraftNavigationMenu","status","listViewToolbarButton","listViewModal","isEntityAvailable","blockProps","class","slug","style","overlayClassnames","overlayStyles","enableContrastChecking","OS","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","current","subMenuElement","querySelector","startWithEmptyMenu","hasUnsavedBlocks","post","id","PlaceholderComponent","onClose","value","onChange","label"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\t__experimentalUseNoRecursiveRenders as useNoRecursiveRenders,\n\tstore as blockEditorStore,\n\twithColors,\n\tPanelColorSettings,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { EntityProvider, useEntityProp } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useListViewModal from './use-list-view-modal';\nimport useNavigationMenu from '../use-navigation-menu';\nimport Placeholder from './placeholder';\nimport PlaceholderPreview from './placeholder/placeholder-preview';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction detectColors( colorsDetectionElement, setColor, setBackground ) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t.backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\tcontext: { navigationArea },\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\thasSubmenuIndicatorSetting = true,\n\thasColorSettings = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\tcustomAppender: CustomAppender = null,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\tshowSubmenuIcon,\n\t\tlayout: { justifyContent, orientation = 'horizontal' } = {},\n\t} = attributes;\n\n\tconst [ areaMenu, setAreaMenu ] = useEntityProp(\n\t\t'root',\n\t\t'navigationArea',\n\t\t'navigation',\n\t\tnavigationArea\n\t);\n\n\tconst navigationAreaMenu = areaMenu === 0 ? undefined : areaMenu;\n\n\tconst ref = navigationArea ? navigationAreaMenu : attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t\tif ( navigationArea ) {\n\t\t\t\tsetAreaMenu( postId );\n\t\t\t}\n\t\t},\n\t\t[ navigationArea ]\n\t);\n\n\tconst [ hasAlreadyRendered, RecursionProvider ] = useNoRecursiveRenders(\n\t\t`navigationMenu/${ ref }`\n\t);\n\n\tconst { innerBlocks, isInnerBlockSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, hasSelectedInnerBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( clientId ),\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst hasExistingNavItems = !! innerBlocks.length;\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [\n\t\thasSavedUnsavedInnerBlocks,\n\t\tsetHasSavedUnsavedInnerBlocks,\n\t] = useState( false );\n\n\tconst isWithinUnassignedArea = navigationArea && ! ref;\n\n\tconst [ isPlaceholderShown, setIsPlaceholderShown ] = useState(\n\t\t! hasExistingNavItems || isWithinUnassignedArea\n\t);\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] = useState(\n\t\tfalse\n\t);\n\n\tconst {\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanSwitchNavigationMenu,\n\t\thasResolvedNavigationMenus,\n\t\tnavigationMenus,\n\t\tnavigationMenu,\n\t} = useNavigationMenu( ref );\n\n\tconst navRef = useRef();\n\tconst isDraftNavigationMenu = navigationMenu?.status === 'draft';\n\n\tconst { listViewToolbarButton, listViewModal } = useListViewModal(\n\t\tclientId\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: classnames( className, {\n\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t'items-justified-space-between': justifyContent === 'space-between',\n\t\t\t'is-responsive': 'never' !== overlayMenu,\n\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\ttextColor?.slug\n\t\t\t) ]: !! textColor?.slug,\n\t\t\t'has-background': !! backgroundColor.color || backgroundColor.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor?.slug\n\t\t\t) ]: !! backgroundColor?.slug,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst overlayClassnames = classnames( {\n\t\t'has-text-color':\n\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'color',\n\t\t\toverlayTextColor?.slug\n\t\t) ]: !! overlayTextColor?.slug,\n\t\t'has-background':\n\t\t\t!! overlayBackgroundColor.color || overlayBackgroundColor?.class,\n\t\t[ getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayBackgroundColor?.slug\n\t\t) ]: !! overlayBackgroundColor?.slug,\n\t} );\n\n\tconst overlayStyles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\t};\n\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\n\t// Spacer block needs orientation from context. This is a patch until\n\t// https://github.com/WordPress/gutenberg/issues/36197 is addressed.\n\tuseEffect( () => {\n\t\tif ( orientation ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { orientation } );\n\t\t}\n\t}, [ orientation ] );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\t\tconst subMenuElement = navRef.current.querySelector(\n\t\t\t'[data-type=\"core/navigation-link\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\t\tif ( subMenuElement ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t} );\n\n\t// Hide the placeholder if an navigation menu entity has loaded.\n\tuseEffect( () => {\n\t\tsetIsPlaceholderShown( ! isEntityAvailable );\n\t}, [ isEntityAvailable ] );\n\n\t// If the ref no longer exists the reset the inner blocks\n\t// to provide a clean slate.\n\tuseEffect( () => {\n\t\tif ( ref === undefined && innerBlocks.length > 0 ) {\n\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t}\n\t\t// innerBlocks are intentionally not listed as deps. This function is only concerned\n\t\t// with the snapshot from the time when ref became undefined.\n\t}, [ clientId, ref, innerBlocks ] );\n\n\tconst startWithEmptyMenu = useCallback( () => {\n\t\tif ( navigationArea ) {\n\t\t\tsetAreaMenu( 0 );\n\t\t}\n\t\tsetAttributes( {\n\t\t\tref: undefined,\n\t\t} );\n\n\t\tsetIsPlaceholderShown( true );\n\t}, [ clientId ] );\n\n\t// If the block has inner blocks, but no menu id, this was an older\n\t// navigation block added before the block used a wp_navigation entity.\n\t// Either this block was saved in the content or inserted by a pattern.\n\t// Consider this 'unsaved'. Offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu.\n\tconst hasUnsavedBlocks =\n\t\thasExistingNavItems && ! isEntityAvailable && ! isWithinUnassignedArea;\n\tif ( hasUnsavedBlocks ) {\n\t\treturn (\n\t\t\t<UnsavedInnerBlocks\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tblocks={ innerBlocks }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\thasSavedUnsavedInnerBlocks={ hasSavedUnsavedInnerBlocks }\n\t\t\t\tonSave={ ( post ) => {\n\t\t\t\t\tsetHasSavedUnsavedInnerBlocks( true );\n\t\t\t\t\t// Switch to using the wp_navigation entity.\n\t\t\t\t\tsetRef( post.id );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigation menu has been deleted or is unavailable. '\n\t\t\t\t\t) }\n\t\t\t\t\t<Button onClick={ startWithEmptyMenu } variant=\"link\">\n\t\t\t\t\t\t{ __( 'Create a new menu?' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t{ ! isDraftNavigationMenu && isEntityAvailable && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\t\tlabel={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ttext={ __( 'Select Menu' ) }\n\t\t\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\t\t\tonSelect={ ( { id } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetRef( id );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonCreateNew={ startWithEmptyMenu }\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</ToolbarDropdownMenu>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolbarGroup>{ listViewToolbarButton }</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t\t{ listViewModal }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { overlayMenu: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"never\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"mobile\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"always\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t<h3>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ ! attributes.openSubmenusOnClick && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\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\tlabel={ __( 'Show icons' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasColorSettings && (\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\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\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\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\tvalue: overlayTextColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay text' ),\n\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\tvalue: overlayBackgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setOverlayBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Submenu & overlay background' ),\n\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\t\t{ enableContrastChecking && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t\t\tbackgroundColor={\n\t\t\t\t\t\t\t\t\t\t\tdetectedOverlayBackgroundColor\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttextColor={ detectedOverlayColor }\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</PanelColorSettings>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\t\t\tif ( navigationArea ) {\n\t\t\t\t\t\t\t\t\tsetAreaMenu( 0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tref: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t<nav { ...blockProps }>\n\t\t\t\t\t{ isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderComponent\n\t\t\t\t\t\t\tonFinish={ ( post ) => {\n\t\t\t\t\t\t\t\tsetIsPlaceholderShown( false );\n\t\t\t\t\t\t\t\tif ( post ) {\n\t\t\t\t\t\t\t\t\tsetRef( post.id );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tcanSwitchNavigationMenu={ canSwitchNavigationMenu }\n\t\t\t\t\t\t\thasResolvedNavigationMenus={\n\t\t\t\t\t\t\t\thasResolvedNavigationMenus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEntityAvailable && ! isPlaceholderShown && (\n\t\t\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isPlaceholderShown && (\n\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\tisResponsive={ 'never' !== overlayMenu }\n\t\t\t\t\t\t\tisHiddenByDefault={ 'always' === overlayMenu }\n\t\t\t\t\t\t\tclassNames={ overlayClassnames }\n\t\t\t\t\t\t\tstyles={ overlayStyles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\tisVisible={ ! isPlaceholderShown }\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tappender={ CustomAppender }\n\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t) }\n\t\t\t\t</nav>\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n"]}
@@ -20,9 +20,9 @@ export default function NavigationMenuSelector(_ref) {
20
20
  const {
21
21
  navigationMenus
22
22
  } = useNavigationMenu();
23
- const navigationMenuId = useEntityId('postType', 'wp_navigation');
23
+ const ref = useEntityId('postType', 'wp_navigation');
24
24
  return createElement(Fragment, null, createElement(MenuGroup, null, createElement(MenuItemsChoice, {
25
- value: navigationMenuId,
25
+ value: ref,
26
26
  onSelect: selectedId => onSelect(navigationMenus.find(post => post.id === selectedId)),
27
27
  choices: navigationMenus.map(_ref2 => {
28
28
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","MenuItemsChoice","useEntityId","__","sprintf","decodeEntities","useNavigationMenu","NavigationMenuSelector","onSelect","onCreateNew","navigationMenus","navigationMenuId","selectedId","find","post","id","map","title","label","rendered","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,QAApB,EAA8BC,eAA9B,QAAqD,uBAArD;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,cAAT,QAA+B,0BAA/B;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AAEA,eAAe,SAASC,sBAAT,OAA6D;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AAC3E,QAAM;AAAEC,IAAAA;AAAF,MAAsBJ,iBAAiB,EAA7C;AACA,QAAMK,gBAAgB,GAAGT,WAAW,CAAE,UAAF,EAAc,eAAd,CAApC;AAEA,SACC,8BACC,cAAC,SAAD,QACC,cAAC,eAAD;AACC,IAAA,KAAK,EAAGS,gBADT;AAEC,IAAA,QAAQ,EAAKC,UAAF,IACVJ,QAAQ,CACPE,eAAe,CAACG,IAAhB,CACGC,IAAF,IAAYA,IAAI,CAACC,EAAL,KAAYH,UADzB,CADO,CAHV;AASC,IAAA,OAAO,EAAGF,eAAe,CAACM,GAAhB,CAAqB,SAAqB;AAAA,UAAnB;AAAED,QAAAA,EAAF;AAAME,QAAAA;AAAN,OAAmB;AACnD,YAAMC,KAAK,GAAGb,cAAc,CAAEY,KAAK,CAACE,QAAR,CAA5B;AACA,aAAO;AACNC,QAAAA,KAAK,EAAEL,EADD;AAENG,QAAAA,KAFM;AAGN,sBAAcd,OAAO;AACpB;AACAD,QAAAA,EAAE,CAAE,gBAAF,CAFkB,EAGpBe,KAHoB;AAHf,OAAP;AASA,KAXS;AATX,IADD,CADD,EAyBC,cAAC,SAAD,QACC,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGT;AAApB,KACGN,EAAE,CAAE,iBAAF,CADL,CADD,CAzBD,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuGroup, MenuItem, MenuItemsChoice } from '@wordpress/components';\nimport { useEntityId } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\n\nexport default function NavigationMenuSelector( { onSelect, onCreateNew } ) {\n\tconst { navigationMenus } = useNavigationMenu();\n\tconst navigationMenuId = useEntityId( 'postType', 'wp_navigation' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup>\n\t\t\t\t<MenuItemsChoice\n\t\t\t\t\tvalue={ navigationMenuId }\n\t\t\t\t\tonSelect={ ( selectedId ) =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tnavigationMenus.find(\n\t\t\t\t\t\t\t\t( post ) => post.id === selectedId\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\tchoices={ navigationMenus.map( ( { id, title } ) => {\n\t\t\t\t\t\tconst label = decodeEntities( title.rendered );\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\t__( \"Switch to '%s'\" ),\n\t\t\t\t\t\t\t\tlabel\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/>\n\t\t\t</MenuGroup>\n\t\t\t<MenuGroup>\n\t\t\t\t<MenuItem onClick={ onCreateNew }>\n\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</MenuGroup>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","MenuItemsChoice","useEntityId","__","sprintf","decodeEntities","useNavigationMenu","NavigationMenuSelector","onSelect","onCreateNew","navigationMenus","ref","selectedId","find","post","id","map","title","label","rendered","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,QAApB,EAA8BC,eAA9B,QAAqD,uBAArD;AACA,SAASC,WAAT,QAA4B,sBAA5B;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,cAAT,QAA+B,0BAA/B;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AAEA,eAAe,SAASC,sBAAT,OAA6D;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AAC3E,QAAM;AAAEC,IAAAA;AAAF,MAAsBJ,iBAAiB,EAA7C;AACA,QAAMK,GAAG,GAAGT,WAAW,CAAE,UAAF,EAAc,eAAd,CAAvB;AAEA,SACC,8BACC,cAAC,SAAD,QACC,cAAC,eAAD;AACC,IAAA,KAAK,EAAGS,GADT;AAEC,IAAA,QAAQ,EAAKC,UAAF,IACVJ,QAAQ,CACPE,eAAe,CAACG,IAAhB,CACGC,IAAF,IAAYA,IAAI,CAACC,EAAL,KAAYH,UADzB,CADO,CAHV;AASC,IAAA,OAAO,EAAGF,eAAe,CAACM,GAAhB,CAAqB,SAAqB;AAAA,UAAnB;AAAED,QAAAA,EAAF;AAAME,QAAAA;AAAN,OAAmB;AACnD,YAAMC,KAAK,GAAGb,cAAc,CAAEY,KAAK,CAACE,QAAR,CAA5B;AACA,aAAO;AACNC,QAAAA,KAAK,EAAEL,EADD;AAENG,QAAAA,KAFM;AAGN,sBAAcd,OAAO;AACpB;AACAD,QAAAA,EAAE,CAAE,gBAAF,CAFkB,EAGpBe,KAHoB;AAHf,OAAP;AASA,KAXS;AATX,IADD,CADD,EAyBC,cAAC,SAAD,QACC,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGT;AAApB,KACGN,EAAE,CAAE,iBAAF,CADL,CADD,CAzBD,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuGroup, MenuItem, MenuItemsChoice } from '@wordpress/components';\nimport { useEntityId } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\n\nexport default function NavigationMenuSelector( { onSelect, onCreateNew } ) {\n\tconst { navigationMenus } = useNavigationMenu();\n\tconst ref = useEntityId( 'postType', 'wp_navigation' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup>\n\t\t\t\t<MenuItemsChoice\n\t\t\t\t\tvalue={ ref }\n\t\t\t\t\tonSelect={ ( selectedId ) =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tnavigationMenus.find(\n\t\t\t\t\t\t\t\t( post ) => post.id === selectedId\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\tchoices={ navigationMenus.map( ( { id, title } ) => {\n\t\t\t\t\t\tconst label = decodeEntities( title.rendered );\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t\t\t\t\t__( \"Switch to '%s'\" ),\n\t\t\t\t\t\t\t\tlabel\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/>\n\t\t\t</MenuGroup>\n\t\t\t<MenuGroup>\n\t\t\t\t<MenuItem onClick={ onCreateNew }>\n\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</MenuGroup>\n\t\t</>\n\t);\n}\n"]}
@@ -3,10 +3,8 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { serialize, createBlock } from '@wordpress/blocks';
6
+ import { createBlock } from '@wordpress/blocks';
7
7
  import { Placeholder, Button, DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
8
- import { store as coreStore } from '@wordpress/core-data';
9
- import { useDispatch } from '@wordpress/data';
10
8
  import { useCallback, useState, useEffect } from '@wordpress/element';
11
9
  import { __ } from '@wordpress/i18n';
12
10
  import { navigation, Icon } from '@wordpress/icons';
@@ -18,8 +16,8 @@ import { decodeEntities } from '@wordpress/html-entities';
18
16
  import useNavigationEntities from '../../use-navigation-entities';
19
17
  import PlaceholderPreview from './placeholder-preview';
20
18
  import menuItemsToBlocks from '../../menu-items-to-blocks';
21
- import NavigationMenuNameModal from '../navigation-menu-name-modal';
22
19
  import useNavigationMenu from '../../use-navigation-menu';
20
+ import useCreateNavigationMenu from '../use-create-navigation-menu';
23
21
 
24
22
  const ExistingMenusDropdown = _ref => {
25
23
  let {
@@ -74,6 +72,7 @@ const ExistingMenusDropdown = _ref => {
74
72
 
75
73
  export default function NavigationPlaceholder(_ref3) {
76
74
  let {
75
+ clientId,
77
76
  onFinish,
78
77
  canSwitchNavigationMenu,
79
78
  hasResolvedNavigationMenus
@@ -81,28 +80,12 @@ export default function NavigationPlaceholder(_ref3) {
81
80
  const [selectedMenu, setSelectedMenu] = useState();
82
81
  const [isCreatingFromMenu, setIsCreatingFromMenu] = useState(false);
83
82
  const [menuName, setMenuName] = useState('');
84
- const [isNewMenuModalVisible, setIsNewMenuModalVisible] = useState(false);
85
- const [createEmpty, setCreateEmpty] = useState(false);
86
- const {
87
- saveEntityRecord
88
- } = useDispatch(coreStore); // This callback uses data from the two placeholder steps and only creates
89
- // a new navigation menu when the user completes the final step.
90
-
91
- const createNavigationMenu = useCallback(async function () {
92
- let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __('Untitled Navigation Menu');
93
- let blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
94
- const record = {
95
- title,
96
- content: serialize(blocks),
97
- status: 'publish'
98
- };
99
- const navigationMenu = await saveEntityRecord('postType', 'wp_navigation', record);
100
- return navigationMenu;
101
- }, [serialize, saveEntityRecord]);
83
+ const createNavigationMenu = useCreateNavigationMenu(clientId);
102
84
 
103
- const onFinishMenuCreation = async (navigationMenuTitle, blocks) => {
85
+ const onFinishMenuCreation = async function (blocks) {
86
+ let navigationMenuTitle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
104
87
  const navigationMenu = await createNavigationMenu(navigationMenuTitle, blocks);
105
- onFinish(navigationMenu);
88
+ onFinish(navigationMenu, blocks);
106
89
  };
107
90
 
108
91
  const {
@@ -119,7 +102,7 @@ export default function NavigationPlaceholder(_ref3) {
119
102
  const {
120
103
  innerBlocks: blocks
121
104
  } = menuItemsToBlocks(menuItems);
122
- onFinishMenuCreation(name, blocks);
105
+ onFinishMenuCreation(blocks, name);
123
106
  }, [menuItems, menuItemsToBlocks, onFinish]);
124
107
 
125
108
  const onCreateFromMenu = name => {
@@ -135,14 +118,13 @@ export default function NavigationPlaceholder(_ref3) {
135
118
  setMenuName(name);
136
119
  };
137
120
 
138
- const onCreateEmptyMenu = name => {
139
- onFinishMenuCreation(name, []);
121
+ const onCreateEmptyMenu = () => {
122
+ onFinishMenuCreation([]);
140
123
  };
141
124
 
142
- const onCreateAllPages = name => {
125
+ const onCreateAllPages = () => {
143
126
  const block = [createBlock('core/page-list')];
144
- onFinishMenuCreation(name, block);
145
- setIsNewMenuModalVisible(true);
127
+ onFinishMenuCreation(block);
146
128
  };
147
129
 
148
130
  useEffect(() => {
@@ -177,22 +159,10 @@ export default function NavigationPlaceholder(_ref3) {
177
159
  onCreateFromMenu: onCreateFromMenu
178
160
  }), createElement("hr", null)) : undefined, hasPages ? createElement(Fragment, null, createElement(Button, {
179
161
  variant: "tertiary",
180
- onClick: () => {
181
- setIsNewMenuModalVisible(true);
182
- setCreateEmpty(false);
183
- }
162
+ onClick: onCreateAllPages
184
163
  }, __('Add all pages')), createElement("hr", null)) : undefined, createElement(Button, {
185
164
  variant: "tertiary",
186
- onClick: () => {
187
- setIsNewMenuModalVisible(true);
188
- setCreateEmpty(true);
189
- }
190
- }, __('Start empty'))))), isNewMenuModalVisible && createElement(NavigationMenuNameModal, {
191
- title: __('Create your new navigation menu'),
192
- onRequestClose: () => {
193
- setIsNewMenuModalVisible(false);
194
- },
195
- onFinish: createEmpty ? onCreateEmptyMenu : onCreateAllPages
196
- }));
165
+ onClick: onCreateEmptyMenu
166
+ }, __('Start empty'))))));
197
167
  }
198
168
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["serialize","createBlock","Placeholder","Button","DropdownMenu","MenuGroup","MenuItem","store","coreStore","useDispatch","useCallback","useState","useEffect","__","navigation","Icon","decodeEntities","useNavigationEntities","PlaceholderPreview","menuItemsToBlocks","NavigationMenuNameModal","useNavigationMenu","ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","iconPosition","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","isNewMenuModalVisible","setIsNewMenuModalVisible","createEmpty","setCreateEmpty","saveEntityRecord","createNavigationMenu","blocks","record","content","status","navigationMenu","onFinishMenuCreation","navigationMenuTitle","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","onCreateEmptyMenu","onCreateAllPages","block","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport NavigationMenuNameModal from '../navigation-menu-name-modal';\nimport useNavigationMenu from '../../use-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'tertiary',\n\t\ticonPosition: 'right',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\tmenu.title.rendered\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus?.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities( menu.name ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst [ isNewMenuModalVisible, setIsNewMenuModalVisible ] = useState(\n\t\tfalse\n\t);\n\n\tconst [ createEmpty, setCreateEmpty ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst createNavigationMenu = useCallback(\n\t\tasync ( title = __( 'Untitled Navigation Menu' ), blocks = [] ) => {\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: 'publish',\n\t\t\t};\n\n\t\t\tconst navigationMenu = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\trecord\n\t\t\t);\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n\n\tconst onFinishMenuCreation = async ( navigationMenuTitle, blocks ) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( name, blocks );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = ( name ) => {\n\t\tonFinishMenuCreation( name, [] );\n\t};\n\n\tconst onCreateAllPages = ( name ) => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( name, block );\n\t\tsetIsNewMenuModalVisible( true );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\t\t\tsetCreateEmpty( false );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetIsNewMenuModalVisible( true );\n\t\t\t\t\t\t\t\t\tsetCreateEmpty( true );\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\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ isNewMenuModalVisible && (\n\t\t\t\t<NavigationMenuNameModal\n\t\t\t\t\ttitle={ __( 'Create your new navigation menu' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsNewMenuModalVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonFinish={\n\t\t\t\t\t\tcreateEmpty ? onCreateEmptyMenu : onCreateAllPages\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["createBlock","Placeholder","Button","DropdownMenu","MenuGroup","MenuItem","useCallback","useState","useEffect","__","navigation","Icon","decodeEntities","useNavigationEntities","PlaceholderPreview","menuItemsToBlocks","useNavigationMenu","useCreateNavigationMenu","ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","toggleProps","variant","iconPosition","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","clientId","hasResolvedNavigationMenus","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","createNavigationMenu","onFinishMenuCreation","blocks","navigationMenuTitle","navigationMenu","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","onCreateEmptyMenu","onCreateAllPages","block","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport useNavigationMenu from '../../use-navigation-menu';\nimport useCreateNavigationMenu from '../use-create-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'tertiary',\n\t\ticonPosition: 'right',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\tmenu.title.rendered\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t{ menus?.map( ( menu ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities( menu.name ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tclientId,\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\tconst [ menuName, setMenuName ] = useState( '' );\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\tconst onFinishMenuCreation = async (\n\t\tblocks,\n\t\tnavigationMenuTitle = null\n\t) => {\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu, blocks );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( blocks, name );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = () => {\n\t\tonFinishMenuCreation( [] );\n\t};\n\n\tconst onCreateAllPages = () => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( block );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus.length ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ hasPages ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ onCreateAllPages }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmptyMenu }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}