[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/build/routes/template-part-list/ -> route.js (source)

   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/i18n
  42  var require_i18n = __commonJS({
  43    "package-external:@wordpress/i18n"(exports, module) {
  44      module.exports = window.wp.i18n;
  45    }
  46  });
  47  
  48  // package-external:@wordpress/element
  49  var require_element = __commonJS({
  50    "package-external:@wordpress/element"(exports, module) {
  51      module.exports = window.wp.element;
  52    }
  53  });
  54  
  55  // package-external:@wordpress/preferences
  56  var require_preferences = __commonJS({
  57    "package-external:@wordpress/preferences"(exports, module) {
  58      module.exports = window.wp.preferences;
  59    }
  60  });
  61  
  62  // routes/template-part-list/route.ts
  63  var import_data4 = __toESM(require_data());
  64  var import_core_data2 = __toESM(require_core_data());
  65  var import_i18n = __toESM(require_i18n());
  66  
  67  // packages/views/build-module/preference-keys.js
  68  function generatePreferenceKey(kind, name, slug) {
  69    return `dataviews-$kind}-$name}-$slug}`;
  70  }
  71  
  72  // packages/views/build-module/use-view.js
  73  var import_element = __toESM(require_element());
  74  var import_data = __toESM(require_data());
  75  var import_preferences = __toESM(require_preferences());
  76  
  77  // packages/views/build-module/load-view.js
  78  var import_data2 = __toESM(require_data());
  79  var import_preferences2 = __toESM(require_preferences());
  80  async function loadView(config) {
  81    const { kind, name, slug, defaultView, queryParams } = config;
  82    const preferenceKey = generatePreferenceKey(kind, name, slug);
  83    const persistedView = (0, import_data2.select)(import_preferences2.store).get(
  84      "core/views",
  85      preferenceKey
  86    );
  87    const baseView = persistedView ?? defaultView;
  88    const page = queryParams?.page ?? 1;
  89    const search = queryParams?.search ?? "";
  90    return {
  91      ...baseView,
  92      page,
  93      search
  94    };
  95  }
  96  
  97  // routes/template-part-list/view-utils.ts
  98  var import_data3 = __toESM(require_data());
  99  var import_core_data = __toESM(require_core_data());
 100  var DEFAULT_VIEW = {
 101    type: "grid",
 102    sort: {
 103      field: "date",
 104      direction: "desc"
 105    },
 106    fields: [],
 107    titleField: "title",
 108    mediaField: "preview"
 109  };
 110  var DEFAULT_VIEWS = [
 111    {
 112      slug: "all",
 113      label: "All Template Parts",
 114      view: {
 115        ...DEFAULT_VIEW
 116      }
 117    },
 118    {
 119      slug: "header",
 120      label: "Headers",
 121      view: {
 122        ...DEFAULT_VIEW,
 123        filters: [
 124          {
 125            field: "area",
 126            operator: "is",
 127            value: "header"
 128          }
 129        ]
 130      }
 131    },
 132    {
 133      slug: "footer",
 134      label: "Footers",
 135      view: {
 136        ...DEFAULT_VIEW,
 137        filters: [
 138          {
 139            field: "area",
 140            operator: "is",
 141            value: "footer"
 142          }
 143        ]
 144      }
 145    },
 146    {
 147      slug: "sidebar",
 148      label: "Sidebars",
 149      view: {
 150        ...DEFAULT_VIEW,
 151        filters: [
 152          {
 153            field: "area",
 154            operator: "is",
 155            value: "sidebar"
 156          }
 157        ]
 158      }
 159    },
 160    {
 161      slug: "overlay",
 162      label: "Overlays",
 163      view: {
 164        ...DEFAULT_VIEW,
 165        filters: [
 166          {
 167            field: "area",
 168            operator: "is",
 169            value: "overlay"
 170          }
 171        ]
 172      }
 173    },
 174    {
 175      slug: "uncategorized",
 176      label: "General",
 177      view: {
 178        ...DEFAULT_VIEW,
 179        filters: [
 180          {
 181            field: "area",
 182            operator: "is",
 183            value: "uncategorized"
 184          }
 185        ]
 186      }
 187    }
 188  ];
 189  function getDefaultView(postType, area) {
 190    const viewConfig = DEFAULT_VIEWS.find((v) => v.slug === area);
 191    return viewConfig?.view || DEFAULT_VIEW;
 192  }
 193  async function ensureView(area, search) {
 194    const postTypeObject = await (0, import_data3.resolveSelect)(import_core_data.store).getPostType("wp_template_part");
 195    const defaultView = getDefaultView(postTypeObject, area);
 196    return loadView({
 197      kind: "postType",
 198      name: "wp_template_part",
 199      slug: area ?? "all",
 200      defaultView,
 201      queryParams: search
 202    });
 203  }
 204  function viewToQuery(view) {
 205    const result = {};
 206    if (void 0 !== view.perPage) {
 207      result.per_page = view.perPage;
 208    }
 209    if (void 0 !== view.page) {
 210      result.page = view.page;
 211    }
 212    if (![void 0, ""].includes(view.search)) {
 213      result.search = view.search;
 214    }
 215    if (void 0 !== view.sort?.field) {
 216      result.orderby = view.sort.field;
 217    }
 218    if (void 0 !== view.sort?.direction) {
 219      result.order = view.sort.direction;
 220    }
 221    const areaFilter = view.filters?.find(
 222      (filter) => filter.field === "area"
 223    );
 224    if (areaFilter) {
 225      result.area = areaFilter.value;
 226    }
 227    return result;
 228  }
 229  
 230  // routes/template-part-list/route.ts
 231  var route = {
 232    title: () => (0, import_i18n.__)("Template Parts"),
 233    async canvas(context) {
 234      const { params, search } = context;
 235      const view = await ensureView(params.area, {
 236        page: search.page,
 237        search: search.search
 238      });
 239      if (view.type !== "list") {
 240        return void 0;
 241      }
 242      if (search.postIds && search.postIds.length > 0) {
 243        const postId = search.postIds[0].toString();
 244        return {
 245          postType: "wp_template_part",
 246          postId,
 247          isPreview: true,
 248          editLink: `/types/wp_template_part/edit/$encodeURIComponent(
 249            postId
 250          )}`
 251        };
 252      }
 253      const query = viewToQuery(view);
 254      const posts = await (0, import_data4.resolveSelect)(import_core_data2.store).getEntityRecords(
 255        "postType",
 256        "wp_template_part",
 257        { ...query, per_page: 1 }
 258      );
 259      if (posts && posts.length > 0) {
 260        const postId = posts[0].id.toString();
 261        return {
 262          postType: "wp_template_part",
 263          postId,
 264          isPreview: true,
 265          editLink: `/types/wp_template_part/edit/$encodeURIComponent(
 266            postId
 267          )}`
 268        };
 269      }
 270      return void 0;
 271    }
 272  };
 273  export {
 274    route
 275  };


Generated : Tue May 5 08:20:14 2026 Cross-referenced by PHPXref