@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.
- package/dist/collections/FormSubmissions/hooks/createCharge.js +3 -13
- package/dist/collections/FormSubmissions/hooks/createCharge.js.map +1 -0
- package/dist/collections/FormSubmissions/hooks/sendEmail.js +15 -25
- package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +1 -0
- package/dist/collections/FormSubmissions/index.js +36 -49
- package/dist/collections/FormSubmissions/index.js.map +1 -0
- package/dist/collections/Forms/DynamicFieldSelector.js +11 -58
- package/dist/collections/Forms/DynamicFieldSelector.js.map +1 -0
- package/dist/collections/Forms/DynamicPriceSelector.js +13 -61
- package/dist/collections/Forms/DynamicPriceSelector.js.map +1 -0
- package/dist/collections/Forms/fields.js +102 -120
- package/dist/collections/Forms/fields.js.map +1 -0
- package/dist/collections/Forms/index.js +47 -61
- package/dist/collections/Forms/index.js.map +1 -0
- package/dist/index.js +8 -29
- package/dist/index.js.map +1 -0
- package/dist/types.js +2 -12
- package/dist/types.js.map +1 -0
- package/dist/utilities/getPaymentTotal.js +2 -12
- package/dist/utilities/getPaymentTotal.js.map +1 -0
- package/dist/utilities/lexical/converters/heading.js +4 -14
- package/dist/utilities/lexical/converters/heading.js.map +1 -0
- package/dist/utilities/lexical/converters/linebreak.js +2 -12
- package/dist/utilities/lexical/converters/linebreak.js.map +1 -0
- package/dist/utilities/lexical/converters/link.js +8 -17
- package/dist/utilities/lexical/converters/link.js.map +1 -0
- package/dist/utilities/lexical/converters/list.js +7 -25
- package/dist/utilities/lexical/converters/list.js.map +1 -0
- package/dist/utilities/lexical/converters/paragraph.js +4 -14
- package/dist/utilities/lexical/converters/paragraph.js.map +1 -0
- package/dist/utilities/lexical/converters/quote.js +4 -14
- package/dist/utilities/lexical/converters/quote.js.map +1 -0
- package/dist/utilities/lexical/converters/text.js +12 -22
- package/dist/utilities/lexical/converters/text.js.map +1 -0
- package/dist/utilities/lexical/defaultConverters.js +17 -27
- package/dist/utilities/lexical/defaultConverters.js.map +1 -0
- package/dist/utilities/lexical/nodeFormat.js +16 -61
- package/dist/utilities/lexical/nodeFormat.js.map +1 -0
- package/dist/utilities/lexical/serializeLexical.js +5 -23
- package/dist/utilities/lexical/serializeLexical.js.map +1 -0
- package/dist/utilities/lexical/types.js +2 -5
- package/dist/utilities/lexical/types.js.map +1 -0
- package/dist/utilities/replaceDoubleCurlys.js +2 -12
- package/dist/utilities/replaceDoubleCurlys.js.map +1 -0
- package/dist/utilities/slate/serializeSlate.js +6 -21
- package/dist/utilities/slate/serializeSlate.js.map +1 -0
- package/package.json +24 -11
- package/src/index.ts +55 -0
- package/dist/collections/FormSubmissions/hooks/createCharge.d.ts +0 -4
- package/dist/collections/FormSubmissions/hooks/createCharge.d.ts.map +0 -1
- package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts +0 -4
- package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts.map +0 -1
- package/dist/collections/FormSubmissions/index.d.ts +0 -4
- package/dist/collections/FormSubmissions/index.d.ts.map +0 -1
- package/dist/collections/Forms/DynamicFieldSelector.d.ts +0 -4
- package/dist/collections/Forms/DynamicFieldSelector.d.ts.map +0 -1
- package/dist/collections/Forms/DynamicPriceSelector.d.ts +0 -4
- package/dist/collections/Forms/DynamicPriceSelector.d.ts.map +0 -1
- package/dist/collections/Forms/fields.d.ts +0 -7
- package/dist/collections/Forms/fields.d.ts.map +0 -1
- package/dist/collections/Forms/index.d.ts +0 -4
- package/dist/collections/Forms/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -175
- package/dist/types.d.ts.map +0 -1
- package/dist/utilities/getPaymentTotal.d.ts +0 -5
- package/dist/utilities/getPaymentTotal.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/heading.d.ts +0 -3
- package/dist/utilities/lexical/converters/heading.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/linebreak.d.ts +0 -3
- package/dist/utilities/lexical/converters/linebreak.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/link.d.ts +0 -3
- package/dist/utilities/lexical/converters/link.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/list.d.ts +0 -4
- package/dist/utilities/lexical/converters/list.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/paragraph.d.ts +0 -3
- package/dist/utilities/lexical/converters/paragraph.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/quote.d.ts +0 -3
- package/dist/utilities/lexical/converters/quote.d.ts.map +0 -1
- package/dist/utilities/lexical/converters/text.d.ts +0 -3
- package/dist/utilities/lexical/converters/text.d.ts.map +0 -1
- package/dist/utilities/lexical/defaultConverters.d.ts +0 -3
- package/dist/utilities/lexical/defaultConverters.d.ts.map +0 -1
- package/dist/utilities/lexical/nodeFormat.d.ts +0 -39
- package/dist/utilities/lexical/nodeFormat.d.ts.map +0 -1
- package/dist/utilities/lexical/serializeLexical.d.ts +0 -9
- package/dist/utilities/lexical/serializeLexical.d.ts.map +0 -1
- package/dist/utilities/lexical/types.d.ts +0 -14
- package/dist/utilities/lexical/types.d.ts.map +0 -1
- package/dist/utilities/replaceDoubleCurlys.d.ts +0 -8
- package/dist/utilities/replaceDoubleCurlys.d.ts.map +0 -1
- package/dist/utilities/slate/serializeSlate.d.ts +0 -12
- package/dist/utilities/slate/serializeSlate.d.ts.map +0 -1
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "generateFormCollection", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return generateFormCollection;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _deepmerge = /*#__PURE__*/ _interop_require_default(require("deepmerge"));
|
|
12
|
-
const _fields = require("./fields");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const generateFormCollection = (formConfig)=>{
|
|
1
|
+
import merge from 'deepmerge';
|
|
2
|
+
import { fields } from './fields.js';
|
|
3
|
+
// all settings can be overridden by the config
|
|
4
|
+
export const generateFormCollection = (formConfig)=>{
|
|
19
5
|
const redirect = {
|
|
20
6
|
name: 'redirect',
|
|
7
|
+
type: 'group',
|
|
21
8
|
admin: {
|
|
22
9
|
condition: (_, siblingData)=>siblingData?.confirmationType === 'redirect',
|
|
23
10
|
hideGutter: true
|
|
@@ -25,27 +12,27 @@ const generateFormCollection = (formConfig)=>{
|
|
|
25
12
|
fields: [
|
|
26
13
|
{
|
|
27
14
|
name: 'url',
|
|
15
|
+
type: 'text',
|
|
28
16
|
label: 'URL to redirect to',
|
|
29
|
-
required: true
|
|
30
|
-
type: 'text'
|
|
17
|
+
required: true
|
|
31
18
|
}
|
|
32
|
-
]
|
|
33
|
-
type: 'group'
|
|
19
|
+
]
|
|
34
20
|
};
|
|
35
21
|
if (formConfig.redirectRelationships) {
|
|
36
22
|
redirect.fields.unshift({
|
|
37
23
|
name: 'reference',
|
|
24
|
+
type: 'relationship',
|
|
38
25
|
admin: {
|
|
39
26
|
condition: (_, siblingData)=>siblingData?.type === 'reference'
|
|
40
27
|
},
|
|
41
28
|
label: 'Document to link to',
|
|
42
29
|
maxDepth: 2,
|
|
43
30
|
relationTo: formConfig.redirectRelationships,
|
|
44
|
-
required: true
|
|
45
|
-
type: 'relationship'
|
|
31
|
+
required: true
|
|
46
32
|
});
|
|
47
33
|
redirect.fields.unshift({
|
|
48
34
|
name: 'type',
|
|
35
|
+
type: 'radio',
|
|
49
36
|
admin: {
|
|
50
37
|
layout: 'horizontal'
|
|
51
38
|
},
|
|
@@ -59,8 +46,7 @@ const generateFormCollection = (formConfig)=>{
|
|
|
59
46
|
label: 'Custom URL',
|
|
60
47
|
value: 'custom'
|
|
61
48
|
}
|
|
62
|
-
]
|
|
63
|
-
type: 'radio'
|
|
49
|
+
]
|
|
64
50
|
});
|
|
65
51
|
if (redirect.fields[2].type !== 'row') redirect.fields[2].label = 'Custom URL';
|
|
66
52
|
redirect.fields[2].admin = {
|
|
@@ -69,6 +55,7 @@ const generateFormCollection = (formConfig)=>{
|
|
|
69
55
|
}
|
|
70
56
|
const config = {
|
|
71
57
|
...formConfig?.formOverrides || {},
|
|
58
|
+
slug: formConfig?.formOverrides?.slug || 'forms',
|
|
72
59
|
access: {
|
|
73
60
|
read: ()=>true,
|
|
74
61
|
...formConfig?.formOverrides?.access || {}
|
|
@@ -81,20 +68,21 @@ const generateFormCollection = (formConfig)=>{
|
|
|
81
68
|
fields: [
|
|
82
69
|
{
|
|
83
70
|
name: 'title',
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
type: 'text',
|
|
72
|
+
required: true
|
|
86
73
|
},
|
|
87
74
|
{
|
|
88
75
|
name: 'fields',
|
|
76
|
+
type: 'blocks',
|
|
89
77
|
blocks: Object.entries(formConfig?.fields || {}).map(([fieldKey, fieldConfig])=>{
|
|
90
78
|
// let the config enable/disable fields with either boolean values or objects
|
|
91
79
|
if (fieldConfig !== false) {
|
|
92
|
-
const block =
|
|
80
|
+
const block = fields[fieldKey];
|
|
93
81
|
if (block === undefined && typeof fieldConfig === 'object') {
|
|
94
82
|
return fieldConfig;
|
|
95
83
|
}
|
|
96
84
|
if (typeof block === 'object' && typeof fieldConfig === 'object') {
|
|
97
|
-
return (
|
|
85
|
+
return merge(block, fieldConfig, {
|
|
98
86
|
arrayMerge: (_, sourceArray)=>sourceArray
|
|
99
87
|
});
|
|
100
88
|
}
|
|
@@ -104,16 +92,16 @@ const generateFormCollection = (formConfig)=>{
|
|
|
104
92
|
return block;
|
|
105
93
|
}
|
|
106
94
|
return null;
|
|
107
|
-
}).filter(Boolean)
|
|
108
|
-
type: 'blocks'
|
|
95
|
+
}).filter(Boolean)
|
|
109
96
|
},
|
|
110
97
|
{
|
|
111
98
|
name: 'submitButtonLabel',
|
|
112
|
-
|
|
113
|
-
|
|
99
|
+
type: 'text',
|
|
100
|
+
localized: true
|
|
114
101
|
},
|
|
115
102
|
{
|
|
116
103
|
name: 'confirmationType',
|
|
104
|
+
type: 'radio',
|
|
117
105
|
admin: {
|
|
118
106
|
description: 'Choose whether to display an on-page message or redirect to a different page after they submit the form.',
|
|
119
107
|
layout: 'horizontal'
|
|
@@ -128,103 +116,101 @@ const generateFormCollection = (formConfig)=>{
|
|
|
128
116
|
label: 'Redirect',
|
|
129
117
|
value: 'redirect'
|
|
130
118
|
}
|
|
131
|
-
]
|
|
132
|
-
type: 'radio'
|
|
119
|
+
]
|
|
133
120
|
},
|
|
134
121
|
{
|
|
135
122
|
name: 'confirmationMessage',
|
|
123
|
+
type: 'richText',
|
|
136
124
|
admin: {
|
|
137
125
|
condition: (_, siblingData)=>siblingData?.confirmationType === 'message'
|
|
138
126
|
},
|
|
139
127
|
localized: true,
|
|
140
|
-
required: true
|
|
141
|
-
type: 'richText'
|
|
128
|
+
required: true
|
|
142
129
|
},
|
|
143
130
|
redirect,
|
|
144
131
|
{
|
|
145
132
|
name: 'emails',
|
|
133
|
+
type: 'array',
|
|
146
134
|
admin: {
|
|
147
135
|
description: "Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}."
|
|
148
136
|
},
|
|
149
137
|
fields: [
|
|
150
138
|
{
|
|
139
|
+
type: 'row',
|
|
151
140
|
fields: [
|
|
152
141
|
{
|
|
153
142
|
name: 'emailTo',
|
|
143
|
+
type: 'text',
|
|
154
144
|
admin: {
|
|
155
145
|
placeholder: '"Email Sender" <sender@email.com>',
|
|
156
146
|
width: '100%'
|
|
157
147
|
},
|
|
158
|
-
label: 'Email To'
|
|
159
|
-
type: 'text'
|
|
148
|
+
label: 'Email To'
|
|
160
149
|
},
|
|
161
150
|
{
|
|
162
151
|
name: 'cc',
|
|
152
|
+
type: 'text',
|
|
163
153
|
admin: {
|
|
164
154
|
width: '50%'
|
|
165
155
|
},
|
|
166
|
-
label: 'CC'
|
|
167
|
-
type: 'text'
|
|
156
|
+
label: 'CC'
|
|
168
157
|
},
|
|
169
158
|
{
|
|
170
159
|
name: 'bcc',
|
|
160
|
+
type: 'text',
|
|
171
161
|
admin: {
|
|
172
162
|
width: '50%'
|
|
173
163
|
},
|
|
174
|
-
label: 'BCC'
|
|
175
|
-
type: 'text'
|
|
164
|
+
label: 'BCC'
|
|
176
165
|
}
|
|
177
|
-
]
|
|
178
|
-
type: 'row'
|
|
166
|
+
]
|
|
179
167
|
},
|
|
180
168
|
{
|
|
169
|
+
type: 'row',
|
|
181
170
|
fields: [
|
|
182
171
|
{
|
|
183
172
|
name: 'replyTo',
|
|
173
|
+
type: 'text',
|
|
184
174
|
admin: {
|
|
185
175
|
placeholder: '"Reply To" <reply-to@email.com>',
|
|
186
176
|
width: '50%'
|
|
187
177
|
},
|
|
188
|
-
label: 'Reply To'
|
|
189
|
-
type: 'text'
|
|
178
|
+
label: 'Reply To'
|
|
190
179
|
},
|
|
191
180
|
{
|
|
192
181
|
name: 'emailFrom',
|
|
182
|
+
type: 'text',
|
|
193
183
|
admin: {
|
|
194
184
|
placeholder: '"Email From" <email-from@email.com>',
|
|
195
185
|
width: '50%'
|
|
196
186
|
},
|
|
197
|
-
label: 'Email From'
|
|
198
|
-
type: 'text'
|
|
187
|
+
label: 'Email From'
|
|
199
188
|
}
|
|
200
|
-
]
|
|
201
|
-
type: 'row'
|
|
189
|
+
]
|
|
202
190
|
},
|
|
203
191
|
{
|
|
204
192
|
name: 'subject',
|
|
193
|
+
type: 'text',
|
|
205
194
|
defaultValue: "You've received a new message.",
|
|
206
195
|
label: 'Subject',
|
|
207
196
|
localized: true,
|
|
208
|
-
required: true
|
|
209
|
-
type: 'text'
|
|
197
|
+
required: true
|
|
210
198
|
},
|
|
211
199
|
{
|
|
212
200
|
name: 'message',
|
|
201
|
+
type: 'richText',
|
|
213
202
|
admin: {
|
|
214
203
|
description: 'Enter the message that should be sent in this email.'
|
|
215
204
|
},
|
|
216
205
|
label: 'Message',
|
|
217
|
-
localized: true
|
|
218
|
-
type: 'richText'
|
|
206
|
+
localized: true
|
|
219
207
|
}
|
|
220
|
-
]
|
|
221
|
-
type: 'array'
|
|
208
|
+
]
|
|
222
209
|
},
|
|
223
210
|
...formConfig?.formOverrides?.fields || []
|
|
224
|
-
]
|
|
225
|
-
slug: formConfig?.formOverrides?.slug || 'forms'
|
|
211
|
+
]
|
|
226
212
|
};
|
|
227
213
|
return config;
|
|
228
214
|
};
|
|
229
215
|
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3Jtcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJsb2NrLCBDb2xsZWN0aW9uQ29uZmlnLCBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRDb25maWcsIFBsdWdpbkNvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZHMgfSBmcm9tICcuL2ZpZWxkcydcblxuLy8gYWxsIHNldHRpbmdzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBjb25maWdcbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZvcm1Db2xsZWN0aW9uID0gKGZvcm1Db25maWc6IFBsdWdpbkNvbmZpZyk6IENvbGxlY3Rpb25Db25maWcgPT4ge1xuICBjb25zdCByZWRpcmVjdDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3JlZGlyZWN0JyxcbiAgICBhZG1pbjoge1xuICAgICAgY29uZGl0aW9uOiAoXywgc2libGluZ0RhdGEpID0+IHNpYmxpbmdEYXRhPy5jb25maXJtYXRpb25UeXBlID09PSAncmVkaXJlY3QnLFxuICAgICAgaGlkZUd1dHRlcjogdHJ1ZSxcbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAndXJsJyxcbiAgICAgICAgbGFiZWw6ICdVUkwgdG8gcmVkaXJlY3QgdG8nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHR5cGU6ICdncm91cCcsXG4gIH1cblxuICBpZiAoZm9ybUNvbmZpZy5yZWRpcmVjdFJlbGF0aW9uc2hpcHMpIHtcbiAgICByZWRpcmVjdC5maWVsZHMudW5zaGlmdCh7XG4gICAgICBuYW1lOiAncmVmZXJlbmNlJyxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGNvbmRpdGlvbjogKF8sIHNpYmxpbmdEYXRhKSA9PiBzaWJsaW5nRGF0YT8udHlwZSA9PT0gJ3JlZmVyZW5jZScsXG4gICAgICB9LFxuICAgICAgbGFiZWw6ICdEb2N1bWVudCB0byBsaW5rIHRvJyxcbiAgICAgIG1heERlcHRoOiAyLFxuICAgICAgcmVsYXRpb25UbzogZm9ybUNvbmZpZy5yZWRpcmVjdFJlbGF0aW9uc2hpcHMsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIHR5cGU6ICdyZWxhdGlvbnNoaXAnLFxuICAgIH0pXG5cbiAgICByZWRpcmVjdC5maWVsZHMudW5zaGlmdCh7XG4gICAgICBuYW1lOiAndHlwZScsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBsYXlvdXQ6ICdob3Jpem9udGFsJyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0VmFsdWU6ICdyZWZlcmVuY2UnLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdJbnRlcm5hbCBsaW5rJyxcbiAgICAgICAgICB2YWx1ZTogJ3JlZmVyZW5jZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0N1c3RvbSBVUkwnLFxuICAgICAgICAgIHZhbHVlOiAnY3VzdG9tJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0eXBlOiAncmFkaW8nLFxuICAgIH0pXG5cbiAgICBpZiAocmVkaXJlY3QuZmllbGRzWzJdLnR5cGUgIT09ICdyb3cnKSByZWRpcmVjdC5maWVsZHNbMl0ubGFiZWwgPSAnQ3VzdG9tIFVSTCdcblxuICAgIHJlZGlyZWN0LmZpZWxkc1syXS5hZG1pbiA9IHtcbiAgICAgIGNvbmRpdGlvbjogKF8sIHNpYmxpbmdEYXRhKSA9PiBzaWJsaW5nRGF0YT8udHlwZSA9PT0gJ2N1c3RvbScsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29uZmlnOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLihmb3JtQ29uZmlnPy5mb3JtT3ZlcnJpZGVzIHx8IHt9KSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIHJlYWQ6ICgpID0+IHRydWUsXG4gICAgICAuLi4oZm9ybUNvbmZpZz8uZm9ybU92ZXJyaWRlcz8uYWNjZXNzIHx8IHt9KSxcbiAgICB9LFxuICAgIGFkbWluOiB7XG4gICAgICBlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcDogZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiAndGl0bGUnLFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1PdmVycmlkZXM/LmFkbWluIHx8IHt9KSxcbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ZpZWxkcycsXG4gICAgICAgIGJsb2NrczogT2JqZWN0LmVudHJpZXMoZm9ybUNvbmZpZz8uZmllbGRzIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKFtmaWVsZEtleSwgZmllbGRDb25maWddKSA9PiB7XG4gICAgICAgICAgICAvLyBsZXQgdGhlIGNvbmZpZyBlbmFibGUvZGlzYWJsZSBmaWVsZHMgd2l0aCBlaXRoZXIgYm9vbGVhbiB2YWx1ZXMgb3Igb2JqZWN0c1xuICAgICAgICAgICAgaWYgKGZpZWxkQ29uZmlnICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkc1tmaWVsZEtleV1cblxuICAgICAgICAgICAgICBpZiAoYmxvY2sgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZmllbGRDb25maWcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkQ29uZmlnXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGJsb2NrID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZmllbGRDb25maWcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlPEZpZWxkQ29uZmlnPihibG9jaywgZmllbGRDb25maWcsIHtcbiAgICAgICAgICAgICAgICAgIGFycmF5TWVyZ2U6IChfLCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYmxvY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2soZmllbGRDb25maWcpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gYmxvY2tcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQmxvY2tbXSxcbiAgICAgICAgdHlwZTogJ2Jsb2NrcycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3VibWl0QnV0dG9uTGFiZWwnLFxuICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb25maXJtYXRpb25UeXBlJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdDaG9vc2Ugd2hldGhlciB0byBkaXNwbGF5IGFuIG9uLXBhZ2UgbWVzc2FnZSBvciByZWRpcmVjdCB0byBhIGRpZmZlcmVudCBwYWdlIGFmdGVyIHRoZXkgc3VibWl0IHRoZSBmb3JtLicsXG4gICAgICAgICAgbGF5b3V0OiAnaG9yaXpvbnRhbCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ21lc3NhZ2UnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdNZXNzYWdlJyxcbiAgICAgICAgICAgIHZhbHVlOiAnbWVzc2FnZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ1JlZGlyZWN0JyxcbiAgICAgICAgICAgIHZhbHVlOiAncmVkaXJlY3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHR5cGU6ICdyYWRpbycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29uZmlybWF0aW9uTWVzc2FnZScsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgY29uZGl0aW9uOiAoXywgc2libGluZ0RhdGEpID0+IHNpYmxpbmdEYXRhPy5jb25maXJtYXRpb25UeXBlID09PSAnbWVzc2FnZScsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6ICdyaWNoVGV4dCcsXG4gICAgICB9LFxuICAgICAgcmVkaXJlY3QsXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdlbWFpbHMnLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCJTZW5kIGN1c3RvbSBlbWFpbHMgd2hlbiB0aGUgZm9ybSBzdWJtaXRzLiBVc2UgY29tbWEgc2VwYXJhdGVkIGxpc3RzIHRvIHNlbmQgdGhlIHNhbWUgZW1haWwgdG8gbXVsdGlwbGUgcmVjaXBpZW50cy4gVG8gcmVmZXJlbmNlIGEgdmFsdWUgZnJvbSB0aGlzIGZvcm0sIHdyYXAgdGhhdCBmaWVsZCdzIG5hbWUgd2l0aCBkb3VibGUgY3VybHkgYnJhY2tldHMsIGkuZS4ge3tmaXJzdE5hbWV9fS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZW1haWxUbycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnXCJFbWFpbCBTZW5kZXJcIiA8c2VuZGVyQGVtYWlsLmNvbT4nLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnRW1haWwgVG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjYycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQ0MnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdiY2MnLFxuICAgICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzUwJScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0JDQycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHR5cGU6ICdyb3cnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAncmVwbHlUbycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnXCJSZXBseSBUb1wiIDxyZXBseS10b0BlbWFpbC5jb20+JyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnUmVwbHkgVG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdlbWFpbEZyb20nLFxuICAgICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1wiRW1haWwgRnJvbVwiIDxlbWFpbC1mcm9tQGVtYWlsLmNvbT4nLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MCUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdFbWFpbCBGcm9tJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdHlwZTogJ3JvdycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc3ViamVjdCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IFwiWW91J3ZlIHJlY2VpdmVkIGEgbmV3IG1lc3NhZ2UuXCIsXG4gICAgICAgICAgICBsYWJlbDogJ1N1YmplY3QnLFxuICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnbWVzc2FnZScsXG4gICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0VudGVyIHRoZSBtZXNzYWdlIHRoYXQgc2hvdWxkIGJlIHNlbnQgaW4gdGhpcyBlbWFpbC4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAnTWVzc2FnZScsXG4gICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAncmljaFRleHQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB9LFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1PdmVycmlkZXM/LmZpZWxkcyB8fCBbXSksXG4gICAgXSxcbiAgICBzbHVnOiBmb3JtQ29uZmlnPy5mb3JtT3ZlcnJpZGVzPy5zbHVnIHx8ICdmb3JtcycsXG4gIH1cblxuICByZXR1cm4gY29uZmlnXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVGb3JtQ29sbGVjdGlvbiIsImZvcm1Db25maWciLCJyZWRpcmVjdCIsIm5hbWUiLCJhZG1pbiIsImNvbmRpdGlvbiIsIl8iLCJzaWJsaW5nRGF0YSIsImNvbmZpcm1hdGlvblR5cGUiLCJoaWRlR3V0dGVyIiwiZmllbGRzIiwibGFiZWwiLCJyZXF1aXJlZCIsInR5cGUiLCJyZWRpcmVjdFJlbGF0aW9uc2hpcHMiLCJ1bnNoaWZ0IiwibWF4RGVwdGgiLCJyZWxhdGlvblRvIiwibGF5b3V0IiwiZGVmYXVsdFZhbHVlIiwib3B0aW9ucyIsInZhbHVlIiwiY29uZmlnIiwiZm9ybU92ZXJyaWRlcyIsImFjY2VzcyIsInJlYWQiLCJlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcCIsInVzZUFzVGl0bGUiLCJibG9ja3MiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmllbGRLZXkiLCJmaWVsZENvbmZpZyIsImJsb2NrIiwidW5kZWZpbmVkIiwibWVyZ2UiLCJhcnJheU1lcmdlIiwic291cmNlQXJyYXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwibG9jYWxpemVkIiwiZGVzY3JpcHRpb24iLCJwbGFjZWhvbGRlciIsIndpZHRoIiwic2x1ZyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFTYUE7OztlQUFBQTs7O2tFQVBLO3dCQUlLOzs7Ozs7QUFHaEIsTUFBTUEseUJBQXlCLENBQUNDO0lBQ3JDLE1BQU1DLFdBQWtCO1FBQ3RCQyxN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
|
|
216
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/Forms/index.ts"],"sourcesContent":["import type { Block, CollectionConfig, Field } from 'payload/types'\n\nimport merge from 'deepmerge'\n\nimport type { FieldConfig, PluginConfig } from '../../types.js'\n\nimport { fields } from './fields.js'\n\n// all settings can be overridden by the config\nexport const generateFormCollection = (formConfig: PluginConfig): CollectionConfig => {\n const redirect: Field = {\n name: 'redirect',\n type: 'group',\n admin: {\n condition: (_, siblingData) => siblingData?.confirmationType === 'redirect',\n hideGutter: true,\n },\n fields: [\n {\n name: 'url',\n type: 'text',\n label: 'URL to redirect to',\n required: true,\n },\n ],\n }\n\n if (formConfig.redirectRelationships) {\n redirect.fields.unshift({\n name: 'reference',\n type: 'relationship',\n admin: {\n condition: (_, siblingData) => siblingData?.type === 'reference',\n },\n label: 'Document to link to',\n maxDepth: 2,\n relationTo: formConfig.redirectRelationships,\n required: true,\n })\n\n redirect.fields.unshift({\n name: 'type',\n type: 'radio',\n admin: {\n layout: 'horizontal',\n },\n defaultValue: 'reference',\n options: [\n {\n label: 'Internal link',\n value: 'reference',\n },\n {\n label: 'Custom URL',\n value: 'custom',\n },\n ],\n })\n\n if (redirect.fields[2].type !== 'row') redirect.fields[2].label = 'Custom URL'\n\n redirect.fields[2].admin = {\n condition: (_, siblingData) => siblingData?.type === 'custom',\n }\n }\n\n const config: CollectionConfig = {\n ...(formConfig?.formOverrides || {}),\n slug: formConfig?.formOverrides?.slug || 'forms',\n access: {\n read: () => true,\n ...(formConfig?.formOverrides?.access || {}),\n },\n admin: {\n enableRichTextRelationship: false,\n useAsTitle: 'title',\n ...(formConfig?.formOverrides?.admin || {}),\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n required: true,\n },\n {\n name: 'fields',\n type: 'blocks',\n blocks: Object.entries(formConfig?.fields || {})\n .map(([fieldKey, fieldConfig]) => {\n // let the config enable/disable fields with either boolean values or objects\n if (fieldConfig !== false) {\n const block = fields[fieldKey]\n\n if (block === undefined && typeof fieldConfig === 'object') {\n return fieldConfig\n }\n\n if (typeof block === 'object' && typeof fieldConfig === 'object') {\n return merge<FieldConfig>(block, fieldConfig, {\n arrayMerge: (_, sourceArray) => sourceArray,\n })\n }\n\n if (typeof block === 'function') {\n return block(fieldConfig)\n }\n\n return block\n }\n\n return null\n })\n .filter(Boolean) as Block[],\n },\n {\n name: 'submitButtonLabel',\n type: 'text',\n localized: true,\n },\n {\n name: 'confirmationType',\n type: 'radio',\n admin: {\n description:\n 'Choose whether to display an on-page message or redirect to a different page after they submit the form.',\n layout: 'horizontal',\n },\n defaultValue: 'message',\n options: [\n {\n label: 'Message',\n value: 'message',\n },\n {\n label: 'Redirect',\n value: 'redirect',\n },\n ],\n },\n {\n name: 'confirmationMessage',\n type: 'richText',\n admin: {\n condition: (_, siblingData) => siblingData?.confirmationType === 'message',\n },\n localized: true,\n required: true,\n },\n redirect,\n {\n name: 'emails',\n type: 'array',\n admin: {\n description:\n \"Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}.\",\n },\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'emailTo',\n type: 'text',\n admin: {\n placeholder: '\"Email Sender\" <sender@email.com>',\n width: '100%',\n },\n label: 'Email To',\n },\n {\n name: 'cc',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'CC',\n },\n {\n name: 'bcc',\n type: 'text',\n admin: {\n width: '50%',\n },\n label: 'BCC',\n },\n ],\n },\n {\n type: 'row',\n fields: [\n {\n name: 'replyTo',\n type: 'text',\n admin: {\n placeholder: '\"Reply To\" <reply-to@email.com>',\n width: '50%',\n },\n label: 'Reply To',\n },\n {\n name: 'emailFrom',\n type: 'text',\n admin: {\n placeholder: '\"Email From\" <email-from@email.com>',\n width: '50%',\n },\n label: 'Email From',\n },\n ],\n },\n {\n name: 'subject',\n type: 'text',\n defaultValue: \"You've received a new message.\",\n label: 'Subject',\n localized: true,\n required: true,\n },\n {\n name: 'message',\n type: 'richText',\n admin: {\n description: 'Enter the message that should be sent in this email.',\n },\n label: 'Message',\n localized: true,\n },\n ],\n },\n ...(formConfig?.formOverrides?.fields || []),\n ],\n }\n\n return config\n}\n"],"names":["merge","fields","generateFormCollection","formConfig","redirect","name","type","admin","condition","_","siblingData","confirmationType","hideGutter","label","required","redirectRelationships","unshift","maxDepth","relationTo","layout","defaultValue","options","value","config","formOverrides","slug","access","read","enableRichTextRelationship","useAsTitle","blocks","Object","entries","map","fieldKey","fieldConfig","block","undefined","arrayMerge","sourceArray","filter","Boolean","localized","description","placeholder","width"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
fields: function() {
|
|
13
|
-
return _fields.fields;
|
|
14
|
-
},
|
|
15
|
-
getPaymentTotal: function() {
|
|
16
|
-
return _getPaymentTotal.getPaymentTotal;
|
|
17
|
-
},
|
|
18
|
-
default: function() {
|
|
19
|
-
return _default;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _FormSubmissions = require("./collections/FormSubmissions");
|
|
23
|
-
const _Forms = require("./collections/Forms");
|
|
24
|
-
const _fields = require("./collections/Forms/fields");
|
|
25
|
-
const _getPaymentTotal = require("./utilities/getPaymentTotal");
|
|
1
|
+
import { generateSubmissionCollection } from './collections/FormSubmissions/index.js';
|
|
2
|
+
import { generateFormCollection } from './collections/Forms/index.js';
|
|
3
|
+
export { fields } from './collections/Forms/fields.js';
|
|
4
|
+
export { getPaymentTotal } from './utilities/getPaymentTotal.js';
|
|
26
5
|
const FormBuilder = (incomingFormConfig)=>(config)=>{
|
|
27
6
|
const formConfig = {
|
|
28
7
|
...incomingFormConfig,
|
|
@@ -58,11 +37,11 @@ const FormBuilder = (incomingFormConfig)=>(config)=>{
|
|
|
58
37
|
// },
|
|
59
38
|
collections: [
|
|
60
39
|
...config?.collections || [],
|
|
61
|
-
|
|
62
|
-
|
|
40
|
+
generateFormCollection(formConfig),
|
|
41
|
+
generateSubmissionCollection(formConfig)
|
|
63
42
|
]
|
|
64
43
|
};
|
|
65
44
|
};
|
|
66
|
-
|
|
45
|
+
export default FormBuilder;
|
|
67
46
|
|
|
68
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config } from 'payload/config'\n\nimport type { PluginConfig } from './types.js'\n\nimport { generateSubmissionCollection } from './collections/FormSubmissions/index.js'\nimport { generateFormCollection } from './collections/Forms/index.js'\n\nexport { fields } from './collections/Forms/fields.js'\nexport { getPaymentTotal } from './utilities/getPaymentTotal.js'\n\nconst FormBuilder =\n (incomingFormConfig: PluginConfig) =>\n (config: Config): Config => {\n const formConfig: PluginConfig = {\n ...incomingFormConfig,\n fields: {\n checkbox: true,\n country: true,\n email: true,\n message: true,\n number: true,\n payment: false,\n select: true,\n state: true,\n text: true,\n textarea: true,\n ...incomingFormConfig.fields,\n },\n }\n\n return {\n ...config,\n // admin: {\n // ...config.admin,\n // webpack: (webpackConfig) => ({\n // ...webpackConfig,\n // resolve: {\n // ...webpackConfig.resolve,\n // alias: {\n // ...webpackConfig.resolve.alias,\n // [path.resolve(__dirname, 'collections/FormSubmissions/hooks/sendEmail.ts')]: path.resolve(__dirname, 'mocks/serverModule.js'),\n // [path.resolve(__dirname, 'collections/FormSubmissions/hooks/createCharge.ts')]: path.resolve(__dirname, 'mocks/serverModule.js'),\n // },\n // },\n // })\n // },\n collections: [\n ...(config?.collections || []),\n generateFormCollection(formConfig),\n generateSubmissionCollection(formConfig),\n ],\n }\n }\n\nexport default FormBuilder\n"],"names":["generateSubmissionCollection","generateFormCollection","fields","getPaymentTotal","FormBuilder","incomingFormConfig","config","formConfig","checkbox","country","email","message","number","payment","select","state","text","textarea","collections"],"mappings":"AAIA,SAASA,4BAA4B,QAAQ,yCAAwC;AACrF,SAASC,sBAAsB,QAAQ,+BAA8B;AAErE,SAASC,MAAM,QAAQ,gCAA+B;AACtD,SAASC,eAAe,QAAQ,iCAAgC;AAEhE,MAAMC,cACJ,CAACC,qBACD,CAACC;QACC,MAAMC,aAA2B;YAC/B,GAAGF,kBAAkB;YACrBH,QAAQ;gBACNM,UAAU;gBACVC,SAAS;gBACTC,OAAO;gBACPC,SAAS;gBACTC,QAAQ;gBACRC,SAAS;gBACTC,QAAQ;gBACRC,OAAO;gBACPC,MAAM;gBACNC,UAAU;gBACV,GAAGZ,mBAAmBH,MAAM;YAC9B;QACF;QAEA,OAAO;YACL,GAAGI,MAAM;YACT,WAAW;YACX,qBAAqB;YACrB,mCAAmC;YACnC,wBAAwB;YACxB,iBAAiB;YACjB,kCAAkC;YAClC,iBAAiB;YACjB,0CAA0C;YAC1C,yIAAyI;YACzI,4IAA4I;YAC5I,WAAW;YACX,SAAS;YACT,OAAO;YACP,KAAK;YACLY,aAAa;mBACPZ,QAAQY,eAAe,EAAE;gBAC7BjB,uBAAuBM;gBACvBP,6BAA6BO;aAC9B;QACH;IACF;AAEF,eAAeH,YAAW"}
|
package/dist/types.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "isValidBlockConfig", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return isValidBlockConfig;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function isValidBlockConfig(blockConfig) {
|
|
1
|
+
export function isValidBlockConfig(blockConfig) {
|
|
12
2
|
return typeof blockConfig !== 'string' && typeof blockConfig?.block?.slug === 'string' && Array.isArray(blockConfig?.block?.fields);
|
|
13
3
|
}
|
|
14
4
|
|
|
15
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Block, CollectionConfig, Field } from 'payload/types'\n\nexport interface BlockConfig {\n block: Block\n validate?: (value: unknown) => boolean | string\n}\n\nexport function isValidBlockConfig(blockConfig: BlockConfig | string): blockConfig is BlockConfig {\n return (\n typeof blockConfig !== 'string' &&\n typeof blockConfig?.block?.slug === 'string' &&\n Array.isArray(blockConfig?.block?.fields)\n )\n}\n\nexport interface FieldValues {\n [key: string]: boolean | null | number | string | undefined\n}\n\nexport type PaymentFieldConfig = Partial<Field> & {\n paymentProcessor: Partial<SelectField>\n}\n\nexport type FieldConfig = Partial<Field> | PaymentFieldConfig\n\nexport interface FieldsConfig {\n [key: string]: FieldConfig | boolean | undefined\n checkbox?: FieldConfig | boolean\n country?: FieldConfig | boolean\n email?: FieldConfig | boolean\n message?: FieldConfig | boolean\n number?: FieldConfig | boolean\n payment?: FieldConfig | boolean\n select?: FieldConfig | boolean\n state?: FieldConfig | boolean\n text?: FieldConfig | boolean\n textarea?: FieldConfig | boolean\n}\n\nexport type BeforeEmail = (emails: FormattedEmail[]) => FormattedEmail[] | Promise<FormattedEmail[]>\nexport type HandlePayment = (data: any) => void\n\nexport interface PluginConfig {\n beforeEmail?: BeforeEmail\n fields?: FieldsConfig\n formOverrides?: Partial<CollectionConfig>\n formSubmissionOverrides?: Partial<CollectionConfig>\n handlePayment?: HandlePayment\n redirectRelationships?: string[]\n}\n\nexport interface TextField {\n blockName?: string\n blockType: 'text'\n defaultValue?: string\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface TextAreaField {\n blockName?: string\n blockType: 'textarea'\n defaultValue?: string\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface SelectFieldOption {\n label: string\n value: string\n}\n\nexport interface SelectField {\n blockName?: string\n blockType: 'select'\n defaultValue?: string\n label?: string\n name: string\n options: SelectFieldOption[]\n required?: boolean\n width?: number\n}\n\nexport interface PriceCondition {\n condition: 'equals' | 'hasValue' | 'notEquals'\n fieldToUse: string\n operator: 'add' | 'divide' | 'multiply' | 'subtract'\n valueForCondition: string\n valueForOperator: number | string // TODO: make this a number, see ./collections/Forms/DynamicPriceSelector.tsx\n valueType: 'static' | 'valueOfField'\n}\n\nexport interface PaymentField {\n basePrice: number\n blockName?: string\n blockType: 'payment'\n defaultValue?: string\n label?: string\n name: string\n paymentProcessor: string\n priceConditions: PriceCondition[]\n required?: boolean\n width?: number\n}\n\nexport interface EmailField {\n blockName?: string\n blockType: 'email'\n defaultValue?: string\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface StateField {\n blockName?: string\n blockType: 'state'\n defaultValue?: string\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface CountryField {\n blockName?: string\n blockType: 'country'\n defaultValue?: string\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface CheckboxField {\n blockName?: string\n blockType: 'checkbox'\n defaultValue?: boolean\n label?: string\n name: string\n required?: boolean\n width?: number\n}\n\nexport interface MessageField {\n blockName?: string\n blockType: 'message'\n message: unknown\n}\n\nexport type FormFieldBlock =\n | CheckboxField\n | CountryField\n | EmailField\n | MessageField\n | PaymentField\n | SelectField\n | StateField\n | TextAreaField\n | TextField\n\nexport interface Email {\n bcc?: string\n cc?: string\n emailFrom: string\n emailTo: string\n message?: any // TODO: configure rich text type\n replyTo?: string\n subject: string\n}\n\nexport interface FormattedEmail {\n bcc?: string\n cc?: string\n from: string\n html: string\n replyTo: string\n subject: string\n to: string\n}\n\nexport interface Redirect {\n reference?: {\n relationTo: string\n value: string | unknown\n }\n type: 'custom' | 'reference'\n url: string\n}\n\nexport interface Form {\n confirmationMessage?: any // TODO: configure rich text type\n confirmationType: 'message' | 'redirect'\n emails: Email[]\n fields: FormFieldBlock[]\n id: string\n redirect?: Redirect\n submitButtonLabel?: string\n title: string\n}\n\nexport interface SubmissionValue {\n field: string\n value: unknown\n}\n\nexport interface FormSubmission {\n form: Form | string\n submissionData: SubmissionValue[]\n}\n"],"names":["isValidBlockConfig","blockConfig","block","slug","Array","isArray","fields"],"mappings":"AAOA,OAAO,SAASA,mBAAmBC,WAAiC;IAClE,OACE,OAAOA,gBAAgB,YACvB,OAAOA,aAAaC,OAAOC,SAAS,YACpCC,MAAMC,OAAO,CAACJ,aAAaC,OAAOI;AAEtC"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getPaymentTotal", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getPaymentTotal;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const getPaymentTotal = (args)=>{
|
|
1
|
+
export const getPaymentTotal = (args)=>{
|
|
12
2
|
const { basePrice = 0, fieldValues, priceConditions } = args;
|
|
13
3
|
let total = basePrice;
|
|
14
4
|
if (Array.isArray(priceConditions) && priceConditions.length > 0) {
|
|
@@ -51,4 +41,4 @@ const getPaymentTotal = (args)=>{
|
|
|
51
41
|
return total;
|
|
52
42
|
};
|
|
53
43
|
|
|
54
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=getPaymentTotal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPaymentTotal.ts"],"sourcesContent":["import type { FieldValues, PaymentField, PriceCondition } from '../types.js'\n\nexport const getPaymentTotal = (\n args: Partial<PaymentField> & {\n fieldValues: FieldValues\n },\n): number => {\n const { basePrice = 0, fieldValues, priceConditions } = args\n\n let total = basePrice\n\n if (Array.isArray(priceConditions) && priceConditions.length > 0) {\n priceConditions.forEach((priceCondition: PriceCondition) => {\n const { condition, fieldToUse, operator, valueForCondition, valueForOperator, valueType } =\n priceCondition\n\n const valueOfField = fieldValues?.[fieldToUse]\n\n if (valueOfField) {\n if (\n condition === 'hasValue' ||\n (condition === 'equals' && valueOfField === valueForCondition) ||\n (condition === 'notEquals' && valueOfField !== valueForCondition)\n ) {\n const valueToUse = Number(valueType === 'valueOfField' ? valueOfField : valueForOperator)\n switch (operator) {\n case 'add': {\n total += valueToUse\n break\n }\n case 'subtract': {\n total -= valueToUse\n break\n }\n case 'multiply': {\n total *= valueToUse\n break\n }\n case 'divide': {\n total /= valueToUse\n break\n }\n default: {\n break\n }\n }\n }\n }\n })\n }\n\n return total\n}\n"],"names":["getPaymentTotal","args","basePrice","fieldValues","priceConditions","total","Array","isArray","length","forEach","priceCondition","condition","fieldToUse","operator","valueForCondition","valueForOperator","valueType","valueOfField","valueToUse","Number"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,CAC7BC;IAIA,MAAM,EAAEC,YAAY,CAAC,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGH;IAExD,IAAII,QAAQH;IAEZ,IAAII,MAAMC,OAAO,CAACH,oBAAoBA,gBAAgBI,MAAM,GAAG,GAAG;QAChEJ,gBAAgBK,OAAO,CAAC,CAACC;YACvB,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,SAAS,EAAE,GACvFN;YAEF,MAAMO,eAAed,aAAa,CAACS,WAAW;YAE9C,IAAIK,cAAc;gBAChB,IACEN,cAAc,cACbA,cAAc,YAAYM,iBAAiBH,qBAC3CH,cAAc,eAAeM,iBAAiBH,mBAC/C;oBACA,MAAMI,aAAaC,OAAOH,cAAc,iBAAiBC,eAAeF;oBACxE,OAAQF;wBACN,KAAK;4BAAO;gCACVR,SAASa;gCACT;4BACF;wBACA,KAAK;4BAAY;gCACfb,SAASa;gCACT;4BACF;wBACA,KAAK;4BAAY;gCACfb,SAASa;gCACT;4BACF;wBACA,KAAK;4BAAU;gCACbb,SAASa;gCACT;4BACF;wBACA;4BAAS;gCACP;4BACF;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOb;AACT,EAAC"}
|
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "HeadingHTMLConverter", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return HeadingHTMLConverter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _serializeLexical = require("../serializeLexical");
|
|
12
|
-
const HeadingHTMLConverter = {
|
|
1
|
+
import { convertLexicalNodesToHTML } from '../serializeLexical.js';
|
|
2
|
+
export const HeadingHTMLConverter = {
|
|
13
3
|
async converter ({ converters, node, parent, submissionData }) {
|
|
14
|
-
const childrenText = await
|
|
4
|
+
const childrenText = await convertLexicalNodesToHTML({
|
|
15
5
|
converters,
|
|
16
6
|
lexicalNodes: node.children,
|
|
17
7
|
parent: {
|
|
@@ -27,4 +17,4 @@ const HeadingHTMLConverter = {
|
|
|
27
17
|
]
|
|
28
18
|
};
|
|
29
19
|
|
|
30
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utilities/lexical/converters/heading.ts"],"sourcesContent":["import type { HTMLConverter } from '../types.js'\n\nimport { convertLexicalNodesToHTML } from '../serializeLexical.js'\n\nexport const HeadingHTMLConverter: HTMLConverter<any> = {\n async converter({ converters, node, parent, submissionData }) {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n lexicalNodes: node.children,\n parent: {\n ...node,\n parent,\n },\n submissionData,\n })\n\n return '<' + node?.tag + '>' + childrenText + '</' + node?.tag + '>'\n },\n nodeTypes: ['heading'],\n}\n"],"names":["convertLexicalNodesToHTML","HeadingHTMLConverter","converter","converters","node","parent","submissionData","childrenText","lexicalNodes","children","tag","nodeTypes"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ,yBAAwB;AAElE,OAAO,MAAMC,uBAA2C;IACtD,MAAMC,WAAU,EAAEC,UAAU,EAAEC,IAAI,EAAEC,MAAM,EAAEC,cAAc,EAAE;QAC1D,MAAMC,eAAe,MAAMP,0BAA0B;YACnDG;YACAK,cAAcJ,KAAKK,QAAQ;YAC3BJ,QAAQ;gBACN,GAAGD,IAAI;gBACPC;YACF;YACAC;QACF;QAEA,OAAO,MAAMF,MAAMM,MAAM,MAAMH,eAAe,OAAOH,MAAMM,MAAM;IACnE;IACAC,WAAW;QAAC;KAAU;AACxB,EAAC"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "LinebreakHTMLConverter", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return LinebreakHTMLConverter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const LinebreakHTMLConverter = {
|
|
1
|
+
export const LinebreakHTMLConverter = {
|
|
12
2
|
converter () {
|
|
13
3
|
return `<br>`;
|
|
14
4
|
},
|
|
@@ -17,4 +7,4 @@ const LinebreakHTMLConverter = {
|
|
|
17
7
|
]
|
|
18
8
|
};
|
|
19
9
|
|
|
20
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=linebreak.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utilities/lexical/converters/linebreak.ts"],"sourcesContent":["import type { HTMLConverter } from '../types.js'\n\nexport const LinebreakHTMLConverter: HTMLConverter<any> = {\n converter() {\n return `<br>`\n },\n nodeTypes: ['linebreak'],\n}\n"],"names":["LinebreakHTMLConverter","converter","nodeTypes"],"mappings":"AAEA,OAAO,MAAMA,yBAA6C;IACxDC;QACE,OAAO,CAAC,IAAI,CAAC;IACf;IACAC,WAAW;QAAC;KAAY;AAC1B,EAAC"}
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "LinkHTMLConverter", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return LinkHTMLConverter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _replaceDoubleCurlys = require("../../replaceDoubleCurlys");
|
|
12
|
-
const _serializeLexical = require("../serializeLexical");
|
|
13
|
-
const LinkHTMLConverter = {
|
|
1
|
+
import { replaceDoubleCurlys } from '../../replaceDoubleCurlys.js';
|
|
2
|
+
import { convertLexicalNodesToHTML } from '../serializeLexical.js';
|
|
3
|
+
export const LinkHTMLConverter = {
|
|
14
4
|
async converter ({ converters, node, parent, submissionData }) {
|
|
15
|
-
const childrenText = await
|
|
5
|
+
const childrenText = await convertLexicalNodesToHTML({
|
|
16
6
|
converters,
|
|
17
7
|
lexicalNodes: node.children,
|
|
18
8
|
parent: {
|
|
@@ -22,15 +12,16 @@ const LinkHTMLConverter = {
|
|
|
22
12
|
submissionData
|
|
23
13
|
});
|
|
24
14
|
const rel = node.fields.newTab ? ' rel="noopener noreferrer"' : '';
|
|
15
|
+
const target = node.fields.newTab ? ' target="_blank"' : '';
|
|
25
16
|
let href = node.fields.linkType === 'custom' ? node.fields.url : node.fields.doc?.value?.id;
|
|
26
17
|
if (submissionData) {
|
|
27
|
-
href =
|
|
18
|
+
href = replaceDoubleCurlys(href, submissionData);
|
|
28
19
|
}
|
|
29
|
-
return `<a href="${href}"${rel}>${childrenText}</a>`;
|
|
20
|
+
return `<a href="${href}"${target}${rel}>${childrenText}</a>`;
|
|
30
21
|
},
|
|
31
22
|
nodeTypes: [
|
|
32
23
|
'link'
|
|
33
24
|
]
|
|
34
25
|
};
|
|
35
26
|
|
|
36
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utilities/lexical/converters/link.ts"],"sourcesContent":["import type { HTMLConverter } from '../types.js'\n\nimport { replaceDoubleCurlys } from '../../replaceDoubleCurlys.js'\nimport { convertLexicalNodesToHTML } from '../serializeLexical.js'\n\nexport const LinkHTMLConverter: HTMLConverter<any> = {\n async converter({ converters, node, parent, submissionData }) {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n lexicalNodes: node.children,\n parent: {\n ...node,\n parent,\n },\n submissionData,\n })\n\n const rel: string = node.fields.newTab ? ' rel=\"noopener noreferrer\"' : ''\n const target: string = node.fields.newTab ? ' target=\"_blank\"' : ''\n\n let href: string =\n node.fields.linkType === 'custom' ? node.fields.url : node.fields.doc?.value?.id\n\n if (submissionData) {\n href = replaceDoubleCurlys(href, submissionData)\n }\n\n return `<a href=\"${href}\"${target}${rel}>${childrenText}</a>`\n },\n nodeTypes: ['link'],\n}\n"],"names":["replaceDoubleCurlys","convertLexicalNodesToHTML","LinkHTMLConverter","converter","converters","node","parent","submissionData","childrenText","lexicalNodes","children","rel","fields","newTab","target","href","linkType","url","doc","value","id","nodeTypes"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,+BAA8B;AAClE,SAASC,yBAAyB,QAAQ,yBAAwB;AAElE,OAAO,MAAMC,oBAAwC;IACnD,MAAMC,WAAU,EAAEC,UAAU,EAAEC,IAAI,EAAEC,MAAM,EAAEC,cAAc,EAAE;QAC1D,MAAMC,eAAe,MAAMP,0BAA0B;YACnDG;YACAK,cAAcJ,KAAKK,QAAQ;YAC3BJ,QAAQ;gBACN,GAAGD,IAAI;gBACPC;YACF;YACAC;QACF;QAEA,MAAMI,MAAcN,KAAKO,MAAM,CAACC,MAAM,GAAG,+BAA+B;QACxE,MAAMC,SAAiBT,KAAKO,MAAM,CAACC,MAAM,GAAG,qBAAqB;QAEjE,IAAIE,OACFV,KAAKO,MAAM,CAACI,QAAQ,KAAK,WAAWX,KAAKO,MAAM,CAACK,GAAG,GAAGZ,KAAKO,MAAM,CAACM,GAAG,EAAEC,OAAOC;QAEhF,IAAIb,gBAAgB;YAClBQ,OAAOf,oBAAoBe,MAAMR;QACnC;QAEA,OAAO,CAAC,SAAS,EAAEQ,KAAK,CAAC,EAAED,OAAO,EAAEH,IAAI,CAAC,EAAEH,aAAa,IAAI,CAAC;IAC/D;IACAa,WAAW;QAAC;KAAO;AACrB,EAAC"}
|