@payloadcms/plugin-form-builder 1.2.0 → 3.0.0-alpha.50

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 (94) hide show
  1. package/dist/collections/FormSubmissions/hooks/createCharge.js +3 -13
  2. package/dist/collections/FormSubmissions/hooks/createCharge.js.map +1 -0
  3. package/dist/collections/FormSubmissions/hooks/sendEmail.js +15 -25
  4. package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +1 -0
  5. package/dist/collections/FormSubmissions/index.js +36 -49
  6. package/dist/collections/FormSubmissions/index.js.map +1 -0
  7. package/dist/collections/Forms/DynamicFieldSelector.js +11 -58
  8. package/dist/collections/Forms/DynamicFieldSelector.js.map +1 -0
  9. package/dist/collections/Forms/DynamicPriceSelector.js +13 -61
  10. package/dist/collections/Forms/DynamicPriceSelector.js.map +1 -0
  11. package/dist/collections/Forms/fields.js +102 -120
  12. package/dist/collections/Forms/fields.js.map +1 -0
  13. package/dist/collections/Forms/index.js +47 -61
  14. package/dist/collections/Forms/index.js.map +1 -0
  15. package/dist/index.js +8 -29
  16. package/dist/index.js.map +1 -0
  17. package/dist/types.js +2 -12
  18. package/dist/types.js.map +1 -0
  19. package/dist/utilities/getPaymentTotal.js +2 -12
  20. package/dist/utilities/getPaymentTotal.js.map +1 -0
  21. package/dist/utilities/lexical/converters/heading.js +4 -14
  22. package/dist/utilities/lexical/converters/heading.js.map +1 -0
  23. package/dist/utilities/lexical/converters/linebreak.js +2 -12
  24. package/dist/utilities/lexical/converters/linebreak.js.map +1 -0
  25. package/dist/utilities/lexical/converters/link.js +8 -17
  26. package/dist/utilities/lexical/converters/link.js.map +1 -0
  27. package/dist/utilities/lexical/converters/list.js +7 -25
  28. package/dist/utilities/lexical/converters/list.js.map +1 -0
  29. package/dist/utilities/lexical/converters/paragraph.js +4 -14
  30. package/dist/utilities/lexical/converters/paragraph.js.map +1 -0
  31. package/dist/utilities/lexical/converters/quote.js +4 -14
  32. package/dist/utilities/lexical/converters/quote.js.map +1 -0
  33. package/dist/utilities/lexical/converters/text.js +12 -22
  34. package/dist/utilities/lexical/converters/text.js.map +1 -0
  35. package/dist/utilities/lexical/defaultConverters.js +17 -27
  36. package/dist/utilities/lexical/defaultConverters.js.map +1 -0
  37. package/dist/utilities/lexical/nodeFormat.js +16 -61
  38. package/dist/utilities/lexical/nodeFormat.js.map +1 -0
  39. package/dist/utilities/lexical/serializeLexical.js +5 -23
  40. package/dist/utilities/lexical/serializeLexical.js.map +1 -0
  41. package/dist/utilities/lexical/types.js +2 -5
  42. package/dist/utilities/lexical/types.js.map +1 -0
  43. package/dist/utilities/replaceDoubleCurlys.js +2 -12
  44. package/dist/utilities/replaceDoubleCurlys.js.map +1 -0
  45. package/dist/utilities/slate/serializeSlate.js +6 -21
  46. package/dist/utilities/slate/serializeSlate.js.map +1 -0
  47. package/package.json +24 -11
  48. package/src/index.ts +55 -0
  49. package/dist/collections/FormSubmissions/hooks/createCharge.d.ts +0 -4
  50. package/dist/collections/FormSubmissions/hooks/createCharge.d.ts.map +0 -1
  51. package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts +0 -4
  52. package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts.map +0 -1
  53. package/dist/collections/FormSubmissions/index.d.ts +0 -4
  54. package/dist/collections/FormSubmissions/index.d.ts.map +0 -1
  55. package/dist/collections/Forms/DynamicFieldSelector.d.ts +0 -4
  56. package/dist/collections/Forms/DynamicFieldSelector.d.ts.map +0 -1
  57. package/dist/collections/Forms/DynamicPriceSelector.d.ts +0 -4
  58. package/dist/collections/Forms/DynamicPriceSelector.d.ts.map +0 -1
  59. package/dist/collections/Forms/fields.d.ts +0 -7
  60. package/dist/collections/Forms/fields.d.ts.map +0 -1
  61. package/dist/collections/Forms/index.d.ts +0 -4
  62. package/dist/collections/Forms/index.d.ts.map +0 -1
  63. package/dist/index.d.ts +0 -7
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/types.d.ts +0 -175
  66. package/dist/types.d.ts.map +0 -1
  67. package/dist/utilities/getPaymentTotal.d.ts +0 -5
  68. package/dist/utilities/getPaymentTotal.d.ts.map +0 -1
  69. package/dist/utilities/lexical/converters/heading.d.ts +0 -3
  70. package/dist/utilities/lexical/converters/heading.d.ts.map +0 -1
  71. package/dist/utilities/lexical/converters/linebreak.d.ts +0 -3
  72. package/dist/utilities/lexical/converters/linebreak.d.ts.map +0 -1
  73. package/dist/utilities/lexical/converters/link.d.ts +0 -3
  74. package/dist/utilities/lexical/converters/link.d.ts.map +0 -1
  75. package/dist/utilities/lexical/converters/list.d.ts +0 -4
  76. package/dist/utilities/lexical/converters/list.d.ts.map +0 -1
  77. package/dist/utilities/lexical/converters/paragraph.d.ts +0 -3
  78. package/dist/utilities/lexical/converters/paragraph.d.ts.map +0 -1
  79. package/dist/utilities/lexical/converters/quote.d.ts +0 -3
  80. package/dist/utilities/lexical/converters/quote.d.ts.map +0 -1
  81. package/dist/utilities/lexical/converters/text.d.ts +0 -3
  82. package/dist/utilities/lexical/converters/text.d.ts.map +0 -1
  83. package/dist/utilities/lexical/defaultConverters.d.ts +0 -3
  84. package/dist/utilities/lexical/defaultConverters.d.ts.map +0 -1
  85. package/dist/utilities/lexical/nodeFormat.d.ts +0 -39
  86. package/dist/utilities/lexical/nodeFormat.d.ts.map +0 -1
  87. package/dist/utilities/lexical/serializeLexical.d.ts +0 -9
  88. package/dist/utilities/lexical/serializeLexical.d.ts.map +0 -1
  89. package/dist/utilities/lexical/types.d.ts +0 -14
  90. package/dist/utilities/lexical/types.d.ts.map +0 -1
  91. package/dist/utilities/replaceDoubleCurlys.d.ts +0 -8
  92. package/dist/utilities/replaceDoubleCurlys.d.ts.map +0 -1
  93. package/dist/utilities/slate/serializeSlate.d.ts +0 -12
  94. package/dist/utilities/slate/serializeSlate.d.ts.map +0 -1
@@ -1,24 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const createCharge = async (beforeChangeData, formConfig)=>{
1
+ export const createCharge = async (beforeChangeData, formConfig)=>{
12
2
  const { data, operation } = beforeChangeData;
13
3
  let dataWithPaymentDetails = data;
14
4
  if (operation === 'create') {
15
5
  const { handlePayment } = formConfig || {};
16
6
  if (typeof handlePayment === 'function') {
7
+ // eslint-disable-next-line @typescript-eslint/await-thenable
17
8
  dataWithPaymentDetails = await handlePayment(beforeChangeData);
18
9
  }
19
10
  }
20
11
  return dataWithPaymentDetails;
21
12
  };
22
- const _default = createCharge;
23
13
 
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3JtU3VibWlzc2lvbnMvaG9va3MvY3JlYXRlQ2hhcmdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGx1Z2luQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5cbmNvbnN0IGNyZWF0ZUNoYXJnZSA9IGFzeW5jIChiZWZvcmVDaGFuZ2VEYXRhOiBhbnksIGZvcm1Db25maWc6IFBsdWdpbkNvbmZpZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHsgZGF0YSwgb3BlcmF0aW9uIH0gPSBiZWZvcmVDaGFuZ2VEYXRhXG5cbiAgbGV0IGRhdGFXaXRoUGF5bWVudERldGFpbHMgPSBkYXRhXG5cbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgICBjb25zdCB7IGhhbmRsZVBheW1lbnQgfSA9IGZvcm1Db25maWcgfHwge31cblxuICAgIGlmICh0eXBlb2YgaGFuZGxlUGF5bWVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZGF0YVdpdGhQYXltZW50RGV0YWlscyA9IGF3YWl0IGhhbmRsZVBheW1lbnQoYmVmb3JlQ2hhbmdlRGF0YSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0YVdpdGhQYXltZW50RGV0YWlsc1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVDaGFyZ2VcbiJdLCJuYW1lcyI6WyJjcmVhdGVDaGFyZ2UiLCJiZWZvcmVDaGFuZ2VEYXRhIiwiZm9ybUNvbmZpZyIsImRhdGEiLCJvcGVyYXRpb24iLCJkYXRhV2l0aFBheW1lbnREZXRhaWxzIiwiaGFuZGxlUGF5bWVudCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrQkE7OztlQUFBOzs7QUFoQkEsTUFBTUEsZUFBZSxPQUFPQyxrQkFBdUJDO0lBQ2pELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUUsR0FBR0g7SUFFNUIsSUFBSUkseUJBQXlCRjtJQUU3QixJQUFJQyxjQUFjLFVBQVU7UUFDMUIsTUFBTSxFQUFFRSxhQUFhLEVBQUUsR0FBR0osY0FBYyxDQUFDO1FBRXpDLElBQUksT0FBT0ksa0JBQWtCLFlBQVk7WUFDdkNELHlCQUF5QixNQUFNQyxjQUFjTDtRQUMvQztJQUNGO0lBRUEsT0FBT0k7QUFDVDtNQUVBLFdBQWVMIn0=
14
+ //# sourceMappingURL=createCharge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/collections/FormSubmissions/hooks/createCharge.ts"],"sourcesContent":["import type { PluginConfig } from '../../../types.js'\n\nexport const createCharge = async (\n beforeChangeData: any,\n formConfig: PluginConfig,\n): Promise<any> => {\n const { data, operation } = beforeChangeData\n\n let dataWithPaymentDetails = data\n\n if (operation === 'create') {\n const { handlePayment } = formConfig || {}\n\n if (typeof handlePayment === 'function') {\n // eslint-disable-next-line @typescript-eslint/await-thenable\n dataWithPaymentDetails = await handlePayment(beforeChangeData)\n }\n }\n\n return dataWithPaymentDetails\n}\n"],"names":["createCharge","beforeChangeData","formConfig","data","operation","dataWithPaymentDetails","handlePayment"],"mappings":"AAEA,OAAO,MAAMA,eAAe,OAC1BC,kBACAC;IAEA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGH;IAE5B,IAAII,yBAAyBF;IAE7B,IAAIC,cAAc,UAAU;QAC1B,MAAM,EAAEE,aAAa,EAAE,GAAGJ,cAAc,CAAC;QAEzC,IAAI,OAAOI,kBAAkB,YAAY;YACvC,6DAA6D;YAC7DD,yBAAyB,MAAMC,cAAcL;QAC/C;IACF;IAEA,OAAOI;AACT,EAAC"}
@@ -1,18 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _serializeLexical = require("../../../utilities/lexical/serializeLexical");
12
- const _replaceDoubleCurlys = require("../../../utilities/replaceDoubleCurlys");
13
- const _serializeSlate = require("../../../utilities/slate/serializeSlate");
14
- const sendEmail = async (beforeChangeData, formConfig)=>{
15
- const { data, operation } = beforeChangeData;
1
+ import { serializeLexical } from '../../../utilities/lexical/serializeLexical.js';
2
+ import { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js';
3
+ import { serializeSlate } from '../../../utilities/slate/serializeSlate.js';
4
+ export const sendEmail = async (beforeChangeData, formConfig)=>{
5
+ const { data, operation, req } = beforeChangeData;
16
6
  if (operation === 'create') {
17
7
  const { data: { id: formSubmissionID }, req: { locale, payload } } = beforeChangeData;
18
8
  const { form: formID, submissionData } = data || {};
@@ -21,26 +11,27 @@ const sendEmail = async (beforeChangeData, formConfig)=>{
21
11
  const form = await payload.findByID({
22
12
  id: formID,
23
13
  collection: formOverrides?.slug || 'forms',
24
- locale
14
+ locale,
15
+ req
25
16
  });
26
17
  const { emails } = form;
27
18
  if (emails && emails.length) {
28
19
  const formattedEmails = await Promise.all(emails.map(async (email)=>{
29
20
  const { bcc: emailBCC, cc: emailCC, emailFrom, emailTo, message, replyTo: emailReplyTo, subject } = email;
30
- const to = (0, _replaceDoubleCurlys.replaceDoubleCurlys)(emailTo, submissionData);
31
- const cc = emailCC ? (0, _replaceDoubleCurlys.replaceDoubleCurlys)(emailCC, submissionData) : '';
32
- const bcc = emailBCC ? (0, _replaceDoubleCurlys.replaceDoubleCurlys)(emailBCC, submissionData) : '';
33
- const from = (0, _replaceDoubleCurlys.replaceDoubleCurlys)(emailFrom, submissionData);
34
- const replyTo = (0, _replaceDoubleCurlys.replaceDoubleCurlys)(emailReplyTo || emailFrom, submissionData);
21
+ const to = replaceDoubleCurlys(emailTo, submissionData);
22
+ const cc = emailCC ? replaceDoubleCurlys(emailCC, submissionData) : '';
23
+ const bcc = emailBCC ? replaceDoubleCurlys(emailBCC, submissionData) : '';
24
+ const from = replaceDoubleCurlys(emailFrom, submissionData);
25
+ const replyTo = replaceDoubleCurlys(emailReplyTo || emailFrom, submissionData);
35
26
  const isLexical = message && !Array.isArray(message) && 'root' in message;
36
- const serializedMessage = isLexical ? await (0, _serializeLexical.serializeLexical)(message, submissionData) : (0, _serializeSlate.serializeSlate)(message, submissionData);
27
+ const serializedMessage = isLexical ? await serializeLexical(message, submissionData) : serializeSlate(message, submissionData);
37
28
  return {
38
29
  bcc,
39
30
  cc,
40
31
  from,
41
32
  html: `<div>${serializedMessage}</div>`,
42
33
  replyTo,
43
- subject: (0, _replaceDoubleCurlys.replaceDoubleCurlys)(subject, submissionData),
34
+ subject: replaceDoubleCurlys(subject, submissionData),
44
35
  to
45
36
  };
46
37
  }));
@@ -74,6 +65,5 @@ const sendEmail = async (beforeChangeData, formConfig)=>{
74
65
  }
75
66
  return data;
76
67
  };
77
- const _default = sendEmail;
78
68
 
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3JtU3VibWlzc2lvbnMvaG9va3Mvc2VuZEVtYWlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW1haWwsIEZvcm1hdHRlZEVtYWlsLCBQbHVnaW5Db25maWcgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcblxuaW1wb3J0IHsgc2VyaWFsaXplTGV4aWNhbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9sZXhpY2FsL3NlcmlhbGl6ZUxleGljYWwnXG5pbXBvcnQgeyByZXBsYWNlRG91YmxlQ3VybHlzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3JlcGxhY2VEb3VibGVDdXJseXMnXG5pbXBvcnQgeyBzZXJpYWxpemVTbGF0ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9zbGF0ZS9zZXJpYWxpemVTbGF0ZSdcblxuY29uc3Qgc2VuZEVtYWlsID0gYXN5bmMgKGJlZm9yZUNoYW5nZURhdGE6IGFueSwgZm9ybUNvbmZpZzogUGx1Z2luQ29uZmlnKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgeyBkYXRhLCBvcGVyYXRpb24gfSA9IGJlZm9yZUNoYW5nZURhdGFcblxuICBpZiAob3BlcmF0aW9uID09PSAnY3JlYXRlJykge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGE6IHsgaWQ6IGZvcm1TdWJtaXNzaW9uSUQgfSxcbiAgICAgIHJlcTogeyBsb2NhbGUsIHBheWxvYWQgfSxcbiAgICB9ID0gYmVmb3JlQ2hhbmdlRGF0YVxuXG4gICAgY29uc3QgeyBmb3JtOiBmb3JtSUQsIHN1Ym1pc3Npb25EYXRhIH0gPSBkYXRhIHx8IHt9XG5cbiAgICBjb25zdCB7IGJlZm9yZUVtYWlsLCBmb3JtT3ZlcnJpZGVzIH0gPSBmb3JtQ29uZmlnIHx8IHt9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZm9ybSA9IGF3YWl0IHBheWxvYWQuZmluZEJ5SUQoe1xuICAgICAgICBpZDogZm9ybUlELFxuICAgICAgICBjb2xsZWN0aW9uOiBmb3JtT3ZlcnJpZGVzPy5zbHVnIHx8ICdmb3JtcycsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHsgZW1haWxzIH0gPSBmb3JtXG5cbiAgICAgIGlmIChlbWFpbHMgJiYgZW1haWxzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRFbWFpbHM6IEZvcm1hdHRlZEVtYWlsW10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICBlbWFpbHMubWFwKGFzeW5jIChlbWFpbDogRW1haWwpOiBQcm9taXNlPEZvcm1hdHRlZEVtYWlsIHwgbnVsbD4gPT4ge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBiY2M6IGVtYWlsQkNDLFxuICAgICAgICAgICAgICBjYzogZW1haWxDQyxcbiAgICAgICAgICAgICAgZW1haWxGcm9tLFxuICAgICAgICAgICAgICBlbWFpbFRvLFxuICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICByZXBseVRvOiBlbWFpbFJlcGx5VG8sXG4gICAgICAgICAgICAgIHN1YmplY3QsXG4gICAgICAgICAgICB9ID0gZW1haWxcblxuICAgICAgICAgICAgY29uc3QgdG8gPSByZXBsYWNlRG91YmxlQ3VybHlzKGVtYWlsVG8sIHN1Ym1pc3Npb25EYXRhKVxuICAgICAgICAgICAgY29uc3QgY2MgPSBlbWFpbENDID8gcmVwbGFjZURvdWJsZUN1cmx5cyhlbWFpbENDLCBzdWJtaXNzaW9uRGF0YSkgOiAnJ1xuICAgICAgICAgICAgY29uc3QgYmNjID0gZW1haWxCQ0MgPyByZXBsYWNlRG91YmxlQ3VybHlzKGVtYWlsQkNDLCBzdWJtaXNzaW9uRGF0YSkgOiAnJ1xuICAgICAgICAgICAgY29uc3QgZnJvbSA9IHJlcGxhY2VEb3VibGVDdXJseXMoZW1haWxGcm9tLCBzdWJtaXNzaW9uRGF0YSlcbiAgICAgICAgICAgIGNvbnN0IHJlcGx5VG8gPSByZXBsYWNlRG91YmxlQ3VybHlzKGVtYWlsUmVwbHlUbyB8fCBlbWFpbEZyb20sIHN1Ym1pc3Npb25EYXRhKVxuXG4gICAgICAgICAgICBjb25zdCBpc0xleGljYWwgPSBtZXNzYWdlICYmICFBcnJheS5pc0FycmF5KG1lc3NhZ2UpICYmICdyb290JyBpbiBtZXNzYWdlXG5cbiAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRNZXNzYWdlID0gaXNMZXhpY2FsXG4gICAgICAgICAgICAgID8gYXdhaXQgc2VyaWFsaXplTGV4aWNhbChtZXNzYWdlLCBzdWJtaXNzaW9uRGF0YSlcbiAgICAgICAgICAgICAgOiBzZXJpYWxpemVTbGF0ZShtZXNzYWdlLCBzdWJtaXNzaW9uRGF0YSlcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgYmNjLFxuICAgICAgICAgICAgICBjYyxcbiAgICAgICAgICAgICAgZnJvbSxcbiAgICAgICAgICAgICAgaHRtbDogYDxkaXY+JHtzZXJpYWxpemVkTWVzc2FnZX08L2Rpdj5gLFxuICAgICAgICAgICAgICByZXBseVRvLFxuICAgICAgICAgICAgICBzdWJqZWN0OiByZXBsYWNlRG91YmxlQ3VybHlzKHN1YmplY3QsIHN1Ym1pc3Npb25EYXRhKSxcbiAgICAgICAgICAgICAgdG8sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgIClcblxuICAgICAgICBsZXQgZW1haWxzVG9TZW5kID0gZm9ybWF0dGVkRW1haWxzXG5cbiAgICAgICAgaWYgKHR5cGVvZiBiZWZvcmVFbWFpbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGVtYWlsc1RvU2VuZCA9IGF3YWl0IGJlZm9yZUVtYWlsKGZvcm1hdHRlZEVtYWlscylcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnN0IGxvZyA9IGVtYWlsc1RvU2VuZC5tYXAoKHsgaHRtbCwgLi4ucmVzdCB9KSA9PiAoeyAuLi5yZXN0IH0pKVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIGVtYWlsc1RvU2VuZC5tYXAoYXN5bmMgKGVtYWlsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHRvIH0gPSBlbWFpbFxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgZW1haWxQcm9taXNlID0gYXdhaXQgcGF5bG9hZC5zZW5kRW1haWwoZW1haWwpXG4gICAgICAgICAgICAgIHJldHVybiBlbWFpbFByb21pc2VcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICAgICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgZXJyOiBgRXJyb3Igd2hpbGUgc2VuZGluZyBlbWFpbCB0byBhZGRyZXNzOiAke3RvfS4gRW1haWwgbm90IHNlbnQ6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgKX1gLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiAnTm8gZW1haWxzIHRvIHNlbmQuJyB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgY29uc3QgbXNnID0gYEVycm9yIHdoaWxlIHNlbmRpbmcgb25lIG9yIG1vcmUgZW1haWxzIGluIGZvcm0gc3VibWlzc2lvbiBpZDogJHtmb3JtU3VibWlzc2lvbklEfS5gXG4gICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVycjogbXNnIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2VuZEVtYWlsXG4iXSwibmFtZXMiOlsic2VuZEVtYWlsIiwiYmVmb3JlQ2hhbmdlRGF0YSIsImZvcm1Db25maWciLCJkYXRhIiwib3BlcmF0aW9uIiwiaWQiLCJmb3JtU3VibWlzc2lvbklEIiwicmVxIiwibG9jYWxlIiwicGF5bG9hZCIsImZvcm0iLCJmb3JtSUQiLCJzdWJtaXNzaW9uRGF0YSIsImJlZm9yZUVtYWlsIiwiZm9ybU92ZXJyaWRlcyIsImZpbmRCeUlEIiwiY29sbGVjdGlvbiIsInNsdWciLCJlbWFpbHMiLCJsZW5ndGgiLCJmb3JtYXR0ZWRFbWFpbHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZW1haWwiLCJiY2MiLCJlbWFpbEJDQyIsImNjIiwiZW1haWxDQyIsImVtYWlsRnJvbSIsImVtYWlsVG8iLCJtZXNzYWdlIiwicmVwbHlUbyIsImVtYWlsUmVwbHlUbyIsInN1YmplY3QiLCJ0byIsInJlcGxhY2VEb3VibGVDdXJseXMiLCJmcm9tIiwiaXNMZXhpY2FsIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VyaWFsaXplZE1lc3NhZ2UiLCJzZXJpYWxpemVMZXhpY2FsIiwic2VyaWFsaXplU2xhdGUiLCJodG1sIiwiZW1haWxzVG9TZW5kIiwiZW1haWxQcm9taXNlIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5mbyIsIm1zZyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFvR0E7OztlQUFBOzs7a0NBbEdpQztxQ0FDRztnQ0FDTDtBQUUvQixNQUFNQSxZQUFZLE9BQU9DLGtCQUF1QkM7SUFDOUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRSxHQUFHSDtJQUU1QixJQUFJRyxjQUFjLFVBQVU7UUFDMUIsTUFBTSxFQUNKRCxNQUFNLEVBQUVFLElBQUlDLGdCQUFnQixFQUFFLEVBQzlCQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEVBQ3pCLEdBQUdSO1FBRUosTUFBTSxFQUFFUyxNQUFNQyxNQUFNLEVBQUVDLGNBQWMsRUFBRSxHQUFHVCxRQUFRLENBQUM7UUFFbEQsTUFBTSxFQUFFVSxXQUFXLEVBQUVDLGFBQWEsRUFBRSxHQUFHWixjQUFjLENBQUM7UUFFdEQsSUFBSTtZQUNGLE1BQU1RLE9BQU8sTUFBTUQsUUFBUU0sUUFBUSxD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
69
+ //# sourceMappingURL=sendEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"sourcesContent":["import type { Email, FormattedEmail, PluginConfig } from '../../../types.js'\n\nimport { serializeLexical } from '../../../utilities/lexical/serializeLexical.js'\nimport { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js'\nimport { serializeSlate } from '../../../utilities/slate/serializeSlate.js'\n\nexport const sendEmail = async (beforeChangeData: any, formConfig: PluginConfig): Promise<any> => {\n const { data, operation, req } = beforeChangeData\n\n if (operation === 'create') {\n const {\n data: { id: formSubmissionID },\n req: { locale, payload },\n } = beforeChangeData\n\n const { form: formID, submissionData } = data || {}\n\n const { beforeEmail, formOverrides } = formConfig || {}\n\n try {\n const form = await payload.findByID({\n id: formID,\n collection: formOverrides?.slug || 'forms',\n locale,\n req,\n })\n\n const { emails } = form\n\n if (emails && emails.length) {\n const formattedEmails: FormattedEmail[] = await Promise.all(\n emails.map(async (email: Email): Promise<FormattedEmail | null> => {\n const {\n bcc: emailBCC,\n cc: emailCC,\n emailFrom,\n emailTo,\n message,\n replyTo: emailReplyTo,\n subject,\n } = email\n\n const to = replaceDoubleCurlys(emailTo, submissionData)\n const cc = emailCC ? replaceDoubleCurlys(emailCC, submissionData) : ''\n const bcc = emailBCC ? replaceDoubleCurlys(emailBCC, submissionData) : ''\n const from = replaceDoubleCurlys(emailFrom, submissionData)\n const replyTo = replaceDoubleCurlys(emailReplyTo || emailFrom, submissionData)\n\n const isLexical = message && !Array.isArray(message) && 'root' in message\n\n const serializedMessage = isLexical\n ? await serializeLexical(message, submissionData)\n : serializeSlate(message, submissionData)\n\n return {\n bcc,\n cc,\n from,\n html: `<div>${serializedMessage}</div>`,\n replyTo,\n subject: replaceDoubleCurlys(subject, submissionData),\n to,\n }\n }),\n )\n\n let emailsToSend = formattedEmails\n\n if (typeof beforeEmail === 'function') {\n emailsToSend = await beforeEmail(formattedEmails)\n }\n\n // const log = emailsToSend.map(({ html, ...rest }) => ({ ...rest }))\n\n await Promise.all(\n emailsToSend.map(async (email) => {\n const { to } = email\n try {\n const emailPromise = await payload.sendEmail(email)\n return emailPromise\n } catch (err: unknown) {\n payload.logger.error({\n err: `Error while sending email to address: ${to}. Email not sent: ${JSON.stringify(\n err,\n )}`,\n })\n }\n }),\n )\n } else {\n payload.logger.info({ msg: 'No emails to send.' })\n }\n } catch (err: unknown) {\n const msg = `Error while sending one or more emails in form submission id: ${formSubmissionID}.`\n payload.logger.error({ err: msg })\n }\n }\n\n return data\n}\n"],"names":["serializeLexical","replaceDoubleCurlys","serializeSlate","sendEmail","beforeChangeData","formConfig","data","operation","req","id","formSubmissionID","locale","payload","form","formID","submissionData","beforeEmail","formOverrides","findByID","collection","slug","emails","length","formattedEmails","Promise","all","map","email","bcc","emailBCC","cc","emailCC","emailFrom","emailTo","message","replyTo","emailReplyTo","subject","to","from","isLexical","Array","isArray","serializedMessage","html","emailsToSend","emailPromise","err","logger","error","JSON","stringify","info","msg"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,iDAAgD;AACjF,SAASC,mBAAmB,QAAQ,4CAA2C;AAC/E,SAASC,cAAc,QAAQ,6CAA4C;AAE3E,OAAO,MAAMC,YAAY,OAAOC,kBAAuBC;IACrD,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,GAAG,EAAE,GAAGJ;IAEjC,IAAIG,cAAc,UAAU;QAC1B,MAAM,EACJD,MAAM,EAAEG,IAAIC,gBAAgB,EAAE,EAC9BF,KAAK,EAAEG,MAAM,EAAEC,OAAO,EAAE,EACzB,GAAGR;QAEJ,MAAM,EAAES,MAAMC,MAAM,EAAEC,cAAc,EAAE,GAAGT,QAAQ,CAAC;QAElD,MAAM,EAAEU,WAAW,EAAEC,aAAa,EAAE,GAAGZ,cAAc,CAAC;QAEtD,IAAI;YACF,MAAMQ,OAAO,MAAMD,QAAQM,QAAQ,CAAC;gBAClCT,IAAIK;gBACJK,YAAYF,eAAeG,QAAQ;gBACnCT;gBACAH;YACF;YAEA,MAAM,EAAEa,MAAM,EAAE,GAAGR;YAEnB,IAAIQ,UAAUA,OAAOC,MAAM,EAAE;gBAC3B,MAAMC,kBAAoC,MAAMC,QAAQC,GAAG,CACzDJ,OAAOK,GAAG,CAAC,OAAOC;oBAChB,MAAM,EACJC,KAAKC,QAAQ,EACbC,IAAIC,OAAO,EACXC,SAAS,EACTC,OAAO,EACPC,OAAO,EACPC,SAASC,YAAY,EACrBC,OAAO,EACR,GAAGV;oBAEJ,MAAMW,KAAKrC,oBAAoBgC,SAASlB;oBACxC,MAAMe,KAAKC,UAAU9B,oBAAoB8B,SAAShB,kBAAkB;oBACpE,MAAMa,MAAMC,WAAW5B,oBAAoB4B,UAAUd,kBAAkB;oBACvE,MAAMwB,OAAOtC,oBAAoB+B,WAAWjB;oBAC5C,MAAMoB,UAAUlC,oBAAoBmC,gBAAgBJ,WAAWjB;oBAE/D,MAAMyB,YAAYN,WAAW,CAACO,MAAMC,OAAO,CAACR,YAAY,UAAUA;oBAElE,MAAMS,oBAAoBH,YACtB,MAAMxC,iBAAiBkC,SAASnB,kBAChCb,eAAegC,SAASnB;oBAE5B,OAAO;wBACLa;wBACAE;wBACAS;wBACAK,MAAM,CAAC,KAAK,EAAED,kBAAkB,MAAM,CAAC;wBACvCR;wBACAE,SAASpC,oBAAoBoC,SAAStB;wBACtCuB;oBACF;gBACF;gBAGF,IAAIO,eAAetB;gBAEnB,IAAI,OAAOP,gBAAgB,YAAY;oBACrC6B,eAAe,MAAM7B,YAAYO;gBACnC;gBAEA,qEAAqE;gBAErE,MAAMC,QAAQC,GAAG,CACfoB,aAAanB,GAAG,CAAC,OAAOC;oBACtB,MAAM,EAAEW,EAAE,EAAE,GAAGX;oBACf,IAAI;wBACF,MAAMmB,eAAe,MAAMlC,QAAQT,SAAS,CAACwB;wBAC7C,OAAOmB;oBACT,EAAE,OAAOC,KAAc;wBACrBnC,QAAQoC,MAAM,CAACC,KAAK,CAAC;4BACnBF,KAAK,CAAC,sCAAsC,EAAET,GAAG,kBAAkB,EAAEY,KAAKC,SAAS,CACjFJ,KACA,CAAC;wBACL;oBACF;gBACF;YAEJ,OAAO;gBACLnC,QAAQoC,MAAM,CAACI,IAAI,CAAC;oBAAEC,KAAK;gBAAqB;YAClD;QACF,EAAE,OAAON,KAAc;YACrB,MAAMM,MAAM,CAAC,8DAA8D,EAAE3C,iBAAiB,CAAC,CAAC;YAChGE,QAAQoC,MAAM,CAACC,KAAK,CAAC;gBAAEF,KAAKM;YAAI;QAClC;IACF;IAEA,OAAO/C;AACT,EAAC"}
@@ -1,24 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "generateSubmissionCollection", {
6
- enumerable: true,
7
- get: function() {
8
- return generateSubmissionCollection;
9
- }
10
- });
11
- const _createCharge = /*#__PURE__*/ _interop_require_default(require("./hooks/createCharge"));
12
- const _sendEmail = /*#__PURE__*/ _interop_require_default(require("./hooks/sendEmail"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- const generateSubmissionCollection = (formConfig)=>{
1
+ import { createCharge } from './hooks/createCharge.js';
2
+ import { sendEmail } from './hooks/sendEmail.js';
3
+ // all settings can be overridden by the config
4
+ export const generateSubmissionCollection = (formConfig)=>{
19
5
  const formSlug = formConfig?.formOverrides?.slug || 'forms';
20
6
  const newConfig = {
21
7
  ...formConfig?.formSubmissionOverrides || {},
8
+ slug: formConfig?.formSubmissionOverrides?.slug || 'form-submissions',
22
9
  access: {
23
10
  create: ()=>true,
24
11
  read: ({ req: { user } })=>!!user,
@@ -32,20 +19,21 @@ const generateSubmissionCollection = (formConfig)=>{
32
19
  fields: [
33
20
  {
34
21
  name: 'form',
22
+ type: 'relationship',
35
23
  admin: {
36
24
  readOnly: true
37
25
  },
38
26
  relationTo: formSlug,
39
27
  required: true,
40
- type: 'relationship',
41
- validate: async (value, { payload })=>{
28
+ validate: async (value, { req: { payload }, req })=>{
42
29
  /* Don't run in the client side */ if (!payload) return true;
43
30
  if (payload) {
44
- let existingForm;
31
+ let _existingForm;
45
32
  try {
46
- existingForm = await payload.findByID({
33
+ _existingForm = await payload.findByID({
47
34
  id: value,
48
- collection: formSlug
35
+ collection: formSlug,
36
+ req
49
37
  });
50
38
  return true;
51
39
  } catch (error) {
@@ -56,19 +44,20 @@ const generateSubmissionCollection = (formConfig)=>{
56
44
  },
57
45
  {
58
46
  name: 'submissionData',
47
+ type: 'array',
59
48
  admin: {
60
49
  readOnly: true
61
50
  },
62
51
  fields: [
63
52
  {
64
53
  name: 'field',
65
- required: true,
66
- type: 'text'
54
+ type: 'text',
55
+ required: true
67
56
  },
68
57
  {
69
58
  name: 'value',
70
- required: true,
71
59
  type: 'text',
60
+ required: true,
72
61
  validate: (value)=>{
73
62
  // TODO:
74
63
  // create a validation function that dynamically
@@ -83,45 +72,44 @@ const generateSubmissionCollection = (formConfig)=>{
83
72
  return 'This field is required.';
84
73
  }
85
74
  }
86
- ],
87
- type: 'array'
75
+ ]
88
76
  },
89
77
  ...formConfig?.formSubmissionOverrides?.fields || []
90
78
  ],
91
79
  hooks: {
92
80
  beforeChange: [
93
- (data)=>(0, _createCharge.default)(data, formConfig),
94
- (data)=>(0, _sendEmail.default)(data, formConfig),
81
+ (data)=>createCharge(data, formConfig),
82
+ (data)=>sendEmail(data, formConfig),
95
83
  ...formConfig?.formSubmissionOverrides?.hooks?.beforeChange || []
96
84
  ],
97
85
  ...formConfig?.formSubmissionOverrides?.hooks || {}
98
- },
99
- slug: formConfig?.formSubmissionOverrides?.slug || 'form-submissions'
86
+ }
100
87
  };
101
88
  const paymentFieldConfig = formConfig?.fields?.payment;
102
89
  if (paymentFieldConfig) {
103
90
  newConfig.fields.push({
104
91
  name: 'payment',
92
+ type: 'group',
105
93
  admin: {
106
94
  readOnly: true
107
95
  },
108
96
  fields: [
109
97
  {
110
98
  name: 'field',
111
- label: 'Field',
112
- type: 'text'
99
+ type: 'text',
100
+ label: 'Field'
113
101
  },
114
102
  {
115
103
  name: 'status',
116
- label: 'Status',
117
- type: 'text'
104
+ type: 'text',
105
+ label: 'Status'
118
106
  },
119
107
  {
120
108
  name: 'amount',
109
+ type: 'number',
121
110
  admin: {
122
111
  description: 'Amount in cents'
123
- },
124
- type: 'number'
112
+ }
125
113
  },
126
114
  {
127
115
  name: 'paymentProcessor',
@@ -129,31 +117,30 @@ const generateSubmissionCollection = (formConfig)=>{
129
117
  },
130
118
  {
131
119
  name: 'creditCard',
120
+ type: 'group',
132
121
  fields: [
133
122
  {
134
123
  name: 'token',
135
- label: 'token',
136
- type: 'text'
124
+ type: 'text',
125
+ label: 'token'
137
126
  },
138
127
  {
139
128
  name: 'brand',
140
- label: 'Brand',
141
- type: 'text'
129
+ type: 'text',
130
+ label: 'Brand'
142
131
  },
143
132
  {
144
133
  name: 'number',
145
- label: 'Number',
146
- type: 'text'
134
+ type: 'text',
135
+ label: 'Number'
147
136
  }
148
137
  ],
149
- label: 'Credit Card',
150
- type: 'group'
138
+ label: 'Credit Card'
151
139
  }
152
- ],
153
- type: 'group'
140
+ ]
154
141
  });
155
142
  }
156
143
  return newConfig;
157
144
  };
158
145
 
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3JtU3VibWlzc2lvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5Db25maWcgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IGNyZWF0ZUNoYXJnZSBmcm9tICcuL2hvb2tzL2NyZWF0ZUNoYXJnZSdcbmltcG9ydCBzZW5kRW1haWwgZnJvbSAnLi9ob29rcy9zZW5kRW1haWwnXG5cbi8vIGFsbCBzZXR0aW5ncyBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgY29uZmlnXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVTdWJtaXNzaW9uQ29sbGVjdGlvbiA9IChmb3JtQ29uZmlnOiBQbHVnaW5Db25maWcpOiBDb2xsZWN0aW9uQ29uZmlnID0+IHtcbiAgY29uc3QgZm9ybVNsdWcgPSBmb3JtQ29uZmlnPy5mb3JtT3ZlcnJpZGVzPy5zbHVnIHx8ICdmb3JtcydcblxuICBjb25zdCBuZXdDb25maWc6IENvbGxlY3Rpb25Db25maWcgPSB7XG4gICAgLi4uKGZvcm1Db25maWc/LmZvcm1TdWJtaXNzaW9uT3ZlcnJpZGVzIHx8IHt9KSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIGNyZWF0ZTogKCkgPT4gdHJ1ZSxcbiAgICAgIHJlYWQ6ICh7IHJlcTogeyB1c2VyIH0gfSkgPT4gISF1c2VyLCAvLyBsb2dnZWQtaW4gdXNlcnMsXG4gICAgICB1cGRhdGU6ICgpID0+IGZhbHNlLFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1TdWJtaXNzaW9uT3ZlcnJpZGVzPy5hY2Nlc3MgfHwge30pLFxuICAgIH0sXG4gICAgYWRtaW46IHtcbiAgICAgIC4uLihmb3JtQ29uZmlnPy5mb3JtU3VibWlzc2lvbk92ZXJyaWRlcz8uYWRtaW4gfHwge30pLFxuICAgICAgZW5hYmxlUmljaFRleHRSZWxhdGlvbnNoaXA6IGZhbHNlLFxuICAgIH0sXG4gICAgZmllbGRzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdmb3JtJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpb25UbzogZm9ybVNsdWcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB0eXBlOiAncmVsYXRpb25zaGlwJyxcbiAgICAgICAgdmFsaWRhdGU6IGFzeW5jICh2YWx1ZSwgeyBwYXlsb2FkIH0pID0+IHtcbiAgICAgICAgICAvKiBEb24ndCBydW4gaW4gdGhlIGNsaWVudCBzaWRlICovXG4gICAgICAgICAgaWYgKCFwYXlsb2FkKSByZXR1cm4gdHJ1ZVxuXG4gICAgICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgICAgIGxldCBleGlzdGluZ0Zvcm1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZXhpc3RpbmdGb3JtID0gYXdhaXQgcGF5bG9hZC5maW5kQnlJRCh7XG4gICAgICAgICAgICAgICAgaWQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IGZvcm1TbHVnLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gJ0Nhbm5vdCBjcmVhdGUgdGhpcyBzdWJtaXNzaW9uIGJlY2F1c2UgdGhpcyBmb3JtIGRvZXMgbm90IGV4aXN0LidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3VibWlzc2lvbkRhdGEnLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmllbGQnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAndmFsdWUnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgIC8vIFRPRE86XG4gICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gdGhhdCBkeW5hbWljYWxseVxuICAgICAgICAgICAgICAvLyByZWxpZXMgb24gdGhlIGZpZWxkIHR5cGUgYW5kIGl0cyBvcHRpb25zIGFzIGNvbmZpZ3VyZWQuXG5cbiAgICAgICAgICAgICAgLy8gSG93IHRvIGFjY2VzcyBzaWJsaW5nIGRhdGEgZnJvbSB0aGlzIGZpZWxkP1xuICAgICAgICAgICAgICAvLyBOZWVkIHRoZSBgbmFtZWAgb2YgdGhlIGZpZWxkIGluIG9yZGVyIHRvIHZhbGlkYXRlIGl0LlxuXG4gICAgICAgICAgICAgIC8vIE1pZ2h0IG5vdCBiZSBwb3NzaWJsZSB0byB1c2UgdGhpcyB2YWxpZGF0aW9uIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICAvLyBJbnN0ZWFkLCBtaWdodCBuZWVkIHRvIGRvIGFsbCB2YWxpZGF0aW9uIGluIGEgYGJlZm9yZVZhbGlkYXRlYCBjb2xsZWN0aW9uIGhvb2suXG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIH0sXG4gICAgICAuLi4oZm9ybUNvbmZpZz8uZm9ybVN1Ym1pc3Npb25PdmVycmlkZXM/LmZpZWxkcyB8fCBbXSksXG4gICAgXSxcbiAgICBob29rczoge1xuICAgICAgYmVmb3JlQ2hhbmdlOiBbXG4gICAgICAgIChkYXRhKSA9PiBjcmVhdGVDaGFyZ2UoZGF0YSwgZm9ybUNvbmZpZyksXG4gICAgICAgIChkYXRhKSA9PiBzZW5kRW1haWwoZGF0YSwgZm9ybUNvbmZpZyksXG4gICAgICAgIC4uLihmb3JtQ29uZmlnPy5mb3JtU3VibWlzc2lvbk92ZXJyaWRlcz8uaG9va3M/LmJlZm9yZUNoYW5nZSB8fCBbXSksXG4gICAgICBdLFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1TdWJtaXNzaW9uT3ZlcnJpZGVzPy5ob29rcyB8fCB7fSksXG4gICAgfSxcbiAgICBzbHVnOiBmb3JtQ29uZmlnPy5mb3JtU3VibWlzc2lvbk92ZXJyaWRlcz8uc2x1ZyB8fCAnZm9ybS1zdWJtaXNzaW9ucycsXG4gIH1cblxuICBjb25zdCBwYXltZW50RmllbGRDb25maWcgPSBmb3JtQ29uZmlnPy5maWVsZHM/LnBheW1lbnRcblxuICBpZiAocGF5bWVudEZpZWxkQ29uZmlnKSB7XG4gICAgbmV3Q29uZmlnLmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdwYXltZW50JyxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2ZpZWxkJyxcbiAgICAgICAgICBsYWJlbDogJ0ZpZWxkJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2Ftb3VudCcsXG4gICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQW1vdW50IGluIGNlbnRzJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3BheW1lbnRQcm9jZXNzb3InLFxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjcmVkaXRDYXJkJyxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3Rva2VuJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICd0b2tlbicsXG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdicmFuZCcsXG4gICAgICAgICAgICAgIGxhYmVsOiAnQnJhbmQnLFxuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdOdW1iZXInLFxuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbGFiZWw6ICdDcmVkaXQgQ2FyZCcsXG4gICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gbmV3Q29uZmlnXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVTdWJtaXNzaW9uQ29sbGVjdGlvbiIsImZvcm1Db25maWciLCJmb3JtU2x1ZyIsImZvcm1PdmVycmlkZXMiLCJzbHVnIiwibmV3Q29uZmlnIiwiZm9ybVN1Ym1pc3Npb25PdmVycmlkZXMiLCJhY2Nlc3MiLCJjcmVhdGUiLCJyZWFkIiwicmVxIiwidXNlciIsInVwZGF0ZSIsImFkbWluIiwiZW5hYmxlUmljaFRleHRSZWxhdGlvbnNoaXAiLCJmaWVsZHMiLCJuYW1lIiwicmVhZE9ubHkiLCJyZWxhdGlvblRvIiwicmVxdWlyZWQiLCJ0eXBlIiwidmFsaWRhdGUiLCJ2YWx1ZSIsInBheWxvYWQiLCJleGlzdGluZ0Zvcm0iLCJmaW5kQnlJRCIsImlkIiwiY29sbGVjdGlvbiIsImVycm9yIiwiaG9va3MiLCJiZWZvcmVDaGFuZ2UiLCJkYXRhIiwiY3JlYXRlQ2hhcmdlIiwic2VuZEVtYWlsIiwicGF5bWVudEZpZWxkQ29uZmlnIiwicGF5bWVudCIsInB1c2giLCJsYWJlbCIsImRlc2NyaXB0aW9uIl0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7cUVBSlk7a0VBQ0g7Ozs7OztBQUdmLE1BQU1BLCtCQUErQixDQUFDQztJQUMzQyxNQUFNQyxXQUFXRCxZQUFZRSxlQUFlQyxRQUFRO0lBRXBELE1BQU1DLFlBQThCO1FBQ2xDLEdBQUlKLFlBQVlLLDJCQUEyQixDQUFDLENBQUM7UUFDN0NDLFFBQVE7WUFDTkMsUUFBUSxJQUFNO1lBQ2RDLE1BQU0sQ0FBQyxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxFQUFFLEdBQUssQ0FBQyxDQUFDQTtZQUMvQkMsUUFBUSxJQUFNO1lBQ2QsR0FBSVgsWUFBWUsseUJBQXlCQyxVQUFVLENBQUMsQ0FBQztRQUN2RDtRQUNBTSxPQUFPO1lBQ0wsR0FBSVosWUFBWUsseUJBQXlCTyxTQUFTLENBQUMsQ0FBQztZQUNwREMsNEJBQTRCO1FBQzlCO1FBQ0FDLFFBQVE7WUFDTjtnQkFDRUMsTUFBTTtnQkFDTkgsT0FBTztvQkFDTEksVUFBVTtnQkFDWjtnQkFDQUMsWUFBWWhCO2dCQUNaaUIsVUFBVTtnQkFDVkMsTUFBTTtnQkFDTkMsVUFBVSxPQUFPQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtvQkFDakMsZ0NBQWdDLEdBQ2hDLElBQUksQ0FBQ0EsU0FBUyxPQUFPO29CQUVyQixJQUFJQSxTQUFTO3dCQUNYLElBQUlDO3dCQUVKLElBQUk7NEJBQ0ZBLGVBQWUsTUFBTUQsUUFBUUUsUUFBUSxDQUFDO2dDQUNwQ0MsSUFBSUo7Z0NBQ0pLLFlBQVl6Qjs0QkFDZDs0QkFFQSxPQUFPO3dCQUNULEVBQUUsT0FBTzBCLE9BQU87NEJBQ2QsT0FBTzt3QkFDVDtvQkFDRjtnQkFDRjtZQUNGO1lBQ0E7Z0JBQ0VaLE1BQU07Z0JBQ05ILE9BQU87b0JBQ0xJLFVBQVU7Z0JBQ1o7Z0JBQ0FGLFFBQVE7b0JBQ047d0JBQ0VDLE1BQU07d0JBQ05HLFVBQVU7d0JBQ1ZDLE1BQU07b0JBQ1I7b0JBQ0E7d0JBQ0VKLE1BQU07d0JBQ05HLFVBQVU7d0JBQ1ZDLE1BQU07d0JBQ05DLFVBQVUsQ0FBQ0M7NEJBQ1QsUUFBUTs0QkFDUixnREFBZ0Q7NEJBQ2hELDBEQUEwRDs0QkFFMUQsOENBQThDOzRCQUM5Qyx3REFBd0Q7NEJBRXhELHlEQUF5RDs0QkFDekQsa0ZBQWtGOzRCQUVsRixJQUFJLE9BQU9BLFVBQVUsYUFBYTtnQ0FDaEMsT0FBTzs0QkFDVDs0QkFFQSxPQUFPO3dCQUNUO29CQUNGO2lCQUNEO2dCQUNERixNQUFNO1lBQ1I7ZUFDSW5CLFlBQVlLLHlCQUF5QlMsVUFBVSxFQUFFO1NBQ3REO1FBQ0RjLE9BQU87WUFDTEMsY0FBYztnQkFDWixDQUFDQyxPQUFTQyxJQUFBQSxxQkFBWSxFQUFDRCxNQUFNOUI7Z0JBQzdCLENBQUM4QixPQUFTRSxJQUFBQSxrQkFBUyxFQUFDRixNQUFNOUI7bUJBQ3RCQSxZQUFZSyx5QkFBeUJ1QixPQUFPQyxnQkFBZ0IsRUFBRTthQUNuRTtZQUNELEdBQUk3QixZQUFZSyx5QkFBeUJ1QixTQUFTLENBQUMsQ0FBQztRQUN0RDtRQUNBekIsTUFBTUgsWUFBWUsseUJBQXlCRixRQUFRO0lBQ3JEO0lBRUEsTUFBTThCLHFCQUFxQmpDLFlBQVljLFFBQVFvQjtJQUUvQyxJQUFJRCxvQkFBb0I7UUFDdEI3QixVQUFVVSxNQUFNLENBQUNxQixJQUFJLENBQUM7WUFDcEJwQixNQUFNO1lBQ05ILE9BQU87Z0JBQ0xJLFVBQVU7WUFDWjtZQUNBRixRQUFRO2dCQUNOO29CQUNFQyxNQUFNO29CQUNOcUIsT0FBTztvQkFDUGpCLE1BQU07Z0JBQ1I7Z0JBQ0E7b0JBQ0VKLE1BQU07b0JBQ05xQixPQUFPO29CQUNQakIsTUFBTTtnQkFDUjtnQkFDQTtvQkFDRUosTUFBTTtvQkFDTkgsT0FBTzt3QkFDTHlCLGFBQWE7b0JBQ2Y7b0JBQ0FsQixNQUFNO2dCQUNSO2dCQUNBO29CQUNFSixNQUFNO29CQUNOSSxNQUFNO2dCQUNSO2dCQUNBO29CQUNFSixNQUFNO29CQUNORCxRQUFRO3dCQUNOOzRCQUNFQyxNQUFNOzRCQUNOcUIsT0FBTzs0QkFDUGpCLE1BQU07d0JBQ1I7d0JBQ0E7NEJBQ0VKLE1BQU07NEJBQ05xQixPQUFPOzRCQUNQakIsTUFBTTt3QkFDUjt3QkFDQTs0QkFDRUosTUFBTTs0QkFDTnFCLE9BQU87NEJBQ1BqQixNQUFNO3dCQUNSO3FCQUNEO29CQUNEaUIsT0FBTztvQkFDUGpCLE1BQU07Z0JBQ1I7YUFDRDtZQUNEQSxNQUFNO1FBQ1I7SUFDRjtJQUVBLE9BQU9mO0FBQ1QifQ==
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/collections/FormSubmissions/index.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload/types'\n\nimport type { PluginConfig } from '../../types.js'\n\nimport { createCharge } from './hooks/createCharge.js'\nimport { sendEmail } from './hooks/sendEmail.js'\n\n// all settings can be overridden by the config\nexport const generateSubmissionCollection = (formConfig: PluginConfig): CollectionConfig => {\n const formSlug = formConfig?.formOverrides?.slug || 'forms'\n\n const newConfig: CollectionConfig = {\n ...(formConfig?.formSubmissionOverrides || {}),\n slug: formConfig?.formSubmissionOverrides?.slug || 'form-submissions',\n access: {\n create: () => true,\n read: ({ req: { user } }) => !!user, // logged-in users,\n update: () => false,\n ...(formConfig?.formSubmissionOverrides?.access || {}),\n },\n admin: {\n ...(formConfig?.formSubmissionOverrides?.admin || {}),\n enableRichTextRelationship: false,\n },\n fields: [\n {\n name: 'form',\n type: 'relationship',\n admin: {\n readOnly: true,\n },\n relationTo: formSlug,\n required: true,\n validate: async (value, { req: { payload }, req }) => {\n /* Don't run in the client side */\n if (!payload) return true\n\n if (payload) {\n let _existingForm\n\n try {\n _existingForm = await payload.findByID({\n id: value,\n collection: formSlug,\n req,\n })\n\n return true\n } catch (error) {\n return 'Cannot create this submission because this form does not exist.'\n }\n }\n },\n },\n {\n name: 'submissionData',\n type: 'array',\n admin: {\n readOnly: true,\n },\n fields: [\n {\n name: 'field',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n validate: (value: unknown) => {\n // TODO:\n // create a validation function that dynamically\n // relies on the field type and its options as configured.\n\n // How to access sibling data from this field?\n // Need the `name` of the field in order to validate it.\n\n // Might not be possible to use this validation function.\n // Instead, might need to do all validation in a `beforeValidate` collection hook.\n\n if (typeof value !== 'undefined') {\n return true\n }\n\n return 'This field is required.'\n },\n },\n ],\n },\n ...(formConfig?.formSubmissionOverrides?.fields || []),\n ],\n hooks: {\n beforeChange: [\n (data) => createCharge(data, formConfig),\n (data) => sendEmail(data, formConfig),\n ...(formConfig?.formSubmissionOverrides?.hooks?.beforeChange || []),\n ],\n ...(formConfig?.formSubmissionOverrides?.hooks || {}),\n },\n }\n\n const paymentFieldConfig = formConfig?.fields?.payment\n\n if (paymentFieldConfig) {\n newConfig.fields.push({\n name: 'payment',\n type: 'group',\n admin: {\n readOnly: true,\n },\n fields: [\n {\n name: 'field',\n type: 'text',\n label: 'Field',\n },\n {\n name: 'status',\n type: 'text',\n label: 'Status',\n },\n {\n name: 'amount',\n type: 'number',\n admin: {\n description: 'Amount in cents',\n },\n },\n {\n name: 'paymentProcessor',\n type: 'text',\n },\n {\n name: 'creditCard',\n type: 'group',\n fields: [\n {\n name: 'token',\n type: 'text',\n label: 'token',\n },\n {\n name: 'brand',\n type: 'text',\n label: 'Brand',\n },\n {\n name: 'number',\n type: 'text',\n label: 'Number',\n },\n ],\n label: 'Credit Card',\n },\n ],\n })\n }\n\n return newConfig\n}\n"],"names":["createCharge","sendEmail","generateSubmissionCollection","formConfig","formSlug","formOverrides","slug","newConfig","formSubmissionOverrides","access","create","read","req","user","update","admin","enableRichTextRelationship","fields","name","type","readOnly","relationTo","required","validate","value","payload","_existingForm","findByID","id","collection","error","hooks","beforeChange","data","paymentFieldConfig","payment","push","label","description"],"mappings":"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"}
@@ -1,60 +1,11 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "DynamicFieldSelector", {
7
- enumerable: true,
8
- get: function() {
9
- return DynamicFieldSelector;
10
- }
11
- });
12
- const _forms = require("payload/components/forms");
13
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
- function _getRequireWildcardCache(nodeInterop) {
15
- if (typeof WeakMap !== "function") return null;
16
- var cacheBabelInterop = new WeakMap();
17
- var cacheNodeInterop = new WeakMap();
18
- return (_getRequireWildcardCache = function(nodeInterop) {
19
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
20
- })(nodeInterop);
21
- }
22
- function _interop_require_wildcard(obj, nodeInterop) {
23
- if (!nodeInterop && obj && obj.__esModule) {
24
- return obj;
25
- }
26
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
27
- return {
28
- default: obj
29
- };
30
- }
31
- var cache = _getRequireWildcardCache(nodeInterop);
32
- if (cache && cache.has(obj)) {
33
- return cache.get(obj);
34
- }
35
- var newObj = {};
36
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
37
- for(var key in obj){
38
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
39
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
40
- if (desc && (desc.get || desc.set)) {
41
- Object.defineProperty(newObj, key, desc);
42
- } else {
43
- newObj[key] = obj[key];
44
- }
45
- }
46
- }
47
- newObj.default = obj;
48
- if (cache) {
49
- cache.set(obj, newObj);
50
- }
51
- return newObj;
52
- }
53
- const DynamicFieldSelector = (props)=>{
54
- const { fields, getDataByPath } = (0, _forms.useForm)();
55
- const [options, setOptions] = (0, _react.useState)([]);
56
- (0, _react.useEffect)(()=>{
57
- // @ts-ignore
2
+ import { Select } from '@payloadcms/ui/fields/Select';
3
+ import { useForm } from '@payloadcms/ui/forms/Form';
4
+ import React, { useEffect, useState } from 'react';
5
+ export const DynamicFieldSelector = (props)=>{
6
+ const { fields, getDataByPath } = useForm();
7
+ const [options, setOptions] = useState([]);
8
+ useEffect(()=>{
58
9
  const fields = getDataByPath('fields');
59
10
  if (fields) {
60
11
  const allNonPaymentFields = fields.map((block)=>{
@@ -73,10 +24,12 @@ const DynamicFieldSelector = (props)=>{
73
24
  fields,
74
25
  getDataByPath
75
26
  ]);
76
- return /*#__PURE__*/ _react.default.createElement(_forms.Select, {
27
+ // TODO: label from config is Record<string, string> | false | string
28
+ // but the FormFieldBase type has only label?: string, changing FormFieldBase breaks other ui components
29
+ return /*#__PURE__*/ React.createElement(Select, {
77
30
  ...props,
78
31
  options: options
79
32
  });
80
33
  };
81
34
 
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3Jtcy9EeW5hbWljRmllbGRTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgVGV4dEZpZWxkIH0gZnJvbSAncGF5bG9hZC9kaXN0L2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IFNlbGVjdCwgdXNlRm9ybSB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9mb3JtcydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgU2VsZWN0RmllbGRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IER5bmFtaWNGaWVsZFNlbGVjdG9yOiBSZWFjdC5GQzxUZXh0RmllbGQ+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZmllbGRzLCBnZXREYXRhQnlQYXRoIH0gPSB1c2VGb3JtKClcblxuICBjb25zdCBbb3B0aW9ucywgc2V0T3B0aW9uc10gPSB1c2VTdGF0ZTxTZWxlY3RGaWVsZE9wdGlvbltdPihbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBmaWVsZHM6IGFueVtdID0gZ2V0RGF0YUJ5UGF0aCgnZmllbGRzJylcblxuICAgIGlmIChmaWVsZHMpIHtcbiAgICAgIGNvbnN0IGFsbE5vblBheW1lbnRGaWVsZHMgPSBmaWVsZHNcbiAgICAgICAgLm1hcCgoYmxvY2spOiBTZWxlY3RGaWVsZE9wdGlvbiB8IG51bGwgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgbmFtZSwgYmxvY2tUeXBlLCBsYWJlbCB9ID0gYmxvY2tcblxuICAgICAgICAgIGlmIChibG9ja1R5cGUgIT09ICdwYXltZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIHNldE9wdGlvbnMoYWxsTm9uUGF5bWVudEZpZWxkcylcbiAgICB9XG4gIH0sIFtmaWVsZHMsIGdldERhdGFCeVBhdGhdKVxuXG4gIHJldHVybiA8U2VsZWN0IHsuLi5wcm9wc30gb3B0aW9ucz17b3B0aW9uc30gLz5cbn1cbiJdLCJuYW1lcyI6WyJEeW5hbWljRmllbGRTZWxlY3RvciIsInByb3BzIiwiZmllbGRzIiwiZ2V0RGF0YUJ5UGF0aCIsInVzZUZvcm0iLCJvcHRpb25zIiwic2V0T3B0aW9ucyIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiYWxsTm9uUGF5bWVudEZpZWxkcyIsIm1hcCIsImJsb2NrIiwibmFtZSIsImJsb2NrVHlwZSIsImxhYmVsIiwidmFsdWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiU2VsZWN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBU2FBOzs7ZUFBQUE7Ozt1QkFMbUI7K0RBQ1c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJcEMsTUFBTUEsdUJBQTRDLENBQUNDO0lBQ3hELE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxhQUFhLEVBQUUsR0FBR0MsSUFBQUEsY0FBTztJQUV6QyxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR0MsSUFBQUEsZUFBUSxFQUFzQixFQUFFO0lBRTlEQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsYUFBYTtRQUNiLE1BQU1OLFNBQWdCQyxjQUFjO1FBRXBDLElBQUlELFFBQVE7WUFDVixNQUFNTyxzQkFBc0JQLE9BQ3pCUSxHQUFHLENBQUMsQ0FBQ0M7Z0JBQ0osTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdIO2dCQUVuQyxJQUFJRSxjQUFjLFdBQVc7b0JBQzNCLE9BQU87d0JBQ0xDO3dCQUNBQyxPQUFPSDtvQkFDVDtnQkFDRjtnQkFFQSxPQUFPO1lBQ1QsR0FDQ0ksTUFBTSxDQUFDQztZQUNWWCxXQUFXRztRQUNiO0lBQ0YsR0FBRztRQUFDUDtRQUFRQztLQUFjO0lBRTFCLHFCQUFPLDZCQUFDZSxhQUFNO1FBQUUsR0FBR2pCLEtBQUs7UUFBRUksU0FBU0E7O0FBQ3JDIn0=
35
+ //# sourceMappingURL=DynamicFieldSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/collections/Forms/DynamicFieldSelector.tsx"],"sourcesContent":["'use client'\n\nimport type { TextField } from 'payload/types'\n\nimport { Select } from '@payloadcms/ui/fields/Select'\nimport { useForm } from '@payloadcms/ui/forms/Form'\nimport React, { useEffect, useState } from 'react'\n\nimport type { SelectFieldOption } from '../../types.js'\n\nexport const DynamicFieldSelector: React.FC<TextField> = (props) => {\n const { fields, getDataByPath } = useForm()\n\n const [options, setOptions] = useState<SelectFieldOption[]>([])\n\n useEffect(() => {\n const fields: any[] = getDataByPath('fields')\n\n if (fields) {\n const allNonPaymentFields = fields\n .map((block): SelectFieldOption | null => {\n const { name, blockType, label } = block\n\n if (blockType !== 'payment') {\n return {\n label,\n value: name,\n }\n }\n\n return null\n })\n .filter(Boolean)\n setOptions(allNonPaymentFields)\n }\n }, [fields, getDataByPath])\n\n // TODO: label from config is Record<string, string> | false | string\n // but the FormFieldBase type has only label?: string, changing FormFieldBase breaks other ui components\n return <Select {...props} options={options} />\n}\n"],"names":["Select","useForm","React","useEffect","useState","DynamicFieldSelector","props","fields","getDataByPath","options","setOptions","allNonPaymentFields","map","block","name","blockType","label","value","filter","Boolean"],"mappings":"AAAA;AAIA,SAASA,MAAM,QAAQ,+BAA8B;AACrD,SAASC,OAAO,QAAQ,4BAA2B;AACnD,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAIlD,OAAO,MAAMC,uBAA4C,CAACC;IACxD,MAAM,EAAEC,MAAM,EAAEC,aAAa,EAAE,GAAGP;IAElC,MAAM,CAACQ,SAASC,WAAW,GAAGN,SAA8B,EAAE;IAE9DD,UAAU;QACR,MAAMI,SAAgBC,cAAc;QAEpC,IAAID,QAAQ;YACV,MAAMI,sBAAsBJ,OACzBK,GAAG,CAAC,CAACC;gBACJ,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGH;gBAEnC,IAAIE,cAAc,WAAW;oBAC3B,OAAO;wBACLC;wBACAC,OAAOH;oBACT;gBACF;gBAEA,OAAO;YACT,GACCI,MAAM,CAACC;YACVT,WAAWC;QACb;IACF,GAAG;QAACJ;QAAQC;KAAc;IAE1B,qEAAqE;IACrE,yGAAyG;IACzG,qBAAO,oBAACR;QAAQ,GAAGM,KAAK;QAAEG,SAASA;;AACrC,EAAC"}
@@ -1,64 +1,16 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "DynamicPriceSelector", {
7
- enumerable: true,
8
- get: function() {
9
- return DynamicPriceSelector;
10
- }
11
- });
12
- const _forms = require("payload/components/forms");
13
- const _utilities = require("payload/components/utilities");
14
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
15
- function _getRequireWildcardCache(nodeInterop) {
16
- if (typeof WeakMap !== "function") return null;
17
- var cacheBabelInterop = new WeakMap();
18
- var cacheNodeInterop = new WeakMap();
19
- return (_getRequireWildcardCache = function(nodeInterop) {
20
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
21
- })(nodeInterop);
22
- }
23
- function _interop_require_wildcard(obj, nodeInterop) {
24
- if (!nodeInterop && obj && obj.__esModule) {
25
- return obj;
26
- }
27
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
28
- return {
29
- default: obj
30
- };
31
- }
32
- var cache = _getRequireWildcardCache(nodeInterop);
33
- if (cache && cache.has(obj)) {
34
- return cache.get(obj);
35
- }
36
- var newObj = {};
37
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
38
- for(var key in obj){
39
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
40
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
41
- if (desc && (desc.get || desc.set)) {
42
- Object.defineProperty(newObj, key, desc);
43
- } else {
44
- newObj[key] = obj[key];
45
- }
46
- }
47
- }
48
- newObj.default = obj;
49
- if (cache) {
50
- cache.set(obj, newObj);
51
- }
52
- return newObj;
53
- }
54
- const DynamicPriceSelector = (props)=>{
2
+ import { Text } from '@payloadcms/ui/fields/Text';
3
+ import { useWatchForm } from '@payloadcms/ui/forms/Form';
4
+ import { useLocale } from '@payloadcms/ui/providers/Locale';
5
+ import React, { useEffect, useState } from 'react';
6
+ export const DynamicPriceSelector = (props)=>{
55
7
  const { label, path } = props;
56
- const { fields, getData, getDataByPath } = (0, _forms.useWatchForm)();
57
- const locale = (0, _utilities.useLocale)();
58
- const [isNumberField, setIsNumberField] = (0, _react.useState)();
59
- const [valueType, setValueType] = (0, _react.useState)();
8
+ const { fields, getData, getDataByPath } = useWatchForm();
9
+ const locale = useLocale();
10
+ const [isNumberField, setIsNumberField] = useState();
11
+ const [valueType, setValueType] = useState();
60
12
  // only number fields can use 'valueOfField`
61
- (0, _react.useEffect)(()=>{
13
+ useEffect(()=>{
62
14
  if (path) {
63
15
  const parentPath = path.split('.').slice(0, -1).join('.');
64
16
  const paymentFieldData = getDataByPath(parentPath);
@@ -81,7 +33,7 @@ const DynamicPriceSelector = (props)=>{
81
33
  ]);
82
34
  // TODO: make this a number field, block by Payload
83
35
  if (valueType === 'static') {
84
- return /*#__PURE__*/ _react.default.createElement(_forms.Text, props);
36
+ return /*#__PURE__*/ React.createElement(Text, props);
85
37
  }
86
38
  const localeCode = typeof locale === 'object' && 'code' in locale ? locale.code : locale;
87
39
  const localLabels = typeof label === 'object' ? label : {
@@ -89,7 +41,7 @@ const DynamicPriceSelector = (props)=>{
89
41
  };
90
42
  const labelValue = localLabels[localeCode] || localLabels['en'] || '';
91
43
  if (valueType === 'valueOfField' && !isNumberField) {
92
- return /*#__PURE__*/ _react.default.createElement("div", null, /*#__PURE__*/ _react.default.createElement("div", null, labelValue), /*#__PURE__*/ _react.default.createElement("div", {
44
+ return /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", null, labelValue), /*#__PURE__*/ React.createElement("div", {
93
45
  style: {
94
46
  color: '#9A9A9A'
95
47
  }
@@ -98,4 +50,4 @@ const DynamicPriceSelector = (props)=>{
98
50
  return null;
99
51
  };
100
52
 
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3Jtcy9EeW5hbWljUHJpY2VTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvZGlzdC9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFByb3BzIGFzIFRleHRGaWVsZFR5cGUgfSBmcm9tICdwYXlsb2FkL2Rpc3QvYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9UZXh0L3R5cGVzJ1xuXG5pbXBvcnQgeyBUZXh0LCB1c2VXYXRjaEZvcm0gfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvZm9ybXMnXG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxudHlwZSBGaWVsZFdpdGhJRCA9IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IER5bmFtaWNQcmljZVNlbGVjdG9yOiBSZWFjdC5GQzxUZXh0RmllbGRUeXBlPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGxhYmVsLCBwYXRoIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgZmllbGRzLCBnZXREYXRhLCBnZXREYXRhQnlQYXRoIH0gPSB1c2VXYXRjaEZvcm0oKVxuXG4gIGNvbnN0IGxvY2FsZSA9IHVzZUxvY2FsZSgpXG5cbiAgY29uc3QgW2lzTnVtYmVyRmllbGQsIHNldElzTnVtYmVyRmllbGRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oKVxuICBjb25zdCBbdmFsdWVUeXBlLCBzZXRWYWx1ZVR5cGVdID0gdXNlU3RhdGU8J3N0YXRpYycgfCAndmFsdWVPZkZpZWxkJz4oKVxuXG4gIC8vIG9ubHkgbnVtYmVyIGZpZWxkcyBjYW4gdXNlICd2YWx1ZU9mRmllbGRgXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBwYXRoLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKVxuICAgICAgY29uc3QgcGF5bWVudEZpZWxkRGF0YTogYW55ID0gZ2V0RGF0YUJ5UGF0aChwYXJlbnRQYXRoKVxuXG4gICAgICBpZiAocGF5bWVudEZpZWxkRGF0YSkge1xuICAgICAgICBjb25zdCB7IGZpZWxkVG9Vc2UsIHZhbHVlVHlwZSB9ID0gcGF5bWVudEZpZWxkRGF0YVxuXG4gICAgICAgIHNldFZhbHVlVHlwZSh2YWx1ZVR5cGUpXG5cbiAgICAgICAgY29uc3QgeyBmaWVsZHM6IGFsbEZpZWxkcyB9OiBEYXRhID0gZ2V0RGF0YSgpXG4gICAgICAgIGNvbnN0IGZpZWxkID0gYWxsRmllbGRzLmZpbmQoKGZpZWxkOiBGaWVsZFdpdGhJRCkgPT4gZmllbGQubmFtZSA9PT0gZmllbGRUb1VzZSlcblxuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBjb25zdCB7IGJsb2NrVHlwZSB9ID0gZmllbGRcbiAgICAgICAgICBzZXRJc051bWJlckZpZWxkKGJsb2NrVHlwZSA9PT0gJ251bWJlcicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtmaWVsZHMsIHBhdGgsIGdldERhdGFCeVBhdGgsIGdldERhdGFdKVxuXG4gIC8vIFRPRE86IG1ha2UgdGhpcyBhIG51bWJlciBmaWVsZCwgYmxvY2sgYnkgUGF5bG9hZFxuICBpZiAodmFsdWVUeXBlID09PSAnc3RhdGljJykge1xuICAgIHJldHVybiA8VGV4dCB7Li4ucHJvcHN9IC8+XG4gIH1cblxuICBjb25zdCBsb2NhbGVDb2RlID0gdHlwZW9mIGxvY2FsZSA9PT0gJ29iamVjdCcgJiYgJ2NvZGUnIGluIGxvY2FsZSA/IGxvY2FsZS5jb2RlIDogbG9jYWxlXG5cbiAgY29uc3QgbG9jYWxMYWJlbHMgPSB0eXBlb2YgbGFiZWwgPT09ICdvYmplY3QnID8gbGFiZWwgOiB7IFtsb2NhbGVDb2RlXTogbGFiZWwgfVxuICBjb25zdCBsYWJlbFZhbHVlID0gbG9jYWxMYWJlbHNbbG9jYWxlQ29kZV0gfHwgbG9jYWxMYWJlbHNbJ2VuJ10gfHwgJydcblxuICBpZiAodmFsdWVUeXBlID09PSAndmFsdWVPZkZpZWxkJyAmJiAhaXNOdW1iZXJGaWVsZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2PntsYWJlbFZhbHVlfTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGNvbG9yOiAnIzlBOUE5QScsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIFRoZSBzZWxlY3RlZCBmaWVsZCBtdXN0IGJlIGEgbnVtYmVyIGZpZWxkLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiRHluYW1pY1ByaWNlU2VsZWN0b3IiLCJwcm9wcyIsImxhYmVsIiwicGF0aCIsImZpZWxkcyIsImdldERhdGEiLCJnZXREYXRhQnlQYXRoIiwidXNlV2F0Y2hGb3JtIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiaXNOdW1iZXJGaWVsZCIsInNldElzTnVtYmVyRmllbGQiLCJ1c2VTdGF0ZSIsInZhbHVlVHlwZSIsInNldFZhbHVlVHlwZSIsInVzZUVmZmVjdCIsInBhcmVudFBhdGgiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsInBheW1lbnRGaWVsZERhdGEiLCJmaWVsZFRvVXNlIiwiYWxsRmllbGRzIiwiZmllbGQiLCJmaW5kIiwibmFtZSIsImJsb2NrVHlwZSIsIlRleHQiLCJsb2NhbGVDb2RlIiwiY29kZSIsImxvY2FsTGFiZWxzIiwibGFiZWxWYWx1ZSIsImRpdiIsInN0eWxlIiwiY29sb3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFjYUE7OztlQUFBQTs7O3VCQVRzQjsyQkFDVDsrREFDaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPcEMsTUFBTUEsdUJBQWdELENBQUNDO0lBQzVELE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUUsR0FBR0Y7SUFFeEIsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFLEdBQUdDLElBQUFBLG1CQUFZO0lBRXZELE1BQU1DLFNBQVNDLElBQUFBLG9CQUFTO0lBRXhCLE1BQU0sQ0FBQ0MsZUFBZUMsaUJBQWlCLEdBQUdDLElBQUFBLGVBQVE7SUFDbEQsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdGLElBQUFBLGVBQVE7SUFFMUMsNENBQTRDO0lBQzVDRyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSVosTUFBTTtZQUNSLE1BQU1hLGFBQWFiLEtBQUtjLEtBQUssQ0FBQyxLQUFLQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUdDLElBQUksQ0FBQztZQUNyRCxNQUFNQyxtQkFBd0JkLGNBQWNVO1lBRTVDLElBQUlJLGtCQUFrQjtnQkFDcEIsTUFBTSxFQUFFQyxVQUFVLEVBQUVSLFNBQVMsRUFBRSxHQUFHTztnQkFFbENOLGFBQWFEO2dCQUViLE1BQU0sRUFBRVQsUUFBUWtCLFNBQVMsRUFBRSxHQUFTakI7Z0JBQ3BDLE1BQU1rQixRQUFRRCxVQUFVRSxJQUFJLENBQUMsQ0FBQ0QsUUFBdUJBLE1BQU1FLElBQUksS0FBS0o7Z0JBRXBFLElBQUlFLE9BQU87b0JBQ1QsTUFBTSxFQUFFRyxTQUFTLEVBQUUsR0FBR0g7b0JBQ3RCWixpQkFBaUJlLGNBQWM7Z0JBQ2pDO1lBQ0Y7UUFDRjtJQUNGLEdBQUc7UUFBQ3RCO1FBQVFEO1FBQU1HO1FBQWVEO0tBQVE7SUFFekMsbURBQW1EO0lBQ25ELElBQUlRLGNBQWMsVUFBVTtRQUMxQixxQkFBTyw2QkFBQ2MsV0FBSSxFQUFLMUI7SUFDbkI7SUFFQSxNQUFNMkIsYUFBYSxPQUFPcEIsV0FBVyxZQUFZLFVBQVVBLFNBQVNBLE9BQU9xQixJQUFJLEdBQUdyQjtJQUVsRixNQUFNc0IsY0FBYyxPQUFPNUIsVUFBVSxXQUFXQSxRQUFRO1FBQUUsQ0FBQzBCLFdBQVcsRUFBRTFCO0lBQU07SUFDOUUsTUFBTTZCLGFBQWFELFdBQVcsQ0FBQ0YsV0FBVyxJQUFJRSxXQUFXLENBQUMsS0FBSyxJQUFJO0lBRW5FLElBQUlqQixjQUFjLGtCQUFrQixDQUFDSCxlQUFlO1FBQ2xELHFCQUNFLDZCQUFDc0IsMkJBQ0MsNkJBQUNBLGFBQUtELDJCQUNOLDZCQUFDQztZQUNDQyxPQUFPO2dCQUNMQyxPQUFPO1lBQ1Q7V0FDRDtJQUtQO0lBRUEsT0FBTztBQUNUIn0=
53
+ //# sourceMappingURL=DynamicPriceSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/collections/Forms/DynamicPriceSelector.tsx"],"sourcesContent":["'use client'\n\nimport type { TextFieldProps } from '@payloadcms/ui/fields/Text'\nimport type { Data } from 'payload/types'\n\nimport { Text } from '@payloadcms/ui/fields/Text'\nimport { useWatchForm } from '@payloadcms/ui/forms/Form'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport React, { useEffect, useState } from 'react'\n\ntype FieldWithID = {\n id: string\n name: string\n}\n\nexport const DynamicPriceSelector: React.FC<TextFieldProps> = (props) => {\n const { label, path } = props\n\n const { fields, getData, getDataByPath } = useWatchForm()\n\n const locale = useLocale()\n\n const [isNumberField, setIsNumberField] = useState<boolean>()\n const [valueType, setValueType] = useState<'static' | 'valueOfField'>()\n\n // only number fields can use 'valueOfField`\n useEffect(() => {\n if (path) {\n const parentPath = path.split('.').slice(0, -1).join('.')\n const paymentFieldData: any = getDataByPath(parentPath)\n\n if (paymentFieldData) {\n const { fieldToUse, valueType } = paymentFieldData\n\n setValueType(valueType)\n\n const { fields: allFields }: Data = getData()\n const field = allFields.find((field: FieldWithID) => field.name === fieldToUse)\n\n if (field) {\n const { blockType } = field\n setIsNumberField(blockType === 'number')\n }\n }\n }\n }, [fields, path, getDataByPath, getData])\n\n // TODO: make this a number field, block by Payload\n if (valueType === 'static') {\n return <Text {...props} />\n }\n\n const localeCode = typeof locale === 'object' && 'code' in locale ? locale.code : locale\n\n const localLabels = typeof label === 'object' ? label : { [localeCode]: label }\n const labelValue = localLabels[localeCode] || localLabels['en'] || ''\n\n if (valueType === 'valueOfField' && !isNumberField) {\n return (\n <div>\n <div>{labelValue}</div>\n <div\n style={{\n color: '#9A9A9A',\n }}\n >\n The selected field must be a number field.\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"names":["Text","useWatchForm","useLocale","React","useEffect","useState","DynamicPriceSelector","props","label","path","fields","getData","getDataByPath","locale","isNumberField","setIsNumberField","valueType","setValueType","parentPath","split","slice","join","paymentFieldData","fieldToUse","allFields","field","find","name","blockType","localeCode","code","localLabels","labelValue","div","style","color"],"mappings":"AAAA;AAKA,SAASA,IAAI,QAAQ,6BAA4B;AACjD,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAOlD,OAAO,MAAMC,uBAAiD,CAACC;IAC7D,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGF;IAExB,MAAM,EAAEG,MAAM,EAAEC,OAAO,EAAEC,aAAa,EAAE,GAAGX;IAE3C,MAAMY,SAASX;IAEf,MAAM,CAACY,eAAeC,iBAAiB,GAAGV;IAC1C,MAAM,CAACW,WAAWC,aAAa,GAAGZ;IAElC,4CAA4C;IAC5CD,UAAU;QACR,IAAIK,MAAM;YACR,MAAMS,aAAaT,KAAKU,KAAK,CAAC,KAAKC,KAAK,CAAC,GAAG,CAAC,GAAGC,IAAI,CAAC;YACrD,MAAMC,mBAAwBV,cAAcM;YAE5C,IAAII,kBAAkB;gBACpB,MAAM,EAAEC,UAAU,EAAEP,SAAS,EAAE,GAAGM;gBAElCL,aAAaD;gBAEb,MAAM,EAAEN,QAAQc,SAAS,EAAE,GAASb;gBACpC,MAAMc,QAAQD,UAAUE,IAAI,CAAC,CAACD,QAAuBA,MAAME,IAAI,KAAKJ;gBAEpE,IAAIE,OAAO;oBACT,MAAM,EAAEG,SAAS,EAAE,GAAGH;oBACtBV,iBAAiBa,cAAc;gBACjC;YACF;QACF;IACF,GAAG;QAAClB;QAAQD;QAAMG;QAAeD;KAAQ;IAEzC,mDAAmD;IACnD,IAAIK,cAAc,UAAU;QAC1B,qBAAO,oBAAChB,MAASO;IACnB;IAEA,MAAMsB,aAAa,OAAOhB,WAAW,YAAY,UAAUA,SAASA,OAAOiB,IAAI,GAAGjB;IAElF,MAAMkB,cAAc,OAAOvB,UAAU,WAAWA,QAAQ;QAAE,CAACqB,WAAW,EAAErB;IAAM;IAC9E,MAAMwB,aAAaD,WAAW,CAACF,WAAW,IAAIE,WAAW,CAAC,KAAK,IAAI;IAEnE,IAAIf,cAAc,kBAAkB,CAACF,eAAe;QAClD,qBACE,oBAACmB,2BACC,oBAACA,aAAKD,2BACN,oBAACC;YACCC,OAAO;gBACLC,OAAO;YACT;WACD;IAKP;IAEA,OAAO;AACT,EAAC"}