@wordpress/block-library 6.0.7 → 6.0.11

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 (193) hide show
  1. package/build/cover/edit.js +8 -3
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/cover/transforms.js +2 -0
  4. package/build/cover/transforms.js.map +1 -1
  5. package/build/gallery/edit.js +1 -1
  6. package/build/gallery/edit.js.map +1 -1
  7. package/build/gallery/v1/update-gallery-modal.js +1 -1
  8. package/build/gallery/v1/update-gallery-modal.js.map +1 -1
  9. package/build/index.js +4 -3
  10. package/build/index.js.map +1 -1
  11. package/build/navigation/deprecated.js +127 -19
  12. package/build/navigation/deprecated.js.map +1 -1
  13. package/build/navigation/edit/index.js +59 -33
  14. package/build/navigation/edit/index.js.map +1 -1
  15. package/build/navigation/edit/inner-blocks.js +1 -1
  16. package/build/navigation/edit/inner-blocks.js.map +1 -1
  17. package/build/navigation/edit/navigation-menu-selector.js +2 -2
  18. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  19. package/build/navigation/edit/placeholder/index.js +16 -48
  20. package/build/navigation/edit/placeholder/index.js.map +1 -1
  21. package/build/navigation/edit/responsive-wrapper.js +5 -2
  22. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  23. package/build/navigation/edit/unsaved-inner-blocks.js +4 -35
  24. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  25. package/build/navigation/edit/use-create-navigation-menu.js +50 -0
  26. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -0
  27. package/build/navigation/edit/use-generate-default-navigation-title.js +73 -0
  28. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  29. package/build/navigation/index.js +1 -1
  30. package/build/navigation/save.js +2 -2
  31. package/build/navigation/save.js.map +1 -1
  32. package/build/navigation/use-navigation-menu.js +19 -8
  33. package/build/navigation/use-navigation-menu.js.map +1 -1
  34. package/build/navigation-area/edit.js +5 -0
  35. package/build/navigation-area/edit.js.map +1 -1
  36. package/build/page-list/edit.js +40 -42
  37. package/build/page-list/edit.js.map +1 -1
  38. package/build/pattern/index.js +1 -1
  39. package/build/post-featured-image/edit.js +53 -23
  40. package/build/post-featured-image/edit.js.map +1 -1
  41. package/build/post-terms/index.js +1 -1
  42. package/build/post-title/edit.js +2 -2
  43. package/build/post-title/edit.js.map +1 -1
  44. package/build/query-pagination-next/index.js +1 -1
  45. package/build/query-pagination-previous/index.js +1 -1
  46. package/build/query-title/index.js +1 -1
  47. package/build/site-logo/index.js +1 -1
  48. package/build/site-tagline/index.js +1 -1
  49. package/build/site-title/index.js +1 -1
  50. package/build/template-part/edit/placeholder/index.js +1 -1
  51. package/build/template-part/edit/placeholder/index.js.map +1 -1
  52. package/build/template-part/index.js +2 -1
  53. package/build/template-part/index.js.map +1 -1
  54. package/build-module/cover/edit.js +8 -3
  55. package/build-module/cover/edit.js.map +1 -1
  56. package/build-module/cover/transforms.js +2 -0
  57. package/build-module/cover/transforms.js.map +1 -1
  58. package/build-module/gallery/edit.js +1 -1
  59. package/build-module/gallery/edit.js.map +1 -1
  60. package/build-module/gallery/v1/update-gallery-modal.js +1 -1
  61. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -1
  62. package/build-module/index.js +4 -3
  63. package/build-module/index.js.map +1 -1
  64. package/build-module/navigation/deprecated.js +127 -19
  65. package/build-module/navigation/deprecated.js.map +1 -1
  66. package/build-module/navigation/edit/index.js +60 -33
  67. package/build-module/navigation/edit/index.js.map +1 -1
  68. package/build-module/navigation/edit/inner-blocks.js +1 -1
  69. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  70. package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
  71. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  72. package/build-module/navigation/edit/placeholder/index.js +15 -45
  73. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  74. package/build-module/navigation/edit/responsive-wrapper.js +5 -2
  75. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  76. package/build-module/navigation/edit/unsaved-inner-blocks.js +6 -35
  77. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  78. package/build-module/navigation/edit/use-create-navigation-menu.js +36 -0
  79. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -0
  80. package/build-module/navigation/edit/use-generate-default-navigation-title.js +57 -0
  81. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  82. package/build-module/navigation/index.js +1 -1
  83. package/build-module/navigation/save.js +2 -2
  84. package/build-module/navigation/save.js.map +1 -1
  85. package/build-module/navigation/use-navigation-menu.js +19 -8
  86. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  87. package/build-module/navigation-area/edit.js +4 -0
  88. package/build-module/navigation-area/edit.js.map +1 -1
  89. package/build-module/page-list/edit.js +41 -43
  90. package/build-module/page-list/edit.js.map +1 -1
  91. package/build-module/pattern/index.js +1 -1
  92. package/build-module/post-featured-image/edit.js +55 -26
  93. package/build-module/post-featured-image/edit.js.map +1 -1
  94. package/build-module/post-terms/index.js +1 -1
  95. package/build-module/post-title/edit.js +2 -2
  96. package/build-module/post-title/edit.js.map +1 -1
  97. package/build-module/query-pagination-next/index.js +1 -1
  98. package/build-module/query-pagination-previous/index.js +1 -1
  99. package/build-module/query-title/index.js +1 -1
  100. package/build-module/site-logo/index.js +1 -1
  101. package/build-module/site-tagline/index.js +1 -1
  102. package/build-module/site-title/index.js +1 -1
  103. package/build-module/template-part/edit/placeholder/index.js +2 -2
  104. package/build-module/template-part/edit/placeholder/index.js.map +1 -1
  105. package/build-module/template-part/index.js +2 -1
  106. package/build-module/template-part/index.js.map +1 -1
  107. package/build-style/code/theme-rtl.css +1 -1
  108. package/build-style/code/theme.css +1 -1
  109. package/build-style/cover/style-rtl.css +8 -2
  110. package/build-style/cover/style.css +8 -2
  111. package/build-style/editor-rtl.css +104 -53
  112. package/build-style/editor.css +104 -53
  113. package/build-style/gallery/editor-rtl.css +1 -0
  114. package/build-style/gallery/editor.css +1 -0
  115. package/build-style/navigation/style-rtl.css +41 -3
  116. package/build-style/navigation/style.css +41 -3
  117. package/build-style/post-comments-form/style-rtl.css +18 -0
  118. package/build-style/post-comments-form/style.css +18 -0
  119. package/build-style/post-featured-image/editor-rtl.css +100 -16
  120. package/build-style/post-featured-image/editor.css +100 -16
  121. package/build-style/site-logo/editor-rtl.css +2 -2
  122. package/build-style/site-logo/editor.css +2 -2
  123. package/build-style/social-links/editor-rtl.css +1 -35
  124. package/build-style/social-links/editor.css +1 -35
  125. package/build-style/style-rtl.css +67 -27
  126. package/build-style/style.css +67 -27
  127. package/build-style/theme-rtl.css +1 -1
  128. package/build-style/theme.css +1 -1
  129. package/package.json +8 -8
  130. package/src/calendar/index.php +3 -3
  131. package/src/code/theme.scss +1 -1
  132. package/src/cover/edit.js +8 -1
  133. package/src/cover/style.scss +9 -2
  134. package/src/cover/transforms.js +2 -0
  135. package/src/gallery/edit.js +1 -1
  136. package/src/gallery/editor.scss +1 -0
  137. package/src/gallery/index.php +1 -1
  138. package/src/gallery/v1/update-gallery-modal.js +1 -1
  139. package/src/home-link/index.php +1 -1
  140. package/src/image/index.php +1 -1
  141. package/src/index.js +28 -26
  142. package/src/navigation/block.json +1 -1
  143. package/src/navigation/deprecated.js +115 -13
  144. package/src/navigation/edit/index.js +68 -36
  145. package/src/navigation/edit/inner-blocks.js +2 -1
  146. package/src/navigation/edit/navigation-menu-selector.js +2 -2
  147. package/src/navigation/edit/placeholder/index.js +16 -62
  148. package/src/navigation/edit/responsive-wrapper.js +8 -1
  149. package/src/navigation/edit/unsaved-inner-blocks.js +6 -57
  150. package/src/navigation/edit/use-create-navigation-menu.js +39 -0
  151. package/src/navigation/edit/use-generate-default-navigation-title.js +79 -0
  152. package/src/navigation/index.php +171 -25
  153. package/src/navigation/save.js +2 -2
  154. package/src/navigation/style.scss +57 -5
  155. package/src/navigation/use-navigation-menu.js +20 -9
  156. package/src/navigation-area/edit.js +5 -0
  157. package/src/navigation-area/index.php +2 -1
  158. package/src/navigation-link/index.php +1 -1
  159. package/src/navigation-submenu/index.php +2 -8
  160. package/src/page-list/edit.js +35 -44
  161. package/src/page-list/index.php +10 -5
  162. package/src/pattern/block.json +1 -1
  163. package/src/post-comments-form/style.scss +20 -1
  164. package/src/post-featured-image/edit.js +58 -26
  165. package/src/post-featured-image/editor.scss +124 -20
  166. package/src/post-terms/block.json +1 -1
  167. package/src/post-title/edit.js +2 -2
  168. package/src/query-pagination-next/block.json +1 -1
  169. package/src/query-pagination-previous/block.json +1 -1
  170. package/src/query-title/block.json +1 -1
  171. package/src/site-logo/block.json +1 -1
  172. package/src/site-logo/editor.scss +3 -2
  173. package/src/site-tagline/block.json +1 -1
  174. package/src/site-title/block.json +1 -1
  175. package/src/social-links/editor.scss +1 -47
  176. package/src/style.scss +0 -1
  177. package/src/table-of-contents/index.php +1 -1
  178. package/src/template-part/block.json +2 -1
  179. package/src/template-part/edit/placeholder/index.js +2 -2
  180. package/src/template-part/index.php +2 -1
  181. package/build/navigation/edit/navigation-menu-name-modal.js +0 -55
  182. package/build/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  183. package/build/navigation/edit/navigation-menu-publish-button.js +0 -53
  184. package/build/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  185. package/build-module/navigation/edit/navigation-menu-name-modal.js +0 -47
  186. package/build-module/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  187. package/build-module/navigation/edit/navigation-menu-publish-button.js +0 -40
  188. package/build-module/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  189. package/build-style/navigation-submenu/style-rtl.css +0 -97
  190. package/build-style/navigation-submenu/style.css +0 -97
  191. package/src/navigation/edit/navigation-menu-name-modal.js +0 -69
  192. package/src/navigation/edit/navigation-menu-publish-button.js +0 -57
  193. package/src/navigation-submenu/style.scss +0 -25
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = useCreateNavigationMenu;
9
+
10
+ var _blocks = require("@wordpress/blocks");
11
+
12
+ var _coreData = require("@wordpress/core-data");
13
+
14
+ var _data = require("@wordpress/data");
15
+
16
+ var _element = require("@wordpress/element");
17
+
18
+ var _useGenerateDefaultNavigationTitle = _interopRequireDefault(require("./use-generate-default-navigation-title"));
19
+
20
+ /**
21
+ * WordPress dependencies
22
+ */
23
+
24
+ /**
25
+ * Internal dependencies
26
+ */
27
+ function useCreateNavigationMenu(clientId) {
28
+ const {
29
+ saveEntityRecord
30
+ } = (0, _data.useDispatch)(_coreData.store);
31
+ const generateDefaultTitle = (0, _useGenerateDefaultNavigationTitle.default)(clientId); // This callback uses data from the two placeholder steps and only creates
32
+ // a new navigation menu when the user completes the final step.
33
+
34
+ return (0, _element.useCallback)(async function () {
35
+ let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
36
+ let blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
37
+
38
+ if (!title) {
39
+ title = await generateDefaultTitle();
40
+ }
41
+
42
+ const record = {
43
+ title,
44
+ content: (0, _blocks.serialize)(blocks),
45
+ status: 'publish'
46
+ };
47
+ return await saveEntityRecord('postType', 'wp_navigation', record);
48
+ }, [_blocks.serialize, saveEntityRecord]);
49
+ }
50
+ //# sourceMappingURL=use-create-navigation-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-create-navigation-menu.js"],"names":["useCreateNavigationMenu","clientId","saveEntityRecord","coreStore","generateDefaultTitle","title","blocks","record","content","status","serialize"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AAXA;AACA;AACA;;AAMA;AACA;AACA;AAGe,SAASA,uBAAT,CAAkCC,QAAlC,EAA6C;AAC3D,QAAM;AAAEC,IAAAA;AAAF,MAAuB,uBAAaC,eAAb,CAA7B;AACA,QAAMC,oBAAoB,GAAG,gDAAmCH,QAAnC,CAA7B,CAF2D,CAI3D;AACA;;AACA,SAAO,0BACN,kBAAuC;AAAA,QAA/BI,KAA+B,uEAAvB,IAAuB;AAAA,QAAjBC,MAAiB,uEAAR,EAAQ;;AACtC,QAAK,CAAED,KAAP,EAAe;AACdA,MAAAA,KAAK,GAAG,MAAMD,oBAAoB,EAAlC;AACA;;AACD,UAAMG,MAAM,GAAG;AACdF,MAAAA,KADc;AAEdG,MAAAA,OAAO,EAAE,uBAAWF,MAAX,CAFK;AAGdG,MAAAA,MAAM,EAAE;AAHM,KAAf;AAMA,WAAO,MAAMP,gBAAgB,CAC5B,UAD4B,EAE5B,eAF4B,EAG5BK,MAH4B,CAA7B;AAKA,GAhBK,EAiBN,CAAEG,iBAAF,EAAaR,gBAAb,CAjBM,CAAP;AAmBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useGenerateDefaultNavigationTitle from './use-generate-default-navigation-title';\n\nexport default function useCreateNavigationMenu( clientId ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst generateDefaultTitle = useGenerateDefaultNavigationTitle( clientId );\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\treturn useCallback(\n\t\tasync ( title = null, blocks = [] ) => {\n\t\t\tif ( ! title ) {\n\t\t\t\ttitle = await generateDefaultTitle();\n\t\t\t}\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\treturn 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\t\t},\n\t\t[ serialize, saveEntityRecord ]\n\t);\n}\n"]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = useGenerateDefaultNavigationTitle;
9
+
10
+ var _components = require("@wordpress/components");
11
+
12
+ var _coreData = require("@wordpress/core-data");
13
+
14
+ var _data = require("@wordpress/data");
15
+
16
+ var _element = require("@wordpress/element");
17
+
18
+ var _i18n = require("@wordpress/i18n");
19
+
20
+ var _useTemplatePartAreaLabel = _interopRequireDefault(require("../use-template-part-area-label"));
21
+
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+ const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
30
+ status: 'draft',
31
+ per_page: -1
32
+ }];
33
+ const PUBLISHED_MENU_PARAMS = ['postType', 'wp_navigation', {
34
+ per_page: -1,
35
+ status: 'publish'
36
+ }];
37
+
38
+ function useGenerateDefaultNavigationTitle(clientId) {
39
+ // The block will be disabled in a block preview, use this as a way of
40
+ // avoiding the side-effects of this component for block previews.
41
+ const isDisabled = (0, _element.useContext)(_components.Disabled.Context); // Because we can't conditionally call hooks, pass an undefined client id
42
+ // arg to bypass the expensive `useTemplateArea` code. The hook will return
43
+ // early.
44
+
45
+ const area = (0, _useTemplatePartAreaLabel.default)(isDisabled ? undefined : clientId);
46
+ const registry = (0, _data.useRegistry)();
47
+ return (0, _element.useCallback)(async () => {
48
+ // Ensure other navigation menus have loaded so an
49
+ // accurate name can be created.
50
+ if (isDisabled) {
51
+ return '';
52
+ }
53
+
54
+ const {
55
+ getEntityRecords
56
+ } = registry.resolveSelect(_coreData.store);
57
+ const [draftNavigationMenus, navigationMenus] = await Promise.all([getEntityRecords(...DRAFT_MENU_PARAMS), getEntityRecords(...PUBLISHED_MENU_PARAMS)]);
58
+ const title = area ? (0, _i18n.sprintf)( // translators: %s: the name of a menu (e.g. Header navigation).
59
+ (0, _i18n.__)('%s navigation'), area) : // translators: 'navigation' as in website navigation.
60
+ (0, _i18n.__)('Navigation'); // Determine how many menus start with the automatic title.
61
+
62
+ const matchingMenuTitleCount = [...draftNavigationMenus, ...navigationMenus].reduce((count, menu) => {
63
+ var _menu$title, _menu$title$raw;
64
+
65
+ return menu !== null && menu !== void 0 && (_menu$title = menu.title) !== null && _menu$title !== void 0 && (_menu$title$raw = _menu$title.raw) !== null && _menu$title$raw !== void 0 && _menu$title$raw.startsWith(title) ? count + 1 : count;
66
+ }, 0); // Append a number to the end of the title if a menu with
67
+ // the same name exists.
68
+
69
+ const titleWithCount = matchingMenuTitleCount > 0 ? `${title} ${matchingMenuTitleCount + 1}` : title;
70
+ return titleWithCount || '';
71
+ }, [isDisabled, area]);
72
+ }
73
+ //# sourceMappingURL=use-generate-default-navigation-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-generate-default-navigation-title.js"],"names":["DRAFT_MENU_PARAMS","status","per_page","PUBLISHED_MENU_PARAMS","useGenerateDefaultNavigationTitle","clientId","isDisabled","Disabled","Context","area","undefined","registry","getEntityRecords","resolveSelect","coreStore","draftNavigationMenus","navigationMenus","Promise","all","title","matchingMenuTitleCount","reduce","count","menu","raw","startsWith","titleWithCount"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAGA,MAAMA,iBAAiB,GAAG,CACzB,UADyB,EAEzB,eAFyB,EAGzB;AAAEC,EAAAA,MAAM,EAAE,OAAV;AAAmBC,EAAAA,QAAQ,EAAE,CAAC;AAA9B,CAHyB,CAA1B;AAMA,MAAMC,qBAAqB,GAAG,CAC7B,UAD6B,EAE7B,eAF6B,EAG7B;AAAED,EAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBD,EAAAA,MAAM,EAAE;AAAxB,CAH6B,CAA9B;;AAMe,SAASG,iCAAT,CAA4CC,QAA5C,EAAuD;AACrE;AACA;AACA,QAAMC,UAAU,GAAG,yBAAYC,qBAASC,OAArB,CAAnB,CAHqE,CAKrE;AACA;AACA;;AACA,QAAMC,IAAI,GAAG,uCAA0BH,UAAU,GAAGI,SAAH,GAAeL,QAAnD,CAAb;AAEA,QAAMM,QAAQ,GAAG,wBAAjB;AACA,SAAO,0BAAa,YAAY;AAC/B;AACA;AACA,QAAKL,UAAL,EAAkB;AACjB,aAAO,EAAP;AACA;;AACD,UAAM;AAAEM,MAAAA;AAAF,QAAuBD,QAAQ,CAACE,aAAT,CAAwBC,eAAxB,CAA7B;AAEA,UAAM,CAAEC,oBAAF,EAAwBC,eAAxB,IAA4C,MAAMC,OAAO,CAACC,GAAR,CAAa,CACpEN,gBAAgB,CAAE,GAAGZ,iBAAL,CADoD,EAEpEY,gBAAgB,CAAE,GAAGT,qBAAL,CAFoD,CAAb,CAAxD;AAKA,UAAMgB,KAAK,GAAGV,IAAI,GACf,oBACA;AACA,kBAAI,eAAJ,CAFA,EAGAA,IAHA,CADe,GAMf;AACA,kBAAI,YAAJ,CAPH,CAb+B,CAsB/B;;AACA,UAAMW,sBAAsB,GAAG,CAC9B,GAAGL,oBAD2B,EAE9B,GAAGC,eAF2B,EAG7BK,MAH6B,CAI9B,CAAEC,KAAF,EAASC,IAAT;AAAA;;AAAA,aACCA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,mBAAAA,IAAI,CAAEJ,KAAN,uEAAaK,GAAb,4DAAkBC,UAAlB,CAA8BN,KAA9B,IAAwCG,KAAK,GAAG,CAAhD,GAAoDA,KADrD;AAAA,KAJ8B,EAM9B,CAN8B,CAA/B,CAvB+B,CAgC/B;AACA;;AACA,UAAMI,cAAc,GACnBN,sBAAsB,GAAG,CAAzB,GACI,GAAGD,KAAO,IAAIC,sBAAsB,GAAG,CAAG,EAD9C,GAEGD,KAHJ;AAKA,WAAOO,cAAc,IAAI,EAAzB;AACA,GAxCM,EAwCJ,CAAEpB,UAAF,EAAcG,IAAd,CAxCI,CAAP;AAyCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useRegistry } from '@wordpress/data';\nimport { useContext, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useTemplatePartAreaLabel from '../use-template-part-area-label';\n\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst PUBLISHED_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ per_page: -1, status: 'publish' },\n];\n\nexport default function useGenerateDefaultNavigationTitle( clientId ) {\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\n\t// Because we can't conditionally call hooks, pass an undefined client id\n\t// arg to bypass the expensive `useTemplateArea` code. The hook will return\n\t// early.\n\tconst area = useTemplatePartAreaLabel( isDisabled ? undefined : clientId );\n\n\tconst registry = useRegistry();\n\treturn useCallback( async () => {\n\t\t// Ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\tif ( isDisabled ) {\n\t\t\treturn '';\n\t\t}\n\t\tconst { getEntityRecords } = registry.resolveSelect( coreStore );\n\n\t\tconst [ draftNavigationMenus, navigationMenus ] = await Promise.all( [\n\t\t\tgetEntityRecords( ...DRAFT_MENU_PARAMS ),\n\t\t\tgetEntityRecords( ...PUBLISHED_MENU_PARAMS ),\n\t\t] );\n\n\t\tconst title = area\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header navigation).\n\t\t\t\t\t__( '%s navigation' ),\n\t\t\t\t\tarea\n\t\t\t )\n\t\t\t: // translators: 'navigation' as in website navigation.\n\t\t\t __( 'Navigation' );\n\n\t\t// Determine how many menus start with the automatic title.\n\t\tconst matchingMenuTitleCount = [\n\t\t\t...draftNavigationMenus,\n\t\t\t...navigationMenus,\n\t\t].reduce(\n\t\t\t( count, menu ) =>\n\t\t\t\tmenu?.title?.raw?.startsWith( title ) ? count + 1 : count,\n\t\t\t0\n\t\t);\n\n\t\t// Append a number to the end of the title if a menu with\n\t\t// the same name exists.\n\t\tconst titleWithCount =\n\t\t\tmatchingMenuTitleCount > 0\n\t\t\t\t? `${ title } ${ matchingMenuTitleCount + 1 }`\n\t\t\t\t: title;\n\n\t\treturn titleWithCount || '';\n\t}, [ isDisabled, area ] );\n}\n"]}
@@ -33,7 +33,7 @@ const metadata = {
33
33
  keywords: ["menu", "navigation", "links"],
34
34
  textdomain: "default",
35
35
  attributes: {
36
- navigationMenuId: {
36
+ ref: {
37
37
  type: "number"
38
38
  },
39
39
  textColor: {
@@ -17,8 +17,8 @@ function save(_ref) {
17
17
  attributes
18
18
  } = _ref;
19
19
 
20
- if (attributes.navigationMenuId) {
21
- // Avoid rendering inner blocks when a navigationMenuId is defined.
20
+ if (attributes.ref) {
21
+ // Avoid rendering inner blocks when a ref is defined.
22
22
  // When this id is defined the inner blocks are loaded from the
23
23
  // `wp_navigation` entity rather than the hard-coded block html.
24
24
  return;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/save.js"],"names":["save","attributes","navigationMenuId"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGe,SAASA,IAAT,OAAgC;AAAA,MAAjB;AAAEC,IAAAA;AAAF,GAAiB;;AAC9C,MAAKA,UAAU,CAACC,gBAAhB,EAAmC;AAClC;AACA;AACA;AACA;AACA;;AACD,SAAO,4BAAC,wBAAD,CAAa,OAAb,OAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tif ( attributes.navigationMenuId ) {\n\t\t// Avoid rendering inner blocks when a navigationMenuId is defined.\n\t\t// When this id is defined the inner blocks are loaded from the\n\t\t// `wp_navigation` entity rather than the hard-coded block html.\n\t\treturn;\n\t}\n\treturn <InnerBlocks.Content />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/save.js"],"names":["save","attributes","ref"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGe,SAASA,IAAT,OAAgC;AAAA,MAAjB;AAAEC,IAAAA;AAAF,GAAiB;;AAC9C,MAAKA,UAAU,CAACC,GAAhB,EAAsB;AACrB;AACA;AACA;AACA;AACA;;AACD,SAAO,4BAAC,wBAAD,CAAa,OAAb,OAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tif ( attributes.ref ) {\n\t\t// Avoid rendering inner blocks when a ref is defined.\n\t\t// When this id is defined the inner blocks are loaded from the\n\t\t// `wp_navigation` entity rather than the hard-coded block html.\n\t\treturn;\n\t}\n\treturn <InnerBlocks.Content />;\n}\n"]}
@@ -12,29 +12,40 @@ var _data = require("@wordpress/data");
12
12
  /**
13
13
  * WordPress dependencies
14
14
  */
15
- function useNavigationMenu(navigationMenuId) {
15
+ function useNavigationMenu(ref) {
16
16
  return (0, _data.useSelect)(select => {
17
+ var _navigationMenu;
18
+
17
19
  const {
20
+ getEntityRecord,
18
21
  getEditedEntityRecord,
19
22
  getEntityRecords,
20
23
  hasFinishedResolution
21
24
  } = select(_coreData.store);
22
- const navigationMenuSingleArgs = ['postType', 'wp_navigation', navigationMenuId];
23
- const navigationMenu = navigationMenuId ? getEditedEntityRecord(...navigationMenuSingleArgs) : null;
24
- const hasResolvedNavigationMenu = navigationMenuId ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false;
25
+ const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref];
26
+ const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null;
27
+ let navigationMenu = ref ? getEditedEntityRecord(...navigationMenuSingleArgs) : null; // getEditedEntityRecord will return the post regardless of status.
28
+ // Therefore if the found post is not published then we should ignore it.
29
+
30
+ if (((_navigationMenu = navigationMenu) === null || _navigationMenu === void 0 ? void 0 : _navigationMenu.status) !== 'publish') {
31
+ navigationMenu = null;
32
+ }
33
+
34
+ const hasResolvedNavigationMenu = ref ? hasFinishedResolution('getEditedEntityRecord', navigationMenuSingleArgs) : false;
25
35
  const navigationMenuMultipleArgs = ['postType', 'wp_navigation', {
26
- per_page: -1
36
+ per_page: -1,
37
+ status: 'publish'
27
38
  }];
28
39
  const navigationMenus = getEntityRecords(...navigationMenuMultipleArgs);
29
- const canSwitchNavigationMenu = navigationMenuId ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0;
40
+ const canSwitchNavigationMenu = ref ? (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 1 : (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.length) > 0;
30
41
  return {
31
42
  isNavigationMenuResolved: hasResolvedNavigationMenu,
32
- isNavigationMenuMissing: !navigationMenuId || hasResolvedNavigationMenu && !navigationMenu,
43
+ isNavigationMenuMissing: !ref || hasResolvedNavigationMenu && !rawNavigationMenu,
33
44
  canSwitchNavigationMenu,
34
45
  hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
35
46
  navigationMenu,
36
47
  navigationMenus
37
48
  };
38
- }, [navigationMenuId]);
49
+ }, [ref]);
39
50
  }
40
51
  //# sourceMappingURL=use-navigation-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","navigationMenuId","select","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","coreStore","navigationMenuSingleArgs","navigationMenu","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,gBAA5B,EAA+C;AAC7D,SAAO,qBACJC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,qBADK;AAELC,MAAAA,gBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,eAAF,CAJV;AAMA,UAAMC,wBAAwB,GAAG,CAChC,UADgC,EAEhC,eAFgC,EAGhCN,gBAHgC,CAAjC;AAKA,UAAMO,cAAc,GAAGP,gBAAgB,GACpCE,qBAAqB,CAAE,GAAGI,wBAAL,CADe,GAEpC,IAFH;AAGA,UAAME,yBAAyB,GAAGR,gBAAgB,GAC/CI,qBAAqB,CACrB,uBADqB,EAErBE,wBAFqB,CAD0B,GAK/C,KALH;AAOA,UAAMG,0BAA0B,GAAG,CAClC,UADkC,EAElC,eAFkC,EAGlC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAHkC,CAAnC;AAKA,UAAMC,eAAe,GAAGR,gBAAgB,CACvC,GAAGM,0BADoC,CAAxC;AAIA,UAAMG,uBAAuB,GAAGZ,gBAAgB,GAC7C,CAAAW,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CADmB,GAE7C,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CAF7B;AAIA,WAAO;AACNC,MAAAA,wBAAwB,EAAEN,yBADpB;AAENO,MAAAA,uBAAuB,EACtB,CAAEf,gBAAF,IACEQ,yBAAyB,IAAI,CAAED,cAJ5B;AAKNK,MAAAA,uBALM;AAMNI,MAAAA,0BAA0B,EAAEZ,qBAAqB,CAChD,kBADgD,EAEhDK,0BAFgD,CAN3C;AAUNF,MAAAA,cAVM;AAWNI,MAAAA;AAXM,KAAP;AAaA,GAjDK,EAkDN,CAAEX,gBAAF,CAlDM,CAAP;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( navigationMenuId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst navigationMenuSingleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tnavigationMenuId,\n\t\t\t];\n\t\t\tconst navigationMenu = navigationMenuId\n\t\t\t\t? getEditedEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\t\t\tconst hasResolvedNavigationMenu = navigationMenuId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tnavigationMenuSingleArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst navigationMenuMultipleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\t{ per_page: -1 },\n\t\t\t];\n\t\t\tconst navigationMenus = getEntityRecords(\n\t\t\t\t...navigationMenuMultipleArgs\n\t\t\t);\n\n\t\t\tconst canSwitchNavigationMenu = navigationMenuId\n\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t: navigationMenus?.length > 0;\n\n\t\t\treturn {\n\t\t\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\t\t\tisNavigationMenuMissing:\n\t\t\t\t\t! navigationMenuId ||\n\t\t\t\t\t( hasResolvedNavigationMenu && ! navigationMenu ),\n\t\t\t\tcanSwitchNavigationMenu,\n\t\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\tnavigationMenu,\n\t\t\t\tnavigationMenus,\n\t\t\t};\n\t\t},\n\t\t[ navigationMenuId ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","coreStore","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,SAAO,qBACJC,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,eAAF,CALV;AAOA,UAAMC,wBAAwB,GAAG,CAChC,UADgC,EAEhC,eAFgC,EAGhCP,GAHgC,CAAjC;AAKA,UAAMQ,iBAAiB,GAAGR,GAAG,GAC1BE,eAAe,CAAE,GAAGK,wBAAL,CADW,GAE1B,IAFH;AAGA,QAAIE,cAAc,GAAGT,GAAG,GACrBG,qBAAqB,CAAE,GAAGI,wBAAL,CADA,GAErB,IAFH,CAhBa,CAoBb;AACA;;AACA,QAAK,oBAAAE,cAAc,UAAd,0DAAgBC,MAAhB,MAA2B,SAAhC,EAA4C;AAC3CD,MAAAA,cAAc,GAAG,IAAjB;AACA;;AAED,UAAME,yBAAyB,GAAGX,GAAG,GAClCK,qBAAqB,CACrB,uBADqB,EAErBE,wBAFqB,CADa,GAKlC,KALH;AAOA,UAAMK,0BAA0B,GAAG,CAClC,UADkC,EAElC,eAFkC,EAGlC;AAAEC,MAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBH,MAAAA,MAAM,EAAE;AAAxB,KAHkC,CAAnC;AAKA,UAAMI,eAAe,GAAGV,gBAAgB,CACvC,GAAGQ,0BADoC,CAAxC;AAIA,UAAMG,uBAAuB,GAAGf,GAAG,GAChC,CAAAc,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CADM,GAEhC,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CAF7B;AAIA,WAAO;AACNC,MAAAA,wBAAwB,EAAEN,yBADpB;AAENO,MAAAA,uBAAuB,EACtB,CAAElB,GAAF,IACEW,yBAAyB,IAAI,CAAEH,iBAJ5B;AAKNO,MAAAA,uBALM;AAMNI,MAAAA,0BAA0B,EAAEd,qBAAqB,CAChD,kBADgD,EAEhDO,0BAFgD,CAN3C;AAUNH,MAAAA,cAVM;AAWNK,MAAAA;AAXM,KAAP;AAaA,GA5DK,EA6DN,CAAEd,GAAF,CA7DM,CAAP;AA+DA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst navigationMenuSingleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tref,\n\t\t\t];\n\t\t\tconst rawNavigationMenu = ref\n\t\t\t\t? getEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\t\t\tlet navigationMenu = ref\n\t\t\t\t? getEditedEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\n\t\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t\t// Therefore if the found post is not published then we should ignore it.\n\t\t\tif ( navigationMenu?.status !== 'publish' ) {\n\t\t\t\tnavigationMenu = null;\n\t\t\t}\n\n\t\t\tconst hasResolvedNavigationMenu = ref\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tnavigationMenuSingleArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst navigationMenuMultipleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\t{ per_page: -1, status: 'publish' },\n\t\t\t];\n\t\t\tconst navigationMenus = getEntityRecords(\n\t\t\t\t...navigationMenuMultipleArgs\n\t\t\t);\n\n\t\t\tconst canSwitchNavigationMenu = ref\n\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t: navigationMenus?.length > 0;\n\n\t\t\treturn {\n\t\t\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\t\t\tisNavigationMenuMissing:\n\t\t\t\t\t! ref ||\n\t\t\t\t\t( hasResolvedNavigationMenu && ! rawNavigationMenu ),\n\t\t\t\tcanSwitchNavigationMenu,\n\t\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\tnavigationMenu,\n\t\t\t\tnavigationMenus,\n\t\t\t};\n\t\t},\n\t\t[ ref ]\n\t);\n}\n"]}
@@ -11,6 +11,8 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _i18n = require("@wordpress/i18n");
13
13
 
14
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
15
+
14
16
  var _coreData = require("@wordpress/core-data");
15
17
 
16
18
  var _components = require("@wordpress/components");
@@ -62,6 +64,9 @@ function NavigationAreaBlock(_ref) {
62
64
  value: name
63
65
  };
64
66
  }), [navigationAreas]);
67
+ (0, _deprecated.default)('wp.blockLibrary.NavigationArea', {
68
+ since: '5.9'
69
+ });
65
70
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_components.ToolbarDropdownMenu, {
66
71
  label: (0, _i18n.__)('Select Area'),
67
72
  text: (0, _i18n.__)('Select Area'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation-area/edit.js"],"names":["NavigationAreaBlock","attributes","setAttributes","area","navigationAreas","hasResolvedNavigationAreas","select","getEntityRecords","hasFinishedResolution","coreStore","navigationMenuId","length","undefined","choices","map","name","description","label","value","onClose","selectedArea"],"mappings":";;;;;;;;;AAaA;;AAVA;;AACA;;AACA;;AASA;;AACA;;AAKA;;AACA;;AArBA;AACA;AACA;;AAeA;AACA;AACA;AAIA,SAASA,mBAAT,OAA8D;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AAC7D,QAAM;AAAEC,IAAAA;AAAF,MAAWF,UAAjB;AAEA,QAAM;AAAEG,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAkD,qBACrDC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAA8CF,MAAM,CACzDG,eADyD,CAA1D;AAGA,WAAO;AACNL,MAAAA,eAAe,EAAEG,gBAAgB,CAAE,MAAF,EAAU,gBAAV,CAD3B;AAENF,MAAAA,0BAA0B,EAAEG,qBAAqB,CAChD,kBADgD,EAEhD,CAAE,MAAF,EAAU,gBAAV,CAFgD;AAF3C,KAAP;AAOA,GAZsD,CAAxD;AAcA,QAAME,gBAAgB,GAAGN,eAAe,SAAf,IAAAA,eAAe,WAAf,IAAAA,eAAe,CAAEO,MAAjB,GACtBP,eAAe,CAAED,IAAF,CADO,GAEtBS,SAFH;AAIA,QAAMC,OAAO,GAAG,sBACf,MACCT,eADD,aACCA,eADD,uBACCA,eAAe,CAAEU,GAAjB,CAAsB;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAF;AAAA,WAA+B;AACpDC,MAAAA,KAAK,EAAED,WAD6C;AAEpDE,MAAAA,KAAK,EAAEH;AAF6C,KAA/B;AAAA,GAAtB,CAFc,EAMf,CAAEX,eAAF,CANe,CAAhB;AASA,SACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,wBAAD,QACC,4BAAC,+BAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,IAAI,EAAG,cAAI,aAAJ,CAFR;AAGC,IAAA,IAAI,EAAG;AAHR,KAKG;AAAA,QAAE;AAAEe,MAAAA;AAAF,KAAF;AAAA,WACD,4BAAC,qBAAD,QACC,4BAAC,2BAAD;AACC,MAAA,KAAK,EAAGhB,IADT;AAEC,MAAA,QAAQ,EAAKiB,YAAF,IAAoB;AAC9BlB,QAAAA,aAAa,CAAE;AAAEC,UAAAA,IAAI,EAAEiB;AAAR,SAAF,CAAb;AACAD,QAAAA,OAAO;AACP,OALF;AAMC,MAAA,OAAO,EAAGN;AANX,MADD,CADC;AAAA,GALH,CADD,CADD,CADD,EAuBC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,SAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,MAAJ,CADT;AAEC,IAAA,KAAK,EAAGV,IAFT,CAGC;AAHD;AAIC,IAAA,QAAQ,EAAKe,KAAF,IACVhB,aAAa,CAAE;AACdC,MAAAA,IAAI,EAAEe;AADQ,KAAF,CALf;AASC,IAAA,OAAO,EAAGL;AATX,IADD,CADD,CAvBD,EAsCG,CAAER,0BAAF,IAAgC,4BAAC,2BAAD;AAAoB,IAAA,SAAS;AAA7B,IAtCnC,EAwCE;AACA;AACAA,EAAAA,0BAA0B,IACzB,4BAAC,oBAAD;AAAa,IAAA,gBAAgB,EAAGK;AAAhC,IA3CH,CADD;AAiDA;;eAEcV,mB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tMenuGroup,\n\tMenuItemsChoice,\n\tPanelBody,\n\tSelectControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InnerBlocks from './inner-blocks';\nimport PlaceholderPreview from '../navigation/edit/placeholder/placeholder-preview';\n\nfunction NavigationAreaBlock( { attributes, setAttributes } ) {\n\tconst { area } = attributes;\n\n\tconst { navigationAreas, hasResolvedNavigationAreas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, hasFinishedResolution } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tnavigationAreas: getEntityRecords( 'root', 'navigationArea' ),\n\t\t\t\thasResolvedNavigationAreas: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t[ 'root', 'navigationArea' ]\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t);\n\tconst navigationMenuId = navigationAreas?.length\n\t\t? navigationAreas[ area ]\n\t\t: undefined;\n\n\tconst choices = useMemo(\n\t\t() =>\n\t\t\tnavigationAreas?.map( ( { name, description } ) => ( {\n\t\t\t\tlabel: description,\n\t\t\t\tvalue: name,\n\t\t\t} ) ),\n\t\t[ navigationAreas ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\tlabel={ __( 'Select Area' ) }\n\t\t\t\t\t\ttext={ __( 'Select Area' ) }\n\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t\t\t\tonSelect={ ( selectedArea ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { area: selectedArea } );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Options' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Area' ) }\n\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ choices }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! hasResolvedNavigationAreas && <PlaceholderPreview isLoading /> }\n\t\t\t{\n\t\t\t\t// Render inner blocks only when navigationMenuId is known so\n\t\t\t\t// that inner blocks template is correct from the start.\n\t\t\t\thasResolvedNavigationAreas && (\n\t\t\t\t\t<InnerBlocks navigationMenuId={ navigationMenuId } />\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default NavigationAreaBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation-area/edit.js"],"names":["NavigationAreaBlock","attributes","setAttributes","area","navigationAreas","hasResolvedNavigationAreas","select","getEntityRecords","hasFinishedResolution","coreStore","navigationMenuId","length","undefined","choices","map","name","description","label","value","since","onClose","selectedArea"],"mappings":";;;;;;;;;AAcA;;AAXA;;AACA;;AACA;;AACA;;AASA;;AACA;;AAKA;;AACA;;AAtBA;AACA;AACA;;AAgBA;AACA;AACA;AAIA,SAASA,mBAAT,OAA8D;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AAC7D,QAAM;AAAEC,IAAAA;AAAF,MAAWF,UAAjB;AAEA,QAAM;AAAEG,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAkD,qBACrDC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAA8CF,MAAM,CACzDG,eADyD,CAA1D;AAGA,WAAO;AACNL,MAAAA,eAAe,EAAEG,gBAAgB,CAAE,MAAF,EAAU,gBAAV,CAD3B;AAENF,MAAAA,0BAA0B,EAAEG,qBAAqB,CAChD,kBADgD,EAEhD,CAAE,MAAF,EAAU,gBAAV,CAFgD;AAF3C,KAAP;AAOA,GAZsD,CAAxD;AAcA,QAAME,gBAAgB,GAAGN,eAAe,SAAf,IAAAA,eAAe,WAAf,IAAAA,eAAe,CAAEO,MAAjB,GACtBP,eAAe,CAAED,IAAF,CADO,GAEtBS,SAFH;AAIA,QAAMC,OAAO,GAAG,sBACf,MACCT,eADD,aACCA,eADD,uBACCA,eAAe,CAAEU,GAAjB,CAAsB;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAF;AAAA,WAA+B;AACpDC,MAAAA,KAAK,EAAED,WAD6C;AAEpDE,MAAAA,KAAK,EAAEH;AAF6C,KAA/B;AAAA,GAAtB,CAFc,EAMf,CAAEX,eAAF,CANe,CAAhB;AASA,2BAAY,gCAAZ,EAA8C;AAC7Ce,IAAAA,KAAK,EAAE;AADsC,GAA9C;AAIA,SACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,wBAAD,QACC,4BAAC,+BAAD;AACC,IAAA,KAAK,EAAG,cAAI,aAAJ,CADT;AAEC,IAAA,IAAI,EAAG,cAAI,aAAJ,CAFR;AAGC,IAAA,IAAI,EAAG;AAHR,KAKG;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WACD,4BAAC,qBAAD,QACC,4BAAC,2BAAD;AACC,MAAA,KAAK,EAAGjB,IADT;AAEC,MAAA,QAAQ,EAAKkB,YAAF,IAAoB;AAC9BnB,QAAAA,aAAa,CAAE;AAAEC,UAAAA,IAAI,EAAEkB;AAAR,SAAF,CAAb;AACAD,QAAAA,OAAO;AACP,OALF;AAMC,MAAA,OAAO,EAAGP;AANX,MADD,CADC;AAAA,GALH,CADD,CADD,CADD,EAuBC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,SAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,MAAJ,CADT;AAEC,IAAA,KAAK,EAAGV,IAFT,CAGC;AAHD;AAIC,IAAA,QAAQ,EAAKe,KAAF,IACVhB,aAAa,CAAE;AACdC,MAAAA,IAAI,EAAEe;AADQ,KAAF,CALf;AASC,IAAA,OAAO,EAAGL;AATX,IADD,CADD,CAvBD,EAsCG,CAAER,0BAAF,IAAgC,4BAAC,2BAAD;AAAoB,IAAA,SAAS;AAA7B,IAtCnC,EAwCE;AACA;AACAA,EAAAA,0BAA0B,IACzB,4BAAC,oBAAD;AAAa,IAAA,gBAAgB,EAAGK;AAAhC,IA3CH,CADD;AAiDA;;eAEcV,mB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tMenuGroup,\n\tMenuItemsChoice,\n\tPanelBody,\n\tSelectControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InnerBlocks from './inner-blocks';\nimport PlaceholderPreview from '../navigation/edit/placeholder/placeholder-preview';\n\nfunction NavigationAreaBlock( { attributes, setAttributes } ) {\n\tconst { area } = attributes;\n\n\tconst { navigationAreas, hasResolvedNavigationAreas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, hasFinishedResolution } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tnavigationAreas: getEntityRecords( 'root', 'navigationArea' ),\n\t\t\t\thasResolvedNavigationAreas: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t[ 'root', 'navigationArea' ]\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t);\n\tconst navigationMenuId = navigationAreas?.length\n\t\t? navigationAreas[ area ]\n\t\t: undefined;\n\n\tconst choices = useMemo(\n\t\t() =>\n\t\t\tnavigationAreas?.map( ( { name, description } ) => ( {\n\t\t\t\tlabel: description,\n\t\t\t\tvalue: name,\n\t\t\t} ) ),\n\t\t[ navigationAreas ]\n\t);\n\n\tdeprecated( 'wp.blockLibrary.NavigationArea', {\n\t\tsince: '5.9',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\tlabel={ __( 'Select Area' ) }\n\t\t\t\t\t\ttext={ __( 'Select Area' ) }\n\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t\t\t\tonSelect={ ( selectedArea ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { area: selectedArea } );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Options' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Area' ) }\n\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ choices }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! hasResolvedNavigationAreas && <PlaceholderPreview isLoading /> }\n\t\t\t{\n\t\t\t\t// Render inner blocks only when navigationMenuId is known so\n\t\t\t\t// that inner blocks template is correct from the start.\n\t\t\t\thasResolvedNavigationAreas && (\n\t\t\t\t\t<InnerBlocks navigationMenuId={ navigationMenuId } />\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default NavigationAreaBlock;\n"]}
@@ -19,9 +19,9 @@ var _components = require("@wordpress/components");
19
19
 
20
20
  var _i18n = require("@wordpress/i18n");
21
21
 
22
- var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
22
+ var _data = require("@wordpress/data");
23
23
 
24
- var _url = require("@wordpress/url");
24
+ var _coreData = require("@wordpress/core-data");
25
25
 
26
26
  var _convertToLinksModal = _interopRequireDefault(require("./convert-to-links-modal"));
27
27
 
@@ -79,53 +79,51 @@ function PageListEdit(_ref) {
79
79
  }, (0, _i18n.__)('Edit'))), allowConvertToLinks && isOpen && (0, _element.createElement)(_convertToLinksModal.default, {
80
80
  onClose: closeModal,
81
81
  clientId: clientId
82
- }), totalPages === null && (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Placeholder, null, (0, _element.createElement)(_components.Spinner, null))), totalPages === 0 && (0, _element.createElement)("div", blockProps, (0, _element.createElement)("span", null, (0, _i18n.__)('Page List: No pages to show.'))), totalPages > 0 && (0, _element.createElement)("ul", blockProps, (0, _element.createElement)(PageItems, {
82
+ }), totalPages === undefined && (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Placeholder, null, (0, _element.createElement)(_components.Spinner, null))), totalPages === 0 && (0, _element.createElement)("div", blockProps, (0, _element.createElement)("span", null, (0, _i18n.__)('Page List: No pages to show.'))), totalPages > 0 && (0, _element.createElement)("ul", blockProps, (0, _element.createElement)(PageItems, {
83
83
  context: context,
84
84
  pagesByParentId: pagesByParentId
85
85
  })));
86
86
  }
87
87
 
88
88
  function usePagesByParentId() {
89
- const [pagesByParentId, setPagesByParentId] = (0, _element.useState)(null);
90
- const [totalPages, setTotalPages] = (0, _element.useState)(null);
91
- (0, _element.useEffect)(() => {
92
- async function performFetch() {
93
- setPagesByParentId(null);
94
- setTotalPages(null);
95
- let pages = await (0, _apiFetch.default)({
96
- path: (0, _url.addQueryArgs)('/wp/v2/pages', {
97
- orderby: 'menu_order',
98
- order: 'asc',
99
- _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
100
- per_page: -1
101
- })
102
- }); // TODO: Once the REST API supports passing multiple values to
103
- // 'orderby', this can be removed.
104
- // https://core.trac.wordpress.org/ticket/39037
105
-
106
- pages = (0, _lodash.sortBy)(pages, ['menu_order', 'title.rendered']);
107
- setPagesByParentId(pages.reduce((accumulator, page) => {
108
- const {
109
- parent
110
- } = page;
111
-
112
- if (accumulator.has(parent)) {
113
- accumulator.get(parent).push(page);
114
- } else {
115
- accumulator.set(parent, [page]);
116
- }
117
-
118
- return accumulator;
119
- }, new Map()));
120
- setTotalPages(pages.length);
121
- }
122
-
123
- performFetch();
89
+ const {
90
+ pages
91
+ } = (0, _data.useSelect)(select => {
92
+ const {
93
+ getEntityRecords
94
+ } = select(_coreData.store);
95
+ return {
96
+ pages: getEntityRecords('postType', 'page', {
97
+ orderby: 'menu_order',
98
+ order: 'asc',
99
+ _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
100
+ per_page: -1
101
+ })
102
+ };
124
103
  }, []);
125
- return {
126
- pagesByParentId,
127
- totalPages
128
- };
104
+ return (0, _element.useMemo)(() => {
105
+ // TODO: Once the REST API supports passing multiple values to
106
+ // 'orderby', this can be removed.
107
+ // https://core.trac.wordpress.org/ticket/39037
108
+ const sortedPages = (0, _lodash.sortBy)(pages, ['menu_order', 'title.rendered']);
109
+ const pagesByParentId = sortedPages.reduce((accumulator, page) => {
110
+ const {
111
+ parent
112
+ } = page;
113
+
114
+ if (accumulator.has(parent)) {
115
+ accumulator.get(parent).push(page);
116
+ } else {
117
+ accumulator.set(parent, [page]);
118
+ }
119
+
120
+ return accumulator;
121
+ }, new Map());
122
+ return {
123
+ pagesByParentId,
124
+ totalPages: pages === null || pages === void 0 ? void 0 : pages.length
125
+ };
126
+ }, [pages]);
129
127
  }
130
128
 
131
129
  const PageItems = (0, _element.memo)(function PageItems(_ref2) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","usePagesByParentId","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","setPagesByParentId","setTotalPages","performFetch","pages","path","orderby","order","_fields","per_page","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, memo } from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages } = usePagesByParentId();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\t\t\t) ]: !! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ totalPages === null && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span>{ __( 'Page List: No pages to show.' ) }</span>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages > 0 && (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction usePagesByParentId() {\n\tconst [ pagesByParentId, setPagesByParentId ] = useState( null );\n\tconst [ totalPages, setTotalPages ] = useState( null );\n\n\tuseEffect( () => {\n\t\tasync function performFetch() {\n\t\t\tsetPagesByParentId( null );\n\t\t\tsetTotalPages( null );\n\n\t\t\tlet pages = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/pages', {\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t\t// 'orderby', this can be removed.\n\t\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\t\tpages = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\n\n\t\t\tsetPagesByParentId(\n\t\t\t\tpages.reduce( ( accumulator, page ) => {\n\t\t\t\t\tconst { parent } = page;\n\t\t\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t\t\t} else {\n\t\t\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, new Map() )\n\t\t\t);\n\t\t\tsetTotalPages( pages.length );\n\t\t}\n\t\tperformFetch();\n\t}, [] );\n\n\treturn {\n\t\tpagesByParentId,\n\t\ttotalPages,\n\t};\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && <ItemSubmenuToggle /> }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container': isNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","usePagesByParentId","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","undefined","pages","select","getEntityRecords","coreStore","orderby","order","_fields","per_page","sortedPages","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages } = usePagesByParentId();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\t\t\t) ]: !! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ totalPages === undefined && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span>{ __( 'Page List: No pages to show.' ) }</span>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages > 0 && (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction usePagesByParentId() {\n\tconst { pages } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\treturn {\n\t\t\tpages: getEntityRecords( 'postType', 'page', {\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\tper_page: -1,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\ttotalPages: pages?.length,\n\t\t};\n\t}, [ pages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && <ItemSubmenuToggle /> }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container': isNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
@@ -16,7 +16,7 @@ const metadata = {
16
16
  apiVersion: 2,
17
17
  name: "core/pattern",
18
18
  title: "Pattern",
19
- category: "design",
19
+ category: "theme",
20
20
  description: "Show a block pattern.",
21
21
  supports: {
22
22
  html: false,
@@ -21,6 +21,10 @@ var _i18n = require("@wordpress/i18n");
21
21
 
22
22
  var _icons = require("@wordpress/icons");
23
23
 
24
+ var _primitives = require("@wordpress/primitives");
25
+
26
+ var _notices = require("@wordpress/notices");
27
+
24
28
  var _dimensionControls = _interopRequireDefault(require("./dimension-controls"));
25
29
 
26
30
  /**
@@ -30,12 +34,20 @@ var _dimensionControls = _interopRequireDefault(require("./dimension-controls"))
30
34
  /**
31
35
  * Internal dependencies
32
36
  */
37
+ const placeholderIllustration = (0, _element.createElement)(_primitives.SVG, {
38
+ className: "components-placeholder__illustration",
39
+ fill: "none",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ viewBox: "0 0 60 60",
42
+ preserveAspectRatio: "none"
43
+ }, (0, _element.createElement)(_primitives.Path, {
44
+ vectorEffect: "non-scaling-stroke",
45
+ d: "M60 60 0 0"
46
+ }));
33
47
  const ALLOWED_MEDIA_TYPES = ['image'];
34
48
  const placeholderChip = (0, _element.createElement)("div", {
35
- className: "post-featured-image_placeholder"
36
- }, (0, _element.createElement)(_components.Icon, {
37
- icon: _icons.postFeaturedImage
38
- }), (0, _element.createElement)("p", null, " ", (0, _i18n.__)('Featured Image')));
49
+ className: "wp-block-post-featured-image__placeholder"
50
+ }, placeholderIllustration);
39
51
 
40
52
  function PostFeaturedImageDisplay(_ref) {
41
53
  let {
@@ -45,9 +57,7 @@ function PostFeaturedImageDisplay(_ref) {
45
57
  postId,
46
58
  postType,
47
59
  queryId
48
- },
49
- noticeUI,
50
- noticeOperations
60
+ }
51
61
  } = _ref;
52
62
  const isDescendentOfQueryLoop = !!queryId;
53
63
  const {
@@ -62,20 +72,32 @@ function PostFeaturedImageDisplay(_ref) {
62
72
  }), [featuredImage]);
63
73
  const blockProps = (0, _blockEditor.useBlockProps)({
64
74
  style: {
65
- width
75
+ width,
76
+ height
66
77
  }
67
78
  });
68
79
 
80
+ const placeholder = content => {
81
+ return (0, _element.createElement)(_components.Placeholder, {
82
+ className: "block-editor-media-placeholder"
83
+ }, placeholderIllustration, content);
84
+ };
85
+
69
86
  const onSelectImage = value => {
70
87
  if (value !== null && value !== void 0 && value.id) {
71
88
  setFeaturedImage(value.id);
72
89
  }
73
90
  };
74
91
 
75
- function onUploadError(message) {
76
- noticeOperations.removeAllNotices();
77
- noticeOperations.createErrorNotice(message);
78
- }
92
+ const {
93
+ createErrorNotice
94
+ } = (0, _data.useDispatch)(_notices.store);
95
+
96
+ const onUploadError = message => {
97
+ createErrorNotice(message[2], {
98
+ type: 'snackbar'
99
+ });
100
+ };
79
101
 
80
102
  let image;
81
103
 
@@ -83,19 +105,29 @@ function PostFeaturedImageDisplay(_ref) {
83
105
  return (0, _element.createElement)("div", blockProps, placeholderChip);
84
106
  }
85
107
 
108
+ const label = (0, _i18n.__)('Add a featured image');
109
+
86
110
  if (!featuredImage) {
87
111
  image = (0, _element.createElement)(_blockEditor.MediaPlaceholder, {
88
- icon: (0, _element.createElement)(_blockEditor.BlockIcon, {
89
- icon: _icons.postFeaturedImage
90
- }),
91
112
  onSelect: onSelectImage,
92
- notices: noticeUI,
93
- onError: onUploadError,
94
113
  accept: "image/*",
95
114
  allowedTypes: ALLOWED_MEDIA_TYPES,
96
- labels: {
97
- title: (0, _i18n.__)('Featured image'),
98
- instructions: (0, _i18n.__)('Upload a media file or pick one from your media library.')
115
+ onError: onUploadError,
116
+ placeholder: placeholder,
117
+ mediaLibraryButton: _ref2 => {
118
+ let {
119
+ open
120
+ } = _ref2;
121
+ return (0, _element.createElement)(_components.Button, {
122
+ icon: _icons.upload,
123
+ variant: "primary",
124
+ label: label,
125
+ showTooltip: true,
126
+ tooltipPosition: "top center",
127
+ onClick: () => {
128
+ open();
129
+ }
130
+ });
99
131
  }
100
132
  });
101
133
  } else {
@@ -134,8 +166,6 @@ function PostFeaturedImageDisplay(_ref) {
134
166
  })), (0, _element.createElement)("figure", blockProps, image));
135
167
  }
136
168
 
137
- const PostFeaturedImageWithNotices = (0, _components.withNotices)(PostFeaturedImageDisplay);
138
-
139
169
  function PostFeaturedImageEdit(props) {
140
170
  var _props$context;
141
171
 
@@ -145,6 +175,6 @@ function PostFeaturedImageEdit(props) {
145
175
  return (0, _element.createElement)("div", blockProps, placeholderChip);
146
176
  }
147
177
 
148
- return (0, _element.createElement)(PostFeaturedImageWithNotices, props);
178
+ return (0, _element.createElement)(PostFeaturedImageDisplay, props);
149
179
  }
150
180
  //# sourceMappingURL=edit.js.map