| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 var __create = Object.create; 2 var __defProp = Object.defineProperty; 3 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 4 var __getOwnPropNames = Object.getOwnPropertyNames; 5 var __getProtoOf = Object.getPrototypeOf; 6 var __hasOwnProp = Object.prototype.hasOwnProperty; 7 var __commonJS = (cb, mod) => function __require() { 8 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 19 // If the importer is in node compatibility mode or this is not an ESM 20 // file that has been converted to a CommonJS file using a Babel- 21 // compatible transform (i.e. "__esModule" has not been set), then set 22 // "default" to the CommonJS "module.exports" for node compatibility. 23 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 24 mod 25 )); 26 27 // package-external:@wordpress/data 28 var require_data = __commonJS({ 29 "package-external:@wordpress/data"(exports, module) { 30 module.exports = window.wp.data; 31 } 32 }); 33 34 // package-external:@wordpress/core-data 35 var require_core_data = __commonJS({ 36 "package-external:@wordpress/core-data"(exports, module) { 37 module.exports = window.wp.coreData; 38 } 39 }); 40 41 // package-external:@wordpress/element 42 var require_element = __commonJS({ 43 "package-external:@wordpress/element"(exports, module) { 44 module.exports = window.wp.element; 45 } 46 }); 47 48 // package-external:@wordpress/preferences 49 var require_preferences = __commonJS({ 50 "package-external:@wordpress/preferences"(exports, module) { 51 module.exports = window.wp.preferences; 52 } 53 }); 54 55 // routes/post-list/route.ts 56 var import_data4 = __toESM(require_data()); 57 var import_core_data2 = __toESM(require_core_data()); 58 59 // packages/views/build-module/preference-keys.js 60 function generatePreferenceKey(kind, name, slug) { 61 return `dataviews-$kind}-$name}-$slug}`; 62 } 63 64 // packages/views/build-module/use-view.js 65 var import_element = __toESM(require_element()); 66 var import_data = __toESM(require_data()); 67 var import_preferences = __toESM(require_preferences()); 68 69 // packages/views/build-module/load-view.js 70 var import_data2 = __toESM(require_data()); 71 var import_preferences2 = __toESM(require_preferences()); 72 async function loadView(config) { 73 const { kind, name, slug, defaultView, queryParams } = config; 74 const preferenceKey = generatePreferenceKey(kind, name, slug); 75 const persistedView = (0, import_data2.select)(import_preferences2.store).get( 76 "core/views", 77 preferenceKey 78 ); 79 const baseView = persistedView ?? defaultView; 80 const page = queryParams?.page ?? 1; 81 const search = queryParams?.search ?? ""; 82 return { 83 ...baseView, 84 page, 85 search 86 }; 87 } 88 89 // routes/post-list/view-utils.ts 90 var import_data3 = __toESM(require_data()); 91 var import_core_data = __toESM(require_core_data()); 92 var DEFAULT_VIEW = { 93 type: "table", 94 sort: { 95 field: "date", 96 direction: "desc" 97 }, 98 fields: ["author", "status", "date"], 99 titleField: "title", 100 mediaField: "featured_media", 101 descriptionField: "excerpt" 102 }; 103 var DEFAULT_VIEWS = [ 104 { 105 slug: "all", 106 label: "All", 107 view: { 108 ...DEFAULT_VIEW 109 } 110 }, 111 { 112 slug: "publish", 113 label: "Published", 114 view: { 115 ...DEFAULT_VIEW, 116 filters: [ 117 { 118 field: "status", 119 operator: "is", 120 value: "publish" 121 } 122 ] 123 } 124 }, 125 { 126 slug: "draft", 127 label: "Draft", 128 view: { 129 ...DEFAULT_VIEW, 130 filters: [ 131 { 132 field: "status", 133 operator: "is", 134 value: "draft" 135 } 136 ] 137 } 138 }, 139 { 140 slug: "pending", 141 label: "Pending", 142 view: { 143 ...DEFAULT_VIEW, 144 filters: [ 145 { 146 field: "status", 147 operator: "is", 148 value: "pending" 149 } 150 ] 151 } 152 }, 153 { 154 slug: "private", 155 label: "Private", 156 view: { 157 ...DEFAULT_VIEW, 158 filters: [ 159 { 160 field: "status", 161 operator: "is", 162 value: "private" 163 } 164 ] 165 } 166 }, 167 { 168 slug: "trash", 169 label: "Trash", 170 view: { 171 ...DEFAULT_VIEW, 172 filters: [ 173 { 174 field: "status", 175 operator: "is", 176 value: "trash" 177 } 178 ] 179 } 180 } 181 ]; 182 function getDefaultView(postType, slug) { 183 const viewConfig = DEFAULT_VIEWS.find((v) => v.slug === slug); 184 const baseView = viewConfig?.view || DEFAULT_VIEW; 185 return { 186 ...baseView, 187 showLevels: postType?.hierarchical 188 }; 189 } 190 async function ensureView(type, slug, search) { 191 const postTypeObject = await (0, import_data3.resolveSelect)(import_core_data.store).getPostType(type); 192 const defaultView = getDefaultView(postTypeObject, slug); 193 return loadView({ 194 kind: "postType", 195 name: type, 196 slug: slug ?? "all", 197 defaultView, 198 queryParams: search 199 }); 200 } 201 function viewToQuery(view, postType) { 202 const result = {}; 203 if (void 0 !== view.perPage) { 204 result.per_page = view.perPage; 205 } 206 if (void 0 !== view.page) { 207 result.page = view.page; 208 } 209 if (![void 0, ""].includes(view.search)) { 210 result.search = view.search; 211 } 212 if (void 0 !== view.sort?.field) { 213 let sortField = view.sort.field; 214 if (sortField === "attached_to") { 215 sortField = "parent"; 216 } 217 result.orderby = sortField; 218 } 219 if (void 0 !== view.sort?.direction) { 220 result.order = view.sort.direction; 221 } 222 if (view.showLevels) { 223 result.orderby_hierarchy = true; 224 } 225 const status = view.filters?.find( 226 (filter) => filter.field === "status" 227 ); 228 if (status) { 229 result.status = status.value; 230 } else if (postType === "attachment") { 231 result.status = "inherit"; 232 } else { 233 result.status = "draft,future,pending,private,publish"; 234 } 235 const author = view.filters?.find( 236 (filter) => filter.field === "author" 237 ); 238 if (author && author.operator === "is") { 239 result.author = author.value; 240 } else if (author && author.operator === "isNot") { 241 result.author_exclude = author.value; 242 } 243 const commentStatus = view.filters?.find( 244 (filter) => filter.field === "comment_status" 245 ); 246 if (commentStatus && commentStatus.operator === "is") { 247 result.comment_status = commentStatus.value; 248 } else if (commentStatus && commentStatus.operator === "isNot") { 249 result.comment_status_exclude = commentStatus.value; 250 } 251 const mediaType = view.filters?.find( 252 (filter) => filter.field === "media_type" 253 ); 254 if (mediaType) { 255 result.media_type = mediaType.value; 256 } 257 const date = view.filters?.find((filter) => filter.field === "date"); 258 if (date && date.value) { 259 if (date.operator === "before") { 260 result.before = date.value; 261 } else if (date.operator === "after") { 262 result.after = date.value; 263 } 264 } 265 if (postType === "attachment") { 266 result._embed = "wp:attached-to"; 267 } 268 return result; 269 } 270 271 // routes/post-list/route.ts 272 var route = { 273 title: async ({ params }) => { 274 const postType = await (0, import_data4.resolveSelect)(import_core_data2.store).getPostType( 275 params.type 276 ); 277 return postType?.labels?.name || params.type; 278 }, 279 async canvas(context) { 280 const { params, search } = context; 281 const view = await ensureView(params.type, params.slug, { 282 page: search.page, 283 search: search.search 284 }); 285 if (view.type !== "list") { 286 return void 0; 287 } 288 if (search.postIds && search.postIds.length > 0) { 289 const postId = search.postIds[0].toString(); 290 return { 291 postType: params.type, 292 postId, 293 isPreview: true, 294 editLink: `/types/$params.type}/edit/$postId}` 295 }; 296 } 297 const query = viewToQuery(view, params.type); 298 const posts = await (0, import_data4.resolveSelect)(import_core_data2.store).getEntityRecords( 299 "postType", 300 params.type, 301 { ...query, per_page: 1 } 302 ); 303 if (posts && posts.length > 0) { 304 const postId = posts[0].id.toString(); 305 return { 306 postType: params.type, 307 postId, 308 isPreview: true, 309 editLink: `/types/$params.type}/edit/$postId}` 310 }; 311 } 312 return void 0; 313 } 314 }; 315 export { 316 route 317 };
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Wed Apr 15 08:20:10 2026 | Cross-referenced by PHPXref |