@wordpress/fields 0.24.0 → 0.24.1-next.ff1cebbba.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +1 -1
  2. package/build/actions/delete-post.js +168 -117
  3. package/build/actions/delete-post.js.map +7 -1
  4. package/build/actions/duplicate-pattern.js +42 -43
  5. package/build/actions/duplicate-pattern.js.map +7 -1
  6. package/build/actions/duplicate-post.js +104 -93
  7. package/build/actions/duplicate-post.js.map +7 -1
  8. package/build/actions/duplicate-template-part.js +71 -63
  9. package/build/actions/duplicate-template-part.js.map +7 -1
  10. package/build/actions/export-pattern.js +60 -45
  11. package/build/actions/export-pattern.js.map +7 -1
  12. package/build/actions/index.js +71 -94
  13. package/build/actions/index.js.map +7 -1
  14. package/build/actions/permanently-delete-post.js +161 -132
  15. package/build/actions/permanently-delete-post.js.map +7 -1
  16. package/build/actions/rename-post.js +77 -83
  17. package/build/actions/rename-post.js.map +7 -1
  18. package/build/actions/reorder-page.js +76 -73
  19. package/build/actions/reorder-page.js.map +7 -1
  20. package/build/actions/reset-post.js +214 -165
  21. package/build/actions/reset-post.js.map +7 -1
  22. package/build/actions/restore-post.js +91 -75
  23. package/build/actions/restore-post.js.map +7 -1
  24. package/build/actions/trash-post.js +167 -127
  25. package/build/actions/trash-post.js.map +7 -1
  26. package/build/actions/utils.js +48 -41
  27. package/build/actions/utils.js.map +7 -1
  28. package/build/actions/view-post-revisions.js +39 -35
  29. package/build/actions/view-post-revisions.js.map +7 -1
  30. package/build/actions/view-post.js +31 -28
  31. package/build/actions/view-post.js.map +7 -1
  32. package/build/components/create-template-part-modal/index.js +213 -169
  33. package/build/components/create-template-part-modal/index.js.map +7 -1
  34. package/build/components/create-template-part-modal/utils.js +48 -48
  35. package/build/components/create-template-part-modal/utils.js.map +7 -1
  36. package/build/fields/author/author-view.js +63 -69
  37. package/build/fields/author/author-view.js.map +7 -1
  38. package/build/fields/author/index.js +43 -29
  39. package/build/fields/author/index.js.map +7 -1
  40. package/build/fields/comment-status/index.js +42 -32
  41. package/build/fields/comment-status/index.js.map +7 -1
  42. package/build/fields/date/date-view.js +84 -58
  43. package/build/fields/date/date-view.js.map +7 -1
  44. package/build/fields/date/index.js +39 -25
  45. package/build/fields/date/index.js.map +7 -1
  46. package/build/fields/discussion/index.js +36 -32
  47. package/build/fields/discussion/index.js.map +7 -1
  48. package/build/fields/featured-image/featured-image-edit.js +115 -97
  49. package/build/fields/featured-image/featured-image-edit.js.map +7 -1
  50. package/build/fields/featured-image/featured-image-view.js +41 -34
  51. package/build/fields/featured-image/featured-image-view.js.map +7 -1
  52. package/build/fields/featured-image/index.js +31 -26
  53. package/build/fields/featured-image/index.js.map +7 -1
  54. package/build/fields/index.js +83 -118
  55. package/build/fields/index.js.map +7 -1
  56. package/build/fields/order/index.js +28 -23
  57. package/build/fields/order/index.js.map +7 -1
  58. package/build/fields/page-title/index.js +42 -30
  59. package/build/fields/page-title/index.js.map +7 -1
  60. package/build/fields/page-title/view.js +38 -41
  61. package/build/fields/page-title/view.js.map +7 -1
  62. package/build/fields/parent/index.js +31 -26
  63. package/build/fields/parent/index.js.map +7 -1
  64. package/build/fields/parent/parent-edit.js +200 -168
  65. package/build/fields/parent/parent-edit.js.map +7 -1
  66. package/build/fields/parent/parent-view.js +40 -31
  67. package/build/fields/parent/parent-view.js.map +7 -1
  68. package/build/fields/parent/utils.js +29 -16
  69. package/build/fields/parent/utils.js.map +7 -1
  70. package/build/fields/password/edit.js +67 -53
  71. package/build/fields/password/edit.js.map +7 -1
  72. package/build/fields/password/index.js +40 -26
  73. package/build/fields/password/index.js.map +7 -1
  74. package/build/fields/pattern-title/index.js +42 -30
  75. package/build/fields/pattern-title/index.js.map +7 -1
  76. package/build/fields/pattern-title/view.js +43 -41
  77. package/build/fields/pattern-title/view.js.map +7 -1
  78. package/build/fields/ping-status/index.js +66 -47
  79. package/build/fields/ping-status/index.js.map +7 -1
  80. package/build/fields/slug/index.js +41 -27
  81. package/build/fields/slug/index.js.map +7 -1
  82. package/build/fields/slug/slug-edit.js +116 -107
  83. package/build/fields/slug/slug-edit.js.map +7 -1
  84. package/build/fields/slug/slug-view.js +30 -23
  85. package/build/fields/slug/slug-view.js.map +7 -1
  86. package/build/fields/slug/utils.js +32 -20
  87. package/build/fields/slug/utils.js.map +7 -1
  88. package/build/fields/status/index.js +43 -29
  89. package/build/fields/status/index.js.map +7 -1
  90. package/build/fields/status/status-elements.js +58 -44
  91. package/build/fields/status/status-elements.js.map +7 -1
  92. package/build/fields/status/status-view.js +42 -36
  93. package/build/fields/status/status-view.js.map +7 -1
  94. package/build/fields/template/index.js +29 -24
  95. package/build/fields/template/index.js.map +7 -1
  96. package/build/fields/template/template-edit.js +167 -142
  97. package/build/fields/template/template-edit.js.map +7 -1
  98. package/build/fields/template-title/index.js +42 -30
  99. package/build/fields/template-title/index.js.map +7 -1
  100. package/build/fields/title/index.js +42 -32
  101. package/build/fields/title/index.js.map +7 -1
  102. package/build/fields/title/view.js +57 -39
  103. package/build/fields/title/view.js.map +7 -1
  104. package/build/index.js +39 -36
  105. package/build/index.js.map +7 -1
  106. package/build/lock-unlock.js +31 -14
  107. package/build/lock-unlock.js.map +7 -1
  108. package/build/mutation/index.js +91 -76
  109. package/build/mutation/index.js.map +7 -1
  110. package/build/types.js +16 -5
  111. package/build/types.js.map +7 -1
  112. package/build-module/actions/delete-post.js +155 -107
  113. package/build-module/actions/delete-post.js.map +7 -1
  114. package/build-module/actions/duplicate-pattern.js +24 -36
  115. package/build-module/actions/duplicate-pattern.js.map +7 -1
  116. package/build-module/actions/duplicate-post.js +87 -84
  117. package/build-module/actions/duplicate-post.js.map +7 -1
  118. package/build-module/actions/duplicate-template-part.js +51 -58
  119. package/build-module/actions/duplicate-template-part.js.map +7 -1
  120. package/build-module/actions/export-pattern.js +40 -39
  121. package/build-module/actions/export-pattern.js.map +7 -1
  122. package/build-module/actions/index.js +29 -14
  123. package/build-module/actions/index.js.map +7 -1
  124. package/build-module/actions/permanently-delete-post.js +146 -125
  125. package/build-module/actions/permanently-delete-post.js.map +7 -1
  126. package/build-module/actions/rename-post.js +63 -77
  127. package/build-module/actions/rename-post.js.map +7 -1
  128. package/build-module/actions/reorder-page.js +58 -65
  129. package/build-module/actions/reorder-page.js.map +7 -1
  130. package/build-module/actions/reset-post.js +185 -152
  131. package/build-module/actions/reset-post.js.map +7 -1
  132. package/build-module/actions/restore-post.js +72 -68
  133. package/build-module/actions/restore-post.js.map +7 -1
  134. package/build-module/actions/trash-post.js +152 -119
  135. package/build-module/actions/trash-post.js.map +7 -1
  136. package/build-module/actions/utils.js +23 -34
  137. package/build-module/actions/utils.js.map +7 -1
  138. package/build-module/actions/view-post-revisions.js +21 -31
  139. package/build-module/actions/view-post-revisions.js.map +7 -1
  140. package/build-module/actions/view-post.js +12 -23
  141. package/build-module/actions/view-post.js.map +7 -1
  142. package/build-module/components/create-template-part-modal/index.js +201 -154
  143. package/build-module/components/create-template-part-modal/index.js.map +7 -1
  144. package/build-module/components/create-template-part-modal/utils.js +26 -43
  145. package/build-module/components/create-template-part-modal/utils.js.map +7 -1
  146. package/build-module/fields/author/author-view.js +34 -62
  147. package/build-module/fields/author/author-view.js.map +7 -1
  148. package/build-module/fields/author/index.js +14 -24
  149. package/build-module/fields/author/index.js.map +7 -1
  150. package/build-module/fields/comment-status/index.js +24 -29
  151. package/build-module/fields/comment-status/index.js.map +7 -1
  152. package/build-module/fields/date/date-view.js +66 -53
  153. package/build-module/fields/date/date-view.js.map +7 -1
  154. package/build-module/fields/date/index.js +10 -20
  155. package/build-module/fields/date/index.js.map +7 -1
  156. package/build-module/fields/discussion/index.js +18 -29
  157. package/build-module/fields/discussion/index.js.map +7 -1
  158. package/build-module/fields/featured-image/featured-image-edit.js +93 -90
  159. package/build-module/fields/featured-image/featured-image-edit.js.map +7 -1
  160. package/build-module/fields/featured-image/featured-image-view.js +20 -29
  161. package/build-module/fields/featured-image/featured-image-view.js.map +7 -1
  162. package/build-module/fields/featured-image/index.js +11 -21
  163. package/build-module/fields/featured-image/index.js.map +7 -1
  164. package/build-module/fields/index.js +35 -17
  165. package/build-module/fields/index.js.map +7 -1
  166. package/build-module/fields/order/index.js +10 -20
  167. package/build-module/fields/order/index.js.map +7 -1
  168. package/build-module/fields/page-title/index.js +13 -25
  169. package/build-module/fields/page-title/index.js.map +7 -1
  170. package/build-module/fields/page-title/view.js +20 -37
  171. package/build-module/fields/page-title/view.js.map +7 -1
  172. package/build-module/fields/parent/index.js +11 -21
  173. package/build-module/fields/parent/index.js.map +7 -1
  174. package/build-module/fields/parent/parent-edit.js +172 -160
  175. package/build-module/fields/parent/parent-edit.js.map +7 -1
  176. package/build-module/fields/parent/parent-view.js +19 -27
  177. package/build-module/fields/parent/parent-view.js.map +7 -1
  178. package/build-module/fields/parent/utils.js +8 -13
  179. package/build-module/fields/parent/utils.js.map +7 -1
  180. package/build-module/fields/password/edit.js +53 -48
  181. package/build-module/fields/password/edit.js.map +7 -1
  182. package/build-module/fields/password/index.js +11 -21
  183. package/build-module/fields/password/index.js.map +7 -1
  184. package/build-module/fields/pattern-title/index.js +13 -25
  185. package/build-module/fields/pattern-title/index.js.map +7 -1
  186. package/build-module/fields/pattern-title/view.js +21 -34
  187. package/build-module/fields/pattern-title/view.js.map +7 -1
  188. package/build-module/fields/ping-status/index.js +48 -43
  189. package/build-module/fields/ping-status/index.js.map +7 -1
  190. package/build-module/fields/slug/index.js +11 -21
  191. package/build-module/fields/slug/index.js.map +7 -1
  192. package/build-module/fields/slug/slug-edit.js +101 -100
  193. package/build-module/fields/slug/slug-edit.js.map +7 -1
  194. package/build-module/fields/slug/slug-view.js +9 -16
  195. package/build-module/fields/slug/slug-view.js.map +7 -1
  196. package/build-module/fields/slug/utils.js +9 -13
  197. package/build-module/fields/slug/utils.js.map +7 -1
  198. package/build-module/fields/status/index.js +13 -23
  199. package/build-module/fields/status/index.js.map +7 -1
  200. package/build-module/fields/status/status-elements.js +47 -40
  201. package/build-module/fields/status/status-elements.js.map +7 -1
  202. package/build-module/fields/status/status-view.js +14 -31
  203. package/build-module/fields/status/status-view.js.map +7 -1
  204. package/build-module/fields/template/index.js +10 -18
  205. package/build-module/fields/template/index.js.map +7 -1
  206. package/build-module/fields/template/template-edit.js +147 -130
  207. package/build-module/fields/template/template-edit.js.map +7 -1
  208. package/build-module/fields/template-title/index.js +13 -25
  209. package/build-module/fields/template-title/index.js.map +7 -1
  210. package/build-module/fields/title/index.js +13 -27
  211. package/build-module/fields/title/index.js.map +7 -1
  212. package/build-module/fields/title/view.js +25 -32
  213. package/build-module/fields/title/view.js.map +7 -1
  214. package/build-module/index.js +7 -4
  215. package/build-module/index.js.map +7 -1
  216. package/build-module/lock-unlock.js +8 -7
  217. package/build-module/lock-unlock.js.map +7 -1
  218. package/build-module/mutation/index.js +70 -72
  219. package/build-module/mutation/index.js.map +7 -1
  220. package/build-module/types.js +1 -2
  221. package/build-module/types.js.map +7 -1
  222. package/build-style/style-rtl.css +4 -139
  223. package/build-style/style.css +4 -139
  224. package/build-types/fields/author/author-view.d.ts.map +1 -1
  225. package/build-types/fields/discussion/index.d.ts.map +1 -1
  226. package/build-types/fields/featured-image/featured-image-edit.d.ts +2 -2
  227. package/build-types/fields/featured-image/featured-image-edit.d.ts.map +1 -1
  228. package/build-types/fields/featured-image/featured-image-view.d.ts +5 -2
  229. package/build-types/fields/featured-image/featured-image-view.d.ts.map +1 -1
  230. package/build-types/fields/featured-image/index.d.ts +3 -3
  231. package/build-types/fields/featured-image/index.d.ts.map +1 -1
  232. package/build-types/types.d.ts +18 -0
  233. package/build-types/types.d.ts.map +1 -1
  234. package/package.json +34 -27
  235. package/src/components/create-template-part-modal/style.scss +4 -0
  236. package/src/fields/author/author-view.tsx +3 -17
  237. package/src/fields/discussion/index.tsx +1 -0
  238. package/src/fields/featured-image/featured-image-edit.tsx +2 -2
  239. package/src/fields/featured-image/featured-image-view.tsx +3 -15
  240. package/src/fields/featured-image/index.ts +3 -3
  241. package/src/fields/featured-image/style.scss +3 -0
  242. package/src/fields/template/style.scss +4 -0
  243. package/src/fields/title/style.scss +1 -1
  244. package/src/style.scss +9 -8
  245. package/src/types.ts +18 -0
  246. package/tsconfig.tsbuildinfo +1 -1
  247. package/build/index.native.js +0 -2
  248. package/build/index.native.js.map +0 -1
  249. package/build-module/index.native.js +0 -2
  250. package/build-module/index.native.js.map +0 -1
@@ -1,62 +1,74 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var parent_edit_exports = {};
30
+ __export(parent_edit_exports, {
31
+ PageAttributesParent: () => PageAttributesParent,
32
+ ParentEdit: () => ParentEdit,
33
+ getItemPriority: () => getItemPriority
6
34
  });
7
- exports.PageAttributesParent = PageAttributesParent;
8
- exports.getItemPriority = exports.ParentEdit = void 0;
9
- var _removeAccents = _interopRequireDefault(require("remove-accents"));
10
- var _components = require("@wordpress/components");
11
- var _data = require("@wordpress/data");
12
- var _element = require("@wordpress/element");
13
- var _coreData = require("@wordpress/core-data");
14
- var _compose = require("@wordpress/compose");
15
- var _htmlEntities = require("@wordpress/html-entities");
16
- var _i18n = require("@wordpress/i18n");
17
- var _url = require("@wordpress/url");
18
- var _utils = require("./utils");
19
- var _jsxRuntime = require("react/jsx-runtime");
20
- /**
21
- * External dependencies
22
- */
23
-
24
- /**
25
- * WordPress dependencies
26
- */
27
-
28
- // @ts-ignore
29
-
30
- /**
31
- * Internal dependencies
32
- */
33
-
35
+ module.exports = __toCommonJS(parent_edit_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_remove_accents = __toESM(require("remove-accents"));
38
+ var import_components = require("@wordpress/components");
39
+ var import_data = require("@wordpress/data");
40
+ var import_element = require("@wordpress/element");
41
+ var import_core_data = require("@wordpress/core-data");
42
+ var import_compose = require("@wordpress/compose");
43
+ var import_html_entities = require("@wordpress/html-entities");
44
+ var import_i18n = require("@wordpress/i18n");
45
+ var import_url = require("@wordpress/url");
46
+ var import_utils = require("./utils");
34
47
  function buildTermsTree(flatTerms) {
35
- const flatTermsWithParentAndChildren = flatTerms.map(term => {
48
+ const flatTermsWithParentAndChildren = flatTerms.map((term) => {
36
49
  return {
37
50
  children: [],
38
51
  ...term
39
52
  };
40
53
  });
41
-
42
- // All terms should have a `parent` because we're about to index them by it.
43
- if (flatTermsWithParentAndChildren.some(({
44
- parent
45
- }) => parent === null || parent === undefined)) {
54
+ if (flatTermsWithParentAndChildren.some(
55
+ ({ parent }) => parent === null || parent === void 0
56
+ )) {
46
57
  return flatTermsWithParentAndChildren;
47
58
  }
48
- const termsByParent = flatTermsWithParentAndChildren.reduce((acc, term) => {
49
- const {
50
- parent
51
- } = term;
52
- if (!acc[parent]) {
53
- acc[parent] = [];
54
- }
55
- acc[parent].push(term);
56
- return acc;
57
- }, {});
58
- const fillWithChildren = terms => {
59
- return terms.map(term => {
59
+ const termsByParent = flatTermsWithParentAndChildren.reduce(
60
+ (acc, term) => {
61
+ const { parent } = term;
62
+ if (!acc[parent]) {
63
+ acc[parent] = [];
64
+ }
65
+ acc[parent].push(term);
66
+ return acc;
67
+ },
68
+ {}
69
+ );
70
+ const fillWithChildren = (terms) => {
71
+ return terms.map((term) => {
60
72
  const children = termsByParent[term.id];
61
73
  return {
62
74
  ...term,
@@ -64,11 +76,11 @@ function buildTermsTree(flatTerms) {
64
76
  };
65
77
  });
66
78
  };
67
- return fillWithChildren(termsByParent['0'] || []);
79
+ return fillWithChildren(termsByParent["0"] || []);
68
80
  }
69
81
  const getItemPriority = (name, searchValue) => {
70
- const normalizedName = (0, _removeAccents.default)(name || '').toLowerCase();
71
- const normalizedSearch = (0, _removeAccents.default)(searchValue || '').toLowerCase();
82
+ const normalizedName = (0, import_remove_accents.default)(name || "").toLowerCase();
83
+ const normalizedSearch = (0, import_remove_accents.default)(searchValue || "").toLowerCase();
72
84
  if (normalizedName === normalizedSearch) {
73
85
  return 0;
74
86
  }
@@ -77,59 +89,66 @@ const getItemPriority = (name, searchValue) => {
77
89
  }
78
90
  return Infinity;
79
91
  };
80
- exports.getItemPriority = getItemPriority;
81
92
  function PageAttributesParent({
82
93
  data,
83
94
  onChangeControl
84
95
  }) {
85
- const [fieldValue, setFieldValue] = (0, _element.useState)(null);
96
+ const [fieldValue, setFieldValue] = (0, import_element.useState)(null);
86
97
  const pageId = data.parent;
87
98
  const postId = data.id;
88
99
  const postTypeSlug = data.type;
89
- const {
90
- parentPostTitle,
91
- pageItems,
92
- isHierarchical
93
- } = (0, _data.useSelect)(select => {
94
- const {
95
- getEntityRecord,
96
- getEntityRecords,
97
- getPostType
98
- } = select(_coreData.store);
99
- const postTypeInfo = getPostType(postTypeSlug);
100
- const postIsHierarchical = postTypeInfo?.hierarchical && postTypeInfo.viewable;
101
- const parentPost = pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null;
102
- const query = {
103
- per_page: 100,
104
- exclude: postId,
105
- parent_exclude: postId,
106
- orderby: 'menu_order',
107
- order: 'asc',
108
- _fields: 'id,title,parent',
109
- ...(fieldValue !== null && {
110
- search: fieldValue
111
- })
112
- };
113
- return {
114
- isHierarchical: postIsHierarchical,
115
- parentPostTitle: parentPost ? (0, _utils.getTitleWithFallbackName)(parentPost) : '',
116
- pageItems: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : null
117
- };
118
- }, [fieldValue, pageId, postId, postTypeSlug]);
119
-
120
- /**
121
- * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.
122
- */
123
- const parentOptions = (0, _element.useMemo)(() => {
124
- const getOptionsFromTree = (tree, level = 0) => {
125
- const mappedNodes = tree.map(treeNode => [{
126
- value: treeNode.id,
127
- label: '— '.repeat(level) + (0, _htmlEntities.decodeEntities)(treeNode.name),
128
- rawName: treeNode.name
129
- }, ...getOptionsFromTree(treeNode.children || [], level + 1)]);
100
+ const { parentPostTitle, pageItems, isHierarchical } = (0, import_data.useSelect)(
101
+ (select) => {
102
+ const { getEntityRecord, getEntityRecords, getPostType } = select(import_core_data.store);
103
+ const postTypeInfo = getPostType(postTypeSlug);
104
+ const postIsHierarchical = postTypeInfo?.hierarchical && postTypeInfo.viewable;
105
+ const parentPost = pageId ? getEntityRecord(
106
+ "postType",
107
+ postTypeSlug,
108
+ pageId
109
+ ) : null;
110
+ const query = {
111
+ per_page: 100,
112
+ exclude: postId,
113
+ parent_exclude: postId,
114
+ orderby: "menu_order",
115
+ order: "asc",
116
+ _fields: "id,title,parent",
117
+ ...fieldValue !== null && {
118
+ search: fieldValue
119
+ }
120
+ };
121
+ return {
122
+ isHierarchical: postIsHierarchical,
123
+ parentPostTitle: parentPost ? (0, import_utils.getTitleWithFallbackName)(parentPost) : "",
124
+ pageItems: postIsHierarchical ? getEntityRecords(
125
+ "postType",
126
+ postTypeSlug,
127
+ query
128
+ ) : null
129
+ };
130
+ },
131
+ [fieldValue, pageId, postId, postTypeSlug]
132
+ );
133
+ const parentOptions = (0, import_element.useMemo)(() => {
134
+ const getOptionsFromTree = (tree2, level = 0) => {
135
+ const mappedNodes = tree2.map((treeNode) => [
136
+ {
137
+ value: treeNode.id,
138
+ label: "\u2014 ".repeat(level) + (0, import_html_entities.decodeEntities)(treeNode.name),
139
+ rawName: treeNode.name
140
+ },
141
+ ...getOptionsFromTree(treeNode.children || [], level + 1)
142
+ ]);
130
143
  const sortedNodes = mappedNodes.sort(([a], [b]) => {
131
- const priorityA = getItemPriority(a.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
132
- const priorityB = getItemPriority(b.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
144
+ const priorityA = getItemPriority(
145
+ a.rawName,
146
+ fieldValue ?? ""
147
+ );
148
+ const priorityB = getItemPriority(
149
+ b.rawName,
150
+ fieldValue ?? ""
151
+ );
133
152
  return priorityA >= priorityB ? 1 : -1;
134
153
  });
135
154
  return sortedNodes.flat();
@@ -137,31 +156,24 @@ function PageAttributesParent({
137
156
  if (!pageItems) {
138
157
  return [];
139
158
  }
140
- let tree = pageItems.map(item => {
141
- var _item$parent;
142
- return {
143
- id: item.id,
144
- parent: (_item$parent = item.parent) !== null && _item$parent !== void 0 ? _item$parent : null,
145
- name: (0, _utils.getTitleWithFallbackName)(item)
146
- };
147
- });
148
-
149
- // Only build a hierarchical tree when not searching.
159
+ let tree = pageItems.map((item) => ({
160
+ id: item.id,
161
+ parent: item.parent ?? null,
162
+ name: (0, import_utils.getTitleWithFallbackName)(item)
163
+ }));
150
164
  if (!fieldValue) {
151
165
  tree = buildTermsTree(tree);
152
166
  }
153
167
  const opts = getOptionsFromTree(tree);
154
-
155
- // Ensure the current parent is in the options list.
156
- const optsHasParent = opts.find(item => item.value === pageId);
168
+ const optsHasParent = opts.find((item) => item.value === pageId);
157
169
  if (pageId && parentPostTitle && !optsHasParent) {
158
170
  opts.unshift({
159
171
  value: pageId,
160
172
  label: parentPostTitle,
161
- rawName: ''
173
+ rawName: ""
162
174
  });
163
175
  }
164
- return opts.map(option => ({
176
+ return opts.map((option) => ({
165
177
  ...option,
166
178
  value: option.value.toString()
167
179
  }));
@@ -169,73 +181,93 @@ function PageAttributesParent({
169
181
  if (!isHierarchical) {
170
182
  return null;
171
183
  }
172
-
173
- /**
174
- * Handle user input.
175
- *
176
- * @param {string} inputValue The current value of the input field.
177
- */
178
- const handleKeydown = inputValue => {
184
+ const handleKeydown = (inputValue) => {
179
185
  setFieldValue(inputValue);
180
186
  };
181
-
182
- /**
183
- * Handle author selection.
184
- *
185
- * @param {Object} selectedPostId The selected Author.
186
- */
187
- const handleChange = selectedPostId => {
187
+ const handleChange = (selectedPostId) => {
188
188
  if (selectedPostId) {
189
- var _parseInt;
190
- return onChangeControl((_parseInt = parseInt(selectedPostId, 10)) !== null && _parseInt !== void 0 ? _parseInt : 0);
189
+ return onChangeControl(parseInt(selectedPostId, 10) ?? 0);
191
190
  }
192
191
  onChangeControl(0);
193
192
  };
194
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ComboboxControl, {
195
- __nextHasNoMarginBottom: true,
196
- __next40pxDefaultSize: true,
197
- label: (0, _i18n.__)('Parent'),
198
- help: (0, _i18n.__)('Choose a parent page.'),
199
- value: pageId?.toString(),
200
- options: parentOptions,
201
- onFilterValueChange: (0, _compose.debounce)(value => handleKeydown(value), 300),
202
- onChange: handleChange,
203
- hideLabelFromVision: true
204
- });
193
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
194
+ import_components.ComboboxControl,
195
+ {
196
+ __nextHasNoMarginBottom: true,
197
+ __next40pxDefaultSize: true,
198
+ label: (0, import_i18n.__)("Parent"),
199
+ help: (0, import_i18n.__)("Choose a parent page."),
200
+ value: pageId?.toString(),
201
+ options: parentOptions,
202
+ onFilterValueChange: (0, import_compose.debounce)(
203
+ (value) => handleKeydown(value),
204
+ 300
205
+ ),
206
+ onChange: handleChange,
207
+ hideLabelFromVision: true
208
+ }
209
+ );
205
210
  }
206
211
  const ParentEdit = ({
207
212
  data,
208
213
  field,
209
214
  onChange
210
215
  }) => {
211
- const {
212
- id
213
- } = field;
214
- const homeUrl = (0, _data.useSelect)(select => {
215
- return select(_coreData.store).getEntityRecord('root', '__unstableBase')?.home;
216
+ const { id } = field;
217
+ const homeUrl = (0, import_data.useSelect)((select) => {
218
+ return select(import_core_data.store).getEntityRecord("root", "__unstableBase")?.home;
216
219
  }, []);
217
- const onChangeControl = (0, _element.useCallback)(newValue => onChange({
218
- [id]: newValue
219
- }), [id, onChange]);
220
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("fieldset", {
221
- className: "fields-controls__parent",
222
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
223
- children: [(0, _element.createInterpolateElement)((0, _i18n.sprintf)(/* translators: %1$s The home URL of the WordPress installation without the scheme. */
224
- (0, _i18n.__)('Child pages inherit characteristics from their parent, such as URL structure. For instance, if "Pricing" is a child of "Services", its URL would be %1$s<wbr />/services<wbr />/pricing.'), (0, _url.filterURLForDisplay)(homeUrl).replace(/([/.])/g, '<wbr />$1')), {
225
- wbr: /*#__PURE__*/(0, _jsxRuntime.jsx)("wbr", {})
226
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
227
- children: (0, _element.createInterpolateElement)((0, _i18n.__)('They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'), {
228
- a: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
229
- href: (0, _i18n.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'),
230
- children: undefined
231
- })
232
- })
233
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PageAttributesParent, {
234
- data: data,
235
- onChangeControl: onChangeControl
236
- })]
237
- })
238
- });
220
+ const onChangeControl = (0, import_element.useCallback)(
221
+ (newValue) => onChange({
222
+ [id]: newValue
223
+ }),
224
+ [id, onChange]
225
+ );
226
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("fieldset", { className: "fields-controls__parent", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
227
+ (0, import_element.createInterpolateElement)(
228
+ (0, import_i18n.sprintf)(
229
+ /* translators: %1$s The home URL of the WordPress installation without the scheme. */
230
+ (0, import_i18n.__)(
231
+ 'Child pages inherit characteristics from their parent, such as URL structure. For instance, if "Pricing" is a child of "Services", its URL would be %1$s<wbr />/services<wbr />/pricing.'
232
+ ),
233
+ (0, import_url.filterURLForDisplay)(homeUrl).replace(
234
+ /([/.])/g,
235
+ "<wbr />$1"
236
+ )
237
+ ),
238
+ {
239
+ wbr: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("wbr", {})
240
+ }
241
+ ),
242
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: (0, import_element.createInterpolateElement)(
243
+ (0, import_i18n.__)(
244
+ "They also show up as sub-items in the default navigation menu. <a>Learn more.</a>"
245
+ ),
246
+ {
247
+ a: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
248
+ import_components.ExternalLink,
249
+ {
250
+ href: (0, import_i18n.__)(
251
+ "https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes"
252
+ ),
253
+ children: void 0
254
+ }
255
+ )
256
+ }
257
+ ) }),
258
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
259
+ PageAttributesParent,
260
+ {
261
+ data,
262
+ onChangeControl
263
+ }
264
+ )
265
+ ] }) });
239
266
  };
240
- exports.ParentEdit = ParentEdit;
241
- //# sourceMappingURL=parent-edit.js.map
267
+ // Annotate the CommonJS export names for ESM import in node:
268
+ 0 && (module.exports = {
269
+ PageAttributesParent,
270
+ ParentEdit,
271
+ getItemPriority
272
+ });
273
+ //# sourceMappingURL=parent-edit.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_components","_data","_element","_coreData","_compose","_htmlEntities","_i18n","_url","_utils","_jsxRuntime","buildTermsTree","flatTerms","flatTermsWithParentAndChildren","map","term","children","some","parent","undefined","termsByParent","reduce","acc","push","fillWithChildren","terms","id","length","getItemPriority","name","searchValue","normalizedName","removeAccents","toLowerCase","normalizedSearch","startsWith","Infinity","exports","PageAttributesParent","data","onChangeControl","fieldValue","setFieldValue","useState","pageId","postId","postTypeSlug","type","parentPostTitle","pageItems","isHierarchical","useSelect","select","getEntityRecord","getEntityRecords","getPostType","coreStore","postTypeInfo","postIsHierarchical","hierarchical","viewable","parentPost","query","per_page","exclude","parent_exclude","orderby","order","_fields","search","getTitleWithFallbackName","parentOptions","useMemo","getOptionsFromTree","tree","level","mappedNodes","treeNode","value","label","repeat","decodeEntities","rawName","sortedNodes","sort","a","b","priorityA","priorityB","flat","item","_item$parent","opts","optsHasParent","find","unshift","option","toString","handleKeydown","inputValue","handleChange","selectedPostId","_parseInt","parseInt","jsx","ComboboxControl","__nextHasNoMarginBottom","__next40pxDefaultSize","__","help","options","onFilterValueChange","debounce","onChange","hideLabelFromVision","ParentEdit","field","homeUrl","home","useCallback","newValue","className","jsxs","createInterpolateElement","sprintf","filterURLForDisplay","replace","wbr","ExternalLink","href"],"sources":["@wordpress/fields/src/fields/parent/parent-edit.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { ComboboxControl, ExternalLink } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateInterpolateElement,\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n} from '@wordpress/element';\n// @ts-ignore\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { DataFormControlProps } from '@wordpress/dataviews';\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { filterURLForDisplay } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\n\ntype TreeBase = {\n\tid: number;\n\tname: string;\n\t[ key: string ]: any;\n};\n\ntype TreeWithParent = TreeBase & {\n\tparent: number;\n};\n\ntype TreeWithoutParent = TreeBase & {\n\tparent: null;\n};\n\ntype Tree = TreeWithParent | TreeWithoutParent;\n\nfunction buildTermsTree( flatTerms: Tree[] ) {\n\tconst flatTermsWithParentAndChildren = flatTerms.map( ( term ) => {\n\t\treturn {\n\t\t\tchildren: [],\n\t\t\t...term,\n\t\t};\n\t} );\n\n\t// All terms should have a `parent` because we're about to index them by it.\n\tif (\n\t\tflatTermsWithParentAndChildren.some(\n\t\t\t( { parent } ) => parent === null || parent === undefined\n\t\t)\n\t) {\n\t\treturn flatTermsWithParentAndChildren as TreeWithParent[];\n\t}\n\n\tconst termsByParent = (\n\t\tflatTermsWithParentAndChildren as TreeWithParent[]\n\t ).reduce(\n\t\t( acc, term ) => {\n\t\t\tconst { parent } = term;\n\t\t\tif ( ! acc[ parent ] ) {\n\t\t\t\tacc[ parent ] = [];\n\t\t\t}\n\t\t\tacc[ parent ].push( term );\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record< string, Array< TreeWithParent > >\n\t);\n\n\tconst fillWithChildren = (\n\t\tterms: Array< TreeWithParent >\n\t): Array< TreeWithParent > => {\n\t\treturn terms.map( ( term ) => {\n\t\t\tconst children = termsByParent[ term.id ];\n\t\t\treturn {\n\t\t\t\t...term,\n\t\t\t\tchildren:\n\t\t\t\t\tchildren && children.length\n\t\t\t\t\t\t? fillWithChildren( children )\n\t\t\t\t\t\t: [],\n\t\t\t};\n\t\t} );\n\t};\n\n\treturn fillWithChildren( termsByParent[ '0' ] || [] );\n}\n\nexport const getItemPriority = ( name: string, searchValue: string ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent( {\n\tdata,\n\tonChangeControl,\n}: {\n\tdata: BasePost;\n\tonChangeControl: ( newValue: number ) => void;\n} ) {\n\tconst [ fieldValue, setFieldValue ] = useState< null | string >( null );\n\n\tconst pageId = data.parent;\n\tconst postId = data.id;\n\tconst postTypeSlug = data.type;\n\n\tconst { parentPostTitle, pageItems, isHierarchical } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getEntityRecords, getPostType } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst postTypeInfo = getPostType( postTypeSlug );\n\n\t\t\tconst postIsHierarchical =\n\t\t\t\tpostTypeInfo?.hierarchical && postTypeInfo.viewable;\n\n\t\t\tconst parentPost = pageId\n\t\t\t\t? getEntityRecord< BasePost >(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\tpageId\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\tconst query = {\n\t\t\t\tper_page: 100,\n\t\t\t\texclude: postId,\n\t\t\t\tparent_exclude: postId,\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t...( fieldValue !== null && {\n\t\t\t\t\tsearch: fieldValue,\n\t\t\t\t} ),\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\tparentPostTitle: parentPost\n\t\t\t\t\t? getTitleWithFallbackName( parentPost )\n\t\t\t\t\t: '',\n\t\t\t\tpageItems: postIsHierarchical\n\t\t\t\t\t? getEntityRecords< BasePost >(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\t\tquery\n\t\t\t\t\t )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ fieldValue, pageId, postId, postTypeSlug ]\n\t);\n\n\t/**\n\t * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.\n\t */\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = (\n\t\t\ttree: Array< Tree >,\n\t\t\tlevel = 0\n\t\t): Array< {\n\t\t\tvalue: number;\n\t\t\tlabel: string;\n\t\t\trawName: string;\n\t\t} > => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority(\n\t\t\t\t\ta.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\tconst priorityB = getItemPriority(\n\t\t\t\t\tb.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tif ( ! pageItems ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id as number,\n\t\t\tparent: item.parent ?? null,\n\t\t\tname: getTitleWithFallbackName( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find( ( item ) => item.value === pageId );\n\t\tif ( pageId && parentPostTitle && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: pageId,\n\t\t\t\tlabel: parentPostTitle,\n\t\t\t\trawName: '',\n\t\t\t} );\n\t\t}\n\t\treturn opts.map( ( option ) => ( {\n\t\t\t...option,\n\t\t\tvalue: option.value.toString(),\n\t\t} ) );\n\t}, [ pageItems, fieldValue, parentPostTitle, pageId ] );\n\n\tif ( ! isHierarchical ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue: string ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId: string | null | undefined ) => {\n\t\tif ( selectedPostId ) {\n\t\t\treturn onChangeControl( parseInt( selectedPostId, 10 ) ?? 0 );\n\t\t}\n\n\t\tonChangeControl( 0 );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parent' ) }\n\t\t\thelp={ __( 'Choose a parent page.' ) }\n\t\t\tvalue={ pageId?.toString() }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce(\n\t\t\t\t( value: unknown ) => handleKeydown( value as string ),\n\t\t\t\t300\n\t\t\t) }\n\t\t\tonChange={ handleChange }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n\nexport const ParentEdit = ( {\n\tdata,\n\tfield,\n\tonChange,\n}: DataFormControlProps< BasePost > ) => {\n\tconst { id } = field;\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getEntityRecord< {\n\t\t\thome: string;\n\t\t} >( 'root', '__unstableBase' )?.home as string;\n\t}, [] );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue?: number ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<fieldset className=\"fields-controls__parent\">\n\t\t\t<div>\n\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %1$s The home URL of the WordPress installation without the scheme. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Child pages inherit characteristics from their parent, such as URL structure. For instance, if \"Pricing\" is a child of \"Services\", its URL would be %1$s<wbr />/services<wbr />/pricing.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tfilterURLForDisplay( homeUrl ).replace(\n\t\t\t\t\t\t\t/([/.])/g,\n\t\t\t\t\t\t\t'<wbr />$1'\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\twbr: <wbr />,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t<p>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchildren={ undefined }\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) }\n\t\t\t\t</p>\n\t\t\t\t<PageAttributesParent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChangeControl={ onChangeControl }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/fields/parent/parent-edit.tsx"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { ComboboxControl, ExternalLink } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateInterpolateElement,\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n} from '@wordpress/element';\n// @ts-ignore\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { DataFormControlProps } from '@wordpress/dataviews';\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { filterURLForDisplay } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\n\ntype TreeBase = {\n\tid: number;\n\tname: string;\n\t[ key: string ]: any;\n};\n\ntype TreeWithParent = TreeBase & {\n\tparent: number;\n};\n\ntype TreeWithoutParent = TreeBase & {\n\tparent: null;\n};\n\ntype Tree = TreeWithParent | TreeWithoutParent;\n\nfunction buildTermsTree( flatTerms: Tree[] ) {\n\tconst flatTermsWithParentAndChildren = flatTerms.map( ( term ) => {\n\t\treturn {\n\t\t\tchildren: [],\n\t\t\t...term,\n\t\t};\n\t} );\n\n\t// All terms should have a `parent` because we're about to index them by it.\n\tif (\n\t\tflatTermsWithParentAndChildren.some(\n\t\t\t( { parent } ) => parent === null || parent === undefined\n\t\t)\n\t) {\n\t\treturn flatTermsWithParentAndChildren as TreeWithParent[];\n\t}\n\n\tconst termsByParent = (\n\t\tflatTermsWithParentAndChildren as TreeWithParent[]\n\t ).reduce(\n\t\t( acc, term ) => {\n\t\t\tconst { parent } = term;\n\t\t\tif ( ! acc[ parent ] ) {\n\t\t\t\tacc[ parent ] = [];\n\t\t\t}\n\t\t\tacc[ parent ].push( term );\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record< string, Array< TreeWithParent > >\n\t);\n\n\tconst fillWithChildren = (\n\t\tterms: Array< TreeWithParent >\n\t): Array< TreeWithParent > => {\n\t\treturn terms.map( ( term ) => {\n\t\t\tconst children = termsByParent[ term.id ];\n\t\t\treturn {\n\t\t\t\t...term,\n\t\t\t\tchildren:\n\t\t\t\t\tchildren && children.length\n\t\t\t\t\t\t? fillWithChildren( children )\n\t\t\t\t\t\t: [],\n\t\t\t};\n\t\t} );\n\t};\n\n\treturn fillWithChildren( termsByParent[ '0' ] || [] );\n}\n\nexport const getItemPriority = ( name: string, searchValue: string ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent( {\n\tdata,\n\tonChangeControl,\n}: {\n\tdata: BasePost;\n\tonChangeControl: ( newValue: number ) => void;\n} ) {\n\tconst [ fieldValue, setFieldValue ] = useState< null | string >( null );\n\n\tconst pageId = data.parent;\n\tconst postId = data.id;\n\tconst postTypeSlug = data.type;\n\n\tconst { parentPostTitle, pageItems, isHierarchical } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getEntityRecords, getPostType } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst postTypeInfo = getPostType( postTypeSlug );\n\n\t\t\tconst postIsHierarchical =\n\t\t\t\tpostTypeInfo?.hierarchical && postTypeInfo.viewable;\n\n\t\t\tconst parentPost = pageId\n\t\t\t\t? getEntityRecord< BasePost >(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\tpageId\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\tconst query = {\n\t\t\t\tper_page: 100,\n\t\t\t\texclude: postId,\n\t\t\t\tparent_exclude: postId,\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t...( fieldValue !== null && {\n\t\t\t\t\tsearch: fieldValue,\n\t\t\t\t} ),\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\tparentPostTitle: parentPost\n\t\t\t\t\t? getTitleWithFallbackName( parentPost )\n\t\t\t\t\t: '',\n\t\t\t\tpageItems: postIsHierarchical\n\t\t\t\t\t? getEntityRecords< BasePost >(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\t\tquery\n\t\t\t\t\t )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ fieldValue, pageId, postId, postTypeSlug ]\n\t);\n\n\t/**\n\t * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.\n\t */\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = (\n\t\t\ttree: Array< Tree >,\n\t\t\tlevel = 0\n\t\t): Array< {\n\t\t\tvalue: number;\n\t\t\tlabel: string;\n\t\t\trawName: string;\n\t\t} > => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'\u2014 '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority(\n\t\t\t\t\ta.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\tconst priorityB = getItemPriority(\n\t\t\t\t\tb.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tif ( ! pageItems ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id as number,\n\t\t\tparent: item.parent ?? null,\n\t\t\tname: getTitleWithFallbackName( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find( ( item ) => item.value === pageId );\n\t\tif ( pageId && parentPostTitle && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: pageId,\n\t\t\t\tlabel: parentPostTitle,\n\t\t\t\trawName: '',\n\t\t\t} );\n\t\t}\n\t\treturn opts.map( ( option ) => ( {\n\t\t\t...option,\n\t\t\tvalue: option.value.toString(),\n\t\t} ) );\n\t}, [ pageItems, fieldValue, parentPostTitle, pageId ] );\n\n\tif ( ! isHierarchical ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue: string ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId: string | null | undefined ) => {\n\t\tif ( selectedPostId ) {\n\t\t\treturn onChangeControl( parseInt( selectedPostId, 10 ) ?? 0 );\n\t\t}\n\n\t\tonChangeControl( 0 );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parent' ) }\n\t\t\thelp={ __( 'Choose a parent page.' ) }\n\t\t\tvalue={ pageId?.toString() }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce(\n\t\t\t\t( value: unknown ) => handleKeydown( value as string ),\n\t\t\t\t300\n\t\t\t) }\n\t\t\tonChange={ handleChange }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n\nexport const ParentEdit = ( {\n\tdata,\n\tfield,\n\tonChange,\n}: DataFormControlProps< BasePost > ) => {\n\tconst { id } = field;\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getEntityRecord< {\n\t\t\thome: string;\n\t\t} >( 'root', '__unstableBase' )?.home as string;\n\t}, [] );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue?: number ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<fieldset className=\"fields-controls__parent\">\n\t\t\t<div>\n\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %1$s The home URL of the WordPress installation without the scheme. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Child pages inherit characteristics from their parent, such as URL structure. For instance, if \"Pricing\" is a child of \"Services\", its URL would be %1$s<wbr />/services<wbr />/pricing.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tfilterURLForDisplay( homeUrl ).replace(\n\t\t\t\t\t\t\t/([/.])/g,\n\t\t\t\t\t\t\t'<wbr />$1'\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\twbr: <wbr />,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t<p>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchildren={ undefined }\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) }\n\t\t\t\t</p>\n\t\t\t\t<PageAttributesParent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChangeControl={ onChangeControl }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["removeAccents", "coreStore", "tree"]
7
+ }
@@ -1,39 +1,48 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var parent_view_exports = {};
20
+ __export(parent_view_exports, {
21
+ ParentView: () => ParentView
5
22
  });
6
- exports.ParentView = void 0;
7
- var _data = require("@wordpress/data");
8
- var _coreData = require("@wordpress/core-data");
9
- var _i18n = require("@wordpress/i18n");
10
- var _utils = require("./utils");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- /**
13
- * WordPress dependencies
14
- */
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
-
23
+ module.exports = __toCommonJS(parent_view_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_data = require("@wordpress/data");
26
+ var import_core_data = require("@wordpress/core-data");
27
+ var import_i18n = require("@wordpress/i18n");
28
+ var import_utils = require("./utils");
20
29
  const ParentView = ({
21
30
  item
22
31
  }) => {
23
- const parent = (0, _data.useSelect)(select => {
24
- const {
25
- getEntityRecord
26
- } = select(_coreData.store);
27
- return item?.parent ? getEntityRecord('postType', item.type, item.parent) : null;
28
- }, [item.parent, item.type]);
32
+ const parent = (0, import_data.useSelect)(
33
+ (select) => {
34
+ const { getEntityRecord } = select(import_core_data.store);
35
+ return item?.parent ? getEntityRecord("postType", item.type, item.parent) : null;
36
+ },
37
+ [item.parent, item.type]
38
+ );
29
39
  if (parent) {
30
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
31
- children: (0, _utils.getTitleWithFallbackName)(parent)
32
- });
40
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (0, import_utils.getTitleWithFallbackName)(parent) });
33
41
  }
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
35
- children: (0, _i18n.__)('None')
36
- });
42
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (0, import_i18n.__)("None") });
37
43
  };
38
- exports.ParentView = ParentView;
39
- //# sourceMappingURL=parent-view.js.map
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ ParentView
47
+ });
48
+ //# sourceMappingURL=parent-view.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_data","require","_coreData","_i18n","_utils","_jsxRuntime","ParentView","item","parent","useSelect","select","getEntityRecord","coreStore","type","jsx","Fragment","children","getTitleWithFallbackName","__","exports"],"sources":["@wordpress/fields/src/fields/parent/parent-view.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { DataViewRenderFieldProps } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\n\nexport const ParentView = ( {\n\titem,\n}: DataViewRenderFieldProps< BasePost > ) => {\n\tconst parent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn item?.parent\n\t\t\t\t? getEntityRecord( 'postType', item.type, item.parent )\n\t\t\t\t: null;\n\t\t},\n\t\t[ item.parent, item.type ]\n\t);\n\n\tif ( parent ) {\n\t\treturn <>{ getTitleWithFallbackName( parent ) }</>;\n\t}\n\n\treturn <>{ __( 'None' ) }</>;\n};\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AAAmD,IAAAI,WAAA,GAAAJ,OAAA;AAZnD;AACA;AACA;;AAMA;AACA;AACA;;AAIO,MAAMK,UAAU,GAAGA,CAAE;EAC3BC;AACqC,CAAC,KAAM;EAC5C,MAAMC,MAAM,GAAG,IAAAC,eAAS,EACrBC,MAAM,IAAM;IACb,MAAM;MAAEC;IAAgB,CAAC,GAAGD,MAAM,CAAEE,eAAU,CAAC;IAC/C,OAAOL,IAAI,EAAEC,MAAM,GAChBG,eAAe,CAAE,UAAU,EAAEJ,IAAI,CAACM,IAAI,EAAEN,IAAI,CAACC,MAAO,CAAC,GACrD,IAAI;EACR,CAAC,EACD,CAAED,IAAI,CAACC,MAAM,EAAED,IAAI,CAACM,IAAI,CACzB,CAAC;EAED,IAAKL,MAAM,EAAG;IACb,oBAAO,IAAAH,WAAA,CAAAS,GAAA,EAAAT,WAAA,CAAAU,QAAA;MAAAC,QAAA,EAAI,IAAAC,+BAAwB,EAAET,MAAO;IAAC,CAAI,CAAC;EACnD;EAEA,oBAAO,IAAAH,WAAA,CAAAS,GAAA,EAAAT,WAAA,CAAAU,QAAA;IAAAC,QAAA,EAAI,IAAAE,QAAE,EAAE,MAAO;EAAC,CAAI,CAAC;AAC7B,CAAC;AAACC,OAAA,CAAAb,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/fields/parent/parent-view.tsx"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { DataViewRenderFieldProps } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\n\nexport const ParentView = ( {\n\titem,\n}: DataViewRenderFieldProps< BasePost > ) => {\n\tconst parent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn item?.parent\n\t\t\t\t? getEntityRecord( 'postType', item.type, item.parent )\n\t\t\t\t: null;\n\t\t},\n\t\t[ item.parent, item.type ]\n\t);\n\n\tif ( parent ) {\n\t\treturn <>{ getTitleWithFallbackName( parent ) }</>;\n\t}\n\n\treturn <>{ __( 'None' ) }</>;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BS;AAzBT,kBAA0B;AAC1B,uBAAmC;AAEnC,kBAAmB;AAMnB,mBAAyC;AAElC,MAAM,aAAa,CAAE;AAAA,EAC3B;AACD,MAA6C;AAC5C,QAAM,aAAS;AAAA,IACd,CAAE,WAAY;AACb,YAAM,EAAE,gBAAgB,IAAI,OAAQ,iBAAAA,KAAU;AAC9C,aAAO,MAAM,SACV,gBAAiB,YAAY,KAAK,MAAM,KAAK,MAAO,IACpD;AAAA,IACJ;AAAA,IACA,CAAE,KAAK,QAAQ,KAAK,IAAK;AAAA,EAC1B;AAEA,MAAK,QAAS;AACb,WAAO,2EAAI,qDAA0B,MAAO,GAAG;AAAA,EAChD;AAEA,SAAO,2EAAI,8BAAI,MAAO,GAAG;AAC1B;",
6
+ "names": ["coreStore"]
7
+ }