@wordpress/fields 0.2.0 → 0.3.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 (113) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +12 -0
  3. package/build/actions/delete-post.js +4 -4
  4. package/build/actions/delete-post.js.map +1 -1
  5. package/build/actions/duplicate-post.js +2 -2
  6. package/build/actions/duplicate-post.js.map +1 -1
  7. package/build/actions/view-post-revisions.js +1 -1
  8. package/build/actions/view-post-revisions.js.map +1 -1
  9. package/build/fields/featured-image/featured-image-edit.js +113 -0
  10. package/build/fields/featured-image/featured-image-edit.js.map +1 -0
  11. package/build/fields/featured-image/featured-image-view.js +41 -0
  12. package/build/fields/featured-image/featured-image-view.js.map +1 -0
  13. package/build/fields/featured-image/index.js +30 -0
  14. package/build/fields/featured-image/index.js.map +1 -0
  15. package/build/fields/index.js +21 -0
  16. package/build/fields/index.js.map +1 -1
  17. package/build/fields/parent/index.js +34 -0
  18. package/build/fields/parent/index.js.map +1 -0
  19. package/build/fields/parent/parent-edit.js +243 -0
  20. package/build/fields/parent/parent-edit.js.map +1 -0
  21. package/build/fields/parent/parent-view.js +39 -0
  22. package/build/fields/parent/parent-view.js.map +1 -0
  23. package/build/fields/parent/utils.js +20 -0
  24. package/build/fields/parent/utils.js.map +1 -0
  25. package/build/fields/slug/index.js +30 -0
  26. package/build/fields/slug/index.js.map +1 -0
  27. package/build/fields/slug/slug-edit.js +132 -0
  28. package/build/fields/slug/slug-edit.js.map +1 -0
  29. package/build/fields/slug/slug-view.js +30 -0
  30. package/build/fields/slug/slug-view.js.map +1 -0
  31. package/build/mutation/index.js +2 -2
  32. package/build/mutation/index.js.map +1 -1
  33. package/build/types.js.map +1 -1
  34. package/build-module/actions/delete-post.js +5 -5
  35. package/build-module/actions/delete-post.js.map +1 -1
  36. package/build-module/actions/duplicate-post.js +2 -2
  37. package/build-module/actions/duplicate-post.js.map +1 -1
  38. package/build-module/actions/view-post-revisions.js +1 -1
  39. package/build-module/actions/view-post-revisions.js.map +1 -1
  40. package/build-module/fields/featured-image/featured-image-edit.js +105 -0
  41. package/build-module/fields/featured-image/featured-image-edit.js.map +1 -0
  42. package/build-module/fields/featured-image/featured-image-view.js +33 -0
  43. package/build-module/fields/featured-image/featured-image-view.js.map +1 -0
  44. package/build-module/fields/featured-image/index.js +24 -0
  45. package/build-module/fields/featured-image/index.js.map +1 -0
  46. package/build-module/fields/index.js +3 -0
  47. package/build-module/fields/index.js.map +1 -1
  48. package/build-module/fields/parent/index.js +28 -0
  49. package/build-module/fields/parent/index.js.map +1 -0
  50. package/build-module/fields/parent/parent-edit.js +230 -0
  51. package/build-module/fields/parent/parent-edit.js.map +1 -0
  52. package/build-module/fields/parent/parent-view.js +32 -0
  53. package/build-module/fields/parent/parent-view.js.map +1 -0
  54. package/build-module/fields/parent/utils.js +14 -0
  55. package/build-module/fields/parent/utils.js.map +1 -0
  56. package/build-module/fields/slug/index.js +23 -0
  57. package/build-module/fields/slug/index.js.map +1 -0
  58. package/build-module/fields/slug/slug-edit.js +125 -0
  59. package/build-module/fields/slug/slug-edit.js.map +1 -0
  60. package/build-module/fields/slug/slug-view.js +24 -0
  61. package/build-module/fields/slug/slug-view.js.map +1 -0
  62. package/build-module/mutation/index.js +2 -2
  63. package/build-module/mutation/index.js.map +1 -1
  64. package/build-module/types.js.map +1 -1
  65. package/build-style/styles-rtl.css +134 -0
  66. package/build-style/styles.css +134 -0
  67. package/build-types/actions/delete-post.d.ts.map +1 -1
  68. package/build-types/fields/featured-image/featured-image-edit.d.ts +7 -0
  69. package/build-types/fields/featured-image/featured-image-edit.d.ts.map +1 -0
  70. package/build-types/fields/featured-image/featured-image-view.d.ts +7 -0
  71. package/build-types/fields/featured-image/featured-image-view.d.ts.map +1 -0
  72. package/build-types/fields/featured-image/index.d.ts +11 -0
  73. package/build-types/fields/featured-image/index.d.ts.map +1 -0
  74. package/build-types/fields/index.d.ts +3 -0
  75. package/build-types/fields/index.d.ts.map +1 -1
  76. package/build-types/fields/parent/index.d.ts +14 -0
  77. package/build-types/fields/parent/index.d.ts.map +1 -0
  78. package/build-types/fields/parent/parent-edit.d.ts +9 -0
  79. package/build-types/fields/parent/parent-edit.d.ts.map +1 -0
  80. package/build-types/fields/parent/parent-view.d.ts +7 -0
  81. package/build-types/fields/parent/parent-view.d.ts.map +1 -0
  82. package/build-types/fields/parent/utils.d.ts +6 -0
  83. package/build-types/fields/parent/utils.d.ts.map +1 -0
  84. package/build-types/fields/slug/index.d.ts +11 -0
  85. package/build-types/fields/slug/index.d.ts.map +1 -0
  86. package/build-types/fields/slug/slug-edit.d.ts +8 -0
  87. package/build-types/fields/slug/slug-edit.d.ts.map +1 -0
  88. package/build-types/fields/slug/slug-view.d.ts +9 -0
  89. package/build-types/fields/slug/slug-view.d.ts.map +1 -0
  90. package/build-types/types.d.ts +2 -0
  91. package/build-types/types.d.ts.map +1 -1
  92. package/package.json +26 -22
  93. package/src/actions/delete-post.tsx +8 -5
  94. package/src/actions/duplicate-post.tsx +2 -2
  95. package/src/actions/view-post-revisions.tsx +1 -1
  96. package/src/fields/featured-image/featured-image-edit.tsx +122 -0
  97. package/src/fields/featured-image/featured-image-view.tsx +38 -0
  98. package/src/fields/featured-image/index.ts +24 -0
  99. package/src/fields/featured-image/style.scss +95 -0
  100. package/src/fields/index.ts +3 -0
  101. package/src/fields/parent/index.ts +27 -0
  102. package/src/fields/parent/parent-edit.tsx +348 -0
  103. package/src/fields/parent/parent-view.tsx +33 -0
  104. package/src/fields/parent/utils.ts +18 -0
  105. package/src/fields/slug/index.ts +23 -0
  106. package/src/fields/slug/slug-edit.tsx +156 -0
  107. package/src/fields/slug/slug-view.tsx +26 -0
  108. package/src/fields/slug/style.scss +22 -0
  109. package/src/mutation/index.ts +3 -3
  110. package/src/styles.scss +1 -0
  111. package/src/types.ts +2 -0
  112. package/tsconfig.json +3 -1
  113. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PageAttributesParent = PageAttributesParent;
8
+ exports.getItemPriority = exports.ParentEdit = void 0;
9
+ var _components = require("@wordpress/components");
10
+ var _data = require("@wordpress/data");
11
+ var _element = require("@wordpress/element");
12
+ var _coreData = require("@wordpress/core-data");
13
+ var _removeAccents = _interopRequireDefault(require("remove-accents"));
14
+ var _compose = require("@wordpress/compose");
15
+ var _htmlEntities = require("@wordpress/html-entities");
16
+ var _i18n = require("@wordpress/i18n");
17
+ var _utils = require("./utils");
18
+ var _url = require("@wordpress/url");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ /**
21
+ * WordPress dependencies
22
+ */
23
+
24
+ // @ts-ignore
25
+
26
+ /**
27
+ * External dependencies
28
+ */
29
+
30
+ /**
31
+ * Internal dependencies
32
+ */
33
+
34
+ function buildTermsTree(flatTerms) {
35
+ const flatTermsWithParentAndChildren = flatTerms.map(term => {
36
+ return {
37
+ children: [],
38
+ ...term
39
+ };
40
+ });
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)) {
46
+ return flatTermsWithParentAndChildren;
47
+ }
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 => {
60
+ const children = termsByParent[term.id];
61
+ return {
62
+ ...term,
63
+ children: children && children.length ? fillWithChildren(children) : []
64
+ };
65
+ });
66
+ };
67
+ return fillWithChildren(termsByParent['0'] || []);
68
+ }
69
+ const getItemPriority = (name, searchValue) => {
70
+ const normalizedName = (0, _removeAccents.default)(name || '').toLowerCase();
71
+ const normalizedSearch = (0, _removeAccents.default)(searchValue || '').toLowerCase();
72
+ if (normalizedName === normalizedSearch) {
73
+ return 0;
74
+ }
75
+ if (normalizedName.startsWith(normalizedSearch)) {
76
+ return normalizedName.length;
77
+ }
78
+ return Infinity;
79
+ };
80
+ exports.getItemPriority = getItemPriority;
81
+ function PageAttributesParent({
82
+ data,
83
+ onChangeControl
84
+ }) {
85
+ const [fieldValue, setFieldValue] = (0, _element.useState)(null);
86
+ const pageId = data.parent;
87
+ const postId = data.id;
88
+ const postTypeSlug = data.type;
89
+ const {
90
+ parentPostTitle,
91
+ pageItems,
92
+ isHierarchical
93
+ } = (0, _data.useSelect)(select => {
94
+ // @ts-expect-error getPostType is not typed
95
+ const {
96
+ getEntityRecord,
97
+ getEntityRecords,
98
+ getPostType
99
+ } = select(_coreData.store);
100
+ const postTypeInfo = getPostType(postTypeSlug);
101
+ const postIsHierarchical = postTypeInfo?.hierarchical && postTypeInfo.viewable;
102
+ const parentPost = pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null;
103
+ const query = {
104
+ per_page: 100,
105
+ exclude: postId,
106
+ parent_exclude: postId,
107
+ orderby: 'menu_order',
108
+ order: 'asc',
109
+ _fields: 'id,title,parent',
110
+ ...(fieldValue !== null && {
111
+ search: fieldValue
112
+ })
113
+ };
114
+ return {
115
+ isHierarchical: postIsHierarchical,
116
+ parentPostTitle: parentPost ? (0, _utils.getTitleWithFallbackName)(parentPost) : '',
117
+ pageItems: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : null
118
+ };
119
+ }, [fieldValue, pageId, postId, postTypeSlug]);
120
+
121
+ /**
122
+ * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.
123
+ */
124
+ const parentOptions = (0, _element.useMemo)(() => {
125
+ const getOptionsFromTree = (tree, level = 0) => {
126
+ const mappedNodes = tree.map(treeNode => [{
127
+ value: treeNode.id,
128
+ label: '— '.repeat(level) + (0, _htmlEntities.decodeEntities)(treeNode.name),
129
+ rawName: treeNode.name
130
+ }, ...getOptionsFromTree(treeNode.children || [], level + 1)]);
131
+ const sortedNodes = mappedNodes.sort(([a], [b]) => {
132
+ const priorityA = getItemPriority(a.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
133
+ const priorityB = getItemPriority(b.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
134
+ return priorityA >= priorityB ? 1 : -1;
135
+ });
136
+ return sortedNodes.flat();
137
+ };
138
+ if (!pageItems) {
139
+ return [];
140
+ }
141
+ let tree = pageItems.map(item => {
142
+ var _item$parent;
143
+ return {
144
+ id: item.id,
145
+ parent: (_item$parent = item.parent) !== null && _item$parent !== void 0 ? _item$parent : null,
146
+ name: (0, _utils.getTitleWithFallbackName)(item)
147
+ };
148
+ });
149
+
150
+ // Only build a hierarchical tree when not searching.
151
+ if (!fieldValue) {
152
+ tree = buildTermsTree(tree);
153
+ }
154
+ const opts = getOptionsFromTree(tree);
155
+
156
+ // Ensure the current parent is in the options list.
157
+ const optsHasParent = opts.find(item => item.value === pageId);
158
+ if (pageId && parentPostTitle && !optsHasParent) {
159
+ opts.unshift({
160
+ value: pageId,
161
+ label: parentPostTitle,
162
+ rawName: ''
163
+ });
164
+ }
165
+ return opts.map(option => ({
166
+ ...option,
167
+ value: option.value.toString()
168
+ }));
169
+ }, [pageItems, fieldValue, parentPostTitle, pageId]);
170
+ if (!isHierarchical) {
171
+ return null;
172
+ }
173
+
174
+ /**
175
+ * Handle user input.
176
+ *
177
+ * @param {string} inputValue The current value of the input field.
178
+ */
179
+ const handleKeydown = inputValue => {
180
+ setFieldValue(inputValue);
181
+ };
182
+
183
+ /**
184
+ * Handle author selection.
185
+ *
186
+ * @param {Object} selectedPostId The selected Author.
187
+ */
188
+ const handleChange = selectedPostId => {
189
+ if (selectedPostId) {
190
+ var _parseInt;
191
+ return onChangeControl((_parseInt = parseInt(selectedPostId, 10)) !== null && _parseInt !== void 0 ? _parseInt : 0);
192
+ }
193
+ onChangeControl(0);
194
+ };
195
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ComboboxControl, {
196
+ __nextHasNoMarginBottom: true,
197
+ __next40pxDefaultSize: true,
198
+ label: (0, _i18n.__)('Parent'),
199
+ help: (0, _i18n.__)('Choose a parent page.'),
200
+ value: pageId?.toString(),
201
+ options: parentOptions,
202
+ onFilterValueChange: (0, _compose.debounce)(value => handleKeydown(value), 300),
203
+ onChange: handleChange,
204
+ hideLabelFromVision: true
205
+ });
206
+ }
207
+ const ParentEdit = ({
208
+ data,
209
+ field,
210
+ onChange
211
+ }) => {
212
+ const {
213
+ id
214
+ } = field;
215
+ const homeUrl = (0, _data.useSelect)(select => {
216
+ // @ts-expect-error getEntityRecord is not typed with unstableBase as argument.
217
+ return select(_coreData.store).getEntityRecord('root', '__unstableBase')?.home;
218
+ }, []);
219
+ const onChangeControl = (0, _element.useCallback)(newValue => onChange({
220
+ [id]: newValue
221
+ }), [id, onChange]);
222
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("fieldset", {
223
+ className: "fields-controls__parent",
224
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
225
+ children: [(0, _element.createInterpolateElement)((0, _i18n.sprintf)(/* translators: %1$s The home URL of the WordPress installation without the scheme. */
226
+ (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')), {
227
+ wbr: /*#__PURE__*/(0, _jsxRuntime.jsx)("wbr", {})
228
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
229
+ children: (0, _element.createInterpolateElement)((0, _i18n.__)('They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'), {
230
+ a: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
231
+ href: (0, _i18n.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'),
232
+ children: undefined
233
+ })
234
+ })
235
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PageAttributesParent, {
236
+ data: data,
237
+ onChangeControl: onChangeControl
238
+ })]
239
+ })
240
+ });
241
+ };
242
+ exports.ParentEdit = ParentEdit;
243
+ //# sourceMappingURL=parent-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_data","_element","_coreData","_removeAccents","_interopRequireDefault","_compose","_htmlEntities","_i18n","_utils","_url","_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 * 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';\n\n/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\nimport { filterURLForDisplay } from '@wordpress/url';\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\t// @ts-expect-error getPostType is not typed\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\t// @ts-expect-error getEntityRecord is not typed with unstableBase as argument.\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":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ParentView = void 0;
7
+ var _data = require("@wordpress/data");
8
+ var _coreData = require("@wordpress/core-data");
9
+ var _utils = require("./utils");
10
+ var _i18n = require("@wordpress/i18n");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ const ParentView = ({
21
+ item
22
+ }) => {
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]);
29
+ if (parent) {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
31
+ children: (0, _utils.getTitleWithFallbackName)(parent)
32
+ });
33
+ }
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
35
+ children: (0, _i18n.__)('None')
36
+ });
37
+ };
38
+ exports.ParentView = ParentView;
39
+ //# sourceMappingURL=parent-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_data","require","_coreData","_utils","_i18n","_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';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport type { DataViewRenderFieldProps } from '@wordpress/dataviews';\nimport { getTitleWithFallbackName } from './utils';\nimport { __ } from '@wordpress/i18n';\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;AAOA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAqC,IAAAI,WAAA,GAAAJ,OAAA;AAZrC;AACA;AACA;;AAIA;AACA;AACA;;AAMO,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":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getTitleWithFallbackName = getTitleWithFallbackName;
7
+ var _htmlEntities = require("@wordpress/html-entities");
8
+ var _i18n = require("@wordpress/i18n");
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ function getTitleWithFallbackName(post) {
18
+ return typeof post.title === 'object' && 'rendered' in post.title && post.title.rendered ? (0, _htmlEntities.decodeEntities)(post.title.rendered) : `#${post?.id} (${(0, _i18n.__)('no title')})`;
19
+ }
20
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_htmlEntities","require","_i18n","getTitleWithFallbackName","post","title","rendered","decodeEntities","id","__"],"sources":["@wordpress/fields/src/fields/parent/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nexport function getTitleWithFallbackName( post: BasePost ) {\n\treturn typeof post.title === 'object' &&\n\t\t'rendered' in post.title &&\n\t\tpost.title.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post?.id } (${ __( 'no title' ) })`;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;;AAGO,SAASE,wBAAwBA,CAAEC,IAAc,EAAG;EAC1D,OAAO,OAAOA,IAAI,CAACC,KAAK,KAAK,QAAQ,IACpC,UAAU,IAAID,IAAI,CAACC,KAAK,IACxBD,IAAI,CAACC,KAAK,CAACC,QAAQ,GACjB,IAAAC,4BAAc,EAAEH,IAAI,CAACC,KAAK,CAACC,QAAS,CAAC,GACrC,IAAKF,IAAI,EAAEI,EAAE,KAAO,IAAAC,QAAE,EAAE,UAAW,CAAC,GAAI;AAC5C","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _slugEdit = _interopRequireDefault(require("./slug-edit"));
10
+ var _slugView = _interopRequireDefault(require("./slug-view"));
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ const slugField = {
20
+ id: 'slug',
21
+ type: 'text',
22
+ label: (0, _i18n.__)('Slug'),
23
+ getValue: ({
24
+ item
25
+ }) => item.slug,
26
+ Edit: _slugEdit.default,
27
+ render: _slugView.default
28
+ };
29
+ var _default = exports.default = slugField;
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_slugEdit","_interopRequireDefault","_slugView","slugField","id","type","label","__","getValue","item","slug","Edit","SlugEdit","render","SlugView","_default","exports","default"],"sources":["@wordpress/fields/src/fields/slug/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport type { Field } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { __ } from '@wordpress/i18n';\nimport SlugEdit from './slug-edit';\nimport SlugView from './slug-view';\n\nconst slugField: Field< BasePost > = {\n\tid: 'slug',\n\ttype: 'text',\n\tlabel: __( 'Slug' ),\n\tgetValue: ( { item } ) => item.slug,\n\tEdit: SlugEdit,\n\trender: SlugView,\n};\n\nexport default slugField;\n"],"mappings":";;;;;;;AASA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMA,MAAMI,SAA4B,GAAG;EACpCC,EAAE,EAAE,MAAM;EACVC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,QAAQ,EAAEA,CAAE;IAAEC;EAAK,CAAC,KAAMA,IAAI,CAACC,IAAI;EACnCC,IAAI,EAAEC,iBAAQ;EACdC,MAAM,EAAEC;AACT,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEad,SAAS","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _components = require("@wordpress/components");
8
+ var _icons = require("@wordpress/icons");
9
+ var _compose = require("@wordpress/compose");
10
+ var _data = require("@wordpress/data");
11
+ var _element = require("@wordpress/element");
12
+ var _notices = require("@wordpress/notices");
13
+ var _url = require("@wordpress/url");
14
+ var _i18n = require("@wordpress/i18n");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+
24
+ const SlugEdit = ({
25
+ field,
26
+ onChange,
27
+ data
28
+ }) => {
29
+ var _field$getValue;
30
+ const {
31
+ id
32
+ } = field;
33
+ const slug = (_field$getValue = field.getValue({
34
+ item: data
35
+ })) !== null && _field$getValue !== void 0 ? _field$getValue : '';
36
+ const permalinkTemplate = data.permalink_template || '';
37
+ const PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;
38
+ const [prefix, suffix] = permalinkTemplate.split(PERMALINK_POSTNAME_REGEX);
39
+ const permalinkPrefix = prefix;
40
+ const permalinkSuffix = suffix;
41
+ const isEditable = PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);
42
+ const originalSlugRef = (0, _element.useRef)(slug);
43
+ const slugToDisplay = slug || originalSlugRef.current;
44
+ const permalink = isEditable ? `${permalinkPrefix}${slugToDisplay}${permalinkSuffix}` : (0, _url.safeDecodeURIComponent)(data.link || '');
45
+ (0, _element.useEffect)(() => {
46
+ if (slug && originalSlugRef.current === undefined) {
47
+ originalSlugRef.current = slug;
48
+ }
49
+ }, [slug]);
50
+ const onChangeControl = (0, _element.useCallback)(newValue => onChange({
51
+ [id]: newValue
52
+ }), [id, onChange]);
53
+ const {
54
+ createNotice
55
+ } = (0, _data.useDispatch)(_notices.store);
56
+ const copyButtonRef = (0, _compose.useCopyToClipboard)(permalink, () => {
57
+ createNotice('info', (0, _i18n.__)('Copied Permalink to clipboard.'), {
58
+ isDismissible: true,
59
+ type: 'snackbar'
60
+ });
61
+ });
62
+ const postUrlSlugDescriptionId = 'editor-post-url__slug-description-' + (0, _compose.useInstanceId)(SlugEdit);
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", {
64
+ className: "fields-controls__slug",
65
+ children: [isEditable && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
66
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
67
+ spacing: "0px",
68
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
69
+ children: (0, _i18n.__)('Customize the last part of the Permalink.')
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
71
+ href: "https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink",
72
+ children: (0, _i18n.__)('Learn more')
73
+ })]
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControl, {
75
+ __next40pxDefaultSize: true,
76
+ prefix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControlPrefixWrapper, {
77
+ children: "/"
78
+ }),
79
+ suffix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
80
+ __next40pxDefaultSize: true,
81
+ icon: _icons.copySmall,
82
+ ref: copyButtonRef,
83
+ label: (0, _i18n.__)('Copy')
84
+ }),
85
+ label: (0, _i18n.__)('Link'),
86
+ hideLabelFromVision: true,
87
+ value: slug,
88
+ autoComplete: "off",
89
+ spellCheck: "false",
90
+ type: "text",
91
+ className: "fields-controls__slug-input",
92
+ onChange: newValue => {
93
+ onChangeControl(newValue);
94
+ },
95
+ onBlur: () => {
96
+ if (slug === '') {
97
+ onChangeControl(originalSlugRef.current);
98
+ }
99
+ },
100
+ "aria-describedby": postUrlSlugDescriptionId,
101
+ help: /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
102
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
103
+ className: "fields-controls__slug-help",
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
105
+ className: "fields-controls__slug-help-visual-label",
106
+ children: (0, _i18n.__)('Permalink:')
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.ExternalLink, {
108
+ className: "fields-controls__slug-help-link",
109
+ href: permalink,
110
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
111
+ className: "fields-controls__slug-help-prefix",
112
+ children: permalinkPrefix
113
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
114
+ className: "fields-controls__slug-help-slug",
115
+ children: slugToDisplay
116
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
117
+ className: "fields-controls__slug-help-suffix",
118
+ children: permalinkSuffix
119
+ })]
120
+ })]
121
+ })
122
+ })
123
+ })]
124
+ }), !isEditable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
125
+ className: "fields-controls__slug-help",
126
+ href: permalink,
127
+ children: permalink
128
+ })]
129
+ });
130
+ };
131
+ var _default = exports.default = SlugEdit;
132
+ //# sourceMappingURL=slug-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_icons","_compose","_data","_element","_notices","_url","_i18n","_jsxRuntime","SlugEdit","field","onChange","data","_field$getValue","id","slug","getValue","item","permalinkTemplate","permalink_template","PERMALINK_POSTNAME_REGEX","prefix","suffix","split","permalinkPrefix","permalinkSuffix","isEditable","test","originalSlugRef","useRef","slugToDisplay","current","permalink","safeDecodeURIComponent","link","useEffect","undefined","onChangeControl","useCallback","newValue","createNotice","useDispatch","noticesStore","copyButtonRef","useCopyToClipboard","__","isDismissible","type","postUrlSlugDescriptionId","useInstanceId","jsxs","className","children","__experimentalVStack","spacing","jsx","ExternalLink","href","__experimentalInputControl","__next40pxDefaultSize","__experimentalInputControlPrefixWrapper","Button","icon","copySmall","ref","label","hideLabelFromVision","value","autoComplete","spellCheck","onBlur","help","Fragment","_default","exports","default"],"sources":["@wordpress/fields/src/fields/slug/slug-edit.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { copySmall } from '@wordpress/icons';\nimport { useCopyToClipboard, useInstanceId } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { safeDecodeURIComponent } from '@wordpress/url';\nimport type { DataFormControlProps } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nconst SlugEdit = ( {\n\tfield,\n\tonChange,\n\tdata,\n}: DataFormControlProps< BasePost > ) => {\n\tconst { id } = field;\n\n\tconst slug = field.getValue( { item: data } ) ?? '';\n\tconst permalinkTemplate = data.permalink_template || '';\n\tconst PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;\n\tconst [ prefix, suffix ] = permalinkTemplate.split(\n\t\tPERMALINK_POSTNAME_REGEX\n\t);\n\tconst permalinkPrefix = prefix;\n\tconst permalinkSuffix = suffix;\n\tconst isEditable = PERMALINK_POSTNAME_REGEX.test( permalinkTemplate );\n\tconst originalSlugRef = useRef( slug );\n\tconst slugToDisplay = slug || originalSlugRef.current;\n\tconst permalink = isEditable\n\t\t? `${ permalinkPrefix }${ slugToDisplay }${ permalinkSuffix }`\n\t\t: safeDecodeURIComponent( data.link || '' );\n\n\tuseEffect( () => {\n\t\tif ( slug && originalSlugRef.current === undefined ) {\n\t\t\toriginalSlugRef.current = slug;\n\t\t}\n\t}, [ slug ] );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue?: string ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\n\tconst copyButtonRef = useCopyToClipboard( permalink, () => {\n\t\tcreateNotice( 'info', __( 'Copied Permalink to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\tconst postUrlSlugDescriptionId =\n\t\t'editor-post-url__slug-description-' + useInstanceId( SlugEdit );\n\n\treturn (\n\t\t<fieldset className=\"fields-controls__slug\">\n\t\t\t{ isEditable && (\n\t\t\t\t<VStack>\n\t\t\t\t\t<VStack spacing=\"0px\">\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Customize the last part of the Permalink.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<ExternalLink href=\"https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink\">\n\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<InputControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\ticon={ copySmall }\n\t\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\t\tlabel={ __( 'Copy' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ slug }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclassName=\"fields-controls__slug-input\"\n\t\t\t\t\t\tonChange={ ( newValue?: string ) => {\n\t\t\t\t\t\t\tonChangeControl( newValue );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\tif ( slug === '' ) {\n\t\t\t\t\t\t\t\tonChangeControl( originalSlugRef.current );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-describedby={ postUrlSlugDescriptionId }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<p className=\"fields-controls__slug-help\">\n\t\t\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-visual-label\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'Permalink:' ) }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\tclassName=\"fields-controls__slug-help-link\"\n\t\t\t\t\t\t\t\t\t\thref={ permalink }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-prefix\">\n\t\t\t\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-slug\">\n\t\t\t\t\t\t\t\t\t\t\t{ slugToDisplay }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-suffix\">\n\t\t\t\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t</p>\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</VStack>\n\t\t\t) }\n\t\t\t{ ! isEditable && (\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"fields-controls__slug-help\"\n\t\t\t\t\thref={ permalink }\n\t\t\t\t>\n\t\t\t\t\t{ permalink }\n\t\t\t\t</ExternalLink>\n\t\t\t) }\n\t\t</fieldset>\n\t);\n};\n\nexport default SlugEdit;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,IAAA,GAAAN,OAAA;AAEA,IAAAO,KAAA,GAAAP,OAAA;AAAqC,IAAAQ,WAAA,GAAAR,OAAA;AAjBrC;AACA;AACA;;AAiBA;AACA;AACA;;AAGA,MAAMS,QAAQ,GAAGA,CAAE;EAClBC,KAAK;EACLC,QAAQ;EACRC;AACiC,CAAC,KAAM;EAAA,IAAAC,eAAA;EACxC,MAAM;IAAEC;EAAG,CAAC,GAAGJ,KAAK;EAEpB,MAAMK,IAAI,IAAAF,eAAA,GAAGH,KAAK,CAACM,QAAQ,CAAE;IAAEC,IAAI,EAAEL;EAAK,CAAE,CAAC,cAAAC,eAAA,cAAAA,eAAA,GAAI,EAAE;EACnD,MAAMK,iBAAiB,GAAGN,IAAI,CAACO,kBAAkB,IAAI,EAAE;EACvD,MAAMC,wBAAwB,GAAG,yBAAyB;EAC1D,MAAM,CAAEC,MAAM,EAAEC,MAAM,CAAE,GAAGJ,iBAAiB,CAACK,KAAK,CACjDH,wBACD,CAAC;EACD,MAAMI,eAAe,GAAGH,MAAM;EAC9B,MAAMI,eAAe,GAAGH,MAAM;EAC9B,MAAMI,UAAU,GAAGN,wBAAwB,CAACO,IAAI,CAAET,iBAAkB,CAAC;EACrE,MAAMU,eAAe,GAAG,IAAAC,eAAM,EAAEd,IAAK,CAAC;EACtC,MAAMe,aAAa,GAAGf,IAAI,IAAIa,eAAe,CAACG,OAAO;EACrD,MAAMC,SAAS,GAAGN,UAAU,GACzB,GAAIF,eAAe,GAAKM,aAAa,GAAKL,eAAe,EAAG,GAC5D,IAAAQ,2BAAsB,EAAErB,IAAI,CAACsB,IAAI,IAAI,EAAG,CAAC;EAE5C,IAAAC,kBAAS,EAAE,MAAM;IAChB,IAAKpB,IAAI,IAAIa,eAAe,CAACG,OAAO,KAAKK,SAAS,EAAG;MACpDR,eAAe,CAACG,OAAO,GAAGhB,IAAI;IAC/B;EACD,CAAC,EAAE,CAAEA,IAAI,CAAG,CAAC;EAEb,MAAMsB,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAiB,IAClB5B,QAAQ,CAAE;IACT,CAAEG,EAAE,GAAIyB;EACT,CAAE,CAAC,EACJ,CAAEzB,EAAE,EAAEH,QAAQ,CACf,CAAC;EAED,MAAM;IAAE6B;EAAa,CAAC,GAAG,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EAEpD,MAAMC,aAAa,GAAG,IAAAC,2BAAkB,EAAEZ,SAAS,EAAE,MAAM;IAC1DQ,YAAY,CAAE,MAAM,EAAE,IAAAK,QAAE,EAAE,gCAAiC,CAAC,EAAE;MAC7DC,aAAa,EAAE,IAAI;MACnBC,IAAI,EAAE;IACP,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,MAAMC,wBAAwB,GAC7B,oCAAoC,GAAG,IAAAC,sBAAa,EAAExC,QAAS,CAAC;EAEjE,oBACC,IAAAD,WAAA,CAAA0C,IAAA;IAAUC,SAAS,EAAC,uBAAuB;IAAAC,QAAA,GACxC1B,UAAU,iBACX,IAAAlB,WAAA,CAAA0C,IAAA,EAACnD,WAAA,CAAAsD,oBAAM;MAAAD,QAAA,gBACN,IAAA5C,WAAA,CAAA0C,IAAA,EAACnD,WAAA,CAAAsD,oBAAM;QAACC,OAAO,EAAC,KAAK;QAAAF,QAAA,gBACpB,IAAA5C,WAAA,CAAA+C,GAAA;UAAAH,QAAA,EACG,IAAAP,QAAE,EACH,2CACD;QAAC,CACI,CAAC,eACP,IAAArC,WAAA,CAAA+C,GAAA,EAACxD,WAAA,CAAAyD,YAAY;UAACC,IAAI,EAAC,mFAAmF;UAAAL,QAAA,EACnG,IAAAP,QAAE,EAAE,YAAa;QAAC,CACP,CAAC;MAAA,CACR,CAAC,eACT,IAAArC,WAAA,CAAA+C,GAAA,EAACxD,WAAA,CAAA2D,0BAAY;QACZC,qBAAqB;QACrBtC,MAAM,eACL,IAAAb,WAAA,CAAA+C,GAAA,EAACxD,WAAA,CAAA6D,uCAAyB;UAAAR,QAAA,EAAC;QAE3B,CAA2B,CAC3B;QACD9B,MAAM,eACL,IAAAd,WAAA,CAAA+C,GAAA,EAACxD,WAAA,CAAA8D,MAAM;UACNF,qBAAqB;UACrBG,IAAI,EAAGC,gBAAW;UAClBC,GAAG,EAAGrB,aAAe;UACrBsB,KAAK,EAAG,IAAApB,QAAE,EAAE,MAAO;QAAG,CACtB,CACD;QACDoB,KAAK,EAAG,IAAApB,QAAE,EAAE,MAAO,CAAG;QACtBqB,mBAAmB;QACnBC,KAAK,EAAGpD,IAAM;QACdqD,YAAY,EAAC,KAAK;QAClBC,UAAU,EAAC,OAAO;QAClBtB,IAAI,EAAC,MAAM;QACXI,SAAS,EAAC,6BAA6B;QACvCxC,QAAQ,EAAK4B,QAAiB,IAAM;UACnCF,eAAe,CAAEE,QAAS,CAAC;QAC5B,CAAG;QACH+B,MAAM,EAAGA,CAAA,KAAM;UACd,IAAKvD,IAAI,KAAK,EAAE,EAAG;YAClBsB,eAAe,CAAET,eAAe,CAACG,OAAQ,CAAC;UAC3C;QACD,CAAG;QACH,oBAAmBiB,wBAA0B;QAC7CuB,IAAI,eACH,IAAA/D,WAAA,CAAA+C,GAAA,EAAA/C,WAAA,CAAAgE,QAAA;UAAApB,QAAA,eACC,IAAA5C,WAAA,CAAA0C,IAAA;YAAGC,SAAS,EAAC,4BAA4B;YAAAC,QAAA,gBACxC,IAAA5C,WAAA,CAAA+C,GAAA;cAAMJ,SAAS,EAAC,yCAAyC;cAAAC,QAAA,EACtD,IAAAP,QAAE,EAAE,YAAa;YAAC,CACf,CAAC,eACP,IAAArC,WAAA,CAAA0C,IAAA,EAACnD,WAAA,CAAAyD,YAAY;cACZL,SAAS,EAAC,iCAAiC;cAC3CM,IAAI,EAAGzB,SAAW;cAAAoB,QAAA,gBAElB,IAAA5C,WAAA,CAAA+C,GAAA;gBAAMJ,SAAS,EAAC,mCAAmC;gBAAAC,QAAA,EAChD5B;cAAe,CACZ,CAAC,eACP,IAAAhB,WAAA,CAAA+C,GAAA;gBAAMJ,SAAS,EAAC,iCAAiC;gBAAAC,QAAA,EAC9CtB;cAAa,CACV,CAAC,eACP,IAAAtB,WAAA,CAAA+C,GAAA;gBAAMJ,SAAS,EAAC,mCAAmC;gBAAAC,QAAA,EAChD3B;cAAe,CACZ,CAAC;YAAA,CACM,CAAC;UAAA,CACb;QAAC,CACH;MACF,CACD,CAAC;IAAA,CACK,CACR,EACC,CAAEC,UAAU,iBACb,IAAAlB,WAAA,CAAA+C,GAAA,EAACxD,WAAA,CAAAyD,YAAY;MACZL,SAAS,EAAC,4BAA4B;MACtCM,IAAI,EAAGzB,SAAW;MAAAoB,QAAA,EAEhBpB;IAAS,CACE,CACd;EAAA,CACQ,CAAC;AAEb,CAAC;AAAC,IAAAyC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEalE,QAAQ","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _element = require("@wordpress/element");
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+
16
+ const SlugView = ({
17
+ item
18
+ }) => {
19
+ const slug = item.slug;
20
+ const originalSlugRef = (0, _element.useRef)(slug);
21
+ (0, _element.useEffect)(() => {
22
+ if (slug && originalSlugRef.current === undefined) {
23
+ originalSlugRef.current = slug;
24
+ }
25
+ }, [slug]);
26
+ const slugToDisplay = slug || originalSlugRef.current;
27
+ return `/${slugToDisplay !== null && slugToDisplay !== void 0 ? slugToDisplay : ''}`;
28
+ };
29
+ var _default = exports.default = SlugView;
30
+ //# sourceMappingURL=slug-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","SlugView","item","slug","originalSlugRef","useRef","useEffect","current","undefined","slugToDisplay","_default","exports","default"],"sources":["@wordpress/fields/src/fields/slug/slug-view.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nconst SlugView = ( { item }: { item: BasePost } ) => {\n\tconst slug = item.slug;\n\tconst originalSlugRef = useRef( slug );\n\n\tuseEffect( () => {\n\t\tif ( slug && originalSlugRef.current === undefined ) {\n\t\t\toriginalSlugRef.current = slug;\n\t\t}\n\t}, [ slug ] );\n\n\tconst slugToDisplay = slug || originalSlugRef.current;\n\n\treturn `/${ slugToDisplay ?? '' }`;\n};\n\nexport default SlugView;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMC,QAAQ,GAAGA,CAAE;EAAEC;AAAyB,CAAC,KAAM;EACpD,MAAMC,IAAI,GAAGD,IAAI,CAACC,IAAI;EACtB,MAAMC,eAAe,GAAG,IAAAC,eAAM,EAAEF,IAAK,CAAC;EAEtC,IAAAG,kBAAS,EAAE,MAAM;IAChB,IAAKH,IAAI,IAAIC,eAAe,CAACG,OAAO,KAAKC,SAAS,EAAG;MACpDJ,eAAe,CAACG,OAAO,GAAGJ,IAAI;IAC/B;EACD,CAAC,EAAE,CAAEA,IAAI,CAAG,CAAC;EAEb,MAAMM,aAAa,GAAGN,IAAI,IAAIC,eAAe,CAACG,OAAO;EAErD,OAAO,IAAKE,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,EAAG;AACnC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaX,QAAQ","ignoreList":[]}
@@ -16,7 +16,7 @@ var _data = require("@wordpress/data");
16
16
  * Internal dependencies
17
17
  */
18
18
 
19
- const getErrorMessagesFromPromises = allSettledResults => {
19
+ function getErrorMessagesFromPromises(allSettledResults) {
20
20
  const errorMessages = new Set();
21
21
  // If there was at lease one failure.
22
22
  if (allSettledResults.length === 1) {
@@ -36,7 +36,7 @@ const getErrorMessagesFromPromises = allSettledResults => {
36
36
  }
37
37
  }
38
38
  return errorMessages;
39
- };
39
+ }
40
40
  const deletePostWithNotices = async (posts, notice, callbacks) => {
41
41
  const {
42
42
  createSuccessNotice,