[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/build/routes/template-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-list/route.ts
  63  var import_data3 = __toESM(require_data());
  64  var import_core_data = __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-list/view-utils.ts
  98  var DEFAULT_VIEW = {
  99    type: "grid",
 100    perPage: 20,
 101    sort: {
 102      field: "title",
 103      direction: "asc"
 104    },
 105    fields: ["author", "active", "slug"],
 106    titleField: "title",
 107    descriptionField: "description",
 108    mediaField: "preview",
 109    filters: []
 110  };
 111  function getDefaultView(activeView) {
 112    if (activeView === "user") {
 113      return {
 114        ...DEFAULT_VIEW,
 115        sort: {
 116          field: "date",
 117          direction: "desc"
 118        },
 119        fields: ["author", "active", "slug", "theme"]
 120      };
 121    }
 122    if (activeView === "active" || !activeView) {
 123      return {
 124        ...DEFAULT_VIEW
 125      };
 126    }
 127    return {
 128      ...DEFAULT_VIEW,
 129      filters: [
 130        {
 131          field: "author",
 132          operator: "isAny",
 133          value: [activeView]
 134        }
 135      ]
 136    };
 137  }
 138  async function ensureView(activeView, search) {
 139    const defaultView = getDefaultView(activeView);
 140    return loadView({
 141      kind: "postType",
 142      name: "wp_template",
 143      slug: activeView ?? "active",
 144      defaultView,
 145      queryParams: search
 146    });
 147  }
 148  function viewToQuery(view) {
 149    const result = {};
 150    if (void 0 !== view.perPage) {
 151      result.per_page = view.perPage;
 152    }
 153    if (void 0 !== view.page) {
 154      result.page = view.page;
 155    }
 156    if (![void 0, ""].includes(view.search)) {
 157      result.search = view.search;
 158    }
 159    if (void 0 !== view.sort?.field) {
 160      result.orderby = view.sort.field;
 161    }
 162    if (void 0 !== view.sort?.direction) {
 163      result.order = view.sort.direction;
 164    }
 165    return result;
 166  }
 167  
 168  // routes/template-list/route.ts
 169  var route = {
 170    title: () => (0, import_i18n.__)("Templates"),
 171    async canvas(context) {
 172      const { params, search } = context;
 173      const view = await ensureView(params.activeView, {
 174        page: search.page,
 175        search: search.search
 176      });
 177      if (view.type !== "list") {
 178        return void 0;
 179      }
 180      if (search.postIds && search.postIds.length > 0) {
 181        const postId = search.postIds[0].toString();
 182        return {
 183          postType: "wp_template",
 184          postId,
 185          isPreview: true,
 186          editLink: `/types/wp_template/edit/$encodeURIComponent(
 187            postId
 188          )}`
 189        };
 190      }
 191      const query = viewToQuery(view);
 192      const posts = await (0, import_data3.resolveSelect)(import_core_data.store).getEntityRecords(
 193        "postType",
 194        "wp_template",
 195        { ...query, per_page: 1 }
 196      );
 197      if (posts && posts.length > 0) {
 198        const postId = posts[0].id.toString();
 199        return {
 200          postType: "wp_template",
 201          postId,
 202          isPreview: true,
 203          editLink: `/types/wp_template/edit/$encodeURIComponent(
 204            postId
 205          )}`
 206        };
 207      }
 208      return void 0;
 209    }
 210  };
 211  export {
 212    route
 213  };


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