@payloadcms/ui 3.4.0 → 3.4.1-canary.2a8fa30

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 (47) hide show
  1. package/dist/elements/CodeEditor/CodeEditor.js +39 -32
  2. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  3. package/dist/elements/CodeEditor/types.d.ts +4 -0
  4. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  5. package/dist/elements/CodeEditor/types.js.map +1 -1
  6. package/dist/elements/PublishButton/index.js +15 -18
  7. package/dist/elements/PublishButton/index.js.map +1 -1
  8. package/dist/exports/client/{CodeEditor-RZ32B2QF.js → CodeEditor-QIIK6FKF.js} +2 -2
  9. package/dist/exports/client/{chunk-CKHKQPOO.js → chunk-MFQ5YTBK.js} +6 -6
  10. package/dist/exports/client/chunk-MFQ5YTBK.js.map +8 -0
  11. package/dist/exports/client/index.d.ts +4 -0
  12. package/dist/exports/client/index.d.ts.map +1 -1
  13. package/dist/exports/client/index.js +10 -10
  14. package/dist/exports/client/index.js.map +4 -4
  15. package/dist/exports/shared/index.js +2 -2
  16. package/dist/exports/shared/index.js.map +3 -3
  17. package/dist/fields/Group/index.d.ts.map +1 -1
  18. package/dist/fields/Group/index.js +2 -1
  19. package/dist/fields/Group/index.js.map +1 -1
  20. package/dist/fields/Relationship/index.d.ts.map +1 -1
  21. package/dist/fields/Relationship/index.js +1 -1
  22. package/dist/fields/Relationship/index.js.map +1 -1
  23. package/dist/fields/Select/Input.d.ts +1 -0
  24. package/dist/fields/Select/Input.d.ts.map +1 -1
  25. package/dist/fields/Select/Input.js +41 -38
  26. package/dist/fields/Select/Input.js.map +1 -1
  27. package/dist/fields/Tabs/index.d.ts +15 -0
  28. package/dist/fields/Tabs/index.d.ts.map +1 -1
  29. package/dist/fields/Tabs/index.js +2 -2
  30. package/dist/fields/Tabs/index.js.map +1 -1
  31. package/dist/forms/Form/index.d.ts.map +1 -1
  32. package/dist/forms/Form/index.js +2 -1
  33. package/dist/forms/Form/index.js.map +1 -1
  34. package/dist/providers/Locale/index.d.ts +15 -1
  35. package/dist/providers/Locale/index.d.ts.map +1 -1
  36. package/dist/providers/Locale/index.js +50 -119
  37. package/dist/providers/Locale/index.js.map +1 -1
  38. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  39. package/dist/providers/SearchParams/index.js +25 -68
  40. package/dist/providers/SearchParams/index.js.map +1 -1
  41. package/dist/styles.css +1 -1
  42. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  43. package/dist/utilities/groupNavItems.js +6 -6
  44. package/dist/utilities/groupNavItems.js.map +1 -1
  45. package/package.json +5 -5
  46. package/dist/exports/client/chunk-CKHKQPOO.js.map +0 -8
  47. /package/dist/exports/client/{CodeEditor-RZ32B2QF.js.map → CodeEditor-QIIK6FKF.js.map} +0 -0
@@ -1,6 +1,6 @@
1
- var P=e=>{let t=o=>o.type!=="ui"&&o.admin?.disabled===!0||o?.admin?.disableListColumn===!0;return e?.reduce((o,n)=>{if(t(n))return o;let i=n.type==="tabs"&&"tabs"in n?{...n,tabs:n.tabs.map(s=>({...s,fields:s.fields.filter(a=>!t(a))}))}:n;return[...o,i]},[])};import{fieldAffectsData as b}from"payload/shared";var f=(e,t)=>e?.reduce((r,o)=>b(o)&&o.name===t?r:!b(o)&&"fields"in o?[...r,...f(o.fields,t)]:o.type==="tabs"&&"tabs"in o?[...r,...o.tabs.reduce((n,i)=>[...n,..."name"in i?[i.name]:f(i.fields,t)],[])]:[...r,o.name],[]),R=(e,t,r)=>{let o=[];if(Array.isArray(r)&&r.length>=1)o=r;else{t&&o.push(t);let n=f(e,t);o=o.concat(n),o=o.slice(0,4)}return o.map(n=>({accessor:n,active:!0}))};import*as m from"react";var x=({elements:e,translationString:t})=>{let r=/(<[^>]+>.*?<\/[^>]+>)/g,o=t.split(r);return m.createElement("span",null,o.map((n,i)=>{if(e&&n.startsWith("<")&&n.endsWith(">")){let s=n[1],a=e[s];if(a){let d=new RegExp(`<${s}>(.*?)</${s}>`,"g"),p=n.replace(d,(c,F)=>F);return m.createElement(a,{key:i},m.createElement(x,{translationString:p}))}}return n}))},L=({elements:e,i18nKey:t,t:r,variables:o})=>{let n=r(t,o||{});return e?m.createElement(x,{elements:e,translationString:n}):n};import{isReactServerComponentOrFunction as T,serverProps as I}from"payload/shared";import M from"react";function w({Component:e,sanitizeServerOnlyProps:t,toMergeIntoProps:r}){return t===void 0&&(t=!T(e)),n=>{let i=k(n,r);return t&&I.forEach(s=>{delete i[s]}),M.createElement(e,{...i})}}function k(e,t){return{...e,...t}}import{isReactServerComponentOrFunction as A}from"payload/shared";import D from"react";var z=({Component:e,serverOnlyProps:t,...r})=>e?(n=>{let i={...n,...A(e)?t??{}:{}};return D.createElement(e,{...i})})(r):null;var O=e=>({...e?.admin?.style||{},...e?.admin?.width?{"--field-width":e.admin.width}:{flex:"1 1 auto"},...e?.admin?.style?.flex?{flex:e.admin.style.flex}:{}});import{deepCopyObjectComplex as Z}from"payload/shared";var N=["validate","customComponents"],$=e=>{let t=Z(e);return N.forEach(r=>{delete t[r]}),t},B=e=>Object.keys(e).reduce((t,r)=>(t[r]=$(e[r]),t),{});import g from"react";var E=({fill:e})=>{let t=e||"var(--theme-elevation-1000)";return g.createElement("svg",{className:"graphic-icon",height:"100%",viewBox:"0 0 25 25",width:"100%",xmlns:"http://www.w3.org/2000/svg"},g.createElement("path",{d:"M11.8673 21.2336L4.40922 16.9845C4.31871 16.9309 4.25837 16.8355 4.25837 16.7282V10.1609C4.25837 10.0477 4.38508 9.97616 4.48162 10.0298L13.1404 14.9642C13.2611 15.0358 13.412 14.9464 13.412 14.8093V11.6091C13.412 11.4839 13.3456 11.3647 13.2309 11.2992L2.81624 5.36353C2.72573 5.30989 2.60505 5.30989 2.51454 5.36353L1.15085 6.14422C1.06034 6.19786 1 6.29321 1 6.40048V18.5995C1 18.7068 1.06034 18.8021 1.15085 18.8558L11.8491 24.9583C11.9397 25.0119 12.0603 25.0119 12.1509 24.9583L21.1355 19.8331C21.2562 19.7616 21.2562 19.5948 21.1355 19.5232L18.3357 17.9261C18.2211 17.8605 18.0883 17.8605 17.9737 17.9261L12.175 21.2336C12.0845 21.2872 11.9638 21.2872 11.8733 21.2336H11.8673Z",fill:t}),g.createElement("path",{d:"M22.8491 6.13827L12.1508 0.0417218C12.0603 -0.0119135 11.9397 -0.0119135 11.8491 0.0417218L6.19528 3.2658C6.0746 3.33731 6.0746 3.50418 6.19528 3.57569L8.97092 5.16091C9.08557 5.22647 9.21832 5.22647 9.33296 5.16091L11.8672 3.71872C11.9578 3.66508 12.0784 3.66508 12.1689 3.71872L19.627 7.96782C19.7175 8.02146 19.7778 8.11681 19.7778 8.22408V14.8212C19.7778 14.9464 19.8442 15.0656 19.9589 15.1311L22.7345 16.7104C22.8552 16.7819 23.006 16.6925 23.006 16.5554V6.40048C23.006 6.29321 22.9457 6.19786 22.8552 6.14423L22.8491 6.13827Z",fill:t}))};import l from"react";var U=`
1
+ var P=e=>{let t=o=>o.type!=="ui"&&o.admin?.disabled===!0||o?.admin?.disableListColumn===!0;return e?.reduce((o,n)=>{if(t(n))return o;let i=n.type==="tabs"&&"tabs"in n?{...n,tabs:n.tabs.map(s=>({...s,fields:s.fields.filter(a=>!t(a))}))}:n;return[...o,i]},[])};import{fieldAffectsData as x}from"payload/shared";var g=(e,t)=>e?.reduce((r,o)=>x(o)&&o.name===t?r:!x(o)&&"fields"in o?[...r,...g(o.fields,t)]:o.type==="tabs"&&"tabs"in o?[...r,...o.tabs.reduce((n,i)=>[...n,..."name"in i?[i.name]:g(i.fields,t)],[])]:[...r,o.name],[]),R=(e,t,r)=>{let o=[];if(Array.isArray(r)&&r.length>=1)o=r;else{t&&o.push(t);let n=g(e,t);o=o.concat(n),o=o.slice(0,4)}return o.map(n=>({accessor:n,active:!0}))};import*as m from"react";var v=({elements:e,translationString:t})=>{let r=/(<[^>]+>.*?<\/[^>]+>)/g,o=t.split(r);return m.createElement("span",null,o.map((n,i)=>{if(e&&n.startsWith("<")&&n.endsWith(">")){let s=n[1],a=e[s];if(a){let d=new RegExp(`<${s}>(.*?)</${s}>`,"g"),c=n.replace(d,(p,f)=>f);return m.createElement(a,{key:i},m.createElement(v,{translationString:c}))}}return n}))},L=({elements:e,i18nKey:t,t:r,variables:o})=>{let n=r(t,o||{});return e?m.createElement(v,{elements:e,translationString:n}):n};import{isReactServerComponentOrFunction as T,serverProps as I}from"payload/shared";import M from"react";function w({Component:e,sanitizeServerOnlyProps:t,toMergeIntoProps:r}){return t===void 0&&(t=!T(e)),n=>{let i=k(n,r);return t&&I.forEach(s=>{delete i[s]}),M.createElement(e,{...i})}}function k(e,t){return{...e,...t}}import{isReactServerComponentOrFunction as A}from"payload/shared";import D from"react";var z=({Component:e,serverOnlyProps:t,...r})=>e?(n=>{let i={...n,...A(e)?t??{}:{}};return D.createElement(e,{...i})})(r):null;var O=e=>({...e?.admin?.style||{},...e?.admin?.width?{"--field-width":e.admin.width}:{flex:"1 1 auto"},...e?.admin?.style?.flex?{flex:e.admin.style.flex}:{}});import{deepCopyObjectComplex as Z}from"payload/shared";var N=["validate","customComponents"],$=e=>{let t=Z(e);return N.forEach(r=>{delete t[r]}),t},B=e=>Object.keys(e).reduce((t,r)=>(t[r]=$(e[r]),t),{});import h from"react";var E=({fill:e})=>{let t=e||"var(--theme-elevation-1000)";return h.createElement("svg",{className:"graphic-icon",height:"100%",viewBox:"0 0 25 25",width:"100%",xmlns:"http://www.w3.org/2000/svg"},h.createElement("path",{d:"M11.8673 21.2336L4.40922 16.9845C4.31871 16.9309 4.25837 16.8355 4.25837 16.7282V10.1609C4.25837 10.0477 4.38508 9.97616 4.48162 10.0298L13.1404 14.9642C13.2611 15.0358 13.412 14.9464 13.412 14.8093V11.6091C13.412 11.4839 13.3456 11.3647 13.2309 11.2992L2.81624 5.36353C2.72573 5.30989 2.60505 5.30989 2.51454 5.36353L1.15085 6.14422C1.06034 6.19786 1 6.29321 1 6.40048V18.5995C1 18.7068 1.06034 18.8021 1.15085 18.8558L11.8491 24.9583C11.9397 25.0119 12.0603 25.0119 12.1509 24.9583L21.1355 19.8331C21.2562 19.7616 21.2562 19.5948 21.1355 19.5232L18.3357 17.9261C18.2211 17.8605 18.0883 17.8605 17.9737 17.9261L12.175 21.2336C12.0845 21.2872 11.9638 21.2872 11.8733 21.2336H11.8673Z",fill:t}),h.createElement("path",{d:"M22.8491 6.13827L12.1508 0.0417218C12.0603 -0.0119135 11.9397 -0.0119135 11.8491 0.0417218L6.19528 3.2658C6.0746 3.33731 6.0746 3.50418 6.19528 3.57569L8.97092 5.16091C9.08557 5.22647 9.21832 5.22647 9.33296 5.16091L11.8672 3.71872C11.9578 3.66508 12.0784 3.66508 12.1689 3.71872L19.627 7.96782C19.7175 8.02146 19.7778 8.11681 19.7778 8.22408V14.8212C19.7778 14.9464 19.8442 15.0656 19.9589 15.1311L22.7345 16.7104C22.8552 16.7819 23.006 16.6925 23.006 16.5554V6.40048C23.006 6.29321 22.9457 6.19786 22.8552 6.14423L22.8491 6.13827Z",fill:t}))};import l from"react";var U=`
2
2
  .graphic-logo path {
3
3
  fill: var(--theme-elevation-1000);
4
4
  }
5
- `,q=()=>l.createElement("svg",{className:"graphic-logo",fill:"none",height:"43.5",id:"b",viewBox:"0 0 193.38 43.5",width:"193.38",xmlns:"http://www.w3.org/2000/svg"},l.createElement("style",null,U),l.createElement("g",{id:"c"},l.createElement("path",{d:"M18.01,35.63l-12.36-7.13c-.15-.09-.25-.25-.25-.43v-11.02c0-.19.21-.31.37-.22l14.35,8.28c.2.12.45-.03.45-.26v-5.37c0-.21-.11-.41-.3-.52L3.01,9c-.15-.09-.35-.09-.5,0l-2.26,1.31c-.15.09-.25.25-.25.43v20.47c0,.18.1.34.25.43l17.73,10.24c.15.09.35.09.5,0l14.89-8.6c.2-.12.2-.4,0-.52l-4.64-2.68c-.19-.11-.41-.11-.6,0l-9.61,5.55c-.15.09-.35.09-.5,0Z"}),l.createElement("path",{d:"M36.21,10.3L18.48.07c-.15-.09-.35-.09-.5,0l-9.37,5.41c-.2.12-.2.4,0,.52l4.6,2.66c.19.11.41.11.6,0l4.2-2.42c.15-.09.35-.09.5,0l12.36,7.13c.15.09.25.25.25.43v11.07c0,.21.11.41.3.52l4.6,2.65c.2.12.45-.03.45-.26V10.74c0-.18-.1-.34-.25-.43Z"}),l.createElement("g",{id:"d"},l.createElement("path",{d:"M193.38,9.47c0,1.94-1.48,3.32-3.3,3.32s-3.31-1.39-3.31-3.32,1.49-3.31,3.31-3.31,3.3,1.39,3.3,3.31ZM192.92,9.47c0-1.68-1.26-2.88-2.84-2.88s-2.84,1.2-2.84,2.88,1.26,2.89,2.84,2.89,2.84-1.2,2.84-2.89ZM188.69,11.17v-3.51h1.61c.85,0,1.35.39,1.35,1.15,0,.53-.3.86-.67,1.02l.79,1.35h-.89l-.72-1.22h-.64v1.22h-.82ZM190.18,9.31c.46,0,.64-.16.64-.5s-.19-.49-.64-.49h-.67v.99h.67Z"}),l.createElement("path",{d:"M54.72,24.84v10.93h-5.4V6.1h12.26c7.02,0,11.1,3.2,11.1,9.39s-4.07,9.35-11.06,9.35h-6.9,0ZM61.12,20.52c4.07,0,6.11-1.66,6.11-5.03s-2.04-5.03-6.11-5.03h-6.4v10.06h6.4Z"}),l.createElement("path",{d:"M85.94,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.18-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM85.73,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z"}),l.createElement("path",{d:"M90.39,14.66h5.4l5.86,15.92h.08l5.57-15.92h5.28l-8.23,21.49c-2,5.28-4.45,7.32-8.89,7.36-.71,0-1.7-.08-2.45-.21v-4.03c.62.13.96.13,1.41.13,2.16,0,3.07-.75,4.2-3.66l-8.23-21.07h0Z"}),l.createElement("path",{d:"M113.46,35.77V6.1h5.32v29.67h-5.32Z"}),l.createElement("path",{d:"M130.79,36.27c-6.23,0-10.68-4.2-10.68-11.05s4.45-11.05,10.68-11.05,10.68,4.24,10.68,11.05-4.45,11.05-10.68,11.05ZM130.79,32.32c3.41,0,5.36-2.66,5.36-7.11s-1.95-7.11-5.36-7.11-5.36,2.7-5.36,7.11,1.91,7.11,5.36,7.11Z"}),l.createElement("path",{d:"M156.19,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.19-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM155.98,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z"}),l.createElement("path",{d:"M178.5,32.41c-1.04,2.12-3.58,3.87-6.78,3.87-5.53,0-9.31-4.49-9.31-11.05s3.78-11.05,9.31-11.05c3.28,0,5.69,1.83,6.69,3.95V6.1h5.32v29.67h-5.24v-3.37h0ZM178.55,24.84c0-4.11-1.95-6.78-5.32-6.78s-5.45,2.83-5.45,7.15,2,7.15,5.45,7.15,5.32-2.66,5.32-6.78v-.75h0Z"}))));function j(e){if(e)try{e.abort()}catch{}}import*as v from"qs-esm";var V={delete:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"delete"};return fetch(e,o)},get:(e,t={headers:{}})=>{let r="";return t.params&&(r=v.stringify(t.params,{addQueryPrefix:!0})),fetch(`${e}${r}`,{credentials:"include",...t})},patch:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"PATCH"};return fetch(e,o)},post:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"post"};return fetch(`${e}`,o)},put:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"put"};return fetch(e,o)}};var K=(e,t)=>!e?.locales||e.locales.length===0?null:e.locales.find(r=>r?.code===t);var u=e=>{let{adminRoute:t,basePath:r="",path:o,serverURL:n}=e;if(t)if(t==="/"){if(!o)return`${n||""}${r}${t}`}else return`${n||""}${r}${t}${o}`;return`${n||""}${r}${o}`};import{format as G,formatDistanceToNow as Te}from"date-fns";var h=({date:e,i18n:t,pattern:r})=>{let o=new Date(e);return G(o,r,{locale:t.dateFNS})};import{getTranslation as W}from"@payloadcms/translations";var Q=({collectionConfig:e,data:t,dateFormat:r,fallback:o,globalConfig:n,i18n:i})=>{let s;if(e){let a=e?.admin?.useAsTitle;if(a&&(s=t?.[a]||s,s)){let d=e.fields.find(c=>"name"in c&&c.name===a);if(d?.type==="date"){let c="date"in d.admin&&d?.admin?.date?.displayFormat||r;s=h({date:s,i18n:i,pattern:c})||s}}}return n&&(s=W(n?.label,i)||n?.slug),s||(s=o||`[${i.t("general:untitled")}]`),s};import{getTranslation as y}from"@payloadcms/translations";var S=(r=>(r.collection="collections",r.global="globals",r))(S||{});function H(e,t,r){return e.reduce((n,i)=>{if(t?.[i.type.toLowerCase()]?.[i.entity.slug]?.read){let s=y(i.entity.admin.group,r);if(i.entity.admin.group){let a=n.find(p=>y(p.label,r)===s),d=a;a||(d={entities:[],label:s},n.push(d)),d.entities.push({slug:i.entity.slug,type:i.type,label:"labels"in i.entity?typeof i.entity.labels.plural=="function"?i.entity.labels.plural({t:r.t}):i.entity.labels.plural:i.entity.label})}else n.find(d=>y(d.label,r)===r.t(`general:${i.type}`)).entities.push({slug:i.entity.slug,type:i.type,label:"labels"in i.entity?typeof i.entity.labels.plural=="function"?i.entity.labels.plural({t:r.t}):i.entity.labels.plural:i.entity.label})}return n},[{entities:[],label:r.t("general:collections")},{entities:[],label:r.t("general:globals")}]).filter(n=>n.entities.length>0)}var _=({adminRoute:e,router:t})=>{let r=u({adminRoute:e,path:"/"});t.push(r)};var J=({adminRoute:e,collectionSlug:t,router:r})=>{let o=u({adminRoute:e,path:t?`/collections/${t}`:"/"});r.push(o)};var X=(e,t,r,o,n,i,s,a,d,p)=>{if(d)try{i(e,t??r,o),n||(a.current.hasShownLockedModal=!0),a.current={hasShownLockedModal:a.current?.hasShownLockedModal,isLocked:!0,user:o},s(o),n&&p&&p(!1)}catch(c){console.error("Error during document takeover:",c)}};var Y=e=>{let{collectionSlug:t,docPermissions:r,globalSlug:o,isEditing:n}=e;return t?!!(n&&r?.update||!n&&r?.create):o?!!r?.update:!1};var ee=e=>e&&typeof e=="object";var te=({id:e,collectionSlug:t,globalSlug:r})=>!!(r||t&&e);var C=e=>Object.keys(e).length===0,re=(e,t)=>C(t)?e:C(e)?t:("and"in e?e.and.push(t):"or"in e?e={and:[e,t]}:e={and:[e,t]},e),oe=({collectionConfig:e,search:t,where:r={}})=>{if(t){let o={...r||{}},n=(e.admin.listSearchableFields||[e.admin?.useAsTitle||"id"]).map(i=>({[i]:{like:t}}));n.length>0&&(o=re(o,{or:n})),C(o)||(r=o)}return r};function ne(e){return e===void 0||typeof e=="number"?e:decodeURIComponent(e)}export{S as EntityType,E as PayloadIcon,q as PayloadLogo,L as Translation,z as WithServerSideProps,j as abortAndIgnore,P as filterFields,K as findLocaleFromCode,u as formatAdminURL,h as formatDate,Q as formatDocTitle,R as getInitialColumns,H as groupNavItems,_ as handleBackToDashboard,J as handleGoBack,X as handleTakeOver,Y as hasSavePermission,ee as isClientUserObject,te as isEditing,O as mergeFieldStyles,oe as mergeListSearchAndWhere,B as reduceToSerializableFields,V as requests,ne as sanitizeID,w as withMergedProps};
5
+ `,G=()=>l.createElement("svg",{className:"graphic-logo",fill:"none",height:"43.5",id:"b",viewBox:"0 0 193.38 43.5",width:"193.38",xmlns:"http://www.w3.org/2000/svg"},l.createElement("style",null,U),l.createElement("g",{id:"c"},l.createElement("path",{d:"M18.01,35.63l-12.36-7.13c-.15-.09-.25-.25-.25-.43v-11.02c0-.19.21-.31.37-.22l14.35,8.28c.2.12.45-.03.45-.26v-5.37c0-.21-.11-.41-.3-.52L3.01,9c-.15-.09-.35-.09-.5,0l-2.26,1.31c-.15.09-.25.25-.25.43v20.47c0,.18.1.34.25.43l17.73,10.24c.15.09.35.09.5,0l14.89-8.6c.2-.12.2-.4,0-.52l-4.64-2.68c-.19-.11-.41-.11-.6,0l-9.61,5.55c-.15.09-.35.09-.5,0Z"}),l.createElement("path",{d:"M36.21,10.3L18.48.07c-.15-.09-.35-.09-.5,0l-9.37,5.41c-.2.12-.2.4,0,.52l4.6,2.66c.19.11.41.11.6,0l4.2-2.42c.15-.09.35-.09.5,0l12.36,7.13c.15.09.25.25.25.43v11.07c0,.21.11.41.3.52l4.6,2.65c.2.12.45-.03.45-.26V10.74c0-.18-.1-.34-.25-.43Z"}),l.createElement("g",{id:"d"},l.createElement("path",{d:"M193.38,9.47c0,1.94-1.48,3.32-3.3,3.32s-3.31-1.39-3.31-3.32,1.49-3.31,3.31-3.31,3.3,1.39,3.3,3.31ZM192.92,9.47c0-1.68-1.26-2.88-2.84-2.88s-2.84,1.2-2.84,2.88,1.26,2.89,2.84,2.89,2.84-1.2,2.84-2.89ZM188.69,11.17v-3.51h1.61c.85,0,1.35.39,1.35,1.15,0,.53-.3.86-.67,1.02l.79,1.35h-.89l-.72-1.22h-.64v1.22h-.82ZM190.18,9.31c.46,0,.64-.16.64-.5s-.19-.49-.64-.49h-.67v.99h.67Z"}),l.createElement("path",{d:"M54.72,24.84v10.93h-5.4V6.1h12.26c7.02,0,11.1,3.2,11.1,9.39s-4.07,9.35-11.06,9.35h-6.9,0ZM61.12,20.52c4.07,0,6.11-1.66,6.11-5.03s-2.04-5.03-6.11-5.03h-6.4v10.06h6.4Z"}),l.createElement("path",{d:"M85.94,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.18-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM85.73,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z"}),l.createElement("path",{d:"M90.39,14.66h5.4l5.86,15.92h.08l5.57-15.92h5.28l-8.23,21.49c-2,5.28-4.45,7.32-8.89,7.36-.71,0-1.7-.08-2.45-.21v-4.03c.62.13.96.13,1.41.13,2.16,0,3.07-.75,4.2-3.66l-8.23-21.07h0Z"}),l.createElement("path",{d:"M113.46,35.77V6.1h5.32v29.67h-5.32Z"}),l.createElement("path",{d:"M130.79,36.27c-6.23,0-10.68-4.2-10.68-11.05s4.45-11.05,10.68-11.05,10.68,4.24,10.68,11.05-4.45,11.05-10.68,11.05ZM130.79,32.32c3.41,0,5.36-2.66,5.36-7.11s-1.95-7.11-5.36-7.11-5.36,2.7-5.36,7.11,1.91,7.11,5.36,7.11Z"}),l.createElement("path",{d:"M156.19,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.19-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM155.98,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z"}),l.createElement("path",{d:"M178.5,32.41c-1.04,2.12-3.58,3.87-6.78,3.87-5.53,0-9.31-4.49-9.31-11.05s3.78-11.05,9.31-11.05c3.28,0,5.69,1.83,6.69,3.95V6.1h5.32v29.67h-5.24v-3.37h0ZM178.55,24.84c0-4.11-1.95-6.78-5.32-6.78s-5.45,2.83-5.45,7.15,2,7.15,5.45,7.15,5.32-2.66,5.32-6.78v-.75h0Z"}))));function q(e){if(e)try{e.abort()}catch{}}import*as S from"qs-esm";var j={delete:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"delete"};return fetch(e,o)},get:(e,t={headers:{}})=>{let r="";return t.params&&(r=S.stringify(t.params,{addQueryPrefix:!0})),fetch(`${e}${r}`,{credentials:"include",...t})},patch:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"PATCH"};return fetch(e,o)},post:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"post"};return fetch(`${e}`,o)},put:(e,t={headers:{}})=>{let r=t&&t.headers?{...t.headers}:{},o={...t,credentials:"include",headers:{...r},method:"put"};return fetch(e,o)}};var V=(e,t)=>!e?.locales||e.locales.length===0?null:e.locales.find(r=>r?.code===t);var u=e=>{let{adminRoute:t,basePath:r="",path:o,serverURL:n}=e;if(t)if(t==="/"){if(!o)return`${n||""}${r}${t}`}else return`${n||""}${r}${t}${o}`;return`${n||""}${r}${o}`};import{format as K,formatDistanceToNow as Te}from"date-fns";var y=({date:e,i18n:t,pattern:r})=>{let o=new Date(e);return K(o,r,{locale:t.dateFNS})};import{getTranslation as W}from"@payloadcms/translations";var Q=({collectionConfig:e,data:t,dateFormat:r,fallback:o,globalConfig:n,i18n:i})=>{let s;if(e){let a=e?.admin?.useAsTitle;if(a&&(s=t?.[a]||s,s)){let d=e.fields.find(p=>"name"in p&&p.name===a);if(d?.type==="date"){let p="date"in d.admin&&d?.admin?.date?.displayFormat||r;s=y({date:s,i18n:i,pattern:p})||s}}}return n&&(s=W(n?.label,i)||n?.slug),s||(s=o||`[${i.t("general:untitled")}]`),s};import{getTranslation as C}from"@payloadcms/translations";var F=(r=>(r.collection="collections",r.global="globals",r))(F||{});function H(e,t,r){return e.reduce((n,i)=>{if(t?.[i.type.toLowerCase()]?.[i.entity.slug]?.read){let s=C(i.entity.admin.group,r),a="labels"in i.entity?i.entity.labels.plural:i.entity.label,d=typeof a=="function"?a({t:r.t}):a;if(i.entity.admin.group){let c=n.find(f=>C(f.label,r)===s),p=c;c||(p={entities:[],label:s},n.push(p)),p.entities.push({slug:i.entity.slug,type:i.type,label:d})}else n.find(p=>C(p.label,r)===r.t(`general:${i.type}`)).entities.push({slug:i.entity.slug,type:i.type,label:d})}return n},[{entities:[],label:r.t("general:collections")},{entities:[],label:r.t("general:globals")}]).filter(n=>n.entities.length>0)}var _=({adminRoute:e,router:t})=>{let r=u({adminRoute:e,path:"/"});t.push(r)};var J=({adminRoute:e,collectionSlug:t,router:r})=>{let o=u({adminRoute:e,path:t?`/collections/${t}`:"/"});r.push(o)};var X=(e,t,r,o,n,i,s,a,d,c)=>{if(d)try{i(e,t??r,o),n||(a.current.hasShownLockedModal=!0),a.current={hasShownLockedModal:a.current?.hasShownLockedModal,isLocked:!0,user:o},s(o),n&&c&&c(!1)}catch(p){console.error("Error during document takeover:",p)}};var Y=e=>{let{collectionSlug:t,docPermissions:r,globalSlug:o,isEditing:n}=e;return t?!!(n&&r?.update||!n&&r?.create):o?!!r?.update:!1};var ee=e=>e&&typeof e=="object";var te=({id:e,collectionSlug:t,globalSlug:r})=>!!(r||t&&e);var b=e=>Object.keys(e).length===0,re=(e,t)=>b(t)?e:b(e)?t:("and"in e?e.and.push(t):"or"in e?e={and:[e,t]}:e={and:[e,t]},e),oe=({collectionConfig:e,search:t,where:r={}})=>{if(t){let o={...r||{}},n=(e.admin.listSearchableFields||[e.admin?.useAsTitle||"id"]).map(i=>({[i]:{like:t}}));n.length>0&&(o=re(o,{or:n})),b(o)||(r=o)}return r};function ne(e){return e===void 0||typeof e=="number"?e:decodeURIComponent(e)}export{F as EntityType,E as PayloadIcon,G as PayloadLogo,L as Translation,z as WithServerSideProps,q as abortAndIgnore,P as filterFields,V as findLocaleFromCode,u as formatAdminURL,y as formatDate,Q as formatDocTitle,R as getInitialColumns,H as groupNavItems,_ as handleBackToDashboard,J as handleGoBack,X as handleTakeOver,Y as hasSavePermission,ee as isClientUserObject,te as isEditing,O as mergeFieldStyles,oe as mergeListSearchAndWhere,B as reduceToSerializableFields,j as requests,ne as sanitizeID,w as withMergedProps};
6
6
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/elements/TableColumns/filterFields.tsx", "../../../src/elements/TableColumns/getInitialColumns.ts", "../../../src/elements/Translation/index.tsx", "../../../src/elements/withMergedProps/index.tsx", "../../../src/elements/WithServerSideProps/index.tsx", "../../../src/fields/mergeFieldStyles.ts", "../../../src/forms/Form/reduceToSerializableFields.ts", "../../../src/graphics/Icon/index.tsx", "../../../src/graphics/Logo/index.tsx", "../../../src/utilities/abortAndIgnore.ts", "../../../src/utilities/api.ts", "../../../src/utilities/findLocaleFromCode.ts", "../../../src/utilities/formatAdminURL.ts", "../../../src/utilities/formatDate.ts", "../../../src/utilities/formatDocTitle.ts", "../../../src/utilities/groupNavItems.ts", "../../../src/utilities/handleBackToDashboard.tsx", "../../../src/utilities/handleGoBack.tsx", "../../../src/utilities/handleTakeOver.tsx", "../../../src/utilities/hasSavePermission.ts", "../../../src/utilities/isClientUserObject.ts", "../../../src/utilities/isEditing.ts", "../../../src/utilities/mergeListSearchAndWhere.ts", "../../../src/utilities/sanitizeID.ts"],
4
- "sourcesContent": ["import type { ClientField, Field } from 'payload'\n\n// 1. Skips fields that are hidden, disabled, or presentational-only (i.e. `ui` fields)\n// 2. Maps through top-level `tabs` fields and filters out the same\nexport const filterFields = <T extends ClientField | Field>(incomingFields: T[]): T[] => {\n const shouldSkipField = (field: T): boolean =>\n (field.type !== 'ui' && field.admin?.disabled === true) ||\n field?.admin?.disableListColumn === true\n\n const fields: T[] = incomingFields?.reduce((formatted, field) => {\n if (shouldSkipField(field)) {\n return formatted\n }\n\n const formattedField: T =\n field.type === 'tabs' && 'tabs' in field\n ? {\n ...field,\n tabs: field.tabs.map((tab) => ({\n ...tab,\n fields: tab.fields.filter((tabField) => !shouldSkipField(tabField)),\n })),\n }\n : field\n\n return [...formatted, formattedField]\n }, [])\n\n return fields\n}\n", "import type { ClientField, Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\n\nconst getRemainingColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n): ColumnPreferences =>\n fields?.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fields' in field) {\n return [...remaining, ...getRemainingColumns(field.fields, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...remaining,\n ...field.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fields, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\nexport const getInitialColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n defaultColumns: string[],\n): ColumnPreferences => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fields, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n accessor: column,\n active: true,\n }))\n}\n", "import type { ClientTranslationKeys, TFunction } from '@payloadcms/translations'\n\nimport * as React from 'react'\n\nconst RecursiveTranslation: React.FC<{\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n translationString: string\n}> = ({ elements, translationString }) => {\n const regex = /(<[^>]+>.*?<\\/[^>]+>)/g\n const sections = translationString.split(regex)\n\n return (\n <span>\n {sections.map((section, index) => {\n if (elements && section.startsWith('<') && section.endsWith('>')) {\n const elementKey = section[1]\n const Element = elements[elementKey]\n\n if (Element) {\n const regex = new RegExp(`<${elementKey}>(.*?)<\\/${elementKey}>`, 'g')\n const children = section.replace(regex, (_, group) => group)\n\n return (\n <Element key={index}>\n <RecursiveTranslation translationString={children} />\n </Element>\n )\n }\n }\n\n return section\n })}\n </span>\n )\n}\n\nexport type TranslationProps = {\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n i18nKey: ClientTranslationKeys\n t: TFunction\n variables?: Record<string, unknown>\n}\n\nexport const Translation: React.FC<TranslationProps> = ({ elements, i18nKey, t, variables }) => {\n const stringWithVariables = t(i18nKey, variables || {})\n\n if (!elements) {\n return stringWithVariables\n }\n\n return <RecursiveTranslation elements={elements} translationString={stringWithVariables} />\n}\n", "import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = simpleMergeProps(passedProps, toMergeIntoProps) as CompleteReturnProps\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n\nfunction simpleMergeProps(props, toMerge) {\n return { ...props, ...toMerge }\n}\n", "import type { WithServerSidePropsComponent } from 'payload'\n\nimport { isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\nexport const WithServerSideProps: WithServerSidePropsComponent = ({\n Component,\n serverOnlyProps,\n ...rest\n}) => {\n if (Component) {\n const WithServerSideProps: React.FC = (passedProps) => {\n const propsWithServerOnlyProps = {\n ...passedProps,\n ...(isReactServerComponentOrFunction(Component) ? (serverOnlyProps ?? {}) : {}),\n }\n\n return <Component {...propsWithServerOnlyProps} />\n }\n\n return WithServerSideProps(rest)\n }\n\n return null\n}\n", "import type { ClientField } from 'payload'\n\nexport const mergeFieldStyles = (\n field: ClientField | Omit<ClientField, 'type'>,\n): React.CSSProperties => ({\n ...(field?.admin?.style || {}),\n ...(field?.admin?.width\n ? {\n '--field-width': field.admin.width,\n }\n : {\n flex: '1 1 auto',\n }),\n // allow flex overrides to still take precedence over the fallback\n ...(field?.admin?.style?.flex\n ? {\n flex: field.admin.style.flex,\n }\n : {}),\n})\n", "import { type FormField, type FormState } from 'payload'\nimport { deepCopyObjectComplex } from 'payload/shared'\n\ntype BlacklistedKeys = 'customComponents' | 'validate'\nconst blacklistedKeys: BlacklistedKeys[] = ['validate', 'customComponents']\n\nconst sanitizeField = (incomingField: FormField): FormField => {\n const field = deepCopyObjectComplex(incomingField)\n\n blacklistedKeys.forEach((key) => {\n delete field[key]\n })\n\n return field\n}\n\n/* \n Takes in FormState and removes fields that are not serializable.\n Returns FormState without blacklisted keys.\n**/\nexport const reduceToSerializableFields = (\n fields: FormState,\n): {\n [key: string]: Omit<FormField, BlacklistedKeys>\n} => {\n return Object.keys(fields).reduce(\n (acc, key) => {\n acc[key] = sanitizeField(fields[key])\n return acc\n },\n {} as {\n [key: string]: Omit<FormField, BlacklistedKeys>\n },\n )\n}\n", "import React from 'react'\n\nexport const PayloadIcon: React.FC<{\n fill?: string\n}> = ({ fill: fillFromProps }) => {\n const fill = fillFromProps || 'var(--theme-elevation-1000)'\n\n return (\n <svg\n className=\"graphic-icon\"\n height=\"100%\"\n viewBox=\"0 0 25 25\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.8673 21.2336L4.40922 16.9845C4.31871 16.9309 4.25837 16.8355 4.25837 16.7282V10.1609C4.25837 10.0477 4.38508 9.97616 4.48162 10.0298L13.1404 14.9642C13.2611 15.0358 13.412 14.9464 13.412 14.8093V11.6091C13.412 11.4839 13.3456 11.3647 13.2309 11.2992L2.81624 5.36353C2.72573 5.30989 2.60505 5.30989 2.51454 5.36353L1.15085 6.14422C1.06034 6.19786 1 6.29321 1 6.40048V18.5995C1 18.7068 1.06034 18.8021 1.15085 18.8558L11.8491 24.9583C11.9397 25.0119 12.0603 25.0119 12.1509 24.9583L21.1355 19.8331C21.2562 19.7616 21.2562 19.5948 21.1355 19.5232L18.3357 17.9261C18.2211 17.8605 18.0883 17.8605 17.9737 17.9261L12.175 21.2336C12.0845 21.2872 11.9638 21.2872 11.8733 21.2336H11.8673Z\"\n fill={fill}\n />\n <path\n d=\"M22.8491 6.13827L12.1508 0.0417218C12.0603 -0.0119135 11.9397 -0.0119135 11.8491 0.0417218L6.19528 3.2658C6.0746 3.33731 6.0746 3.50418 6.19528 3.57569L8.97092 5.16091C9.08557 5.22647 9.21832 5.22647 9.33296 5.16091L11.8672 3.71872C11.9578 3.66508 12.0784 3.66508 12.1689 3.71872L19.627 7.96782C19.7175 8.02146 19.7778 8.11681 19.7778 8.22408V14.8212C19.7778 14.9464 19.8442 15.0656 19.9589 15.1311L22.7345 16.7104C22.8552 16.7819 23.006 16.6925 23.006 16.5554V6.40048C23.006 6.29321 22.9457 6.19786 22.8552 6.14423L22.8491 6.13827Z\"\n fill={fill}\n />\n </svg>\n )\n}\n", "import React from 'react'\n\nconst css = `\n .graphic-logo path {\n fill: var(--theme-elevation-1000);\n }\n`\n\nexport const PayloadLogo: React.FC = () => (\n <svg\n className=\"graphic-logo\"\n fill=\"none\"\n height=\"43.5\"\n id=\"b\"\n viewBox=\"0 0 193.38 43.5\"\n width=\"193.38\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <style>{css}</style>\n <g id=\"c\">\n <path d=\"M18.01,35.63l-12.36-7.13c-.15-.09-.25-.25-.25-.43v-11.02c0-.19.21-.31.37-.22l14.35,8.28c.2.12.45-.03.45-.26v-5.37c0-.21-.11-.41-.3-.52L3.01,9c-.15-.09-.35-.09-.5,0l-2.26,1.31c-.15.09-.25.25-.25.43v20.47c0,.18.1.34.25.43l17.73,10.24c.15.09.35.09.5,0l14.89-8.6c.2-.12.2-.4,0-.52l-4.64-2.68c-.19-.11-.41-.11-.6,0l-9.61,5.55c-.15.09-.35.09-.5,0Z\" />\n <path d=\"M36.21,10.3L18.48.07c-.15-.09-.35-.09-.5,0l-9.37,5.41c-.2.12-.2.4,0,.52l4.6,2.66c.19.11.41.11.6,0l4.2-2.42c.15-.09.35-.09.5,0l12.36,7.13c.15.09.25.25.25.43v11.07c0,.21.11.41.3.52l4.6,2.65c.2.12.45-.03.45-.26V10.74c0-.18-.1-.34-.25-.43Z\" />\n <g id=\"d\">\n <path d=\"M193.38,9.47c0,1.94-1.48,3.32-3.3,3.32s-3.31-1.39-3.31-3.32,1.49-3.31,3.31-3.31,3.3,1.39,3.3,3.31ZM192.92,9.47c0-1.68-1.26-2.88-2.84-2.88s-2.84,1.2-2.84,2.88,1.26,2.89,2.84,2.89,2.84-1.2,2.84-2.89ZM188.69,11.17v-3.51h1.61c.85,0,1.35.39,1.35,1.15,0,.53-.3.86-.67,1.02l.79,1.35h-.89l-.72-1.22h-.64v1.22h-.82ZM190.18,9.31c.46,0,.64-.16.64-.5s-.19-.49-.64-.49h-.67v.99h.67Z\" />\n <path d=\"M54.72,24.84v10.93h-5.4V6.1h12.26c7.02,0,11.1,3.2,11.1,9.39s-4.07,9.35-11.06,9.35h-6.9,0ZM61.12,20.52c4.07,0,6.11-1.66,6.11-5.03s-2.04-5.03-6.11-5.03h-6.4v10.06h6.4Z\" />\n <path d=\"M85.94,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.18-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM85.73,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z\" />\n <path d=\"M90.39,14.66h5.4l5.86,15.92h.08l5.57-15.92h5.28l-8.23,21.49c-2,5.28-4.45,7.32-8.89,7.36-.71,0-1.7-.08-2.45-.21v-4.03c.62.13.96.13,1.41.13,2.16,0,3.07-.75,4.2-3.66l-8.23-21.07h0Z\" />\n <path d=\"M113.46,35.77V6.1h5.32v29.67h-5.32Z\" />\n <path d=\"M130.79,36.27c-6.23,0-10.68-4.2-10.68-11.05s4.45-11.05,10.68-11.05,10.68,4.24,10.68,11.05-4.45,11.05-10.68,11.05ZM130.79,32.32c3.41,0,5.36-2.66,5.36-7.11s-1.95-7.11-5.36-7.11-5.36,2.7-5.36,7.11,1.91,7.11,5.36,7.11Z\" />\n <path d=\"M156.19,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.19-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM155.98,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z\" />\n <path d=\"M178.5,32.41c-1.04,2.12-3.58,3.87-6.78,3.87-5.53,0-9.31-4.49-9.31-11.05s3.78-11.05,9.31-11.05c3.28,0,5.69,1.83,6.69,3.95V6.1h5.32v29.67h-5.24v-3.37h0ZM178.55,24.84c0-4.11-1.95-6.78-5.32-6.78s-5.45,2.83-5.45,7.15,2,7.15,5.45,7.15,5.32-2.66,5.32-6.78v-.75h0Z\" />\n </g>\n </g>\n </svg>\n)\n", "export function abortAndIgnore(controller: AbortController) {\n if (controller) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n}\n", "import * as qs from 'qs-esm'\n\ntype GetOptions = {\n params?: Record<string, unknown>\n} & RequestInit\n\nexport const requests = {\n delete: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'delete',\n }\n\n return fetch(url, formattedOptions)\n },\n\n get: (url: string, options: GetOptions = { headers: {} }): Promise<Response> => {\n let query = ''\n if (options.params) {\n query = qs.stringify(options.params, { addQueryPrefix: true })\n }\n return fetch(`${url}${query}`, {\n credentials: 'include',\n ...options,\n })\n },\n\n patch: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'PATCH',\n }\n\n return fetch(url, formattedOptions)\n },\n\n post: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'post',\n }\n\n return fetch(`${url}`, formattedOptions)\n },\n\n put: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'put',\n }\n\n return fetch(url, formattedOptions)\n },\n}\n", "import type { Locale, SanitizedLocalizationConfig } from 'payload'\n/*\n return the Locale for given locale code, else return null\n*/\nexport const findLocaleFromCode = (\n localizationConfig: SanitizedLocalizationConfig,\n locale: string,\n): Locale | null => {\n if (!localizationConfig?.locales || localizationConfig.locales.length === 0) {\n return null\n }\n\n return localizationConfig.locales.find((el) => el?.code === locale)\n}\n", "import type { Config } from 'payload'\n\n/** Will read the `routes.admin` config and appropriately handle `\"/\"` admin paths */\nexport const formatAdminURL = (args: {\n adminRoute: Config['routes']['admin']\n basePath?: string\n path: string\n serverURL?: Config['serverURL']\n}): string => {\n const { adminRoute, basePath = '', path, serverURL } = args\n\n if (adminRoute) {\n if (adminRoute === '/') {\n if (!path) {\n return `${serverURL || ''}${basePath}${adminRoute}`\n }\n } else {\n return `${serverURL || ''}${basePath}${adminRoute}${path}`\n }\n }\n\n return `${serverURL || ''}${basePath}${path}`\n}\n", "import type { I18n } from '@payloadcms/translations'\n\nimport { format, formatDistanceToNow } from 'date-fns'\n\ntype FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n pattern: string\n}\n\nexport const formatDate = ({ date, i18n, pattern }: FormatDateArgs): string => {\n const theDate = new Date(date)\n return format(theDate, pattern, { locale: i18n.dateFNS })\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = new Date(date)\n return formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n}\n", "import type { I18n } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n SanitizedConfig,\n TypeWithID,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { formatDate } from '../utilities/formatDate.js'\n\nexport const formatDocTitle = ({\n collectionConfig,\n data,\n dateFormat: dateFormatFromConfig,\n fallback,\n globalConfig,\n i18n,\n}: {\n collectionConfig?: ClientCollectionConfig\n data: TypeWithID\n dateFormat: SanitizedConfig['admin']['dateFormat']\n fallback?: string\n globalConfig?: ClientGlobalConfig\n i18n: I18n<any, any>\n}): string => {\n let title: string\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n if (useAsTitle) {\n title = data?.[useAsTitle] || title\n\n if (title) {\n const fieldConfig = collectionConfig.fields.find(\n (f) => 'name' in f && f.name === useAsTitle,\n )\n\n const isDate = fieldConfig?.type === 'date'\n\n if (isDate) {\n const dateFormat =\n ('date' in fieldConfig.admin && fieldConfig?.admin?.date?.displayFormat) ||\n dateFormatFromConfig\n title = formatDate({ date: title, i18n, pattern: dateFormat }) || title\n }\n }\n }\n }\n\n if (globalConfig) {\n title = getTranslation(globalConfig?.label, i18n) || globalConfig?.slug\n }\n\n if (!title) {\n title = fallback || `[${i18n.t('general:untitled')}]`\n }\n\n return title\n}\n", "import type { I18nClient } from '@payloadcms/translations'\nimport type {\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n StaticLabel,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nexport enum EntityType {\n collection = 'collections',\n global = 'globals',\n}\n\nexport type EntityToGroup =\n | {\n entity: SanitizedCollectionConfig\n type: EntityType.collection\n }\n | {\n entity: SanitizedGlobalConfig\n type: EntityType.global\n }\n\nexport type NavGroupType = {\n entities: {\n label: StaticLabel\n slug: string\n type: EntityType\n }[]\n label: string\n}\n\nexport function groupNavItems(\n entities: EntityToGroup[],\n permissions: SanitizedPermissions,\n i18n: I18nClient,\n): NavGroupType[] {\n const result = entities.reduce(\n (groups, entityToGroup) => {\n if (permissions?.[entityToGroup.type.toLowerCase()]?.[entityToGroup.entity.slug]?.read) {\n const translatedGroup = getTranslation(entityToGroup.entity.admin.group, i18n)\n\n if (entityToGroup.entity.admin.group) {\n const existingGroup = groups.find(\n (group) => getTranslation(group.label, i18n) === translatedGroup,\n ) as NavGroupType\n\n let matchedGroup: NavGroupType = existingGroup\n\n if (!existingGroup) {\n matchedGroup = { entities: [], label: translatedGroup }\n groups.push(matchedGroup)\n }\n\n matchedGroup.entities.push({\n slug: entityToGroup.entity.slug,\n type: entityToGroup.type,\n label:\n 'labels' in entityToGroup.entity\n ? typeof entityToGroup.entity.labels.plural === 'function'\n ? entityToGroup.entity.labels.plural({ t: i18n.t })\n : entityToGroup.entity.labels.plural\n : entityToGroup.entity.label,\n })\n } else {\n const defaultGroup = groups.find((group) => {\n return getTranslation(group.label, i18n) === i18n.t(`general:${entityToGroup.type}`)\n }) as NavGroupType\n defaultGroup.entities.push({\n slug: entityToGroup.entity.slug,\n type: entityToGroup.type,\n label:\n 'labels' in entityToGroup.entity\n ? typeof entityToGroup.entity.labels.plural === 'function'\n ? entityToGroup.entity.labels.plural({ t: i18n.t })\n : entityToGroup.entity.labels.plural\n : entityToGroup.entity.label,\n })\n }\n }\n\n return groups\n },\n [\n {\n entities: [],\n label: i18n.t('general:collections'),\n },\n {\n entities: [],\n label: i18n.t('general:globals'),\n },\n ],\n )\n\n return result.filter((group) => group.entities.length > 0)\n}\n", "import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime.js'\n\nimport { formatAdminURL } from './formatAdminURL.js'\n\ntype BackToDashboardProps = {\n adminRoute: string\n router: AppRouterInstance\n}\n\nexport const handleBackToDashboard = ({ adminRoute, router }: BackToDashboardProps) => {\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: '/',\n })\n router.push(redirectRoute)\n}\n", "import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime.js'\n\nimport { formatAdminURL } from './formatAdminURL.js'\n\ntype GoBackProps = {\n adminRoute: string\n collectionSlug: string\n router: AppRouterInstance\n}\n\nexport const handleGoBack = ({ adminRoute, collectionSlug, router }: GoBackProps) => {\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: collectionSlug ? `/collections/${collectionSlug}` : '/',\n })\n router.push(redirectRoute)\n}\n", "import type { ClientUser } from 'payload'\n\nexport const handleTakeOver = (\n id: number | string,\n collectionSlug: string,\n globalSlug: string,\n user: ClientUser | number | string,\n isWithinDoc: boolean,\n updateDocumentEditor: (\n docId: number | string,\n slug: string,\n user: ClientUser | number | string,\n ) => Promise<void>,\n setCurrentEditor: (value: React.SetStateAction<ClientUser | number | string>) => void,\n documentLockStateRef: React.RefObject<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n }>,\n isLockingEnabled: boolean,\n setIsReadOnlyForIncomingUser?: (value: React.SetStateAction<boolean>) => void,\n): void => {\n if (!isLockingEnabled) {\n return\n }\n\n try {\n // Call updateDocumentEditor to update the document's owner to the current user\n void updateDocumentEditor(id, collectionSlug ?? globalSlug, user)\n\n if (!isWithinDoc) {\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n // Update the locked state to reflect the current user as the owner\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal,\n isLocked: true,\n user,\n }\n setCurrentEditor(user)\n\n // If this is a takeover within the document, ensure the document is editable\n if (isWithinDoc && setIsReadOnlyForIncomingUser) {\n setIsReadOnlyForIncomingUser(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error during document takeover:', error)\n }\n}\n", "import type {\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedGlobalPermission,\n} from 'payload'\n\nexport const hasSavePermission = (args: {\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n collectionSlug?: string\n docPermissions: SanitizedDocumentPermissions\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n globalSlug?: string\n isEditing: boolean\n}) => {\n const { collectionSlug, docPermissions, globalSlug, isEditing } = args\n\n if (collectionSlug) {\n return Boolean(\n (isEditing && docPermissions?.update) ||\n (!isEditing && (docPermissions as SanitizedCollectionPermission)?.create),\n )\n }\n\n if (globalSlug) {\n return Boolean((docPermissions as SanitizedGlobalPermission)?.update)\n }\n\n return false\n}\n", "import type { ClientUser } from 'payload'\n\nexport const isClientUserObject = (user): user is ClientUser => {\n return user && typeof user === 'object'\n}\n", "export const isEditing = ({\n id,\n collectionSlug,\n globalSlug,\n}: {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}): boolean => Boolean(globalSlug || (collectionSlug && !!id))\n", "import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload'\n\nconst isEmptyObject = (obj: object) => Object.keys(obj).length === 0\n\nexport const hoistQueryParamsToAnd = (currentWhere: Where, incomingWhere: Where) => {\n if (isEmptyObject(incomingWhere)) {\n return currentWhere\n }\n\n if (isEmptyObject(currentWhere)) {\n return incomingWhere\n }\n\n if ('and' in currentWhere) {\n currentWhere.and.push(incomingWhere)\n } else if ('or' in currentWhere) {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n } else {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n }\n\n return currentWhere\n}\n\ntype Args = {\n collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig\n search: string\n where?: Where\n}\n\nexport const mergeListSearchAndWhere = ({ collectionConfig, search, where = {} }: Args): Where => {\n if (search) {\n let copyOfWhere = { ...(where || {}) }\n\n const searchAsConditions = (\n collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']\n ).map((fieldName) => ({\n [fieldName]: {\n like: search,\n },\n }))\n\n if (searchAsConditions.length > 0) {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {\n or: searchAsConditions,\n })\n }\n\n if (!isEmptyObject(copyOfWhere)) {\n where = copyOfWhere\n }\n }\n\n return where\n}\n", "export function sanitizeID(id: number | string): number | string {\n if (id === undefined) {\n return id\n }\n\n if (typeof id === 'number') {\n return id\n }\n\n return decodeURIComponent(id)\n}\n"],
5
- "mappings": "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",
6
- "names": ["filterFields", "incomingFields", "shouldSkipField", "field", "formatted", "formattedField", "tab", "tabField", "fieldAffectsData", "getRemainingColumns", "fields", "useAsTitle", "remaining", "field", "tabFieldColumns", "tab", "getInitialColumns", "defaultColumns", "initialColumns", "remainingColumns", "column", "React", "RecursiveTranslation", "elements", "translationString", "regex", "sections", "section", "index", "elementKey", "Element", "children", "_", "group", "Translation", "i18nKey", "t", "variables", "stringWithVariables", "isReactServerComponentOrFunction", "serverProps", "React", "withMergedProps", "Component", "sanitizeServerOnlyProps", "toMergeIntoProps", "passedProps", "mergedProps", "simpleMergeProps", "prop", "props", "toMerge", "isReactServerComponentOrFunction", "React", "WithServerSideProps", "Component", "serverOnlyProps", "rest", "passedProps", "propsWithServerOnlyProps", "mergeFieldStyles", "field", "deepCopyObjectComplex", "blacklistedKeys", "sanitizeField", "incomingField", "field", "key", "reduceToSerializableFields", "fields", "acc", "React", "PayloadIcon", "fillFromProps", "fill", "React", "css", "PayloadLogo", "abortAndIgnore", "controller", "qs", "requests", "url", "options", "headers", "formattedOptions", "query", "findLocaleFromCode", "localizationConfig", "locale", "el", "formatAdminURL", "args", "adminRoute", "basePath", "path", "serverURL", "format", "formatDistanceToNow", "formatDate", "date", "i18n", "pattern", "theDate", "getTranslation", "formatDocTitle", "collectionConfig", "data", "dateFormatFromConfig", "fallback", "globalConfig", "i18n", "title", "useAsTitle", "fieldConfig", "f", "dateFormat", "formatDate", "getTranslation", "getTranslation", "EntityType", "groupNavItems", "entities", "permissions", "i18n", "groups", "entityToGroup", "translatedGroup", "existingGroup", "group", "matchedGroup", "handleBackToDashboard", "adminRoute", "router", "redirectRoute", "formatAdminURL", "handleGoBack", "adminRoute", "collectionSlug", "router", "redirectRoute", "formatAdminURL", "handleTakeOver", "id", "collectionSlug", "globalSlug", "user", "isWithinDoc", "updateDocumentEditor", "setCurrentEditor", "documentLockStateRef", "isLockingEnabled", "setIsReadOnlyForIncomingUser", "error", "hasSavePermission", "args", "collectionSlug", "docPermissions", "globalSlug", "isEditing", "isClientUserObject", "user", "isEditing", "id", "collectionSlug", "globalSlug", "isEmptyObject", "obj", "hoistQueryParamsToAnd", "currentWhere", "incomingWhere", "mergeListSearchAndWhere", "collectionConfig", "search", "where", "copyOfWhere", "searchAsConditions", "fieldName", "sanitizeID", "id"]
4
+ "sourcesContent": ["import type { ClientField, Field } from 'payload'\n\n// 1. Skips fields that are hidden, disabled, or presentational-only (i.e. `ui` fields)\n// 2. Maps through top-level `tabs` fields and filters out the same\nexport const filterFields = <T extends ClientField | Field>(incomingFields: T[]): T[] => {\n const shouldSkipField = (field: T): boolean =>\n (field.type !== 'ui' && field.admin?.disabled === true) ||\n field?.admin?.disableListColumn === true\n\n const fields: T[] = incomingFields?.reduce((formatted, field) => {\n if (shouldSkipField(field)) {\n return formatted\n }\n\n const formattedField: T =\n field.type === 'tabs' && 'tabs' in field\n ? {\n ...field,\n tabs: field.tabs.map((tab) => ({\n ...tab,\n fields: tab.fields.filter((tabField) => !shouldSkipField(tabField)),\n })),\n }\n : field\n\n return [...formatted, formattedField]\n }, [])\n\n return fields\n}\n", "import type { ClientField, Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\n\nconst getRemainingColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n): ColumnPreferences =>\n fields?.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fields' in field) {\n return [...remaining, ...getRemainingColumns(field.fields, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...remaining,\n ...field.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fields, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\nexport const getInitialColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n defaultColumns: string[],\n): ColumnPreferences => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fields, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n accessor: column,\n active: true,\n }))\n}\n", "import type { ClientTranslationKeys, TFunction } from '@payloadcms/translations'\n\nimport * as React from 'react'\n\nconst RecursiveTranslation: React.FC<{\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n translationString: string\n}> = ({ elements, translationString }) => {\n const regex = /(<[^>]+>.*?<\\/[^>]+>)/g\n const sections = translationString.split(regex)\n\n return (\n <span>\n {sections.map((section, index) => {\n if (elements && section.startsWith('<') && section.endsWith('>')) {\n const elementKey = section[1]\n const Element = elements[elementKey]\n\n if (Element) {\n const regex = new RegExp(`<${elementKey}>(.*?)<\\/${elementKey}>`, 'g')\n const children = section.replace(regex, (_, group) => group)\n\n return (\n <Element key={index}>\n <RecursiveTranslation translationString={children} />\n </Element>\n )\n }\n }\n\n return section\n })}\n </span>\n )\n}\n\nexport type TranslationProps = {\n elements?: Record<string, React.FC<{ children: React.ReactNode }>>\n i18nKey: ClientTranslationKeys\n t: TFunction\n variables?: Record<string, unknown>\n}\n\nexport const Translation: React.FC<TranslationProps> = ({ elements, i18nKey, t, variables }) => {\n const stringWithVariables = t(i18nKey, variables || {})\n\n if (!elements) {\n return stringWithVariables\n }\n\n return <RecursiveTranslation elements={elements} translationString={stringWithVariables} />\n}\n", "import { isReactServerComponentOrFunction, serverProps } from 'payload/shared'\nimport React from 'react'\n\n/**\n * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`)\n * with any properties passed to the resulting component.\n *\n * Use this when you want to pre-specify some props for a component, while also allowing users to\n * pass in their own props. The HOC ensures the passed props and predefined props are combined before\n * rendering the original component.\n *\n * @example\n * const PredefinedComponent = getMergedPropsComponent({\n * Component: OriginalComponent,\n * toMergeIntoProps: { someExtraValue: 5 }\n * });\n * // Using <PredefinedComponent customProp=\"value\" /> will result in\n * // <OriginalComponent customProp=\"value\" someExtraValue={5} />\n *\n * @returns A higher-order component with combined properties.\n *\n * @param Component - The original component to wrap.\n * @param sanitizeServerOnlyProps - If true, server-only props will be removed from the merged props. @default true if the component is not a server component, false otherwise.\n * @param toMergeIntoProps - The properties to merge into the passed props.\n */\nexport function withMergedProps<ToMergeIntoProps, CompleteReturnProps>({\n Component,\n sanitizeServerOnlyProps,\n toMergeIntoProps,\n}: {\n Component: React.FC<CompleteReturnProps>\n sanitizeServerOnlyProps?: boolean\n toMergeIntoProps: ToMergeIntoProps\n}): React.FC<CompleteReturnProps> {\n if (sanitizeServerOnlyProps === undefined) {\n sanitizeServerOnlyProps = !isReactServerComponentOrFunction(Component)\n }\n // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props\n const MergedPropsComponent: React.FC<CompleteReturnProps> = (passedProps) => {\n const mergedProps = simpleMergeProps(passedProps, toMergeIntoProps) as CompleteReturnProps\n\n if (sanitizeServerOnlyProps) {\n serverProps.forEach((prop) => {\n delete mergedProps[prop]\n })\n }\n\n return <Component {...mergedProps} />\n }\n\n return MergedPropsComponent\n}\n\nfunction simpleMergeProps(props, toMerge) {\n return { ...props, ...toMerge }\n}\n", "import type { WithServerSidePropsComponent } from 'payload'\n\nimport { isReactServerComponentOrFunction } from 'payload/shared'\nimport React from 'react'\n\nexport const WithServerSideProps: WithServerSidePropsComponent = ({\n Component,\n serverOnlyProps,\n ...rest\n}) => {\n if (Component) {\n const WithServerSideProps: React.FC = (passedProps) => {\n const propsWithServerOnlyProps = {\n ...passedProps,\n ...(isReactServerComponentOrFunction(Component) ? (serverOnlyProps ?? {}) : {}),\n }\n\n return <Component {...propsWithServerOnlyProps} />\n }\n\n return WithServerSideProps(rest)\n }\n\n return null\n}\n", "import type { ClientField } from 'payload'\n\nexport const mergeFieldStyles = (\n field: ClientField | Omit<ClientField, 'type'>,\n): React.CSSProperties => ({\n ...(field?.admin?.style || {}),\n ...(field?.admin?.width\n ? {\n '--field-width': field.admin.width,\n }\n : {\n flex: '1 1 auto',\n }),\n // allow flex overrides to still take precedence over the fallback\n ...(field?.admin?.style?.flex\n ? {\n flex: field.admin.style.flex,\n }\n : {}),\n})\n", "import { type FormField, type FormState } from 'payload'\nimport { deepCopyObjectComplex } from 'payload/shared'\n\ntype BlacklistedKeys = 'customComponents' | 'validate'\nconst blacklistedKeys: BlacklistedKeys[] = ['validate', 'customComponents']\n\nconst sanitizeField = (incomingField: FormField): FormField => {\n const field = deepCopyObjectComplex(incomingField)\n\n blacklistedKeys.forEach((key) => {\n delete field[key]\n })\n\n return field\n}\n\n/* \n Takes in FormState and removes fields that are not serializable.\n Returns FormState without blacklisted keys.\n**/\nexport const reduceToSerializableFields = (\n fields: FormState,\n): {\n [key: string]: Omit<FormField, BlacklistedKeys>\n} => {\n return Object.keys(fields).reduce(\n (acc, key) => {\n acc[key] = sanitizeField(fields[key])\n return acc\n },\n {} as {\n [key: string]: Omit<FormField, BlacklistedKeys>\n },\n )\n}\n", "import React from 'react'\n\nexport const PayloadIcon: React.FC<{\n fill?: string\n}> = ({ fill: fillFromProps }) => {\n const fill = fillFromProps || 'var(--theme-elevation-1000)'\n\n return (\n <svg\n className=\"graphic-icon\"\n height=\"100%\"\n viewBox=\"0 0 25 25\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.8673 21.2336L4.40922 16.9845C4.31871 16.9309 4.25837 16.8355 4.25837 16.7282V10.1609C4.25837 10.0477 4.38508 9.97616 4.48162 10.0298L13.1404 14.9642C13.2611 15.0358 13.412 14.9464 13.412 14.8093V11.6091C13.412 11.4839 13.3456 11.3647 13.2309 11.2992L2.81624 5.36353C2.72573 5.30989 2.60505 5.30989 2.51454 5.36353L1.15085 6.14422C1.06034 6.19786 1 6.29321 1 6.40048V18.5995C1 18.7068 1.06034 18.8021 1.15085 18.8558L11.8491 24.9583C11.9397 25.0119 12.0603 25.0119 12.1509 24.9583L21.1355 19.8331C21.2562 19.7616 21.2562 19.5948 21.1355 19.5232L18.3357 17.9261C18.2211 17.8605 18.0883 17.8605 17.9737 17.9261L12.175 21.2336C12.0845 21.2872 11.9638 21.2872 11.8733 21.2336H11.8673Z\"\n fill={fill}\n />\n <path\n d=\"M22.8491 6.13827L12.1508 0.0417218C12.0603 -0.0119135 11.9397 -0.0119135 11.8491 0.0417218L6.19528 3.2658C6.0746 3.33731 6.0746 3.50418 6.19528 3.57569L8.97092 5.16091C9.08557 5.22647 9.21832 5.22647 9.33296 5.16091L11.8672 3.71872C11.9578 3.66508 12.0784 3.66508 12.1689 3.71872L19.627 7.96782C19.7175 8.02146 19.7778 8.11681 19.7778 8.22408V14.8212C19.7778 14.9464 19.8442 15.0656 19.9589 15.1311L22.7345 16.7104C22.8552 16.7819 23.006 16.6925 23.006 16.5554V6.40048C23.006 6.29321 22.9457 6.19786 22.8552 6.14423L22.8491 6.13827Z\"\n fill={fill}\n />\n </svg>\n )\n}\n", "import React from 'react'\n\nconst css = `\n .graphic-logo path {\n fill: var(--theme-elevation-1000);\n }\n`\n\nexport const PayloadLogo: React.FC = () => (\n <svg\n className=\"graphic-logo\"\n fill=\"none\"\n height=\"43.5\"\n id=\"b\"\n viewBox=\"0 0 193.38 43.5\"\n width=\"193.38\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <style>{css}</style>\n <g id=\"c\">\n <path d=\"M18.01,35.63l-12.36-7.13c-.15-.09-.25-.25-.25-.43v-11.02c0-.19.21-.31.37-.22l14.35,8.28c.2.12.45-.03.45-.26v-5.37c0-.21-.11-.41-.3-.52L3.01,9c-.15-.09-.35-.09-.5,0l-2.26,1.31c-.15.09-.25.25-.25.43v20.47c0,.18.1.34.25.43l17.73,10.24c.15.09.35.09.5,0l14.89-8.6c.2-.12.2-.4,0-.52l-4.64-2.68c-.19-.11-.41-.11-.6,0l-9.61,5.55c-.15.09-.35.09-.5,0Z\" />\n <path d=\"M36.21,10.3L18.48.07c-.15-.09-.35-.09-.5,0l-9.37,5.41c-.2.12-.2.4,0,.52l4.6,2.66c.19.11.41.11.6,0l4.2-2.42c.15-.09.35-.09.5,0l12.36,7.13c.15.09.25.25.25.43v11.07c0,.21.11.41.3.52l4.6,2.65c.2.12.45-.03.45-.26V10.74c0-.18-.1-.34-.25-.43Z\" />\n <g id=\"d\">\n <path d=\"M193.38,9.47c0,1.94-1.48,3.32-3.3,3.32s-3.31-1.39-3.31-3.32,1.49-3.31,3.31-3.31,3.3,1.39,3.3,3.31ZM192.92,9.47c0-1.68-1.26-2.88-2.84-2.88s-2.84,1.2-2.84,2.88,1.26,2.89,2.84,2.89,2.84-1.2,2.84-2.89ZM188.69,11.17v-3.51h1.61c.85,0,1.35.39,1.35,1.15,0,.53-.3.86-.67,1.02l.79,1.35h-.89l-.72-1.22h-.64v1.22h-.82ZM190.18,9.31c.46,0,.64-.16.64-.5s-.19-.49-.64-.49h-.67v.99h.67Z\" />\n <path d=\"M54.72,24.84v10.93h-5.4V6.1h12.26c7.02,0,11.1,3.2,11.1,9.39s-4.07,9.35-11.06,9.35h-6.9,0ZM61.12,20.52c4.07,0,6.11-1.66,6.11-5.03s-2.04-5.03-6.11-5.03h-6.4v10.06h6.4Z\" />\n <path d=\"M85.94,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.18-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM85.73,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z\" />\n <path d=\"M90.39,14.66h5.4l5.86,15.92h.08l5.57-15.92h5.28l-8.23,21.49c-2,5.28-4.45,7.32-8.89,7.36-.71,0-1.7-.08-2.45-.21v-4.03c.62.13.96.13,1.41.13,2.16,0,3.07-.75,4.2-3.66l-8.23-21.07h0Z\" />\n <path d=\"M113.46,35.77V6.1h5.32v29.67h-5.32Z\" />\n <path d=\"M130.79,36.27c-6.23,0-10.68-4.2-10.68-11.05s4.45-11.05,10.68-11.05,10.68,4.24,10.68,11.05-4.45,11.05-10.68,11.05ZM130.79,32.32c3.41,0,5.36-2.66,5.36-7.11s-1.95-7.11-5.36-7.11-5.36,2.7-5.36,7.11,1.91,7.11,5.36,7.11Z\" />\n <path d=\"M156.19,32.45c-1,2.41-3.66,3.78-7.02,3.78-4.11,0-7.11-2.29-7.11-6.11,0-4.24,3.32-5.98,7.61-6.48l6.32-.71v-1c0-2.58-1.58-3.82-3.99-3.82s-3.74,1.29-3.91,3.24h-5.11c.46-4.53,3.99-7.19,9.19-7.19,5.74,0,9.02,2.7,9.02,8.19v8.15c0,1.95.08,3.58.42,5.28h-5.11c-.21-1.16-.29-2.29-.29-3.32h0ZM155.98,27.58v-1.29l-4.7.54c-2.24.29-3.95.79-3.95,2.99,0,1.66,1.16,2.7,3.28,2.7,2.74,0,5.36-1.62,5.36-4.95h0Z\" />\n <path d=\"M178.5,32.41c-1.04,2.12-3.58,3.87-6.78,3.87-5.53,0-9.31-4.49-9.31-11.05s3.78-11.05,9.31-11.05c3.28,0,5.69,1.83,6.69,3.95V6.1h5.32v29.67h-5.24v-3.37h0ZM178.55,24.84c0-4.11-1.95-6.78-5.32-6.78s-5.45,2.83-5.45,7.15,2,7.15,5.45,7.15,5.32-2.66,5.32-6.78v-.75h0Z\" />\n </g>\n </g>\n </svg>\n)\n", "export function abortAndIgnore(controller: AbortController) {\n if (controller) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n}\n", "import * as qs from 'qs-esm'\n\ntype GetOptions = {\n params?: Record<string, unknown>\n} & RequestInit\n\nexport const requests = {\n delete: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'delete',\n }\n\n return fetch(url, formattedOptions)\n },\n\n get: (url: string, options: GetOptions = { headers: {} }): Promise<Response> => {\n let query = ''\n if (options.params) {\n query = qs.stringify(options.params, { addQueryPrefix: true })\n }\n return fetch(`${url}${query}`, {\n credentials: 'include',\n ...options,\n })\n },\n\n patch: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'PATCH',\n }\n\n return fetch(url, formattedOptions)\n },\n\n post: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'post',\n }\n\n return fetch(`${url}`, formattedOptions)\n },\n\n put: (url: string, options: RequestInit = { headers: {} }): Promise<Response> => {\n const headers = options && options.headers ? { ...options.headers } : {}\n\n const formattedOptions: RequestInit = {\n ...options,\n credentials: 'include',\n headers: {\n ...headers,\n },\n method: 'put',\n }\n\n return fetch(url, formattedOptions)\n },\n}\n", "import type { Locale, SanitizedLocalizationConfig } from 'payload'\n/*\n return the Locale for given locale code, else return null\n*/\nexport const findLocaleFromCode = (\n localizationConfig: SanitizedLocalizationConfig,\n locale: string,\n): Locale | null => {\n if (!localizationConfig?.locales || localizationConfig.locales.length === 0) {\n return null\n }\n\n return localizationConfig.locales.find((el) => el?.code === locale)\n}\n", "import type { Config } from 'payload'\n\n/** Will read the `routes.admin` config and appropriately handle `\"/\"` admin paths */\nexport const formatAdminURL = (args: {\n adminRoute: Config['routes']['admin']\n basePath?: string\n path: string\n serverURL?: Config['serverURL']\n}): string => {\n const { adminRoute, basePath = '', path, serverURL } = args\n\n if (adminRoute) {\n if (adminRoute === '/') {\n if (!path) {\n return `${serverURL || ''}${basePath}${adminRoute}`\n }\n } else {\n return `${serverURL || ''}${basePath}${adminRoute}${path}`\n }\n }\n\n return `${serverURL || ''}${basePath}${path}`\n}\n", "import type { I18n } from '@payloadcms/translations'\n\nimport { format, formatDistanceToNow } from 'date-fns'\n\ntype FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n pattern: string\n}\n\nexport const formatDate = ({ date, i18n, pattern }: FormatDateArgs): string => {\n const theDate = new Date(date)\n return format(theDate, pattern, { locale: i18n.dateFNS })\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = new Date(date)\n return formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n}\n", "import type { I18n } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n SanitizedConfig,\n TypeWithID,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { formatDate } from '../utilities/formatDate.js'\n\nexport const formatDocTitle = ({\n collectionConfig,\n data,\n dateFormat: dateFormatFromConfig,\n fallback,\n globalConfig,\n i18n,\n}: {\n collectionConfig?: ClientCollectionConfig\n data: TypeWithID\n dateFormat: SanitizedConfig['admin']['dateFormat']\n fallback?: string\n globalConfig?: ClientGlobalConfig\n i18n: I18n<any, any>\n}): string => {\n let title: string\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n if (useAsTitle) {\n title = data?.[useAsTitle] || title\n\n if (title) {\n const fieldConfig = collectionConfig.fields.find(\n (f) => 'name' in f && f.name === useAsTitle,\n )\n\n const isDate = fieldConfig?.type === 'date'\n\n if (isDate) {\n const dateFormat =\n ('date' in fieldConfig.admin && fieldConfig?.admin?.date?.displayFormat) ||\n dateFormatFromConfig\n title = formatDate({ date: title, i18n, pattern: dateFormat }) || title\n }\n }\n }\n }\n\n if (globalConfig) {\n title = getTranslation(globalConfig?.label, i18n) || globalConfig?.slug\n }\n\n if (!title) {\n title = fallback || `[${i18n.t('general:untitled')}]`\n }\n\n return title\n}\n", "import type { I18nClient } from '@payloadcms/translations'\nimport type {\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n StaticLabel,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nexport enum EntityType {\n collection = 'collections',\n global = 'globals',\n}\n\nexport type EntityToGroup =\n | {\n entity: SanitizedCollectionConfig\n type: EntityType.collection\n }\n | {\n entity: SanitizedGlobalConfig\n type: EntityType.global\n }\n\nexport type NavGroupType = {\n entities: {\n label: StaticLabel\n slug: string\n type: EntityType\n }[]\n label: string\n}\n\nexport function groupNavItems(\n entities: EntityToGroup[],\n permissions: SanitizedPermissions,\n i18n: I18nClient,\n): NavGroupType[] {\n const result = entities.reduce(\n (groups, entityToGroup) => {\n if (permissions?.[entityToGroup.type.toLowerCase()]?.[entityToGroup.entity.slug]?.read) {\n const translatedGroup = getTranslation(entityToGroup.entity.admin.group, i18n)\n\n const labelOrFunction =\n 'labels' in entityToGroup.entity\n ? entityToGroup.entity.labels.plural\n : entityToGroup.entity.label\n\n const label =\n typeof labelOrFunction === 'function' ? labelOrFunction({ t: i18n.t }) : labelOrFunction\n\n if (entityToGroup.entity.admin.group) {\n const existingGroup = groups.find(\n (group) => getTranslation(group.label, i18n) === translatedGroup,\n ) as NavGroupType\n\n let matchedGroup: NavGroupType = existingGroup\n\n if (!existingGroup) {\n matchedGroup = { entities: [], label: translatedGroup }\n groups.push(matchedGroup)\n }\n\n matchedGroup.entities.push({\n slug: entityToGroup.entity.slug,\n type: entityToGroup.type,\n label,\n })\n } else {\n const defaultGroup = groups.find((group) => {\n return getTranslation(group.label, i18n) === i18n.t(`general:${entityToGroup.type}`)\n }) as NavGroupType\n defaultGroup.entities.push({\n slug: entityToGroup.entity.slug,\n type: entityToGroup.type,\n label,\n })\n }\n }\n\n return groups\n },\n [\n {\n entities: [],\n label: i18n.t('general:collections'),\n },\n {\n entities: [],\n label: i18n.t('general:globals'),\n },\n ],\n )\n\n return result.filter((group) => group.entities.length > 0)\n}\n", "import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime.js'\n\nimport { formatAdminURL } from './formatAdminURL.js'\n\ntype BackToDashboardProps = {\n adminRoute: string\n router: AppRouterInstance\n}\n\nexport const handleBackToDashboard = ({ adminRoute, router }: BackToDashboardProps) => {\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: '/',\n })\n router.push(redirectRoute)\n}\n", "import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime.js'\n\nimport { formatAdminURL } from './formatAdminURL.js'\n\ntype GoBackProps = {\n adminRoute: string\n collectionSlug: string\n router: AppRouterInstance\n}\n\nexport const handleGoBack = ({ adminRoute, collectionSlug, router }: GoBackProps) => {\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: collectionSlug ? `/collections/${collectionSlug}` : '/',\n })\n router.push(redirectRoute)\n}\n", "import type { ClientUser } from 'payload'\n\nexport const handleTakeOver = (\n id: number | string,\n collectionSlug: string,\n globalSlug: string,\n user: ClientUser | number | string,\n isWithinDoc: boolean,\n updateDocumentEditor: (\n docId: number | string,\n slug: string,\n user: ClientUser | number | string,\n ) => Promise<void>,\n setCurrentEditor: (value: React.SetStateAction<ClientUser | number | string>) => void,\n documentLockStateRef: React.RefObject<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n }>,\n isLockingEnabled: boolean,\n setIsReadOnlyForIncomingUser?: (value: React.SetStateAction<boolean>) => void,\n): void => {\n if (!isLockingEnabled) {\n return\n }\n\n try {\n // Call updateDocumentEditor to update the document's owner to the current user\n void updateDocumentEditor(id, collectionSlug ?? globalSlug, user)\n\n if (!isWithinDoc) {\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n // Update the locked state to reflect the current user as the owner\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal,\n isLocked: true,\n user,\n }\n setCurrentEditor(user)\n\n // If this is a takeover within the document, ensure the document is editable\n if (isWithinDoc && setIsReadOnlyForIncomingUser) {\n setIsReadOnlyForIncomingUser(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error during document takeover:', error)\n }\n}\n", "import type {\n SanitizedCollectionPermission,\n SanitizedDocumentPermissions,\n SanitizedGlobalPermission,\n} from 'payload'\n\nexport const hasSavePermission = (args: {\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n collectionSlug?: string\n docPermissions: SanitizedDocumentPermissions\n /*\n * Pass either `collectionSlug` or `globalSlug`\n */\n globalSlug?: string\n isEditing: boolean\n}) => {\n const { collectionSlug, docPermissions, globalSlug, isEditing } = args\n\n if (collectionSlug) {\n return Boolean(\n (isEditing && docPermissions?.update) ||\n (!isEditing && (docPermissions as SanitizedCollectionPermission)?.create),\n )\n }\n\n if (globalSlug) {\n return Boolean((docPermissions as SanitizedGlobalPermission)?.update)\n }\n\n return false\n}\n", "import type { ClientUser } from 'payload'\n\nexport const isClientUserObject = (user): user is ClientUser => {\n return user && typeof user === 'object'\n}\n", "export const isEditing = ({\n id,\n collectionSlug,\n globalSlug,\n}: {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}): boolean => Boolean(globalSlug || (collectionSlug && !!id))\n", "import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload'\n\nconst isEmptyObject = (obj: object) => Object.keys(obj).length === 0\n\nexport const hoistQueryParamsToAnd = (currentWhere: Where, incomingWhere: Where) => {\n if (isEmptyObject(incomingWhere)) {\n return currentWhere\n }\n\n if (isEmptyObject(currentWhere)) {\n return incomingWhere\n }\n\n if ('and' in currentWhere) {\n currentWhere.and.push(incomingWhere)\n } else if ('or' in currentWhere) {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n } else {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n }\n\n return currentWhere\n}\n\ntype Args = {\n collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig\n search: string\n where?: Where\n}\n\nexport const mergeListSearchAndWhere = ({ collectionConfig, search, where = {} }: Args): Where => {\n if (search) {\n let copyOfWhere = { ...(where || {}) }\n\n const searchAsConditions = (\n collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']\n ).map((fieldName) => ({\n [fieldName]: {\n like: search,\n },\n }))\n\n if (searchAsConditions.length > 0) {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {\n or: searchAsConditions,\n })\n }\n\n if (!isEmptyObject(copyOfWhere)) {\n where = copyOfWhere\n }\n }\n\n return where\n}\n", "export function sanitizeID(id: number | string): number | string {\n if (id === undefined) {\n return id\n }\n\n if (typeof id === 'number') {\n return id\n }\n\n return decodeURIComponent(id)\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["filterFields", "incomingFields", "shouldSkipField", "field", "formatted", "formattedField", "tab", "tabField", "fieldAffectsData", "getRemainingColumns", "fields", "useAsTitle", "remaining", "field", "tabFieldColumns", "tab", "getInitialColumns", "defaultColumns", "initialColumns", "remainingColumns", "column", "React", "RecursiveTranslation", "elements", "translationString", "regex", "sections", "section", "index", "elementKey", "Element", "children", "_", "group", "Translation", "i18nKey", "t", "variables", "stringWithVariables", "isReactServerComponentOrFunction", "serverProps", "React", "withMergedProps", "Component", "sanitizeServerOnlyProps", "toMergeIntoProps", "passedProps", "mergedProps", "simpleMergeProps", "prop", "props", "toMerge", "isReactServerComponentOrFunction", "React", "WithServerSideProps", "Component", "serverOnlyProps", "rest", "passedProps", "propsWithServerOnlyProps", "mergeFieldStyles", "field", "deepCopyObjectComplex", "blacklistedKeys", "sanitizeField", "incomingField", "field", "key", "reduceToSerializableFields", "fields", "acc", "React", "PayloadIcon", "fillFromProps", "fill", "React", "css", "PayloadLogo", "abortAndIgnore", "controller", "qs", "requests", "url", "options", "headers", "formattedOptions", "query", "findLocaleFromCode", "localizationConfig", "locale", "el", "formatAdminURL", "args", "adminRoute", "basePath", "path", "serverURL", "format", "formatDistanceToNow", "formatDate", "date", "i18n", "pattern", "theDate", "getTranslation", "formatDocTitle", "collectionConfig", "data", "dateFormatFromConfig", "fallback", "globalConfig", "i18n", "title", "useAsTitle", "fieldConfig", "f", "dateFormat", "formatDate", "getTranslation", "getTranslation", "EntityType", "groupNavItems", "entities", "permissions", "i18n", "groups", "entityToGroup", "translatedGroup", "labelOrFunction", "label", "existingGroup", "group", "matchedGroup", "handleBackToDashboard", "adminRoute", "router", "redirectRoute", "formatAdminURL", "handleGoBack", "adminRoute", "collectionSlug", "router", "redirectRoute", "formatAdminURL", "handleTakeOver", "id", "collectionSlug", "globalSlug", "user", "isWithinDoc", "updateDocumentEditor", "setCurrentEditor", "documentLockStateRef", "isLockingEnabled", "setIsReadOnlyForIncomingUser", "error", "hasSavePermission", "args", "collectionSlug", "docPermissions", "globalSlug", "isEditing", "isClientUserObject", "user", "isEditing", "id", "collectionSlug", "globalSlug", "isEmptyObject", "obj", "hoistQueryParamsToAnd", "currentWhere", "incomingWhere", "mergeListSearchAndWhere", "collectionConfig", "search", "where", "copyOfWhere", "searchAsConditions", "fieldName", "sanitizeID", "id"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Group/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGxD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAetC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIvD,eAAO,MAAM,mBAAmB,EAAE,yBAsFjC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;AAElC,eAAO,MAAM,UAAU;;+EAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Group/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGxD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAetC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIvD,eAAO,MAAM,mBAAmB,EAAE,yBAyFjC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;AAElC,eAAO,MAAM,UAAU;;+EAAqC,CAAA"}
@@ -71,7 +71,7 @@ export const GroupFieldComponent = props => {
71
71
  children: [/*#__PURE__*/_jsx(GroupProvider, {
72
72
  children: /*#__PURE__*/_jsxs("div", {
73
73
  className: `${baseClass}__wrap`,
74
- children: [/*#__PURE__*/_jsxs("div", {
74
+ children: [Boolean(Label || Description || label || fieldHasErrors) && /*#__PURE__*/_jsxs("div", {
75
75
  className: `${baseClass}__header`,
76
76
  children: [Boolean(Label || Description || label) && /*#__PURE__*/_jsxs("header", {
77
77
  children: [/*#__PURE__*/_jsx(RenderCustomComponent, {
@@ -79,6 +79,7 @@ export const GroupFieldComponent = props => {
79
79
  Fallback: /*#__PURE__*/_jsx("h3", {
80
80
  className: `${baseClass}__title`,
81
81
  children: /*#__PURE__*/_jsx(FieldLabel, {
82
+ as: "span",
82
83
  label: getTranslation(label, i18n),
83
84
  localized: false,
84
85
  path: path,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useMemo","useCollapsible","ErrorPill","RenderCustomComponent","FieldDescription","FieldLabel","useFormSubmitted","RenderFields","useField","withCondition","useTranslation","mergeFieldStyles","useRow","fieldBaseClass","useTabs","GroupProvider","useGroup","baseClass","GroupFieldComponent","props","field","name","admin","className","description","hideGutter","fields","label","path","permissions","readOnly","schemaPath","schemaPathFromProps","i18n","isWithinCollapsible","isWithinGroup","isWithinRow","isWithinTab","customComponents","AfterInput","BeforeInput","Description","Label","errorPaths","submitted","errorCount","length","fieldHasErrors","isTopLevel","styles","_jsxs","filter","Boolean","join","id","replace","style","_jsx","CustomComponent","Fallback","localized","required","count","withMessage","margins","parentIndexPath","parentPath","parentSchemaPath","GroupField"],"sources":["../../../src/fields/Group/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GroupFieldClientComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useMemo } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { useRow } from '../Row/provider.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { useTabs } from '../Tabs/provider.js'\nimport { GroupProvider, useGroup } from './provider.js'\n\nconst baseClass = 'group-field'\n\nexport const GroupFieldComponent: GroupFieldClientComponent = (props) => {\n const {\n field,\n field: { name, admin: { className, description, hideGutter } = {}, fields, label },\n path,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n } = props\n const schemaPath = schemaPathFromProps ?? name\n\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const isWithinGroup = useGroup()\n const isWithinRow = useRow()\n const isWithinTab = useTabs()\n const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, errorPaths } =\n useField({ path })\n const submitted = useFormSubmitted()\n const errorCount = errorPaths.length\n const fieldHasErrors = submitted && errorCount > 0\n\n const isTopLevel = !(isWithinCollapsible || isWithinGroup || isWithinRow)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n isTopLevel && `${baseClass}--top-level`,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n isWithinGroup && `${baseClass}--within-group`,\n isWithinRow && `${baseClass}--within-row`,\n isWithinTab && `${baseClass}--within-tab`,\n !hideGutter && isWithinGroup && `${baseClass}--gutter`,\n fieldHasErrors && `${baseClass}--has-error`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n <GroupProvider>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header`}>\n {Boolean(Label || Description || label) && (\n <header>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n label={getTranslation(label, i18n)}\n localized={false}\n path={path}\n required={false}\n />\n </h3>\n }\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n )}\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n {BeforeInput}\n <RenderFields\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={permissions === true ? permissions : permissions?.fields}\n readOnly={readOnly}\n />\n </div>\n </GroupProvider>\n {AfterInput}\n </div>\n )\n}\n\nexport { GroupProvider, useGroup }\n\nexport const GroupField = withCondition(GroupFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useMemo","useCollapsible","ErrorPill","RenderCustomComponent","FieldDescription","FieldLabel","useFormSubmitted","RenderFields","useField","withCondition","useTranslation","mergeFieldStyles","useRow","fieldBaseClass","useTabs","GroupProvider","useGroup","baseClass","GroupFieldComponent","props","field","name","admin","className","description","hideGutter","fields","label","path","permissions","readOnly","schemaPath","schemaPathFromProps","i18n","isWithinCollapsible","isWithinGroup","isWithinRow","isWithinTab","customComponents","AfterInput","BeforeInput","Description","Label","errorPaths","submitted","errorCount","length","fieldHasErrors","isTopLevel","styles","_jsxs","filter","Boolean","join","id","replace","style","_jsx","CustomComponent","Fallback","as","localized","required","count","withMessage","margins","parentIndexPath","parentPath","parentSchemaPath","GroupField"],"sources":["../../../src/fields/Group/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GroupFieldClientComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useMemo } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { useRow } from '../Row/provider.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { useTabs } from '../Tabs/provider.js'\nimport { GroupProvider, useGroup } from './provider.js'\n\nconst baseClass = 'group-field'\n\nexport const GroupFieldComponent: GroupFieldClientComponent = (props) => {\n const {\n field,\n field: { name, admin: { className, description, hideGutter } = {}, fields, label },\n path,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n } = props\n const schemaPath = schemaPathFromProps ?? name\n\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const isWithinGroup = useGroup()\n const isWithinRow = useRow()\n const isWithinTab = useTabs()\n const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, errorPaths } =\n useField({ path })\n const submitted = useFormSubmitted()\n const errorCount = errorPaths.length\n const fieldHasErrors = submitted && errorCount > 0\n\n const isTopLevel = !(isWithinCollapsible || isWithinGroup || isWithinRow)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n isTopLevel && `${baseClass}--top-level`,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n isWithinGroup && `${baseClass}--within-group`,\n isWithinRow && `${baseClass}--within-row`,\n isWithinTab && `${baseClass}--within-tab`,\n !hideGutter && isWithinGroup && `${baseClass}--gutter`,\n fieldHasErrors && `${baseClass}--has-error`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n <GroupProvider>\n <div className={`${baseClass}__wrap`}>\n {Boolean(Label || Description || label || fieldHasErrors) && (\n <div className={`${baseClass}__header`}>\n {Boolean(Label || Description || label) && (\n <header>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n as=\"span\"\n label={getTranslation(label, i18n)}\n localized={false}\n path={path}\n required={false}\n />\n </h3>\n }\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n )}\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n )}\n {BeforeInput}\n <RenderFields\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={permissions === true ? permissions : permissions?.fields}\n readOnly={readOnly}\n />\n </div>\n </GroupProvider>\n {AfterInput}\n </div>\n )\n}\n\nexport { GroupProvider, useGroup }\n\nexport const GroupField = withCondition(GroupFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAwB5F,OAAO,cAAc,CAAA;AAsrBrB,eAAO,MAAM,iBAAiB;;;;;+EAA4C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAA;AA4B5F,OAAO,cAAc,CAAA;AAirBrB,eAAO,MAAM,iBAAiB;;;;;+EAA4C,CAAA"}
@@ -22,11 +22,11 @@ import { useTranslation } from '../../providers/Translation/index.js';
22
22
  import { mergeFieldStyles } from '../mergeFieldStyles.js';
23
23
  import { fieldBaseClass } from '../shared/index.js';
24
24
  import { createRelationMap } from './createRelationMap.js';
25
- import './index.scss';
26
25
  import { findOptionsByValue } from './findOptionsByValue.js';
27
26
  import { optionsReducer } from './optionsReducer.js';
28
27
  import { MultiValueLabel } from './select-components/MultiValueLabel/index.js';
29
28
  import { SingleValue } from './select-components/SingleValue/index.js';
29
+ import './index.scss';
30
30
  const maxResultsPerRequest = 10;
31
31
  const baseClass = 'relationship';
32
32
  const RelationshipFieldComponent = props => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useMemo","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","mergeFieldStyles","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","field","admin","allowCreate","allowEdit","className","description","isSortable","sortOptions","hasMany","label","localized","relationTo","required","path","readOnly","validate","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","filterOptions","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","currentValue","docId","unchanged","some","valuesToSet","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","labelString","String","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","styles","_jsxs","Boolean","join","replace","style","_jsx","CustomComponent","Fallback","backspaceRemovesValue","components","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport './index.scss'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n allowCreate = true,\n allowEdit = true,\n className,\n description,\n isSortable = true,\n sortOptions,\n } = {},\n hasMany,\n label,\n localized,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n filterOptions,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of form state and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n const currentValue = valueRef.current\n const docId = args.doc.id\n\n if (hasMany) {\n const unchanged = (currentValue as Option[]).some((option) =>\n typeof option === 'string' ? option === docId : option.value === docId,\n )\n\n const valuesToSet = (currentValue as Option[]).map((option) =>\n option.value === docId\n ? { relationTo: args.collectionConfig.slug, value: docId }\n : option,\n )\n\n setValue(valuesToSet, unchanged)\n } else {\n const unchanged = currentValue === docId\n\n setValue({ relationTo: args.collectionConfig.slug, value: docId }, unchanged)\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let labelString = String(item.label)\n // strings less than breakApartThreshold length won't be chunked\n while (labelString.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = labelString.indexOf(' ', searchFilter.length)\n if (\n r.test(labelString.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))\n ) {\n return true\n }\n labelString = labelString.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(labelString.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ allowEdit, options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : (option.value as string)\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useMemo","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","mergeFieldStyles","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","field","admin","allowCreate","allowEdit","className","description","isSortable","sortOptions","hasMany","label","localized","relationTo","required","path","readOnly","validate","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","filterOptions","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","currentValue","docId","unchanged","some","valuesToSet","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","labelString","String","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","styles","_jsxs","Boolean","join","replace","style","_jsx","CustomComponent","Fallback","backspaceRemovesValue","components","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\nimport './index.scss'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n allowCreate = true,\n allowEdit = true,\n className,\n description,\n isSortable = true,\n sortOptions,\n } = {},\n hasMany,\n label,\n localized,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n filterOptions,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of form state and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n const currentValue = valueRef.current\n const docId = args.doc.id\n\n if (hasMany) {\n const unchanged = (currentValue as Option[]).some((option) =>\n typeof option === 'string' ? option === docId : option.value === docId,\n )\n\n const valuesToSet = (currentValue as Option[]).map((option) =>\n option.value === docId\n ? { relationTo: args.collectionConfig.slug, value: docId }\n : option,\n )\n\n setValue(valuesToSet, unchanged)\n } else {\n const unchanged = currentValue === docId\n\n setValue({ relationTo: args.collectionConfig.slug, value: docId }, unchanged)\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let labelString = String(item.label)\n // strings less than breakApartThreshold length won't be chunked\n while (labelString.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = labelString.indexOf(' ', searchFilter.length)\n if (\n r.test(labelString.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))\n ) {\n return true\n }\n labelString = labelString.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(labelString.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ allowEdit, options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : (option.value as string)\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]}