@payloadcms/plugin-search 1.0.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 (62) hide show
  1. package/README.md +129 -0
  2. package/dist/Search/hooks/deleteFromSearch.d.ts +3 -0
  3. package/dist/Search/hooks/deleteFromSearch.js +76 -0
  4. package/dist/Search/hooks/deleteFromSearch.js.map +1 -0
  5. package/dist/Search/hooks/syncWithSearch.d.ts +3 -0
  6. package/dist/Search/hooks/syncWithSearch.js +201 -0
  7. package/dist/Search/hooks/syncWithSearch.js.map +1 -0
  8. package/dist/Search/index.d.ts +3 -0
  9. package/dist/Search/index.js +68 -0
  10. package/dist/Search/index.js.map +1 -0
  11. package/dist/Search/ui/index.d.ts +3 -0
  12. package/dist/Search/ui/index.js +32 -0
  13. package/dist/Search/ui/index.js.map +1 -0
  14. package/dist/collections/FormSubmissions/hooks/createCharge.d.ts +3 -0
  15. package/dist/collections/FormSubmissions/hooks/createCharge.js +53 -0
  16. package/dist/collections/FormSubmissions/hooks/createCharge.js.map +1 -0
  17. package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts +3 -0
  18. package/dist/collections/FormSubmissions/hooks/sendEmail.js +151 -0
  19. package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +1 -0
  20. package/dist/collections/FormSubmissions/index.d.ts +3 -0
  21. package/dist/collections/FormSubmissions/index.js +137 -0
  22. package/dist/collections/FormSubmissions/index.js.map +1 -0
  23. package/dist/collections/Forms/DynamicFieldSelector.d.ts +3 -0
  24. package/dist/collections/Forms/DynamicFieldSelector.js +62 -0
  25. package/dist/collections/Forms/DynamicFieldSelector.js.map +1 -0
  26. package/dist/collections/Forms/DynamicPriceSelector.d.ts +3 -0
  27. package/dist/collections/Forms/DynamicPriceSelector.js +77 -0
  28. package/dist/collections/Forms/DynamicPriceSelector.js.map +1 -0
  29. package/dist/collections/Forms/fields.d.ts +6 -0
  30. package/dist/collections/Forms/fields.js +456 -0
  31. package/dist/collections/Forms/fields.js.map +1 -0
  32. package/dist/collections/Forms/index.d.ts +3 -0
  33. package/dist/collections/Forms/index.js +194 -0
  34. package/dist/collections/Forms/index.js.map +1 -0
  35. package/dist/collections/Search/index.d.ts +3 -0
  36. package/dist/collections/Search/index.js +63 -0
  37. package/dist/collections/Search/index.js.map +1 -0
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.js +96 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/mocks/serverModule.d.ts +2 -0
  42. package/dist/mocks/serverModule.js +4 -0
  43. package/dist/mocks/serverModule.js.map +1 -0
  44. package/dist/types.d.ts +28 -0
  45. package/dist/types.js +3 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/utilities/calculatePaymentTotal.d.ts +4 -0
  48. package/dist/utilities/calculatePaymentTotal.js +47 -0
  49. package/dist/utilities/calculatePaymentTotal.js.map +1 -0
  50. package/dist/utilities/deepMerge.d.ts +2 -0
  51. package/dist/utilities/deepMerge.js +44 -0
  52. package/dist/utilities/deepMerge.js.map +1 -0
  53. package/dist/utilities/getPaymentTotal.d.ts +4 -0
  54. package/dist/utilities/getPaymentTotal.js +44 -0
  55. package/dist/utilities/getPaymentTotal.js.map +1 -0
  56. package/dist/utilities/replaceDoubleCurlys.d.ts +7 -0
  57. package/dist/utilities/replaceDoubleCurlys.js +20 -0
  58. package/dist/utilities/replaceDoubleCurlys.js.map +1 -0
  59. package/dist/utilities/serializeRichText.d.ts +10 -0
  60. package/dist/utilities/serializeRichText.js +49 -0
  61. package/dist/utilities/serializeRichText.js.map +1 -0
  62. package/package.json +39 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ var serializeRichText_1 = require("../../../utilities/serializeRichText");
62
+ var replaceDoubleCurlys_1 = require("../../../utilities/replaceDoubleCurlys");
63
+ var sendEmail = function (beforeChangeData, formConfig) { return __awaiter(void 0, void 0, void 0, function () {
64
+ var operation, data, formSubmissionID, payload_1, _a, formID, submissionData_1, _b, beforeEmail, formOverrides, form, emails, formattedEmails, emailsToSend, log, err_1;
65
+ return __generator(this, function (_c) {
66
+ switch (_c.label) {
67
+ case 0:
68
+ operation = beforeChangeData.operation;
69
+ if (!(operation === 'create')) return [3 /*break*/, 11];
70
+ data = beforeChangeData.data, formSubmissionID = beforeChangeData.data.id, payload_1 = beforeChangeData.req.payload;
71
+ _a = data || {}, formID = _a.form, submissionData_1 = _a.submissionData;
72
+ _b = formConfig || {}, beforeEmail = _b.beforeEmail, formOverrides = _b.formOverrides;
73
+ _c.label = 1;
74
+ case 1:
75
+ _c.trys.push([1, 9, , 10]);
76
+ return [4 /*yield*/, payload_1.findByID({
77
+ id: formID,
78
+ collection: (formOverrides === null || formOverrides === void 0 ? void 0 : formOverrides.slug) || 'forms',
79
+ })];
80
+ case 2:
81
+ form = _c.sent();
82
+ if (!form) return [3 /*break*/, 7];
83
+ emails = form.emails;
84
+ if (!emails) return [3 /*break*/, 6];
85
+ formattedEmails = emails.map(function (email) {
86
+ var message = email.message, subject = email.subject, emailTo = email.emailTo, emailFrom = email.emailFrom;
87
+ var to = (0, replaceDoubleCurlys_1.replaceDoubleCurlys)(emailTo, submissionData_1);
88
+ var from = (0, replaceDoubleCurlys_1.replaceDoubleCurlys)(emailFrom, submissionData_1);
89
+ if (to && from) {
90
+ return ({
91
+ to: to,
92
+ from: from,
93
+ subject: (0, replaceDoubleCurlys_1.replaceDoubleCurlys)(subject, submissionData_1),
94
+ html: "<div>".concat((0, serializeRichText_1.serialize)(message, submissionData_1))
95
+ });
96
+ }
97
+ return null;
98
+ }).filter(Boolean);
99
+ emailsToSend = formattedEmails;
100
+ if (!(typeof beforeEmail === 'function')) return [3 /*break*/, 4];
101
+ return [4 /*yield*/, beforeEmail(formattedEmails)];
102
+ case 3:
103
+ emailsToSend = _c.sent();
104
+ _c.label = 4;
105
+ case 4:
106
+ log = emailsToSend.map(function (_a) {
107
+ var html = _a.html, rest = __rest(_a, ["html"]);
108
+ return (__assign({}, rest));
109
+ });
110
+ return [4 /*yield*/, Promise.all(emailsToSend.map(function (email) { return __awaiter(void 0, void 0, void 0, function () {
111
+ var to, emailPromise, err_2;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0:
115
+ to = email.to;
116
+ _a.label = 1;
117
+ case 1:
118
+ _a.trys.push([1, 3, , 4]);
119
+ return [4 /*yield*/, payload_1.sendEmail(email)];
120
+ case 2:
121
+ emailPromise = _a.sent();
122
+ return [2 /*return*/, emailPromise];
123
+ case 3:
124
+ err_2 = _a.sent();
125
+ console.error("Error while sending email to address: ".concat(to, ". Email not sent."));
126
+ console.error(err_2);
127
+ return [3 /*break*/, 4];
128
+ case 4: return [2 /*return*/];
129
+ }
130
+ });
131
+ }); }))];
132
+ case 5:
133
+ _c.sent();
134
+ _c.label = 6;
135
+ case 6: return [3 /*break*/, 8];
136
+ case 7:
137
+ console.log('No emails to send.');
138
+ _c.label = 8;
139
+ case 8: return [3 /*break*/, 10];
140
+ case 9:
141
+ err_1 = _c.sent();
142
+ console.error("Error while sending one or more emails in form submission id: ".concat(formSubmissionID, "."));
143
+ console.error(err_1);
144
+ return [3 /*break*/, 10];
145
+ case 10: return [2 /*return*/, data];
146
+ case 11: return [2 /*return*/, beforeChangeData];
147
+ }
148
+ });
149
+ }); };
150
+ exports.default = sendEmail;
151
+ //# sourceMappingURL=sendEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0EAAiE;AAEjE,8EAA6E;AAE7E,IAAM,SAAS,GAAG,UAAO,gBAAqB,EAAE,UAAsB;;;;;gBAElE,SAAS,GACP,gBAAgB,UADT,CACU;qBAEjB,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,yBAAsB;gBAEtB,IAAI,GAOF,gBAAgB,KAPd,EAEE,gBAAgB,GAKpB,gBAAgB,QALI,EAGpB,YAEA,gBAAgB,YAFT,CAEU;gBAEf,KAGF,IAAI,IAAI,EAAE,EAFN,MAAM,UAAA,EACZ,oCAAc,CACD;gBAET,KAGF,UAAU,IAAI,EAAE,EAFlB,WAAW,iBAAA,EACX,aAAa,mBAAA,CACM;;;;gBAGN,qBAAM,SAAO,CAAC,QAAQ,CAAC;wBAClC,EAAE,EAAE,MAAM;wBACV,UAAU,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,KAAI,OAAO;qBAC3C,CAAC,EAAA;;gBAHI,IAAI,GAAG,SAGX;qBAEE,IAAI,EAAJ,wBAAI;gBAEJ,MAAM,GACJ,IAAI,OADA,CACC;qBAEL,MAAM,EAAN,wBAAM;gBACF,eAAe,GAAqB,MAAM,CAAC,GAAG,CAAC,UAAC,KAAY;oBAE9D,IAAA,OAAO,GAIL,KAAK,QAJA,EACP,OAAO,GAGL,KAAK,QAHA,EACP,OAAO,GAEL,KAAK,QAFA,EACP,SAAS,GACP,KAAK,UADE,CACD;oBAEV,IAAM,EAAE,GAAG,IAAA,yCAAmB,EAAC,OAAO,EAAE,gBAAc,CAAC,CAAC;oBACxD,IAAM,IAAI,GAAG,IAAA,yCAAmB,EAAC,SAAS,EAAE,gBAAc,CAAC,CAAC;oBAE5D,IAAI,EAAE,IAAI,IAAI,EAAE;wBACd,OAAO,CAAC;4BACN,EAAE,IAAA;4BACF,IAAI,MAAA;4BACJ,OAAO,EAAE,IAAA,yCAAmB,EAAC,OAAO,EAAE,gBAAc,CAAC;4BACrD,IAAI,EAAE,eAAQ,IAAA,6BAAS,EAAC,OAAO,EAAE,gBAAc,CAAC,CAAE;yBACnD,CAAC,CAAC;qBACJ;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEf,YAAY,GAAG,eAAe,CAAA;qBAE9B,CAAA,OAAO,WAAW,KAAK,UAAU,CAAA,EAAjC,wBAAiC;gBACpB,qBAAM,WAAW,CAAC,eAAe,CAAC,EAAA;;gBAAjD,YAAY,GAAG,SAAkC,CAAC;;;gBAG9C,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,UAAC,EAAiB;oBAAf,IAAA,IAAI,UAAA,EAAK,IAAI,cAAf,QAAiB,CAAF;oBAAO,OAAA,cAAM,IAAI,EAAG,CAAA;iBAAA,CAAC,CAAA;gBAElE,qBAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,UAAO,KAAK;;;;;oCACnB,EAAE,GAAK,KAAK,GAAV,CAAW;;;;oCAEE,qBAAM,SAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAA;;oCAA7C,YAAY,GAAG,SAA8B;oCACnD,sBAAO,YAAY,EAAC;;;oCAEpB,OAAO,CAAC,KAAK,CAAC,gDAAyC,EAAE,sBAAmB,CAAC,CAAC;oCAC9E,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;;;;;yBAEtB,CAAC,CACH,EAAA;;gBAXD,SAWC,CAAC;;;;gBAGJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;;;;;gBAGnC,OAAO,CAAC,KAAK,CAAC,wEAAiE,gBAAgB,MAAG,CAAC,CAAC;gBACpG,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;;qBAGrB,sBAAO,IAAI,EAAA;qBAGb,sBAAO,gBAAgB,EAAC;;;KACzB,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CollectionConfig } from 'payload/types';
2
+ import { FormConfig } from '../../types';
3
+ export declare const generateSubmissionCollection: (formConfig: FormConfig) => CollectionConfig;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateSubmissionCollection = void 0;
7
+ var deepMerge_1 = __importDefault(require("../../utilities/deepMerge"));
8
+ var sendEmail_1 = __importDefault(require("./hooks/sendEmail"));
9
+ var createCharge_1 = __importDefault(require("./hooks/createCharge"));
10
+ // all settings can be overridden by the config
11
+ var generateSubmissionCollection = function (formConfig) {
12
+ var _a;
13
+ return (0, deepMerge_1.default)({
14
+ slug: ((_a = formConfig === null || formConfig === void 0 ? void 0 : formConfig.formSubmissionOverrides) === null || _a === void 0 ? void 0 : _a.slug) || 'formSubmissions',
15
+ access: {
16
+ create: function () { return true; },
17
+ update: function () { return false; },
18
+ read: function (_a) {
19
+ var user = _a.req.user;
20
+ return !!user;
21
+ } // logged-in users
22
+ },
23
+ admin: {
24
+ enableRichTextRelationship: false
25
+ },
26
+ hooks: {
27
+ beforeChange: [
28
+ function (data) { return (0, createCharge_1.default)(data, formConfig); },
29
+ function (data) { return (0, sendEmail_1.default)(data, formConfig); },
30
+ ],
31
+ },
32
+ fields: [
33
+ {
34
+ name: 'form',
35
+ type: 'relationship',
36
+ relationTo: 'forms',
37
+ required: true,
38
+ admin: {
39
+ readOnly: true
40
+ },
41
+ },
42
+ {
43
+ name: 'submissionData',
44
+ type: 'array',
45
+ admin: {
46
+ readOnly: true
47
+ },
48
+ fields: [
49
+ {
50
+ name: 'field',
51
+ type: 'text',
52
+ required: true,
53
+ },
54
+ {
55
+ name: 'value',
56
+ type: 'text',
57
+ required: true,
58
+ validate: function (value) {
59
+ // TODO:
60
+ // create a validation function that dynamically
61
+ // relies on the field type and its options as configured.
62
+ // How to access sibling data from this field?
63
+ // Need the `name` of the field in order to validate it.
64
+ // Might not be possible to use this validation function.
65
+ // Instead, might need to do all validation in a `beforeValidate` collection hook.
66
+ if (typeof value !== 'undefined') {
67
+ return true;
68
+ }
69
+ return 'This field is required.';
70
+ },
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ name: 'payments',
76
+ type: 'array',
77
+ admin: {
78
+ readOnly: true
79
+ },
80
+ fields: [
81
+ {
82
+ name: 'field',
83
+ label: 'Field',
84
+ type: 'text'
85
+ },
86
+ {
87
+ name: 'status',
88
+ label: 'Status',
89
+ type: 'text'
90
+ },
91
+ {
92
+ name: 'amount',
93
+ type: 'number'
94
+ },
95
+ {
96
+ name: 'amount',
97
+ type: 'number'
98
+ },
99
+ {
100
+ name: 'paymentProcessor',
101
+ type: 'select',
102
+ options: [
103
+ {
104
+ label: 'Stripe',
105
+ value: 'stripe'
106
+ }
107
+ ]
108
+ },
109
+ {
110
+ name: 'creditCard',
111
+ label: 'Credit Card',
112
+ type: 'group',
113
+ fields: [
114
+ {
115
+ name: 'token',
116
+ label: 'token',
117
+ type: 'text'
118
+ },
119
+ {
120
+ name: 'brand',
121
+ label: 'Brand',
122
+ type: 'text'
123
+ },
124
+ {
125
+ name: 'number',
126
+ label: 'Number',
127
+ type: 'text'
128
+ }
129
+ ]
130
+ }
131
+ ]
132
+ }
133
+ ],
134
+ }, formConfig.formSubmissionOverrides || {});
135
+ };
136
+ exports.generateSubmissionCollection = generateSubmissionCollection;
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/collections/FormSubmissions/index.ts"],"names":[],"mappings":";;;;;;AAEA,wEAAkD;AAClD,gEAA0C;AAC1C,sEAAgD;AAEhD,+CAA+C;AACxC,IAAM,4BAA4B,GAAG,UAAC,UAAsB;;IAAuB,OAAA,IAAA,mBAAS,EAAC;QAClG,IAAI,EAAE,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,uBAAuB,0CAAE,IAAI,KAAI,iBAAiB;QACpE,MAAM,EAAE;YACN,MAAM,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;YAClB,MAAM,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;YACnB,IAAI,EAAE,UAAC,EAAiB;oBAAR,IAAI,cAAA;gBAAS,OAAA,CAAC,CAAC,IAAI;YAAN,CAAM,CAAC,kBAAkB;SACvD;QACD,KAAK,EAAE;YACL,0BAA0B,EAAE,KAAK;SAClC;QACD,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ,UAAC,IAAI,IAAK,OAAA,IAAA,sBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,EAA9B,CAA8B;gBACxC,UAAC,IAAI,IAAK,OAAA,IAAA,mBAAS,EAAC,IAAI,EAAE,UAAU,CAAC,EAA3B,CAA2B;aACtC;SACF;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;iBACf;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;iBACf;gBACD,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;qBACf;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,UAAC,KAAc;4BACvB,QAAQ;4BACR,gDAAgD;4BAChD,0DAA0D;4BAE1D,8CAA8C;4BAC9C,wDAAwD;4BAExD,yDAAyD;4BACzD,kFAAkF;4BAElF,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;gCAChC,OAAO,IAAI,CAAC;6BACb;4BAED,OAAO,yBAAyB,CAAC;wBACnC,CAAC;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;iBACf;gBACD,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,QAAQ;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE;4BACP;gCACE,KAAK,EAAE,QAAQ;gCACf,KAAK,EAAE,QAAQ;6BAChB;yBACF;qBACF;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,aAAa;wBACpB,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE;4BACN;gCACE,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,OAAO;gCACd,IAAI,EAAE,MAAM;6BACb;4BACD;gCACE,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,OAAO;gCACd,IAAI,EAAE,MAAM;6BACb;4BACD;gCACE,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,QAAQ;gCACf,IAAI,EAAE,MAAM;6BACb;yBACF;qBACF;iBACF;aACF;SACF;KACF,EAAE,UAAU,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;CAAA,CAAC;AA1HhC,QAAA,4BAA4B,gCA0HI"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { TextField } from 'payload/dist/fields/config/types';
3
+ export declare const DynamicFieldSelector: React.FC<TextField>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.DynamicFieldSelector = void 0;
34
+ var react_1 = __importStar(require("react"));
35
+ var forms_1 = require("payload/components/forms");
36
+ var DynamicFieldSelector = function (props) {
37
+ var _a = (0, forms_1.useForm)(), fields = _a.fields, getDataByPath = _a.getDataByPath;
38
+ var _b = (0, react_1.useState)([]), options = _b[0], setOptions = _b[1];
39
+ (0, react_1.useEffect)(function () {
40
+ // @ts-ignore
41
+ var fields = getDataByPath('fields');
42
+ if (fields) {
43
+ var allNonPaymentFields = fields.map(function (block) {
44
+ var name = block.name, label = block.label, blockType = block.blockType;
45
+ if (blockType !== 'payment') {
46
+ return ({
47
+ label: label,
48
+ value: name
49
+ });
50
+ }
51
+ return null;
52
+ }).filter(Boolean);
53
+ setOptions(allNonPaymentFields);
54
+ }
55
+ }, [
56
+ fields,
57
+ getDataByPath
58
+ ]);
59
+ return (react_1.default.createElement(forms_1.Select, __assign({}, props, { options: options })));
60
+ };
61
+ exports.DynamicFieldSelector = DynamicFieldSelector;
62
+ //# sourceMappingURL=DynamicFieldSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicFieldSelector.js","sourceRoot":"","sources":["../../../src/collections/Forms/DynamicFieldSelector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AACnD,kDAA2D;AAIpD,IAAM,oBAAoB,GAAwB,UAAC,KAAK;IACvD,IAAA,KAGF,IAAA,eAAO,GAAE,EAFX,MAAM,YAAA,EACN,aAAa,mBACF,CAAC;IAER,IAAA,KAAwB,IAAA,gBAAQ,EAAsB,EAAE,CAAC,EAAxD,OAAO,QAAA,EAAE,UAAU,QAAqC,CAAC;IAEhE,IAAA,iBAAS,EAAC;QACR,aAAa;QACb,IAAM,MAAM,GAAU,aAAa,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI,MAAM,EAAE;YACV,IAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK;gBAEzC,IAAA,IAAI,GAGF,KAAK,KAHH,EACJ,KAAK,GAEH,KAAK,MAFF,EACL,SAAS,GACP,KAAK,UADE,CACD;gBAEV,IAAI,SAAS,KAAK,SAAS,EAAE;oBAC3B,OAAO,CAAC;wBACN,KAAK,OAAA;wBACL,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAA;iBACH;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAwB,CAAC;YAC1C,UAAU,CAAC,mBAAmB,CAAC,CAAC;SACjC;IACH,CAAC,EAAE;QACD,MAAM;QACN,aAAa;KACd,CAAC,CAAC;IAEH,OAAO,CACL,8BAAC,cAAM,eACD,KAAK,IACT,OAAO,EAAE,OAAO,IAChB,CACH,CAAC;AACJ,CAAC,CAAC;AA1CW,QAAA,oBAAoB,wBA0C/B"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { Props as TextFieldType } from 'payload/dist/admin/components/forms/field-types/Text/types';
3
+ export declare const DynamicPriceSelector: React.FC<TextFieldType>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.DynamicPriceSelector = void 0;
34
+ var react_1 = __importStar(require("react"));
35
+ var forms_1 = require("payload/components/forms");
36
+ var DynamicPriceSelector = function (props) {
37
+ var path = props.path, label = props.label;
38
+ var _a = (0, forms_1.useForm)(), fields = _a.fields, getDataByPath = _a.getDataByPath, getData = _a.getData;
39
+ var _b = (0, react_1.useState)(), isNumberField = _b[0], setIsNumberField = _b[1];
40
+ var _c = (0, react_1.useState)(), valueType = _c[0], setValueType = _c[1];
41
+ // only number fields can set 'valueType' to 'valueOfField`
42
+ (0, react_1.useEffect)(function () {
43
+ if (path) {
44
+ var parentPath = path.split('.').slice(0, -1).join('.');
45
+ var paymentFieldData = getDataByPath(parentPath);
46
+ if (paymentFieldData) {
47
+ var fieldToUse_1 = paymentFieldData.fieldToUse, valueType_1 = paymentFieldData.valueType;
48
+ setValueType(valueType_1);
49
+ var allFields = getData().fields;
50
+ var field = allFields.find(function (field) { return field.id === fieldToUse_1; });
51
+ if (field) {
52
+ var blockType = field.blockType;
53
+ setIsNumberField(blockType === 'number');
54
+ }
55
+ }
56
+ }
57
+ }, [
58
+ fields,
59
+ path,
60
+ getDataByPath,
61
+ getData
62
+ ]);
63
+ // TODO: make this a number field, block by Payload
64
+ if (valueType === 'static') {
65
+ return (react_1.default.createElement(forms_1.Text, __assign({}, props)));
66
+ }
67
+ if (valueType === 'valueOfField' && !isNumberField) {
68
+ return (react_1.default.createElement("div", null,
69
+ react_1.default.createElement("div", null, label),
70
+ react_1.default.createElement("div", { style: {
71
+ color: '#9A9A9A',
72
+ } }, "The selected field must be a number field.")));
73
+ }
74
+ return null;
75
+ };
76
+ exports.DynamicPriceSelector = DynamicPriceSelector;
77
+ //# sourceMappingURL=DynamicPriceSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicPriceSelector.js","sourceRoot":"","sources":["../../../src/collections/Forms/DynamicPriceSelector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AACnD,kDAAyD;AAMlD,IAAM,oBAAoB,GAA4B,UAAC,KAAK;IAE/D,IAAA,IAAI,GAEF,KAAK,KAFH,EACJ,KAAK,GACH,KAAK,MADF,CACG;IAEJ,IAAA,KAIF,IAAA,eAAO,GAAE,EAHX,MAAM,YAAA,EACN,aAAa,mBAAA,EACb,OAAO,aACI,CAAC;IAER,IAAA,KAAoC,IAAA,gBAAQ,GAAW,EAAtD,aAAa,QAAA,EAAE,gBAAgB,QAAuB,CAAC;IACxD,IAAA,KAA4B,IAAA,gBAAQ,GAAU,EAA7C,SAAS,QAAA,EAAE,YAAY,QAAsB,CAAC;IAErD,2DAA2D;IAC3D,IAAA,iBAAS,EAAC;QACR,IAAI,IAAI,EAAE;YACR,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzD,IAAM,gBAAgB,GAAQ,aAAa,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,gBAAgB,EAAE;gBAElB,IAAA,YAAU,GAER,gBAAgB,WAFR,EACV,WAAS,GACP,gBAAgB,UADT,CACU;gBAErB,YAAY,CAAC,WAAS,CAAC,CAAC;gBAEhB,IAAQ,SAAS,GAAW,OAAO,EAAE,OAApB,CAAqB;gBAC9C,IAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAC,KAAkB,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,YAAU,EAAvB,CAAuB,CAAC,CAAC;gBAE9E,IAAI,KAAK,EAAE;oBACD,IAAA,SAAS,GAAK,KAAK,UAAV,CAAW;oBAC5B,gBAAgB,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;iBAC1C;aACF;SACF;IACH,CAAC,EAAE;QACD,MAAM;QACN,IAAI;QACJ,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,OAAO,CACL,8BAAC,YAAI,eAAK,KAAK,EAAI,CACpB,CAAA;KACF;IAED,IAAI,SAAS,KAAK,cAAc,IAAI,CAAC,aAAa,EAAE;QAClD,OAAO,CACL;YACE,2CACG,KAAK,CACF;YACN,uCACE,KAAK,EAAE;oBACL,KAAK,EAAE,SAAS;iBACjB,iDAGG,CACF,CACP,CAAA;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAC;AArEW,QAAA,oBAAoB,wBAqE/B"}
@@ -0,0 +1,6 @@
1
+ import { Block } from 'payload/types';
2
+ import { FieldConfig } from '../../types';
3
+ declare const _default: {
4
+ [key: string]: Block | ((fieldConfig: FieldConfig) => Block);
5
+ };
6
+ export default _default;