@payloadcms/ui 3.27.0-canary.f0ea918 → 3.27.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 (28) hide show
  1. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FormsManager/createFormData.js +2 -3
  3. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  4. package/dist/elements/Toasts/fieldErrors.d.ts +5 -0
  5. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -0
  6. package/dist/elements/Toasts/fieldErrors.js +85 -0
  7. package/dist/elements/Toasts/fieldErrors.js.map +1 -0
  8. package/dist/exports/client/index.js +11 -11
  9. package/dist/exports/client/index.js.map +4 -4
  10. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  11. package/dist/fields/Blocks/BlockRow.js +42 -39
  12. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  13. package/dist/forms/Form/index.d.ts.map +1 -1
  14. package/dist/forms/Form/index.js +6 -4
  15. package/dist/forms/Form/index.js.map +1 -1
  16. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  17. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  18. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  19. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  20. package/dist/views/Edit/SetDocumentStepNav/index.js +20 -25
  21. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  22. package/dist/views/Edit/index.d.ts.map +1 -1
  23. package/dist/views/Edit/index.js +1 -1
  24. package/dist/views/Edit/index.js.map +1 -1
  25. package/dist/views/List/index.d.ts.map +1 -1
  26. package/dist/views/List/index.js +2 -4
  27. package/dist/views/List/index.js.map +1 -1
  28. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"createFormData.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAA;AAEvF,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAc,EACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACnC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,qBAwCrE"}
1
+ {"version":3,"file":"createFormData.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAA;AAEvF,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAc,EACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACnC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,qBAuCrE"}
@@ -6,10 +6,9 @@ export async function createFormData(formState = {}, overrides = {}, collectionS
6
6
  if (file) {
7
7
  delete data.file;
8
8
  }
9
- let clientUploadContext = null;
10
- if (typeof uploadHandler === 'function') {
9
+ if (file && typeof uploadHandler === 'function') {
11
10
  let filename = file.name;
12
- clientUploadContext = await uploadHandler({
11
+ const clientUploadContext = await uploadHandler({
13
12
  file,
14
13
  updateFilename: value => {
15
14
  filename = value;
@@ -1 +1 @@
1
- {"version":3,"file":"createFormData.js","names":["serialize","reduceFieldsToValues","createFormData","formState","overrides","collectionSlug","uploadHandler","data","file","clientUploadContext","filename","name","updateFilename","value","JSON","stringify","mimeType","type","size","dataWithOverrides","dataToSerialize","_payload","indices","nullsAsUndefineds"],"sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"sourcesContent":["import type { CollectionSlug, FormState } from 'payload'\n\nimport { serialize } from 'object-to-formdata'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport type { UploadHandlersContext } from '../../../providers/UploadHandlers/index.js'\n\nexport async function createFormData(\n formState: FormState = {},\n overrides: Record<string, any> = {},\n collectionSlug: CollectionSlug,\n uploadHandler: ReturnType<UploadHandlersContext['getUploadHandler']>,\n) {\n const data = reduceFieldsToValues(formState, true)\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n let clientUploadContext = null\n\n if (typeof uploadHandler === 'function') {\n let filename = file.name\n clientUploadContext = await uploadHandler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n return serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n}\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AAIrC,OAAO,eAAeC,eACpBC,SAAA,GAAuB,CAAC,CAAC,EACzBC,SAAA,GAAiC,CAAC,CAAC,EACnCC,cAA8B,EAC9BC,aAAoE;EAEpE,MAAMC,IAAA,GAAON,oBAAA,CAAqBE,SAAA,EAAW;EAC7C,IAAIK,IAAA,GAAOD,IAAA,EAAMC,IAAA;EAEjB,IAAIA,IAAA,EAAM;IACR,OAAOD,IAAA,CAAKC,IAAI;EAClB;EAEA,IAAIC,mBAAA,GAAsB;EAE1B,IAAI,OAAOH,aAAA,KAAkB,YAAY;IACvC,IAAII,QAAA,GAAWF,IAAA,CAAKG,IAAI;IACxBF,mBAAA,GAAsB,MAAMH,aAAA,CAAc;MACxCE,IAAA;MACAI,cAAA,EAAiBC,KAAA;QACfH,QAAA,GAAWG,KAAA;MACb;IACF;IAEAL,IAAA,GAAOM,IAAA,CAAKC,SAAS,CAAC;MACpBN,mBAAA;MACAJ,cAAA;MACAK,QAAA;MACAM,QAAA,EAAUR,IAAA,CAAKS,IAAI;MACnBC,IAAA,EAAMV,IAAA,CAAKU;IACb;EACF;EAEA,MAAMC,iBAAA,GAAoB;IACxB,GAAGZ,IAAI;IACP,GAAGH;EACL;EAEA,MAAMgB,eAAA,GAAkB;IACtBC,QAAA,EAAUP,IAAA,CAAKC,SAAS,CAACI,iBAAA;IACzBX;EACF;EAEA,OAAOR,SAAA,CAAUoB,eAAA,EAAiB;IAAEE,OAAA,EAAS;IAAMC,iBAAA,EAAmB;EAAM;AAC9E","ignoreList":[]}
1
+ {"version":3,"file":"createFormData.js","names":["serialize","reduceFieldsToValues","createFormData","formState","overrides","collectionSlug","uploadHandler","data","file","filename","name","clientUploadContext","updateFilename","value","JSON","stringify","mimeType","type","size","dataWithOverrides","dataToSerialize","_payload","indices","nullsAsUndefineds"],"sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"sourcesContent":["import type { CollectionSlug, FormState } from 'payload'\n\nimport { serialize } from 'object-to-formdata'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport type { UploadHandlersContext } from '../../../providers/UploadHandlers/index.js'\n\nexport async function createFormData(\n formState: FormState = {},\n overrides: Record<string, any> = {},\n collectionSlug: CollectionSlug,\n uploadHandler: ReturnType<UploadHandlersContext['getUploadHandler']>,\n) {\n const data = reduceFieldsToValues(formState, true)\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (file && typeof uploadHandler === 'function') {\n let filename = file.name\n\n const clientUploadContext = await uploadHandler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n return serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n}\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AAIrC,OAAO,eAAeC,eACpBC,SAAA,GAAuB,CAAC,CAAC,EACzBC,SAAA,GAAiC,CAAC,CAAC,EACnCC,cAA8B,EAC9BC,aAAoE;EAEpE,MAAMC,IAAA,GAAON,oBAAA,CAAqBE,SAAA,EAAW;EAC7C,IAAIK,IAAA,GAAOD,IAAA,EAAMC,IAAA;EAEjB,IAAIA,IAAA,EAAM;IACR,OAAOD,IAAA,CAAKC,IAAI;EAClB;EAEA,IAAIA,IAAA,IAAQ,OAAOF,aAAA,KAAkB,YAAY;IAC/C,IAAIG,QAAA,GAAWD,IAAA,CAAKE,IAAI;IAExB,MAAMC,mBAAA,GAAsB,MAAML,aAAA,CAAc;MAC9CE,IAAA;MACAI,cAAA,EAAiBC,KAAA;QACfJ,QAAA,GAAWI,KAAA;MACb;IACF;IAEAL,IAAA,GAAOM,IAAA,CAAKC,SAAS,CAAC;MACpBJ,mBAAA;MACAN,cAAA;MACAI,QAAA;MACAO,QAAA,EAAUR,IAAA,CAAKS,IAAI;MACnBC,IAAA,EAAMV,IAAA,CAAKU;IACb;EACF;EAEA,MAAMC,iBAAA,GAAoB;IACxB,GAAGZ,IAAI;IACP,GAAGH;EACL;EAEA,MAAMgB,eAAA,GAAkB;IACtBC,QAAA,EAAUP,IAAA,CAAKC,SAAS,CAACI,iBAAA;IACzBX;EACF;EAEA,OAAOR,SAAA,CAAUoB,eAAA,EAAiB;IAAEE,OAAA,EAAS;IAAMC,iBAAA,EAAmB;EAAM;AAC9E","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function FieldErrorsToast({ errorMessage }: {
3
+ errorMessage: any;
4
+ }): React.JSX.Element;
5
+ //# sourceMappingURL=fieldErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAwDzB,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE;;CAAA,qBAehD"}
@@ -0,0 +1,85 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import React from 'react';
6
+ function groupSimilarErrors(items) {
7
+ const result = [];
8
+ for (const item of items) {
9
+ if (item) {
10
+ const parts = item.split(' → ');
11
+ let inserted = false;
12
+ // Find a place where a similar path exists
13
+ for (let i = 0; i < result.length; i++) {
14
+ if (result[i].startsWith(parts[0])) {
15
+ result.splice(i + 1, 0, item);
16
+ inserted = true;
17
+ break;
18
+ }
19
+ }
20
+ // If no similar path was found, add to the end
21
+ if (!inserted) {
22
+ result.push(item);
23
+ }
24
+ }
25
+ }
26
+ return result;
27
+ }
28
+ function createErrorsFromMessage(message) {
29
+ const [intro, errorsString] = message.split(':');
30
+ const errors = (errorsString || '').split(',').map(error => error.replaceAll(' > ', ' → ').trim());
31
+ if (errors.length === 0) {
32
+ return {
33
+ message: intro
34
+ };
35
+ }
36
+ if (errors.length === 1) {
37
+ return {
38
+ message: `${intro}: ${errors[0]}`
39
+ };
40
+ }
41
+ return {
42
+ errors: groupSimilarErrors(errors),
43
+ message: `${intro} (${errors.length}):`
44
+ };
45
+ }
46
+ export function FieldErrorsToast(t0) {
47
+ const $ = _c(5);
48
+ const {
49
+ errorMessage
50
+ } = t0;
51
+ let t1;
52
+ if ($[0] !== errorMessage) {
53
+ t1 = () => createErrorsFromMessage(errorMessage);
54
+ $[0] = errorMessage;
55
+ $[1] = t1;
56
+ } else {
57
+ t1 = $[1];
58
+ }
59
+ const [t2] = React.useState(t1);
60
+ const {
61
+ errors,
62
+ message
63
+ } = t2;
64
+ let t3;
65
+ if ($[2] !== errors || $[3] !== message) {
66
+ t3 = _jsxs("div", {
67
+ children: [message, Array.isArray(errors) && errors.length > 0 ? _jsx("ul", {
68
+ "data-testid": "field-errors",
69
+ children: errors.map(_temp)
70
+ }) : null]
71
+ });
72
+ $[2] = errors;
73
+ $[3] = message;
74
+ $[4] = t3;
75
+ } else {
76
+ t3 = $[4];
77
+ }
78
+ return t3;
79
+ }
80
+ function _temp(error, index) {
81
+ return _jsx("li", {
82
+ children: error
83
+ }, index);
84
+ }
85
+ //# sourceMappingURL=fieldErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n const errors = (errorsString || '')\n .split(',')\n .map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 0) {\n return {\n message: intro,\n }\n }\n\n if (errors.length === 1) {\n return {\n message: `${intro}: ${errors[0]}`,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmBC,KAAe;EACzC,MAAMC,MAAA,GAAmB,EAAE;EAE3B,KAAK,MAAMC,IAAA,IAAQF,KAAA,EAAO;IACxB,IAAIE,IAAA,EAAM;MACR,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC;MACzB,IAAIC,QAAA,GAAW;MAEf;MACA,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIL,MAAA,CAAOM,MAAM,EAAED,CAAA,IAAK;QACtC,IAAIL,MAAM,CAACK,CAAA,CAAE,CAACE,UAAU,CAACL,KAAK,CAAC,EAAE,GAAG;UAClCF,MAAA,CAAOQ,MAAM,CAACH,CAAA,GAAI,GAAG,GAAGJ,IAAA;UACxBG,QAAA,GAAW;UACX;QACF;MACF;MAEA;MACA,IAAI,CAACA,QAAA,EAAU;QACbJ,MAAA,CAAOS,IAAI,CAACR,IAAA;MACd;IACF;EACF;EAEA,OAAOD,MAAA;AACT;AAEA,SAASU,wBAAwBC,OAAe;EAI9C,MAAM,CAACC,KAAA,EAAOC,YAAA,CAAa,GAAGF,OAAA,CAAQR,KAAK,CAAC;EAC5C,MAAMW,MAAA,GAAS,CAACD,YAAA,IAAgB,EAAC,EAC9BV,KAAK,CAAC,KACNY,GAAG,CAAEC,KAAA,IAAUA,KAAA,CAAMC,UAAU,CAAC,OAAO,OAAOC,IAAI;EAErD,IAAIJ,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLK,OAAA,EAASC;IACX;EACF;EAEA,IAAIE,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLK,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAM,CAAC,EAAE;IACjC;EACF;EAEA,OAAO;IACLA,MAAA,EAAQhB,kBAAA,CAAmBgB,MAAA;IAC3BH,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAA,CAAOR,MAAM;EACrC;AACF;AAEA,OAAO,SAAAa,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAzB,EAAA;EAA0B;IAAA0B;EAAA,IAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IACFC,EAAA,GAAAA,CAAA,KAAMb,uBAAA,CAAwBY,YAAA;IAAAD,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA3E,OAAAG,EAAA,IAA8B3B,KAAA,CAAA4B,QAAA,CAAeF,EAA8B;EAApE;IAAAT,MAAA;IAAAH;EAAA,IAAAa,EAAmB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAP,MAAA,IAAAO,CAAA,QAAAV,OAAA;IAGxBe,EAAA,GAAAC,KAAA,CAAC;MAAAC,QAAA,GACEjB,OAAA,EACAkB,KAAA,CAAAC,OAAA,CAAchB,MAAA,KAAWA,MAAA,CAAAR,MAAA,IAAgB,GACxCyB,IAAA,CAAC;QAAA,eAAe;QAAAH,QAAA,EACbd,MAAA,CAAAC,GAAA,CAAAiB,KAED;MAAA,C,QAEA;IAAA,C;;;;;;;SARNN,E;;AAJG,SAAAM,MAAAhB,KAAA,EAAAiB,KAAA;EAAA,OASYF,IAAA,CAAC;IAAAH,QAAA,EAAgBZ;EAAA,GAARiB,KAAA;AAAA","ignoreList":[]}