@payloadcms/ui 3.1.2-canary.eb1a61e → 3.2.0

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 (65) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/CopyLocaleData/index.d.ts +4 -0
  4. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -0
  5. package/dist/elements/CopyLocaleData/index.js +182 -0
  6. package/dist/elements/CopyLocaleData/index.js.map +1 -0
  7. package/dist/elements/CopyLocaleData/index.scss +24 -0
  8. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  9. package/dist/elements/DocumentControls/index.js +3 -1
  10. package/dist/elements/DocumentControls/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js +3 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  14. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/index.js +30 -27
  16. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.d.ts +2 -0
  18. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  19. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  20. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  21. package/dist/elements/ListDrawer/DrawerContent.js +3 -1
  22. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  23. package/dist/elements/ListDrawer/types.d.ts +2 -0
  24. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  25. package/dist/elements/ListDrawer/types.js.map +1 -1
  26. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  27. package/dist/elements/Popup/PopupTrigger/index.js +5 -0
  28. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  29. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  30. package/dist/elements/RelationshipTable/index.js +1 -0
  31. package/dist/elements/RelationshipTable/index.js.map +1 -1
  32. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  33. package/dist/elements/SearchFilter/index.js +0 -1
  34. package/dist/elements/SearchFilter/index.js.map +1 -1
  35. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  36. package/dist/elements/Thumbnail/index.js.map +1 -1
  37. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  38. package/dist/elements/WhereBuilder/index.js.map +1 -1
  39. package/dist/exports/client/index.d.ts +1 -0
  40. package/dist/exports/client/index.d.ts.map +1 -1
  41. package/dist/exports/client/index.js +10 -10
  42. package/dist/exports/client/index.js.map +4 -4
  43. package/dist/exports/rsc/index.d.ts +1 -0
  44. package/dist/exports/rsc/index.d.ts.map +1 -1
  45. package/dist/exports/rsc/index.js +1 -0
  46. package/dist/exports/rsc/index.js.map +1 -1
  47. package/dist/fields/Join/index.d.ts.map +1 -1
  48. package/dist/fields/Join/index.js +1 -0
  49. package/dist/fields/Join/index.js.map +1 -1
  50. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  51. package/dist/providers/ListQuery/index.js +0 -1
  52. package/dist/providers/ListQuery/index.js.map +1 -1
  53. package/dist/providers/Selection/index.d.ts.map +1 -1
  54. package/dist/providers/Selection/index.js +0 -4
  55. package/dist/providers/Selection/index.js.map +1 -1
  56. package/dist/providers/ServerFunctions/index.d.ts +8 -0
  57. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  58. package/dist/providers/ServerFunctions/index.js +19 -0
  59. package/dist/providers/ServerFunctions/index.js.map +1 -1
  60. package/dist/styles.css +1 -1
  61. package/dist/utilities/copyDataFromLocale.d.ts +13 -0
  62. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -0
  63. package/dist/utilities/copyDataFromLocale.js +195 -0
  64. package/dist/utilities/copyDataFromLocale.js.map +1 -0
  65. package/package.json +4 -4
@@ -0,0 +1,13 @@
1
+ import { type CollectionSlug, type PayloadRequest } from 'payload';
2
+ export type CopyDataFromLocaleArgs = {
3
+ collectionSlug?: CollectionSlug;
4
+ docID?: number | string;
5
+ fromLocale: string;
6
+ globalSlug?: string;
7
+ overrideData?: boolean;
8
+ req: PayloadRequest;
9
+ toLocale: string;
10
+ };
11
+ export declare const copyDataFromLocaleHandler: (args: CopyDataFromLocaleArgs) => Promise<import("payload").JsonObject | import("payload").ErrorResult>;
12
+ export declare const copyDataFromLocale: (args: CopyDataFromLocaleArgs) => Promise<import("payload").JsonObject>;
13
+ //# sourceMappingURL=copyDataFromLocale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyDataFromLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/copyDataFromLocale.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAGhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAkHD,eAAO,MAAM,yBAAyB,SAAgB,sBAAsB,0EAkB3E,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,sBAAsB,0CAyGpE,CAAA"}
@@ -0,0 +1,195 @@
1
+ import { formatErrors } from 'payload';
2
+ import { fieldAffectsData, tabHasName } from 'payload/shared';
3
+ function iterateFields(fields, fromLocaleData, toLocaleData) {
4
+ fields.map(field => {
5
+ if (fieldAffectsData(field)) {
6
+ switch (field.type) {
7
+ case 'array':
8
+ // if the field has no value, take the source value
9
+ if (field.name in toLocaleData &&
10
+ // only replace if the target value is null or undefined
11
+ [null, undefined].includes(toLocaleData[field.name]) && field.name in fromLocaleData) {
12
+ toLocaleData[field.name] = fromLocaleData[field.name];
13
+ break;
14
+ }
15
+ // if the field has a value but is not localized, loop over the data from target
16
+ if (!field.localized && field.name in toLocaleData) {
17
+ toLocaleData[field.name].map((item, index) => {
18
+ if (fromLocaleData[field.name]?.[index]) {
19
+ iterateFields(field.fields, fromLocaleData[field.name][index], item);
20
+ }
21
+ });
22
+ }
23
+ break;
24
+ case 'blocks':
25
+ // if the field has no value, take the source value
26
+ if (field.name in toLocaleData &&
27
+ // only replace if the target value is null or undefined
28
+ [null, undefined].includes(toLocaleData[field.name]) && field.name in fromLocaleData) {
29
+ toLocaleData[field.name] = fromLocaleData[field.name];
30
+ break;
31
+ }
32
+ // if the field has a value but is not localized, loop over the data from target
33
+ if (!field.localized && field.name in toLocaleData) {
34
+ toLocaleData[field.name].map((blockData, index) => {
35
+ const blockFields = field.blocks.find(({
36
+ slug
37
+ }) => slug === blockData.blockType)?.fields;
38
+ if (blockFields?.length) {
39
+ iterateFields(blockFields, fromLocaleData[field.name][index], blockData);
40
+ }
41
+ });
42
+ }
43
+ break;
44
+ case 'checkbox':
45
+ case 'code':
46
+ case 'date':
47
+ case 'email':
48
+ case 'json':
49
+ case 'number':
50
+ case 'point':
51
+ case 'radio':
52
+ case 'relationship':
53
+ case 'richText':
54
+ case 'select':
55
+ case 'text':
56
+ case 'textarea':
57
+ case 'upload':
58
+ if (field.name in toLocaleData &&
59
+ // only replace if the target value is null or undefined
60
+ [null, undefined].includes(toLocaleData[field.name]) && field.name in fromLocaleData) {
61
+ toLocaleData[field.name] = fromLocaleData[field.name];
62
+ }
63
+ break;
64
+ case 'group':
65
+ {
66
+ if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) {
67
+ iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name]);
68
+ }
69
+ break;
70
+ }
71
+ }
72
+ } else {
73
+ switch (field.type) {
74
+ case 'collapsible':
75
+ case 'row':
76
+ iterateFields(field.fields, fromLocaleData, toLocaleData);
77
+ break;
78
+ case 'tabs':
79
+ field.tabs.map(tab => {
80
+ if (tabHasName(tab)) {
81
+ if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {
82
+ iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name]);
83
+ }
84
+ } else {
85
+ iterateFields(tab.fields, fromLocaleData, toLocaleData);
86
+ }
87
+ });
88
+ break;
89
+ }
90
+ }
91
+ });
92
+ }
93
+ function mergeData(fromLocaleData, toLocaleData, fields) {
94
+ iterateFields(fields, fromLocaleData, toLocaleData);
95
+ return toLocaleData;
96
+ }
97
+ export const copyDataFromLocaleHandler = async args => {
98
+ const {
99
+ req
100
+ } = args;
101
+ try {
102
+ const res = await copyDataFromLocale(args);
103
+ return res;
104
+ } catch (err) {
105
+ req.payload.logger.error({
106
+ err,
107
+ msg: `There was an error copying data from "${args.fromLocale}" to "${args.toLocale}"`
108
+ });
109
+ if (err.message === 'Unauthorized') {
110
+ return null;
111
+ }
112
+ return formatErrors(err);
113
+ }
114
+ };
115
+ export const copyDataFromLocale = async args => {
116
+ const {
117
+ collectionSlug,
118
+ docID,
119
+ fromLocale,
120
+ globalSlug,
121
+ overrideData = false,
122
+ req: {
123
+ payload,
124
+ payload: {
125
+ collections,
126
+ globals
127
+ },
128
+ user
129
+ },
130
+ toLocale
131
+ } = args;
132
+ const incomingUserSlug = user?.collection;
133
+ const adminUserSlug = payload.config.admin.user;
134
+ // If we have a user slug, test it against the functions
135
+ if (incomingUserSlug) {
136
+ const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin;
137
+ // Run the admin access function from the config if it exists
138
+ if (adminAccessFunction) {
139
+ const canAccessAdmin = await adminAccessFunction({
140
+ req: args.req
141
+ });
142
+ if (!canAccessAdmin) {
143
+ throw new Error('Unauthorized');
144
+ }
145
+ // Match the user collection to the global admin config
146
+ } else if (adminUserSlug !== incomingUserSlug) {
147
+ throw new Error('Unauthorized');
148
+ }
149
+ }
150
+ const [fromLocaleData, toLocaleData] = await Promise.allSettled([globalSlug ? payload.findGlobal({
151
+ slug: globalSlug,
152
+ locale: fromLocale,
153
+ overrideAccess: false,
154
+ user
155
+ }) : payload.findByID({
156
+ id: docID,
157
+ collection: collectionSlug,
158
+ locale: fromLocale,
159
+ overrideAccess: false,
160
+ user
161
+ }), globalSlug ? payload.findGlobal({
162
+ slug: globalSlug,
163
+ locale: toLocale,
164
+ overrideAccess: false,
165
+ user
166
+ }) : payload.findByID({
167
+ id: docID,
168
+ collection: collectionSlug,
169
+ locale: toLocale,
170
+ overrideAccess: false,
171
+ user
172
+ })]);
173
+ if (fromLocaleData.status === 'rejected') {
174
+ throw new Error(`Error fetching data from locale "${fromLocale}"`);
175
+ }
176
+ if (toLocaleData.status === 'rejected') {
177
+ throw new Error(`Error fetching data from locale "${toLocale}"`);
178
+ }
179
+ const newToLocaleData = globalSlug ? await payload.updateGlobal({
180
+ slug: globalSlug,
181
+ data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields),
182
+ locale: toLocale,
183
+ overrideAccess: false,
184
+ user
185
+ }) : await payload.update({
186
+ id: docID,
187
+ collection: collectionSlug,
188
+ data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, collections[collectionSlug].config.fields),
189
+ locale: toLocale,
190
+ overrideAccess: false,
191
+ user
192
+ });
193
+ return newToLocaleData;
194
+ };
195
+ //# sourceMappingURL=copyDataFromLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyDataFromLocale.js","names":["formatErrors","fieldAffectsData","tabHasName","iterateFields","fields","fromLocaleData","toLocaleData","map","field","type","name","undefined","includes","localized","item","index","blockData","blockFields","blocks","find","slug","blockType","length","tabs","tab","mergeData","copyDataFromLocaleHandler","args","req","res","copyDataFromLocale","err","payload","logger","error","msg","fromLocale","toLocale","message","collectionSlug","docID","globalSlug","overrideData","collections","globals","user","incomingUserSlug","collection","adminUserSlug","config","admin","adminAccessFunction","access","canAccessAdmin","Error","Promise","allSettled","findGlobal","locale","overrideAccess","findByID","id","status","newToLocaleData","updateGlobal","data","value","update"],"sources":["../../src/utilities/copyDataFromLocale.ts"],"sourcesContent":["import {\n type CollectionSlug,\n type Data,\n type Field,\n formatErrors,\n type PayloadRequest,\n} from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nexport type CopyDataFromLocaleArgs = {\n collectionSlug?: CollectionSlug\n docID?: number | string\n fromLocale: string\n globalSlug?: string\n overrideData?: boolean\n req: PayloadRequest\n toLocale: string\n}\n\nfunction iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data): void {\n fields.map((field) => {\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value but is not localized, loop over the data from target\n if (!field.localized && field.name in toLocaleData) {\n toLocaleData[field.name].map((item: Data, index: number) => {\n if (fromLocaleData[field.name]?.[index]) {\n iterateFields(field.fields, fromLocaleData[field.name][index], item)\n }\n })\n }\n break\n\n case 'blocks':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value but is not localized, loop over the data from target\n if (!field.localized && field.name in toLocaleData) {\n toLocaleData[field.name].map((blockData: Data, index: number) => {\n const blockFields = field.blocks.find(\n ({ slug }) => slug === blockData.blockType,\n )?.fields\n\n if (blockFields?.length) {\n iterateFields(blockFields, fromLocaleData[field.name][index], blockData)\n }\n })\n }\n break\n\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload':\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n }\n break\n\n case 'group': {\n if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) {\n iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name])\n }\n break\n }\n }\n } else {\n switch (field.type) {\n case 'collapsible':\n case 'row':\n iterateFields(field.fields, fromLocaleData, toLocaleData)\n break\n\n case 'tabs':\n field.tabs.map((tab) => {\n if (tabHasName(tab)) {\n if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {\n iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name])\n }\n } else {\n iterateFields(tab.fields, fromLocaleData, toLocaleData)\n }\n })\n break\n }\n }\n })\n}\n\nfunction mergeData(fromLocaleData: Data, toLocaleData: Data, fields: Field[]): Data {\n iterateFields(fields, fromLocaleData, toLocaleData)\n\n return toLocaleData\n}\n\nexport const copyDataFromLocaleHandler = async (args: CopyDataFromLocaleArgs) => {\n const { req } = args\n\n try {\n const res = await copyDataFromLocale(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error copying data from \"${args.fromLocale}\" to \"${args.toLocale}\"`,\n })\n\n if (err.message === 'Unauthorized') {\n return null\n }\n\n return formatErrors(err)\n }\n}\n\nexport const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => {\n const {\n collectionSlug,\n docID,\n fromLocale,\n globalSlug,\n overrideData = false,\n req: {\n payload,\n payload: { collections, globals },\n user,\n },\n toLocale,\n } = args\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req: args.req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n }\n\n const [fromLocaleData, toLocaleData] = await Promise.allSettled([\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n ])\n\n if (fromLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${fromLocale}\"`)\n }\n\n if (toLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${toLocale}\"`)\n }\n\n const newToLocaleData = globalSlug\n ? await payload.updateGlobal({\n slug: globalSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields),\n locale: toLocale,\n overrideAccess: false,\n user,\n })\n : await payload.update({\n id: docID,\n collection: collectionSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(\n fromLocaleData.value,\n toLocaleData.value,\n collections[collectionSlug].config.fields,\n ),\n locale: toLocale,\n overrideAccess: false,\n user,\n })\n\n return newToLocaleData\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/ui",
3
- "version": "3.1.2-canary.eb1a61e",
3
+ "version": "3.2.0",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -132,7 +132,7 @@
132
132
  "ts-essentials": "10.0.3",
133
133
  "use-context-selector": "2.0.0",
134
134
  "uuid": "10.0.0",
135
- "@payloadcms/translations": "3.1.2-canary.eb1a61e"
135
+ "@payloadcms/translations": "3.2.0"
136
136
  },
137
137
  "devDependencies": {
138
138
  "@babel/cli": "^7.24.5",
@@ -150,14 +150,14 @@
150
150
  "esbuild": "0.23.1",
151
151
  "esbuild-sass-plugin": "3.3.1",
152
152
  "eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
153
- "payload": "3.1.2-canary.eb1a61e",
153
+ "payload": "3.2.0",
154
154
  "@payloadcms/eslint-config": "3.0.0"
155
155
  },
156
156
  "peerDependencies": {
157
157
  "next": "^15.0.0",
158
158
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
159
159
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
160
- "payload": "3.1.2-canary.eb1a61e"
160
+ "payload": "3.2.0"
161
161
  },
162
162
  "engines": {
163
163
  "node": "^18.20.2 || >=20.9.0"