@payloadcms/next 3.0.0-beta.84 → 3.0.0-beta.86

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 (49) hide show
  1. package/dist/prod/styles.css +1 -1
  2. package/dist/utilities/getPayloadHMR.d.ts +1 -1
  3. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  4. package/dist/utilities/getPayloadHMR.js +3 -2
  5. package/dist/utilities/getPayloadHMR.js.map +1 -1
  6. package/dist/utilities/meta.js +4 -1
  7. package/dist/utilities/meta.js.map +1 -1
  8. package/dist/views/API/meta.d.ts.map +1 -1
  9. package/dist/views/API/meta.js +10 -6
  10. package/dist/views/API/meta.js.map +1 -1
  11. package/dist/views/Document/getCustomViewByRoute.d.ts +4 -1
  12. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  13. package/dist/views/Document/getCustomViewByRoute.js +16 -6
  14. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  15. package/dist/views/Document/getMetaBySegment.d.ts +2 -1
  16. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  17. package/dist/views/Document/getMetaBySegment.js +73 -28
  18. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  19. package/dist/views/Document/getViewsFromConfig.d.ts +9 -3
  20. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  21. package/dist/views/Document/getViewsFromConfig.js +91 -47
  22. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  23. package/dist/views/Edit/meta.d.ts.map +1 -1
  24. package/dist/views/Edit/meta.js +30 -19
  25. package/dist/views/Edit/meta.js.map +1 -1
  26. package/dist/views/LivePreview/meta.d.ts.map +1 -1
  27. package/dist/views/LivePreview/meta.js +2 -1
  28. package/dist/views/LivePreview/meta.js.map +1 -1
  29. package/dist/views/Root/generateCustomViewMetadata.d.ts +11 -0
  30. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -0
  31. package/dist/views/Root/generateCustomViewMetadata.js +23 -0
  32. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  33. package/dist/views/Root/getCustomViewByRoute.d.ts +6 -2
  34. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  35. package/dist/views/Root/getCustomViewByRoute.js +20 -5
  36. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  37. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  38. package/dist/views/Root/getViewFromConfig.js +7 -7
  39. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  40. package/dist/views/Root/meta.d.ts.map +1 -1
  41. package/dist/views/Root/meta.js +19 -2
  42. package/dist/views/Root/meta.js.map +1 -1
  43. package/dist/views/Version/meta.d.ts.map +1 -1
  44. package/dist/views/Version/meta.js +24 -19
  45. package/dist/views/Version/meta.js.map +1 -1
  46. package/dist/views/Versions/meta.d.ts.map +1 -1
  47. package/dist/views/Versions/meta.js +24 -19
  48. package/dist/views/Versions/meta.js.map +1 -1
  49. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
1
  import type { InitOptions, Payload, SanitizedConfig } from 'payload';
2
- export declare const reload: (config: SanitizedConfig, payload: Payload) => Promise<void>;
2
+ export declare const reload: (config: SanitizedConfig, payload: Payload, skipImportMapGeneration?: boolean) => Promise<void>;
3
3
  export declare const getPayloadHMR: (options: InitOptions) => Promise<Payload>;
4
4
  //# sourceMappingURL=getPayloadHMR.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,WAAkB,eAAe,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CA0CpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAwEzE,CAAA"}
1
+ {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,WACT,eAAe,WACd,OAAO,4BACU,OAAO,KAChC,OAAO,CAAC,IAAI,CA0Cd,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAyEzE,CAAA"}
@@ -9,7 +9,7 @@ if (!cached) {
9
9
  ws: null
10
10
  };
11
11
  }
12
- export const reload = async (config, payload)=>{
12
+ export const reload = async (config, payload, skipImportMapGeneration)=>{
13
13
  if (typeof payload.db.destroy === 'function') {
14
14
  await payload.db.destroy();
15
15
  }
@@ -37,7 +37,7 @@ export const reload = async (config, payload)=>{
37
37
  });
38
38
  }
39
39
  // Generate component map
40
- if (config.admin?.importMap?.autoGenerate !== false) {
40
+ if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {
41
41
  await generateImportMap(config, {
42
42
  log: true
43
43
  });
@@ -72,6 +72,7 @@ export const getPayloadHMR = async (options)=>{
72
72
  }
73
73
  return cached.payload;
74
74
  }
75
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
75
76
  if (!cached.promise) {
76
77
  // no need to await options.config here, as it's already awaited in the BasePayload.init
77
78
  cached.promise = new BasePayload().init(options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","generateImportMap","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","admin","importMap","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"AAEA,SAASA,WAAW,EAAEC,iBAAiB,QAAQ,UAAS;AACxD,OAAOC,eAAe,KAAI;AAE1B,IAAIC,SAKAC,OAAOC,QAAQ;AAEnB,IAAI,CAACF,QAAQ;IACXA,SAASC,OAAOC,QAAQ,GAAG;QAAEC,SAAS;QAAMC,SAAS;QAAMC,QAAQ;QAAOC,IAAI;IAAK;AACrF;AAEA,OAAO,MAAMD,SAAS,OAAOE,QAAyBJ;IACpD,IAAI,OAAOA,QAAQK,EAAE,CAACC,OAAO,KAAK,YAAY;QAC5C,MAAMN,QAAQK,EAAE,CAACC,OAAO;IAC1B;IAEAN,QAAQI,MAAM,GAAGA;IAEjBJ,QAAQO,WAAW,GAAGH,OAAOG,WAAW,CAACC,MAAM,CAAC,CAACD,aAAaE;QAC5DF,WAAW,CAACE,WAAWC,IAAI,CAAC,GAAG;YAC7BN,QAAQK;YACRE,cAAcX,QAAQO,WAAW,CAACE,WAAWC,IAAI,CAAC,EAAEC;QACtD;QACA,OAAOJ;IACT,GAAG,CAAC;IAEJP,QAAQY,OAAO,GAAG;QAChBR,QAAQA,OAAOQ,OAAO;IACxB;IAEA,qHAAqH;IAErH,iBAAiB;IACjB,IAAIR,OAAOS,UAAU,CAACC,YAAY,KAAK,OAAO;QAC5C,kHAAkH;QAClH,sDAAsD;QACtD,KAAKd,QAAQe,GAAG,CAAC;YACfC,MAAM;gBAAC;aAAiB;YACxBC,KAAK;QACP;IACF;IAEA,yBAAyB;IACzB,IAAIb,OAAOc,KAAK,EAAEC,WAAWL,iBAAiB,OAAO;QACnD,MAAMnB,kBAAkBS,QAAQ;YAC9Ba,KAAK;QACP;IACF;IAEA,MAAMjB,QAAQK,EAAE,CAACe,IAAI;IACrB,IAAIpB,QAAQK,EAAE,CAACgB,OAAO,EAAE;QACtB,MAAMrB,QAAQK,EAAE,CAACgB,OAAO,CAAC;YAAEC,WAAW;QAAK;IAC7C;AACF,EAAC;AAED,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,CAACA,SAASpB,QAAQ;QACpB,MAAM,IAAIqB,MAAM;IAClB;IAEA,IAAI5B,OAAOG,OAAO,EAAE;QAClB,IAAIH,OAAOK,MAAM,KAAK,MAAM;YAC1B,IAAIwB;YAEJ,4JAA4J;YAC5J,wIAAwI;YACxI,wGAAwG;YACxG7B,OAAOK,MAAM,GAAG,IAAIyB,QAAQ,CAACC,MAASF,UAAUE;YAChD,MAAMxB,SAAS,MAAMoB,QAAQpB,MAAM;YACnC,MAAMF,OAAOE,QAAQP,OAAOG,OAAO;YAEnC0B;QACF;QAEA,IAAI7B,OAAOK,MAAM,YAAYyB,SAAS;YACpC,MAAM9B,OAAOK,MAAM;QACrB;QAEA,IAAIsB,SAASL,WAAW;YACtBtB,OAAOG,OAAO,CAACmB,SAAS,GAAGK,QAAQL,SAAS;QAC9C;QACA,OAAOtB,OAAOG,OAAO;IACvB;IAEA,IAAI,CAACH,OAAOI,OAAO,EAAE;QACnB,wFAAwF;QACxFJ,OAAOI,OAAO,GAAG,IAAIP,cAAc0B,IAAI,CAACI;IAC1C;IAEA,IAAI;QACF3B,OAAOG,OAAO,GAAG,MAAMH,OAAOI,OAAO;QAErC,IACE,CAACJ,OAAOM,EAAE,IACV0B,QAAQC,GAAG,CAACC,QAAQ,KAAK,gBACzBF,QAAQC,GAAG,CAACC,QAAQ,KAAK,UACzBF,QAAQC,GAAG,CAACE,mBAAmB,KAAK,QACpC;YACA,IAAI;gBACF,MAAMC,OAAOJ,QAAQC,GAAG,CAACI,IAAI,IAAI;gBACjCrC,OAAOM,EAAE,GAAG,IAAIP,UACd,CAAC,eAAe,EAAEqC,KAAK,EAAEJ,QAAQC,GAAG,CAACK,cAAc,IAAI,GAAG,kBAAkB,CAAC;gBAG/EtC,OAAOM,EAAE,CAACiC,SAAS,GAAG,CAACC;oBACrB,IAAI,OAAOA,MAAMC,IAAI,KAAK,UAAU;wBAClC,MAAMA,OAAOC,KAAKC,KAAK,CAACH,MAAMC,IAAI;wBAElC,IAAI,YAAYA,QAAQA,KAAKG,MAAM,KAAK,0BAA0B;4BAChE5C,OAAOK,MAAM,GAAG;wBAClB;oBACF;gBACF;YACF,EAAE,OAAOwC,GAAG;YACV,YAAY;YACd;QACF;IACF,EAAE,OAAOC,GAAG;QACV9C,OAAOI,OAAO,GAAG;QACjB,MAAM0C;IACR;IAEA,IAAInB,SAASL,WAAW;QACtBtB,OAAOG,OAAO,CAACmB,SAAS,GAAGK,QAAQL,SAAS;IAC9C;IAEA,OAAOtB,OAAOG,OAAO;AACvB,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload, generateImportMap } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (\n config: SanitizedConfig,\n payload: Payload,\n skipImportMapGeneration?: boolean,\n): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n // Generate component map\n if (skipImportMapGeneration !== true && config.admin?.importMap?.autoGenerate !== false) {\n await generateImportMap(config, {\n log: true,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n return cached.payload\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n if (options?.importMap) {\n cached.payload.importMap = options.importMap\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","generateImportMap","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","skipImportMapGeneration","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","admin","importMap","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
@@ -26,7 +26,10 @@ export const meta = async (args)=>{
26
26
  if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {
27
27
  icons = customIcons;
28
28
  }
29
- const metaTitle = `${title} ${titleSuffix}`;
29
+ const metaTitle = [
30
+ title,
31
+ titleSuffix
32
+ ].filter(Boolean).join(' ');
30
33
  const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`;
31
34
  const mergedOpenGraph = {
32
35
  ...defaultOpenGraph || {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle = `${title} ${titleSuffix}`\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","metaTitle","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAA6B;QACjC;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQO;IAEZ,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQC;IACV;IAEA,MAAMe,YAAY,CAAC,EAAEpB,MAAM,CAAC,EAAEU,YAAY,CAAC;IAE3C,MAAMW,UAAU,CAAC,EAAE,OAAOb,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMY,kBAAyC;QAC7C,GAAIzB,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,CAAC,OAAO,EAAEnB,GAAG8B,SAAS,CACzB;wBACE5B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOqB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAIzB,uBAAuB,WACvB;YACEoB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRV,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DiC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN5B,OAAOqB;QACP,GAAIb,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOqB,QAAQC,OAAO,CAAC;QACrBhC;QACAM;QACAE;QACAyB,cAAc,IAAIC,IAChBvB,aACEwB,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElD7B,WAAWe;QACXtB,OAAOoB;IACT;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/meta.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { IconConfig, MetaConfig } from 'payload'\n\nimport { payloadFaviconDark, payloadFaviconLight, staticOGImage } from '@payloadcms/ui/assets'\nimport * as qs from 'qs-esm'\n\nconst defaultOpenGraph = {\n description:\n 'Payload is a headless CMS and application framework built with TypeScript, Node.js, and React.',\n siteName: 'Payload App',\n title: 'Payload App',\n}\n\nexport const meta = async (args: { serverURL: string } & MetaConfig): Promise<any> => {\n const {\n defaultOGImageType,\n description,\n icons: customIcons,\n keywords,\n openGraph: openGraphFromProps,\n serverURL,\n title,\n titleSuffix,\n } = args\n\n const payloadIcons: IconConfig[] = [\n {\n type: 'image/png',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconDark === 'object' ? payloadFaviconDark?.src : payloadFaviconDark,\n },\n {\n type: 'image/png',\n media: '(prefers-color-scheme: dark)',\n rel: 'icon',\n sizes: '32x32',\n url: typeof payloadFaviconLight === 'object' ? payloadFaviconLight?.src : payloadFaviconLight,\n },\n ]\n\n let icons = payloadIcons\n\n if (customIcons && typeof customIcons === 'object' && Array.isArray(customIcons)) {\n icons = customIcons\n }\n\n const metaTitle = [title, titleSuffix].filter(Boolean).join(' ')\n\n const ogTitle = `${typeof openGraphFromProps?.title === 'string' ? openGraphFromProps.title : title} ${titleSuffix}`\n\n const mergedOpenGraph: Metadata['openGraph'] = {\n ...(defaultOpenGraph || {}),\n ...(defaultOGImageType === 'dynamic'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 630,\n url: `/api/og${qs.stringify(\n {\n description: openGraphFromProps?.description || defaultOpenGraph.description,\n title: ogTitle,\n },\n {\n addQueryPrefix: true,\n },\n )}`,\n width: 1200,\n },\n ],\n }\n : {}),\n ...(defaultOGImageType === 'static'\n ? {\n images: [\n {\n alt: ogTitle,\n height: 480,\n url: typeof staticOGImage === 'object' ? staticOGImage?.src : staticOGImage,\n width: 640,\n },\n ],\n }\n : {}),\n title: ogTitle,\n ...(openGraphFromProps || {}),\n }\n\n return Promise.resolve({\n description,\n icons,\n keywords,\n metadataBase: new URL(\n serverURL ||\n process.env.PAYLOAD_PUBLIC_SERVER_URL ||\n `http://localhost:${process.env.PORT || 3000}`,\n ),\n openGraph: mergedOpenGraph,\n title: metaTitle,\n })\n}\n"],"names":["payloadFaviconDark","payloadFaviconLight","staticOGImage","qs","defaultOpenGraph","description","siteName","title","meta","args","defaultOGImageType","icons","customIcons","keywords","openGraph","openGraphFromProps","serverURL","titleSuffix","payloadIcons","type","rel","sizes","url","src","media","Array","isArray","metaTitle","filter","Boolean","join","ogTitle","mergedOpenGraph","images","alt","height","stringify","addQueryPrefix","width","Promise","resolve","metadataBase","URL","process","env","PAYLOAD_PUBLIC_SERVER_URL","PORT"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,wBAAuB;AAC9F,YAAYC,QAAQ,SAAQ;AAE5B,MAAMC,mBAAmB;IACvBC,aACE;IACFC,UAAU;IACVC,OAAO;AACT;AAEA,OAAO,MAAMC,OAAO,OAAOC;IACzB,MAAM,EACJC,kBAAkB,EAClBL,WAAW,EACXM,OAAOC,WAAW,EAClBC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,SAAS,EACTT,KAAK,EACLU,WAAW,EACZ,GAAGR;IAEJ,MAAMS,eAA6B;QACjC;YACEC,MAAM;YACNC,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOtB,uBAAuB,WAAWA,oBAAoBuB,MAAMvB;QAC1E;QACA;YACEmB,MAAM;YACNK,OAAO;YACPJ,KAAK;YACLC,OAAO;YACPC,KAAK,OAAOrB,wBAAwB,WAAWA,qBAAqBsB,MAAMtB;QAC5E;KACD;IAED,IAAIU,QAAQO;IAEZ,IAAIN,eAAe,OAAOA,gBAAgB,YAAYa,MAAMC,OAAO,CAACd,cAAc;QAChFD,QAAQC;IACV;IAEA,MAAMe,YAAY;QAACpB;QAAOU;KAAY,CAACW,MAAM,CAACC,SAASC,IAAI,CAAC;IAE5D,MAAMC,UAAU,CAAC,EAAE,OAAOhB,oBAAoBR,UAAU,WAAWQ,mBAAmBR,KAAK,GAAGA,MAAM,CAAC,EAAEU,YAAY,CAAC;IAEpH,MAAMe,kBAAyC;QAC7C,GAAI5B,oBAAoB,CAAC,CAAC;QAC1B,GAAIM,uBAAuB,YACvB;YACEuB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRb,KAAK,CAAC,OAAO,EAAEnB,GAAGiC,SAAS,CACzB;wBACE/B,aAAaU,oBAAoBV,eAAeD,iBAAiBC,WAAW;wBAC5EE,OAAOwB;oBACT,GACA;wBACEM,gBAAgB;oBAClB,GACA,CAAC;oBACHC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN,GAAI5B,uBAAuB,WACvB;YACEuB,QAAQ;gBACN;oBACEC,KAAKH;oBACLI,QAAQ;oBACRb,KAAK,OAAOpB,kBAAkB,WAAWA,eAAeqB,MAAMrB;oBAC9DoC,OAAO;gBACT;aACD;QACH,IACA,CAAC,CAAC;QACN/B,OAAOwB;QACP,GAAIhB,sBAAsB,CAAC,CAAC;IAC9B;IAEA,OAAOwB,QAAQC,OAAO,CAAC;QACrBnC;QACAM;QACAE;QACA4B,cAAc,IAAIC,IAChB1B,aACE2B,QAAQC,GAAG,CAACC,yBAAyB,IACrC,CAAC,iBAAiB,EAAEF,QAAQC,GAAG,CAACE,IAAI,IAAI,KAAK,CAAC;QAElDhC,WAAWkB;QACXzB,OAAOoB;IACT;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/API/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBA0B9B,CAAA"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/views/API/meta.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAI/E,eAAO,MAAM,gBAAgB,EAAE,wBAiC9B,CAAA"}
@@ -2,16 +2,20 @@ import { getTranslation } from '@payloadcms/translations';
2
2
  import { meta } from '../../utilities/meta.js';
3
3
  export const generateMetadata = async ({ collectionConfig, config, globalConfig, i18n })=>{
4
4
  const entityLabel = collectionConfig ? getTranslation(collectionConfig.labels.singular, i18n) : globalConfig ? getTranslation(globalConfig.label, i18n) : '';
5
- const metaTitle = `API - ${entityLabel}`;
6
- const description = `API - ${entityLabel}`;
7
5
  return Promise.resolve(meta({
8
6
  ...config.admin.meta || {},
9
- description,
7
+ description: `API - ${entityLabel}`,
10
8
  keywords: 'API',
11
9
  serverURL: config.serverURL,
12
- title: metaTitle,
13
- ...collectionConfig?.admin.meta || {},
14
- ...globalConfig?.admin.meta || {}
10
+ title: `API - ${entityLabel}`,
11
+ ...collectionConfig ? {
12
+ ...collectionConfig?.admin.meta || {},
13
+ ...collectionConfig?.admin?.components?.views?.edit?.api?.meta || {}
14
+ } : {},
15
+ ...globalConfig ? {
16
+ ...globalConfig?.admin.meta || {},
17
+ ...globalConfig?.admin?.components?.views?.edit?.api?.meta || {}
18
+ } : {}
15
19
  }));
16
20
  };
17
21
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/API/meta.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n}) => {\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n const metaTitle = `API - ${entityLabel}`\n const description = `API - ${entityLabel}`\n\n return Promise.resolve(\n meta({\n ...(config.admin.meta || {}),\n description,\n keywords: 'API',\n serverURL: config.serverURL,\n title: metaTitle,\n ...(collectionConfig?.admin.meta || {}),\n ...(globalConfig?.admin.meta || {}),\n }),\n )\n}\n"],"names":["getTranslation","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","entityLabel","labels","singular","label","metaTitle","description","Promise","resolve","admin","keywords","serverURL","title"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACL;IACC,MAAMC,cAAcJ,mBAChBH,eAAeG,iBAAiBK,MAAM,CAACC,QAAQ,EAAEH,QACjDD,eACEL,eAAeK,aAAaK,KAAK,EAAEJ,QACnC;IAEN,MAAMK,YAAY,CAAC,MAAM,EAAEJ,YAAY,CAAC;IACxC,MAAMK,cAAc,CAAC,MAAM,EAAEL,YAAY,CAAC;IAE1C,OAAOM,QAAQC,OAAO,CACpBb,KAAK;QACH,GAAIG,OAAOW,KAAK,CAACd,IAAI,IAAI,CAAC,CAAC;QAC3BW;QACAI,UAAU;QACVC,WAAWb,OAAOa,SAAS;QAC3BC,OAAOP;QACP,GAAIR,kBAAkBY,MAAMd,QAAQ,CAAC,CAAC;QACtC,GAAII,cAAcU,MAAMd,QAAQ,CAAC,CAAC;IACpC;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/API/meta.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { GenerateEditViewMetadata } from '../Document/getMetaBySegment.js'\n\nimport { meta } from '../../utilities/meta.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n}) => {\n const entityLabel = collectionConfig\n ? getTranslation(collectionConfig.labels.singular, i18n)\n : globalConfig\n ? getTranslation(globalConfig.label, i18n)\n : ''\n\n return Promise.resolve(\n meta({\n ...(config.admin.meta || {}),\n description: `API - ${entityLabel}`,\n keywords: 'API',\n serverURL: config.serverURL,\n title: `API - ${entityLabel}`,\n ...(collectionConfig\n ? {\n ...(collectionConfig?.admin.meta || {}),\n ...(collectionConfig?.admin?.components?.views?.edit?.api?.meta || {}),\n }\n : {}),\n ...(globalConfig\n ? {\n ...(globalConfig?.admin.meta || {}),\n ...(globalConfig?.admin?.components?.views?.edit?.api?.meta || {}),\n }\n : {}),\n }),\n )\n}\n"],"names":["getTranslation","meta","generateMetadata","collectionConfig","config","globalConfig","i18n","entityLabel","labels","singular","label","Promise","resolve","admin","description","keywords","serverURL","title","components","views","edit","api"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AAIzD,SAASC,IAAI,QAAQ,0BAAyB;AAE9C,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,IAAI,EACL;IACC,MAAMC,cAAcJ,mBAChBH,eAAeG,iBAAiBK,MAAM,CAACC,QAAQ,EAAEH,QACjDD,eACEL,eAAeK,aAAaK,KAAK,EAAEJ,QACnC;IAEN,OAAOK,QAAQC,OAAO,CACpBX,KAAK;QACH,GAAIG,OAAOS,KAAK,CAACZ,IAAI,IAAI,CAAC,CAAC;QAC3Ba,aAAa,CAAC,MAAM,EAAEP,YAAY,CAAC;QACnCQ,UAAU;QACVC,WAAWZ,OAAOY,SAAS;QAC3BC,OAAO,CAAC,MAAM,EAAEV,YAAY,CAAC;QAC7B,GAAIJ,mBACA;YACE,GAAIA,kBAAkBU,MAAMZ,QAAQ,CAAC,CAAC;YACtC,GAAIE,kBAAkBU,OAAOK,YAAYC,OAAOC,MAAMC,KAAKpB,QAAQ,CAAC,CAAC;QACvE,IACA,CAAC,CAAC;QACN,GAAII,eACA;YACE,GAAIA,cAAcQ,MAAMZ,QAAQ,CAAC,CAAC;YAClC,GAAII,cAAcQ,OAAOK,YAAYC,OAAOC,MAAMC,KAAKpB,QAAQ,CAAC,CAAC;QACnE,IACA,CAAC,CAAC;IACR;AAEJ,EAAC"}
@@ -3,5 +3,8 @@ export declare const getCustomViewByRoute: ({ baseRoute, currentRoute, views, }:
3
3
  baseRoute: string;
4
4
  currentRoute: string;
5
5
  views: SanitizedCollectionConfig["admin"]["components"]["views"] | SanitizedGlobalConfig["admin"]["components"]["views"];
6
- }) => EditViewComponent;
6
+ }) => {
7
+ Component: EditViewComponent;
8
+ viewKey?: string;
9
+ };
7
10
  //# sourceMappingURL=getCustomViewByRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,wCAI9B;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG,iBAqBH,CAAA"}
1
+ {"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,wCAI9B;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG;IACF,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CAoCjB,CAAA"}
@@ -1,22 +1,32 @@
1
1
  import { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js';
2
2
  export const getCustomViewByRoute = ({ baseRoute, currentRoute, views })=>{
3
- if (typeof views?.edit === 'object' && typeof views?.edit !== 'function') {
4
- const foundViewConfig = Object.entries(views.edit).find(([, view])=>{
5
- if (typeof view === 'object' && typeof view !== 'function' && 'path' in view) {
3
+ if (typeof views?.edit === 'object') {
4
+ let viewKey;
5
+ const foundViewConfig = Object.entries(views.edit).find(([key, view])=>{
6
+ if (typeof view === 'object' && 'path' in view) {
6
7
  const viewPath = `${baseRoute}${view.path}`;
7
- return isPathMatchingRoute({
8
+ const isMatching = isPathMatchingRoute({
8
9
  currentRoute,
9
10
  exact: true,
10
11
  path: viewPath
11
12
  });
13
+ if (isMatching) {
14
+ viewKey = key;
15
+ }
16
+ return isMatching;
12
17
  }
13
18
  return false;
14
19
  })?.[1];
15
20
  if (foundViewConfig && 'Component' in foundViewConfig) {
16
- return foundViewConfig.Component;
21
+ return {
22
+ Component: foundViewConfig.Component,
23
+ viewKey
24
+ };
17
25
  }
18
26
  }
19
- return null;
27
+ return {
28
+ Component: null
29
+ };
20
30
  };
21
31
 
22
32
  //# sourceMappingURL=getCustomViewByRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"sourcesContent":["import type { EditViewComponent, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n baseRoute,\n currentRoute,\n views,\n}: {\n baseRoute: string\n currentRoute: string\n views:\n | SanitizedCollectionConfig['admin']['components']['views']\n | SanitizedGlobalConfig['admin']['components']['views']\n}): EditViewComponent => {\n if (typeof views?.edit === 'object' && typeof views?.edit !== 'function') {\n const foundViewConfig = Object.entries(views.edit).find(([, view]) => {\n if (typeof view === 'object' && typeof view !== 'function' && 'path' in view) {\n const viewPath = `${baseRoute}${view.path}`\n\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: viewPath,\n })\n }\n return false\n })?.[1]\n\n if (foundViewConfig && 'Component' in foundViewConfig) {\n return foundViewConfig.Component\n }\n }\n\n return null\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","baseRoute","currentRoute","views","edit","foundViewConfig","Object","entries","find","view","viewPath","path","exact","Component"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,iCAAgC;AAEpE,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,SAAS,EACTC,YAAY,EACZC,KAAK,EAON;IACC,IAAI,OAAOA,OAAOC,SAAS,YAAY,OAAOD,OAAOC,SAAS,YAAY;QACxE,MAAMC,kBAAkBC,OAAOC,OAAO,CAACJ,MAAMC,IAAI,EAAEI,IAAI,CAAC,CAAC,GAAGC,KAAK;YAC/D,IAAI,OAAOA,SAAS,YAAY,OAAOA,SAAS,cAAc,UAAUA,MAAM;gBAC5E,MAAMC,WAAW,CAAC,EAAET,UAAU,EAAEQ,KAAKE,IAAI,CAAC,CAAC;gBAE3C,OAAOZ,oBAAoB;oBACzBG;oBACAU,OAAO;oBACPD,MAAMD;gBACR;YACF;YACA,OAAO;QACT,IAAI,CAAC,EAAE;QAEP,IAAIL,mBAAmB,eAAeA,iBAAiB;YACrD,OAAOA,gBAAgBQ,SAAS;QAClC;IACF;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"sourcesContent":["import type { EditViewComponent, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { isPathMatchingRoute } from '../Root/isPathMatchingRoute.js'\n\nexport const getCustomViewByRoute = ({\n baseRoute,\n currentRoute,\n views,\n}: {\n baseRoute: string\n currentRoute: string\n views:\n | SanitizedCollectionConfig['admin']['components']['views']\n | SanitizedGlobalConfig['admin']['components']['views']\n}): {\n Component: EditViewComponent\n viewKey?: string\n} => {\n if (typeof views?.edit === 'object') {\n let viewKey: string\n\n const foundViewConfig = Object.entries(views.edit).find(([key, view]) => {\n if (typeof view === 'object' && 'path' in view) {\n const viewPath = `${baseRoute}${view.path}`\n\n const isMatching = isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: viewPath,\n })\n\n if (isMatching) {\n viewKey = key\n }\n\n return isMatching\n }\n\n return false\n })?.[1]\n\n if (foundViewConfig && 'Component' in foundViewConfig) {\n return {\n Component: foundViewConfig.Component,\n viewKey,\n }\n }\n }\n\n return {\n Component: null,\n }\n}\n"],"names":["isPathMatchingRoute","getCustomViewByRoute","baseRoute","currentRoute","views","edit","viewKey","foundViewConfig","Object","entries","find","key","view","viewPath","path","isMatching","exact","Component"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,iCAAgC;AAEpE,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,SAAS,EACTC,YAAY,EACZC,KAAK,EAON;IAIC,IAAI,OAAOA,OAAOC,SAAS,UAAU;QACnC,IAAIC;QAEJ,MAAMC,kBAAkBC,OAAOC,OAAO,CAACL,MAAMC,IAAI,EAAEK,IAAI,CAAC,CAAC,CAACC,KAAKC,KAAK;YAClE,IAAI,OAAOA,SAAS,YAAY,UAAUA,MAAM;gBAC9C,MAAMC,WAAW,CAAC,EAAEX,UAAU,EAAEU,KAAKE,IAAI,CAAC,CAAC;gBAE3C,MAAMC,aAAaf,oBAAoB;oBACrCG;oBACAa,OAAO;oBACPF,MAAMD;gBACR;gBAEA,IAAIE,YAAY;oBACdT,UAAUK;gBACZ;gBAEA,OAAOI;YACT;YAEA,OAAO;QACT,IAAI,CAAC,EAAE;QAEP,IAAIR,mBAAmB,eAAeA,iBAAiB;YACrD,OAAO;gBACLU,WAAWV,gBAAgBU,SAAS;gBACpCX;YACF;QACF;IACF;IAEA,OAAO;QACLW,WAAW;IACb;AACF,EAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { Metadata } from 'next';
2
- import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
2
+ import type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
3
3
  import type { GenerateViewMetadata } from '../Root/index.js';
4
4
  export type GenerateEditViewMetadata = (args: {
5
5
  collectionConfig?: SanitizedCollectionConfig | null;
6
6
  globalConfig?: SanitizedGlobalConfig | null;
7
+ view?: keyof EditConfig;
7
8
  } & Parameters<GenerateViewMetadata>[0]) => Promise<Metadata>;
8
9
  export declare const getMetaBySegment: GenerateEditViewMetadata;
9
10
  //# sourceMappingURL=getMetaBySegment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAU5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACnD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAC5C,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBAsF9B,CAAA"}
1
+ {"version":3,"file":"getMetaBySegment.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getMetaBySegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAW5D,MAAM,MAAM,wBAAwB,GAAG,CACrC,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACnD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,UAAU,CAAA;CACxB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,eAAO,MAAM,gBAAgB,EAAE,wBAgI9B,CAAA"}
@@ -5,6 +5,7 @@ import { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js';
5
5
  import { generateNotFoundMeta } from '../NotFound/meta.js';
6
6
  import { generateMetadata as versionMeta } from '../Version/meta.js';
7
7
  import { generateMetadata as versionsMeta } from '../Versions/meta.js';
8
+ import { getViewsFromConfig } from './getViewsFromConfig.js';
8
9
  export const getMetaBySegment = async ({ collectionConfig, config, globalConfig, params })=>{
9
10
  const { segments } = params;
10
11
  let fn = null;
@@ -13,45 +14,66 @@ export const getMetaBySegment = async ({ collectionConfig, config, globalConfig,
13
14
  const isGlobal = segmentOne === 'globals';
14
15
  const isEditing = isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create');
15
16
  if (isCollection) {
16
- // `/:id`
17
+ // `/:collection/:id`
17
18
  if (params.segments.length === 3) {
18
19
  fn = editMeta;
19
20
  }
20
- // `/:id/api`
21
- if (params.segments.length === 4 && params.segments[3] === 'api') {
22
- fn = apiMeta;
21
+ // `/:collection/:id/:view`
22
+ if (params.segments.length === 4) {
23
+ switch(params.segments[3]){
24
+ case 'api':
25
+ // `/:collection/:id/api`
26
+ fn = apiMeta;
27
+ break;
28
+ case 'preview':
29
+ // `/:collection/:id/preview`
30
+ fn = livePreviewMeta;
31
+ break;
32
+ case 'versions':
33
+ // `/:collection/:id/versions`
34
+ fn = versionsMeta;
35
+ break;
36
+ default:
37
+ break;
38
+ }
23
39
  }
24
- // `/:id/preview`
25
- if (params.segments.length === 4 && params.segments[3] === 'preview') {
26
- fn = livePreviewMeta;
27
- }
28
- // `/:id/versions`
29
- if (params.segments.length === 4 && params.segments[3] === 'versions') {
30
- fn = versionsMeta;
31
- }
32
- // `/:id/versions/:version`
33
- if (params.segments.length === 5 && params.segments[3] === 'versions') {
34
- fn = versionMeta;
40
+ // `/:collection/:id/:slug-1/:slug-2`
41
+ if (params.segments.length === 5) {
42
+ switch(params.segments[3]){
43
+ case 'versions':
44
+ // `/:collection/:id/versions/:version`
45
+ fn = versionMeta;
46
+ break;
47
+ default:
48
+ break;
49
+ }
35
50
  }
36
51
  }
37
52
  if (isGlobal) {
38
- // `/:slug`
53
+ // `/:global`
39
54
  if (params.segments?.length === 2) {
40
55
  fn = editMeta;
41
56
  }
42
- // `/:slug/api`
43
- if (params.segments?.length === 3 && params.segments[2] === 'api') {
44
- fn = apiMeta;
45
- }
46
- // `/:slug/preview`
47
- if (params.segments?.length === 3 && params.segments[2] === 'preview') {
48
- fn = livePreviewMeta;
49
- }
50
- // `/:slug/versions`
51
- if (params.segments?.length === 3 && params.segments[2] === 'versions') {
52
- fn = versionsMeta;
57
+ // `/:global/:view`
58
+ if (params.segments?.length === 3) {
59
+ switch(params.segments[2]){
60
+ case 'api':
61
+ // `/:global/api`
62
+ fn = apiMeta;
63
+ break;
64
+ case 'preview':
65
+ // `/:global/preview`
66
+ fn = livePreviewMeta;
67
+ break;
68
+ case 'versions':
69
+ // `/:global/versions`
70
+ fn = versionsMeta;
71
+ break;
72
+ default:
73
+ break;
74
+ }
53
75
  }
54
- // `/:slug/versions/:version`
76
+ // `/:global/versions/:version`
55
77
  if (params.segments?.length === 4 && params.segments[2] === 'versions') {
56
78
  fn = versionMeta;
57
79
  }
@@ -67,6 +89,29 @@ export const getMetaBySegment = async ({ collectionConfig, config, globalConfig,
67
89
  i18n,
68
90
  isEditing
69
91
  });
92
+ } else {
93
+ const { viewKey } = getViewsFromConfig({
94
+ collectionConfig,
95
+ config,
96
+ globalConfig,
97
+ overrideDocPermissions: true,
98
+ routeSegments: typeof segments === 'string' ? [
99
+ segments
100
+ ] : segments
101
+ });
102
+ if (viewKey) {
103
+ const customViewConfig = collectionConfig?.admin?.components?.views?.edit?.[viewKey] || globalConfig?.admin?.components?.views?.edit?.[viewKey];
104
+ if (customViewConfig) {
105
+ return editMeta({
106
+ collectionConfig,
107
+ config,
108
+ globalConfig,
109
+ i18n,
110
+ isEditing,
111
+ view: viewKey
112
+ });
113
+ }
114
+ }
70
115
  }
71
116
  return generateNotFoundMeta({
72
117
  config,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateMetadata as apiMeta } from '../API/meta.js'\nimport { generateMetadata as editMeta } from '../Edit/meta.js'\nimport { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateMetadata as versionMeta } from '../Version/meta.js'\nimport { generateMetadata as versionsMeta } from '../Versions/meta.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: SanitizedCollectionConfig | null\n globalConfig?: SanitizedGlobalConfig | null\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:id`\n if (params.segments.length === 3) {\n fn = editMeta\n }\n\n // `/:id/api`\n if (params.segments.length === 4 && params.segments[3] === 'api') {\n fn = apiMeta\n }\n\n // `/:id/preview`\n if (params.segments.length === 4 && params.segments[3] === 'preview') {\n fn = livePreviewMeta\n }\n\n // `/:id/versions`\n if (params.segments.length === 4 && params.segments[3] === 'versions') {\n fn = versionsMeta\n }\n\n // `/:id/versions/:version`\n if (params.segments.length === 5 && params.segments[3] === 'versions') {\n fn = versionMeta\n }\n }\n\n if (isGlobal) {\n // `/:slug`\n if (params.segments?.length === 2) {\n fn = editMeta\n }\n\n // `/:slug/api`\n if (params.segments?.length === 3 && params.segments[2] === 'api') {\n fn = apiMeta\n }\n\n // `/:slug/preview`\n if (params.segments?.length === 3 && params.segments[2] === 'preview') {\n fn = livePreviewMeta\n }\n\n // `/:slug/versions`\n if (params.segments?.length === 3 && params.segments[2] === 'versions') {\n fn = versionsMeta\n }\n\n // `/:slug/versions/:version`\n if (params.segments?.length === 4 && params.segments[2] === 'versions') {\n fn = versionMeta\n }\n }\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n if (typeof fn === 'function') {\n return fn({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n }\n\n return generateNotFoundMeta({ config, i18n })\n}\n"],"names":["getNextRequestI18n","generateMetadata","apiMeta","editMeta","livePreviewMeta","generateNotFoundMeta","versionMeta","versionsMeta","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","i18n"],"mappings":"AAKA,SAASA,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,oBAAoBC,OAAO,QAAQ,iBAAgB;AAC5D,SAASD,oBAAoBE,QAAQ,QAAQ,kBAAiB;AAC9D,SAASF,oBAAoBG,eAAe,QAAQ,yBAAwB;AAC5E,SAASC,oBAAoB,QAAQ,sBAAqB;AAC1D,SAASJ,oBAAoBK,WAAW,QAAQ,qBAAoB;AACpE,SAASL,oBAAoBM,YAAY,QAAQ,sBAAqB;AAStE,OAAO,MAAMC,mBAA6C,OAAO,EAC/DC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,MAAM,EACP;IACC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,IAAIE,KAAsC;IAE1C,MAAM,CAACC,WAAW,GAAGF;IACrB,MAAMG,eAAeD,eAAe;IACpC,MAAME,WAAWF,eAAe;IAEhC,MAAMG,YACJD,YAAYE,QAAQH,gBAAgBH,UAAUO,SAAS,KAAKP,QAAQ,CAAC,EAAE,KAAK;IAE9E,IAAIG,cAAc;QAChB,SAAS;QACT,IAAIJ,OAAOC,QAAQ,CAACO,MAAM,KAAK,GAAG;YAChCN,KAAKX;QACP;QAEA,aAAa;QACb,IAAIS,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,OAAO;YAChEC,KAAKZ;QACP;QAEA,iBAAiB;QACjB,IAAIU,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,WAAW;YACpEC,KAAKV;QACP;QAEA,kBAAkB;QAClB,IAAIQ,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACrEC,KAAKP;QACP;QAEA,2BAA2B;QAC3B,IAAIK,OAAOC,QAAQ,CAACO,MAAM,KAAK,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACrEC,KAAKR;QACP;IACF;IAEA,IAAIW,UAAU;QACZ,WAAW;QACX,IAAIL,OAAOC,QAAQ,EAAEO,WAAW,GAAG;YACjCN,KAAKX;QACP;QAEA,eAAe;QACf,IAAIS,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,OAAO;YACjEC,KAAKZ;QACP;QAEA,mBAAmB;QACnB,IAAIU,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,WAAW;YACrEC,KAAKV;QACP;QAEA,oBAAoB;QACpB,IAAIQ,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACtEC,KAAKP;QACP;QAEA,6BAA6B;QAC7B,IAAIK,OAAOC,QAAQ,EAAEO,WAAW,KAAKR,OAAOC,QAAQ,CAAC,EAAE,KAAK,YAAY;YACtEC,KAAKR;QACP;IACF;IAEA,MAAMe,OAAO,MAAMrB,mBAAmB;QACpCU;IACF;IAEA,IAAI,OAAOI,OAAO,YAAY;QAC5B,OAAOA,GAAG;YACRL;YACAC;YACAC;YACAU;YACAH;QACF;IACF;IAEA,OAAOb,qBAAqB;QAAEK;QAAQW;IAAK;AAC7C,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Document/getMetaBySegment.tsx"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { EditConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport type { GenerateViewMetadata } from '../Root/index.js'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateMetadata as apiMeta } from '../API/meta.js'\nimport { generateMetadata as editMeta } from '../Edit/meta.js'\nimport { generateMetadata as livePreviewMeta } from '../LivePreview/meta.js'\nimport { generateNotFoundMeta } from '../NotFound/meta.js'\nimport { generateMetadata as versionMeta } from '../Version/meta.js'\nimport { generateMetadata as versionsMeta } from '../Versions/meta.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\n\nexport type GenerateEditViewMetadata = (\n args: {\n collectionConfig?: SanitizedCollectionConfig | null\n globalConfig?: SanitizedGlobalConfig | null\n view?: keyof EditConfig\n } & Parameters<GenerateViewMetadata>[0],\n) => Promise<Metadata>\n\nexport const getMetaBySegment: GenerateEditViewMetadata = async ({\n collectionConfig,\n config,\n globalConfig,\n params,\n}) => {\n const { segments } = params\n\n let fn: GenerateEditViewMetadata | null = null\n\n const [segmentOne] = segments\n const isCollection = segmentOne === 'collections'\n const isGlobal = segmentOne === 'globals'\n\n const isEditing =\n isGlobal || Boolean(isCollection && segments?.length > 2 && segments[2] !== 'create')\n\n if (isCollection) {\n // `/:collection/:id`\n if (params.segments.length === 3) {\n fn = editMeta\n }\n\n // `/:collection/:id/:view`\n if (params.segments.length === 4) {\n switch (params.segments[3]) {\n case 'api':\n // `/:collection/:id/api`\n fn = apiMeta\n break\n case 'preview':\n // `/:collection/:id/preview`\n fn = livePreviewMeta\n break\n case 'versions':\n // `/:collection/:id/versions`\n fn = versionsMeta\n break\n default:\n break\n }\n }\n\n // `/:collection/:id/:slug-1/:slug-2`\n if (params.segments.length === 5) {\n switch (params.segments[3]) {\n case 'versions':\n // `/:collection/:id/versions/:version`\n fn = versionMeta\n break\n default:\n break\n }\n }\n }\n\n if (isGlobal) {\n // `/:global`\n if (params.segments?.length === 2) {\n fn = editMeta\n }\n\n // `/:global/:view`\n if (params.segments?.length === 3) {\n switch (params.segments[2]) {\n case 'api':\n // `/:global/api`\n fn = apiMeta\n break\n case 'preview':\n // `/:global/preview`\n fn = livePreviewMeta\n break\n case 'versions':\n // `/:global/versions`\n fn = versionsMeta\n break\n default:\n break\n }\n }\n\n // `/:global/versions/:version`\n if (params.segments?.length === 4 && params.segments[2] === 'versions') {\n fn = versionMeta\n }\n }\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n if (typeof fn === 'function') {\n return fn({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n })\n } else {\n const { viewKey } = getViewsFromConfig({\n collectionConfig,\n config,\n globalConfig,\n overrideDocPermissions: true,\n routeSegments: typeof segments === 'string' ? [segments] : segments,\n })\n\n if (viewKey) {\n const customViewConfig =\n collectionConfig?.admin?.components?.views?.edit?.[viewKey] ||\n globalConfig?.admin?.components?.views?.edit?.[viewKey]\n\n if (customViewConfig) {\n return editMeta({\n collectionConfig,\n config,\n globalConfig,\n i18n,\n isEditing,\n view: viewKey as keyof EditConfig,\n })\n }\n }\n }\n\n return generateNotFoundMeta({ config, i18n })\n}\n"],"names":["getNextRequestI18n","generateMetadata","apiMeta","editMeta","livePreviewMeta","generateNotFoundMeta","versionMeta","versionsMeta","getViewsFromConfig","getMetaBySegment","collectionConfig","config","globalConfig","params","segments","fn","segmentOne","isCollection","isGlobal","isEditing","Boolean","length","i18n","viewKey","overrideDocPermissions","routeSegments","customViewConfig","admin","components","views","edit","view"],"mappings":"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"}
@@ -4,18 +4,24 @@ export type ViewFromConfig<TProps extends object> = {
4
4
  Component?: React.FC<TProps>;
5
5
  payloadComponent?: PayloadComponent<TProps>;
6
6
  };
7
- export declare const getViewsFromConfig: ({ collectionConfig, config, docPermissions, globalConfig, routeSegments, }: {
7
+ export declare const getViewsFromConfig: ({ collectionConfig, config, docPermissions, globalConfig, overrideDocPermissions, routeSegments, }: {
8
8
  collectionConfig?: SanitizedCollectionConfig;
9
9
  config: SanitizedConfig;
10
- docPermissions: CollectionPermission | GlobalPermission;
11
10
  globalConfig?: SanitizedGlobalConfig;
12
11
  routeSegments: string[];
13
- }) => {
12
+ } & ({
13
+ docPermissions: CollectionPermission | GlobalPermission;
14
+ overrideDocPermissions?: false | undefined;
15
+ } | {
16
+ docPermissions?: never;
17
+ overrideDocPermissions: true;
18
+ })) => {
14
19
  CustomView: ViewFromConfig<ServerSideEditViewProps>;
15
20
  DefaultView: ViewFromConfig<ServerSideEditViewProps>;
16
21
  /**
17
22
  * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null
18
23
  */
19
24
  ErrorView: ViewFromConfig<AdminViewProps>;
25
+ viewKey: string;
20
26
  } | null;
21
27
  //# sourceMappingURL=getViewsFromConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB,+EAM5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAC1C,GAAG,IA6SH,CAAA"}
1
+ {"version":3,"file":"getViewsFromConfig.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,kBAAkB,uGAO5B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,GAAG,CACA;IACE,cAAc,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;IACvD,sBAAsB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3C,GACD;IACE,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,sBAAsB,EAAE,IAAI,CAAA;CAC7B,CACJ,KAAG;IACF,UAAU,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACnD,WAAW,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IACpD;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,IAsXH,CAAA"}