@payloadcms/plugin-form-builder 1.0.15 → 1.1.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 (90) hide show
  1. package/README.md +4 -322
  2. package/dist/collections/FormSubmissions/hooks/createCharge.d.ts +1 -0
  3. package/dist/collections/FormSubmissions/hooks/createCharge.d.ts.map +1 -0
  4. package/dist/collections/FormSubmissions/hooks/createCharge.js +21 -55
  5. package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts +1 -0
  6. package/dist/collections/FormSubmissions/hooks/sendEmail.d.ts.map +1 -0
  7. package/dist/collections/FormSubmissions/hooks/sendEmail.js +73 -125
  8. package/dist/collections/FormSubmissions/index.d.ts +1 -0
  9. package/dist/collections/FormSubmissions/index.d.ts.map +1 -0
  10. package/dist/collections/FormSubmissions/index.js +70 -66
  11. package/dist/collections/Forms/DynamicFieldSelector.d.ts +2 -1
  12. package/dist/collections/Forms/DynamicFieldSelector.d.ts.map +1 -0
  13. package/dist/collections/Forms/DynamicFieldSelector.js +69 -53
  14. package/dist/collections/Forms/DynamicPriceSelector.d.ts +2 -1
  15. package/dist/collections/Forms/DynamicPriceSelector.d.ts.map +1 -0
  16. package/dist/collections/Forms/DynamicPriceSelector.js +83 -64
  17. package/dist/collections/Forms/fields.d.ts +2 -1
  18. package/dist/collections/Forms/fields.d.ts.map +1 -0
  19. package/dist/collections/Forms/fields.js +352 -270
  20. package/dist/collections/Forms/index.d.ts +1 -0
  21. package/dist/collections/Forms/index.d.ts.map +1 -0
  22. package/dist/collections/Forms/index.js +103 -106
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +51 -38
  26. package/dist/types.d.ts +70 -69
  27. package/dist/types.d.ts.map +1 -0
  28. package/dist/types.js +12 -8
  29. package/dist/utilities/getPaymentTotal.d.ts +1 -0
  30. package/dist/utilities/getPaymentTotal.d.ts.map +1 -0
  31. package/dist/utilities/getPaymentTotal.js +44 -34
  32. package/dist/utilities/lexical/converters/heading.d.ts +3 -0
  33. package/dist/utilities/lexical/converters/heading.d.ts.map +1 -0
  34. package/dist/utilities/lexical/converters/heading.js +29 -0
  35. package/dist/utilities/lexical/converters/linebreak.d.ts +3 -0
  36. package/dist/utilities/lexical/converters/linebreak.d.ts.map +1 -0
  37. package/dist/utilities/lexical/converters/linebreak.js +20 -0
  38. package/dist/utilities/lexical/converters/link.d.ts +3 -0
  39. package/dist/utilities/lexical/converters/link.d.ts.map +1 -0
  40. package/dist/utilities/lexical/converters/link.js +31 -0
  41. package/dist/utilities/lexical/converters/list.d.ts +4 -0
  42. package/dist/utilities/lexical/converters/list.d.ts.map +1 -0
  43. package/dist/utilities/lexical/converters/list.js +63 -0
  44. package/dist/utilities/lexical/converters/paragraph.d.ts +3 -0
  45. package/dist/utilities/lexical/converters/paragraph.d.ts.map +1 -0
  46. package/dist/utilities/lexical/converters/paragraph.js +29 -0
  47. package/dist/utilities/lexical/converters/quote.d.ts +3 -0
  48. package/dist/utilities/lexical/converters/quote.d.ts.map +1 -0
  49. package/dist/utilities/lexical/converters/quote.js +29 -0
  50. package/dist/utilities/lexical/converters/text.d.ts +3 -0
  51. package/dist/utilities/lexical/converters/text.d.ts.map +1 -0
  52. package/dist/utilities/lexical/converters/text.js +43 -0
  53. package/dist/utilities/lexical/defaultConverters.d.ts +3 -0
  54. package/dist/utilities/lexical/defaultConverters.d.ts.map +1 -0
  55. package/dist/utilities/lexical/defaultConverters.js +29 -0
  56. package/dist/utilities/lexical/nodeFormat.d.ts +39 -0
  57. package/dist/utilities/lexical/nodeFormat.d.ts.map +1 -0
  58. package/dist/utilities/lexical/nodeFormat.js +133 -0
  59. package/dist/utilities/lexical/serializeLexical.d.ts +8 -0
  60. package/dist/utilities/lexical/serializeLexical.d.ts.map +1 -0
  61. package/dist/utilities/lexical/serializeLexical.js +56 -0
  62. package/dist/utilities/lexical/types.d.ts +13 -0
  63. package/dist/utilities/lexical/types.d.ts.map +1 -0
  64. package/dist/utilities/lexical/types.js +6 -0
  65. package/dist/utilities/replaceDoubleCurlys.d.ts +1 -0
  66. package/dist/utilities/replaceDoubleCurlys.d.ts.map +1 -0
  67. package/dist/utilities/replaceDoubleCurlys.js +16 -13
  68. package/dist/utilities/slate/serializeSlate.d.ts +12 -0
  69. package/dist/utilities/slate/serializeSlate.d.ts.map +1 -0
  70. package/dist/utilities/slate/serializeSlate.js +132 -0
  71. package/package.json +33 -44
  72. package/types.d.ts +1 -1
  73. package/types.js +1 -1
  74. package/dist/collections/FormSubmissions/hooks/createCharge.js.map +0 -1
  75. package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +0 -1
  76. package/dist/collections/FormSubmissions/index.js.map +0 -1
  77. package/dist/collections/Forms/DynamicFieldSelector.js.map +0 -1
  78. package/dist/collections/Forms/DynamicPriceSelector.js.map +0 -1
  79. package/dist/collections/Forms/fields.js.map +0 -1
  80. package/dist/collections/Forms/index.js.map +0 -1
  81. package/dist/index.js.map +0 -1
  82. package/dist/mocks/serverModule.d.ts +0 -2
  83. package/dist/mocks/serverModule.js +0 -4
  84. package/dist/mocks/serverModule.js.map +0 -1
  85. package/dist/types.js.map +0 -1
  86. package/dist/utilities/getPaymentTotal.js.map +0 -1
  87. package/dist/utilities/replaceDoubleCurlys.js.map +0 -1
  88. package/dist/utilities/serializeRichText.d.ts +0 -10
  89. package/dist/utilities/serializeRichText.js +0 -51
  90. package/dist/utilities/serializeRichText.js.map +0 -1
@@ -1,3 +1,4 @@
1
1
  import type { CollectionConfig } from 'payload/types';
2
2
  import type { PluginConfig } from '../../types';
3
3
  export declare const generateFormCollection: (formConfig: PluginConfig) => CollectionConfig;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/collections/Forms/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,gBAAgB,EAAS,MAAM,eAAe,CAAA;AAInE,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,aAAa,CAAA;AAK5D,eAAO,MAAM,sBAAsB,eAAgB,YAAY,KAAG,gBAiOjE,CAAA"}
@@ -1,107 +1,101 @@
1
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "generateFormCollection", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return generateFormCollection;
19
9
  }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.generateFormCollection = void 0;
27
- var deepmerge_1 = __importDefault(require("deepmerge"));
28
- var fields_1 = require("./fields");
29
- // all settings can be overridden by the config
30
- var generateFormCollection = function (formConfig) {
31
- var _a, _b, _c, _d;
32
- var redirect = {
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)=>{
19
+ const redirect = {
33
20
  name: 'redirect',
34
- type: 'group',
35
21
  admin: {
36
- hideGutter: true,
37
- condition: function (_, siblingData) { return (siblingData === null || siblingData === void 0 ? void 0 : siblingData.confirmationType) === 'redirect'; },
22
+ condition: (_, siblingData)=>siblingData?.confirmationType === 'redirect',
23
+ hideGutter: true
38
24
  },
39
25
  fields: [
40
26
  {
41
27
  name: 'url',
42
28
  label: 'URL to redirect to',
43
- type: 'text',
44
29
  required: true,
45
- },
30
+ type: 'text'
31
+ }
46
32
  ],
33
+ type: 'group'
47
34
  };
48
35
  if (formConfig.redirectRelationships) {
49
36
  redirect.fields.unshift({
50
37
  name: 'reference',
38
+ admin: {
39
+ condition: (_, siblingData)=>siblingData?.type === 'reference'
40
+ },
51
41
  label: 'Document to link to',
52
- type: 'relationship',
42
+ maxDepth: 2,
53
43
  relationTo: formConfig.redirectRelationships,
54
44
  required: true,
55
- maxDepth: 2,
56
- admin: {
57
- condition: function (_, siblingData) { return (siblingData === null || siblingData === void 0 ? void 0 : siblingData.type) === 'reference'; },
58
- },
45
+ type: 'relationship'
59
46
  });
60
47
  redirect.fields.unshift({
61
48
  name: 'type',
62
- type: 'radio',
49
+ admin: {
50
+ layout: 'horizontal'
51
+ },
52
+ defaultValue: 'reference',
63
53
  options: [
64
54
  {
65
55
  label: 'Internal link',
66
- value: 'reference',
56
+ value: 'reference'
67
57
  },
68
58
  {
69
59
  label: 'Custom URL',
70
- value: 'custom',
71
- },
60
+ value: 'custom'
61
+ }
72
62
  ],
73
- defaultValue: 'reference',
74
- admin: {
75
- layout: 'horizontal',
76
- },
63
+ type: 'radio'
77
64
  });
78
- if (redirect.fields[2].type !== 'row')
79
- redirect.fields[2].label = 'Custom URL';
65
+ if (redirect.fields[2].type !== 'row') redirect.fields[2].label = 'Custom URL';
80
66
  redirect.fields[2].admin = {
81
- condition: function (_, siblingData) { return (siblingData === null || siblingData === void 0 ? void 0 : siblingData.type) === 'custom'; },
67
+ condition: (_, siblingData)=>siblingData?.type === 'custom'
82
68
  };
83
69
  }
84
- var config = __assign(__assign({}, ((formConfig === null || formConfig === void 0 ? void 0 : formConfig.formOverrides) || {})), { slug: ((_a = formConfig === null || formConfig === void 0 ? void 0 : formConfig.formOverrides) === null || _a === void 0 ? void 0 : _a.slug) || 'forms', admin: __assign({ useAsTitle: 'title', enableRichTextRelationship: false }, (((_b = formConfig === null || formConfig === void 0 ? void 0 : formConfig.formOverrides) === null || _b === void 0 ? void 0 : _b.admin) || {})), access: __assign({ read: function () { return true; } }, (((_c = formConfig === null || formConfig === void 0 ? void 0 : formConfig.formOverrides) === null || _c === void 0 ? void 0 : _c.access) || {})), fields: __spreadArray([
70
+ const config = {
71
+ ...formConfig?.formOverrides || {},
72
+ access: {
73
+ read: ()=>true,
74
+ ...formConfig?.formOverrides?.access || {}
75
+ },
76
+ admin: {
77
+ enableRichTextRelationship: false,
78
+ useAsTitle: 'title',
79
+ ...formConfig?.formOverrides?.admin || {}
80
+ },
81
+ fields: [
85
82
  {
86
83
  name: 'title',
87
- type: 'text',
88
84
  required: true,
85
+ type: 'text'
89
86
  },
90
87
  {
91
88
  name: 'fields',
92
- type: 'blocks',
93
- blocks: Object.entries((formConfig === null || formConfig === void 0 ? void 0 : formConfig.fields) || {})
94
- .map(function (_a) {
95
- var fieldKey = _a[0], fieldConfig = _a[1];
89
+ blocks: Object.entries(formConfig?.fields || {}).map(([fieldKey, fieldConfig])=>{
96
90
  // let the config enable/disable fields with either boolean values or objects
97
91
  if (fieldConfig !== false) {
98
- var block = fields_1.fields[fieldKey];
92
+ const block = _fields.fields[fieldKey];
99
93
  if (block === undefined && typeof fieldConfig === 'object') {
100
94
  return fieldConfig;
101
95
  }
102
96
  if (typeof block === 'object' && typeof fieldConfig === 'object') {
103
- return (0, deepmerge_1.default)(block, fieldConfig, {
104
- arrayMerge: function (_, sourceArray) { return sourceArray; },
97
+ return (0, _deepmerge.default)(block, fieldConfig, {
98
+ arrayMerge: (_, sourceArray)=>sourceArray
105
99
  });
106
100
  }
107
101
  if (typeof block === 'function') {
@@ -110,124 +104,127 @@ var generateFormCollection = function (formConfig) {
110
104
  return block;
111
105
  }
112
106
  return null;
113
- })
114
- .filter(Boolean),
107
+ }).filter(Boolean),
108
+ type: 'blocks'
115
109
  },
116
110
  {
117
111
  name: 'submitButtonLabel',
118
- type: 'text',
119
112
  localized: true,
113
+ type: 'text'
120
114
  },
121
115
  {
122
116
  name: 'confirmationType',
123
- type: 'radio',
124
117
  admin: {
125
118
  description: 'Choose whether to display an on-page message or redirect to a different page after they submit the form.',
126
- layout: 'horizontal',
119
+ layout: 'horizontal'
127
120
  },
121
+ defaultValue: 'message',
128
122
  options: [
129
123
  {
130
124
  label: 'Message',
131
- value: 'message',
125
+ value: 'message'
132
126
  },
133
127
  {
134
128
  label: 'Redirect',
135
- value: 'redirect',
136
- },
129
+ value: 'redirect'
130
+ }
137
131
  ],
138
- defaultValue: 'message',
132
+ type: 'radio'
139
133
  },
140
134
  {
141
135
  name: 'confirmationMessage',
142
- type: 'richText',
143
- localized: true,
144
- required: true,
145
136
  admin: {
146
- condition: function (_, siblingData) { return (siblingData === null || siblingData === void 0 ? void 0 : siblingData.confirmationType) === 'message'; },
137
+ condition: (_, siblingData)=>siblingData?.confirmationType === 'message'
147
138
  },
139
+ localized: true,
140
+ required: true,
141
+ type: 'richText'
148
142
  },
149
143
  redirect,
150
144
  {
151
145
  name: 'emails',
152
- type: 'array',
153
146
  admin: {
154
- 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}}.",
147
+ 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}}."
155
148
  },
156
149
  fields: [
157
150
  {
158
- type: 'row',
159
151
  fields: [
160
152
  {
161
- type: 'text',
162
153
  name: 'emailTo',
163
- label: 'Email To',
164
154
  admin: {
165
- width: '100%',
166
155
  placeholder: '"Email Sender" <sender@email.com>',
156
+ width: '100%'
167
157
  },
158
+ label: 'Email To',
159
+ type: 'text'
168
160
  },
169
161
  {
170
- type: 'text',
171
162
  name: 'cc',
172
- label: 'CC',
173
163
  admin: {
174
- width: '50%',
164
+ width: '50%'
175
165
  },
166
+ label: 'CC',
167
+ type: 'text'
176
168
  },
177
169
  {
178
- type: 'text',
179
170
  name: 'bcc',
180
- label: 'BCC',
181
171
  admin: {
182
- width: '50%',
172
+ width: '50%'
183
173
  },
184
- },
174
+ label: 'BCC',
175
+ type: 'text'
176
+ }
185
177
  ],
178
+ type: 'row'
186
179
  },
187
180
  {
188
- type: 'row',
189
181
  fields: [
190
182
  {
191
- type: 'text',
192
183
  name: 'replyTo',
193
- label: 'Reply To',
194
184
  admin: {
195
- width: '50%',
196
185
  placeholder: '"Reply To" <reply-to@email.com>',
186
+ width: '50%'
197
187
  },
188
+ label: 'Reply To',
189
+ type: 'text'
198
190
  },
199
191
  {
200
- type: 'text',
201
192
  name: 'emailFrom',
202
- label: 'Email From',
203
193
  admin: {
204
- width: '50%',
205
194
  placeholder: '"Email From" <email-from@email.com>',
195
+ width: '50%'
206
196
  },
207
- },
197
+ label: 'Email From',
198
+ type: 'text'
199
+ }
208
200
  ],
201
+ type: 'row'
209
202
  },
210
203
  {
211
- type: 'text',
212
204
  name: 'subject',
213
- label: 'Subject',
214
205
  defaultValue: "You've received a new message.",
215
- required: true,
206
+ label: 'Subject',
216
207
  localized: true,
208
+ required: true,
209
+ type: 'text'
217
210
  },
218
211
  {
219
- type: 'richText',
220
212
  name: 'message',
221
- label: 'Message',
222
- localized: true,
223
213
  admin: {
224
- description: 'Enter the message that should be sent in this email.',
214
+ description: 'Enter the message that should be sent in this email.'
225
215
  },
226
- },
216
+ label: 'Message',
217
+ localized: true,
218
+ type: 'richText'
219
+ }
227
220
  ],
228
- }
229
- ], (((_d = formConfig === null || formConfig === void 0 ? void 0 : formConfig.formOverrides) === null || _d === void 0 ? void 0 : _d.fields) || []), true) });
221
+ type: 'array'
222
+ },
223
+ ...formConfig?.formOverrides?.fields || []
224
+ ],
225
+ slug: formConfig?.formOverrides?.slug || 'forms'
226
+ };
230
227
  return config;
231
228
  };
232
- exports.generateFormCollection = generateFormCollection;
233
- //# sourceMappingURL=index.js.map
229
+
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9Gb3Jtcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJsb2NrLCBDb2xsZWN0aW9uQ29uZmlnLCBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRDb25maWcsIFBsdWdpbkNvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZHMgfSBmcm9tICcuL2ZpZWxkcydcblxuLy8gYWxsIHNldHRpbmdzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBjb25maWdcbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZvcm1Db2xsZWN0aW9uID0gKGZvcm1Db25maWc6IFBsdWdpbkNvbmZpZyk6IENvbGxlY3Rpb25Db25maWcgPT4ge1xuICBjb25zdCByZWRpcmVjdDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3JlZGlyZWN0JyxcbiAgICBhZG1pbjoge1xuICAgICAgY29uZGl0aW9uOiAoXywgc2libGluZ0RhdGEpID0+IHNpYmxpbmdEYXRhPy5jb25maXJtYXRpb25UeXBlID09PSAncmVkaXJlY3QnLFxuICAgICAgaGlkZUd1dHRlcjogdHJ1ZSxcbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAndXJsJyxcbiAgICAgICAgbGFiZWw6ICdVUkwgdG8gcmVkaXJlY3QgdG8nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHR5cGU6ICdncm91cCcsXG4gIH1cblxuICBpZiAoZm9ybUNvbmZpZy5yZWRpcmVjdFJlbGF0aW9uc2hpcHMpIHtcbiAgICByZWRpcmVjdC5maWVsZHMudW5zaGlmdCh7XG4gICAgICBuYW1lOiAncmVmZXJlbmNlJyxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGNvbmRpdGlvbjogKF8sIHNpYmxpbmdEYXRhKSA9PiBzaWJsaW5nRGF0YT8udHlwZSA9PT0gJ3JlZmVyZW5jZScsXG4gICAgICB9LFxuICAgICAgbGFiZWw6ICdEb2N1bWVudCB0byBsaW5rIHRvJyxcbiAgICAgIG1heERlcHRoOiAyLFxuICAgICAgcmVsYXRpb25UbzogZm9ybUNvbmZpZy5yZWRpcmVjdFJlbGF0aW9uc2hpcHMsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIHR5cGU6ICdyZWxhdGlvbnNoaXAnLFxuICAgIH0pXG5cbiAgICByZWRpcmVjdC5maWVsZHMudW5zaGlmdCh7XG4gICAgICBuYW1lOiAndHlwZScsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBsYXlvdXQ6ICdob3Jpem9udGFsJyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0VmFsdWU6ICdyZWZlcmVuY2UnLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdJbnRlcm5hbCBsaW5rJyxcbiAgICAgICAgICB2YWx1ZTogJ3JlZmVyZW5jZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0N1c3RvbSBVUkwnLFxuICAgICAgICAgIHZhbHVlOiAnY3VzdG9tJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0eXBlOiAncmFkaW8nLFxuICAgIH0pXG5cbiAgICBpZiAocmVkaXJlY3QuZmllbGRzWzJdLnR5cGUgIT09ICdyb3cnKSByZWRpcmVjdC5maWVsZHNbMl0ubGFiZWwgPSAnQ3VzdG9tIFVSTCdcblxuICAgIHJlZGlyZWN0LmZpZWxkc1syXS5hZG1pbiA9IHtcbiAgICAgIGNvbmRpdGlvbjogKF8sIHNpYmxpbmdEYXRhKSA9PiBzaWJsaW5nRGF0YT8udHlwZSA9PT0gJ2N1c3RvbScsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29uZmlnOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLihmb3JtQ29uZmlnPy5mb3JtT3ZlcnJpZGVzIHx8IHt9KSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIHJlYWQ6ICgpID0+IHRydWUsXG4gICAgICAuLi4oZm9ybUNvbmZpZz8uZm9ybU92ZXJyaWRlcz8uYWNjZXNzIHx8IHt9KSxcbiAgICB9LFxuICAgIGFkbWluOiB7XG4gICAgICBlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcDogZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiAndGl0bGUnLFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1PdmVycmlkZXM/LmFkbWluIHx8IHt9KSxcbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ZpZWxkcycsXG4gICAgICAgIGJsb2NrczogT2JqZWN0LmVudHJpZXMoZm9ybUNvbmZpZz8uZmllbGRzIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKFtmaWVsZEtleSwgZmllbGRDb25maWddKSA9PiB7XG4gICAgICAgICAgICAvLyBsZXQgdGhlIGNvbmZpZyBlbmFibGUvZGlzYWJsZSBmaWVsZHMgd2l0aCBlaXRoZXIgYm9vbGVhbiB2YWx1ZXMgb3Igb2JqZWN0c1xuICAgICAgICAgICAgaWYgKGZpZWxkQ29uZmlnICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkc1tmaWVsZEtleV1cblxuICAgICAgICAgICAgICBpZiAoYmxvY2sgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZmllbGRDb25maWcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkQ29uZmlnXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGJsb2NrID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZmllbGRDb25maWcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlPEZpZWxkQ29uZmlnPihibG9jaywgZmllbGRDb25maWcsIHtcbiAgICAgICAgICAgICAgICAgIGFycmF5TWVyZ2U6IChfLCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYmxvY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2soZmllbGRDb25maWcpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gYmxvY2tcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQmxvY2tbXSxcbiAgICAgICAgdHlwZTogJ2Jsb2NrcycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3VibWl0QnV0dG9uTGFiZWwnLFxuICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb25maXJtYXRpb25UeXBlJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdDaG9vc2Ugd2hldGhlciB0byBkaXNwbGF5IGFuIG9uLXBhZ2UgbWVzc2FnZSBvciByZWRpcmVjdCB0byBhIGRpZmZlcmVudCBwYWdlIGFmdGVyIHRoZXkgc3VibWl0IHRoZSBmb3JtLicsXG4gICAgICAgICAgbGF5b3V0OiAnaG9yaXpvbnRhbCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ21lc3NhZ2UnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdNZXNzYWdlJyxcbiAgICAgICAgICAgIHZhbHVlOiAnbWVzc2FnZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ1JlZGlyZWN0JyxcbiAgICAgICAgICAgIHZhbHVlOiAncmVkaXJlY3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHR5cGU6ICdyYWRpbycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29uZmlybWF0aW9uTWVzc2FnZScsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgY29uZGl0aW9uOiAoXywgc2libGluZ0RhdGEpID0+IHNpYmxpbmdEYXRhPy5jb25maXJtYXRpb25UeXBlID09PSAnbWVzc2FnZScsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6ICdyaWNoVGV4dCcsXG4gICAgICB9LFxuICAgICAgcmVkaXJlY3QsXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdlbWFpbHMnLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCJTZW5kIGN1c3RvbSBlbWFpbHMgd2hlbiB0aGUgZm9ybSBzdWJtaXRzLiBVc2UgY29tbWEgc2VwYXJhdGVkIGxpc3RzIHRvIHNlbmQgdGhlIHNhbWUgZW1haWwgdG8gbXVsdGlwbGUgcmVjaXBpZW50cy4gVG8gcmVmZXJlbmNlIGEgdmFsdWUgZnJvbSB0aGlzIGZvcm0sIHdyYXAgdGhhdCBmaWVsZCdzIG5hbWUgd2l0aCBkb3VibGUgY3VybHkgYnJhY2tldHMsIGkuZS4ge3tmaXJzdE5hbWV9fS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZW1haWxUbycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnXCJFbWFpbCBTZW5kZXJcIiA8c2VuZGVyQGVtYWlsLmNvbT4nLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnRW1haWwgVG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjYycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQ0MnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdiY2MnLFxuICAgICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzUwJScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0JDQycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHR5cGU6ICdyb3cnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAncmVwbHlUbycsXG4gICAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnXCJSZXBseSBUb1wiIDxyZXBseS10b0BlbWFpbC5jb20+JyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnUmVwbHkgVG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdlbWFpbEZyb20nLFxuICAgICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1wiRW1haWwgRnJvbVwiIDxlbWFpbC1mcm9tQGVtYWlsLmNvbT4nLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MCUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdFbWFpbCBGcm9tJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdHlwZTogJ3JvdycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc3ViamVjdCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IFwiWW91J3ZlIHJlY2VpdmVkIGEgbmV3IG1lc3NhZ2UuXCIsXG4gICAgICAgICAgICBsYWJlbDogJ1N1YmplY3QnLFxuICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnbWVzc2FnZScsXG4gICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0VudGVyIHRoZSBtZXNzYWdlIHRoYXQgc2hvdWxkIGJlIHNlbnQgaW4gdGhpcyBlbWFpbC4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAnTWVzc2FnZScsXG4gICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAncmljaFRleHQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB9LFxuICAgICAgLi4uKGZvcm1Db25maWc/LmZvcm1PdmVycmlkZXM/LmZpZWxkcyB8fCBbXSksXG4gICAgXSxcbiAgICBzbHVnOiBmb3JtQ29uZmlnPy5mb3JtT3ZlcnJpZGVzPy5zbHVnIHx8ICdmb3JtcycsXG4gIH1cblxuICByZXR1cm4gY29uZmlnXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVGb3JtQ29sbGVjdGlvbiIsImZvcm1Db25maWciLCJyZWRpcmVjdCIsIm5hbWUiLCJhZG1pbiIsImNvbmRpdGlvbiIsIl8iLCJzaWJsaW5nRGF0YSIsImNvbmZpcm1hdGlvblR5cGUiLCJoaWRlR3V0dGVyIiwiZmllbGRzIiwibGFiZWwiLCJyZXF1aXJlZCIsInR5cGUiLCJyZWRpcmVjdFJlbGF0aW9uc2hpcHMiLCJ1bnNoaWZ0IiwibWF4RGVwdGgiLCJyZWxhdGlvblRvIiwibGF5b3V0IiwiZGVmYXVsdFZhbHVlIiwib3B0aW9ucyIsInZhbHVlIiwiY29uZmlnIiwiZm9ybU92ZXJyaWRlcyIsImFjY2VzcyIsInJlYWQiLCJlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcCIsInVzZUFzVGl0bGUiLCJibG9ja3MiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmllbGRLZXkiLCJmaWVsZENvbmZpZyIsImJsb2NrIiwidW5kZWZpbmVkIiwibWVyZ2UiLCJhcnJheU1lcmdlIiwic291cmNlQXJyYXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwibG9jYWxpemVkIiwiZGVzY3JpcHRpb24iLCJwbGFjZWhvbGRlciIsIndpZHRoIiwic2x1ZyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFTYUE7OztlQUFBQTs7O2tFQVBLO3dCQUlLOzs7Ozs7QUFHaEIsTUFBTUEseUJBQXlCLENBQUNDO0lBQ3JDLE1BQU1DLFdBQWtCO1FBQ3RCQyxN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
package/dist/index.d.ts CHANGED
@@ -4,3 +4,4 @@ export { fields } from './collections/Forms/fields';
4
4
  export { getPaymentTotal } from './utilities/getPaymentTotal';
5
5
  declare const FormBuilder: (incomingFormConfig: PluginConfig) => (config: Config) => Config;
6
6
  export default FormBuilder;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,QAAA,MAAM,WAAW,uBACM,YAAY,cACxB,MAAM,KAAG,MAwCjB,CAAA;AAEH,eAAe,WAAW,CAAA"}
package/dist/index.js CHANGED
@@ -1,36 +1,47 @@
1
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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;
19
20
  }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.getPaymentTotal = exports.fields = void 0;
24
- var Forms_1 = require("./collections/Forms");
25
- var FormSubmissions_1 = require("./collections/FormSubmissions");
26
- var fields_1 = require("./collections/Forms/fields");
27
- Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
28
- var getPaymentTotal_1 = require("./utilities/getPaymentTotal");
29
- Object.defineProperty(exports, "getPaymentTotal", { enumerable: true, get: function () { return getPaymentTotal_1.getPaymentTotal; } });
30
- var FormBuilder = function (incomingFormConfig) {
31
- return function (config) {
32
- var formConfig = __assign(__assign({}, incomingFormConfig), { fields: __assign({ text: true, textarea: true, select: true, email: true, state: true, country: true, number: true, checkbox: true, message: true, payment: false }, incomingFormConfig.fields) });
33
- return __assign(__assign({}, config), {
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");
26
+ const FormBuilder = (incomingFormConfig)=>(config)=>{
27
+ const formConfig = {
28
+ ...incomingFormConfig,
29
+ fields: {
30
+ checkbox: true,
31
+ country: true,
32
+ email: true,
33
+ message: true,
34
+ number: true,
35
+ payment: false,
36
+ select: true,
37
+ state: true,
38
+ text: true,
39
+ textarea: true,
40
+ ...incomingFormConfig.fields
41
+ }
42
+ };
43
+ return {
44
+ ...config,
34
45
  // admin: {
35
46
  // ...config.admin,
36
47
  // webpack: (webpackConfig) => ({
@@ -45,11 +56,13 @@ var FormBuilder = function (incomingFormConfig) {
45
56
  // },
46
57
  // })
47
58
  // },
48
- collections: __spreadArray(__spreadArray([], ((config === null || config === void 0 ? void 0 : config.collections) || []), true), [
49
- (0, Forms_1.generateFormCollection)(formConfig),
50
- (0, FormSubmissions_1.generateSubmissionCollection)(formConfig),
51
- ], false) });
59
+ collections: [
60
+ ...config?.collections || [],
61
+ (0, _Forms.generateFormCollection)(formConfig),
62
+ (0, _FormSubmissions.generateSubmissionCollection)(formConfig)
63
+ ]
64
+ };
52
65
  };
53
- };
54
- exports.default = FormBuilder;
55
- //# sourceMappingURL=index.js.map
66
+ const _default = FormBuilder;
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbkNvbmZpZyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGdlbmVyYXRlU3VibWlzc2lvbkNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb25zL0Zvcm1TdWJtaXNzaW9ucydcbmltcG9ydCB7IGdlbmVyYXRlRm9ybUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb25zL0Zvcm1zJ1xuXG5leHBvcnQgeyBmaWVsZHMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL0Zvcm1zL2ZpZWxkcydcbmV4cG9ydCB7IGdldFBheW1lbnRUb3RhbCB9IGZyb20gJy4vdXRpbGl0aWVzL2dldFBheW1lbnRUb3RhbCdcblxuY29uc3QgRm9ybUJ1aWxkZXIgPVxuICAoaW5jb21pbmdGb3JtQ29uZmlnOiBQbHVnaW5Db25maWcpID0+XG4gIChjb25maWc6IENvbmZpZyk6IENvbmZpZyA9PiB7XG4gICAgY29uc3QgZm9ybUNvbmZpZzogUGx1Z2luQ29uZmlnID0ge1xuICAgICAgLi4uaW5jb21pbmdGb3JtQ29uZmlnLFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIGNoZWNrYm94OiB0cnVlLFxuICAgICAgICBjb3VudHJ5OiB0cnVlLFxuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgbWVzc2FnZTogdHJ1ZSxcbiAgICAgICAgbnVtYmVyOiB0cnVlLFxuICAgICAgICBwYXltZW50OiBmYWxzZSxcbiAgICAgICAgc2VsZWN0OiB0cnVlLFxuICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgdGV4dDogdHJ1ZSxcbiAgICAgICAgdGV4dGFyZWE6IHRydWUsXG4gICAgICAgIC4uLmluY29taW5nRm9ybUNvbmZpZy5maWVsZHMsXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICAvLyBhZG1pbjoge1xuICAgICAgLy8gICAuLi5jb25maWcuYWRtaW4sXG4gICAgICAvLyAgIHdlYnBhY2s6ICh3ZWJwYWNrQ29uZmlnKSA9PiAoe1xuICAgICAgLy8gICAgIC4uLndlYnBhY2tDb25maWcsXG4gICAgICAvLyAgICAgcmVzb2x2ZToge1xuICAgICAgLy8gICAgICAgLi4ud2VicGFja0NvbmZpZy5yZXNvbHZlLFxuICAgICAgLy8gICAgICAgYWxpYXM6IHtcbiAgICAgIC8vICAgICAgICAgLi4ud2VicGFja0NvbmZpZy5yZXNvbHZlLmFsaWFzLFxuICAgICAgLy8gICAgICAgICBbcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2NvbGxlY3Rpb25zL0Zvcm1TdWJtaXNzaW9ucy9ob29rcy9zZW5kRW1haWwudHMnKV06IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdtb2Nrcy9zZXJ2ZXJNb2R1bGUuanMnKSxcbiAgICAgIC8vICAgICAgICAgW3BhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdjb2xsZWN0aW9ucy9Gb3JtU3VibWlzc2lvbnMvaG9va3MvY3JlYXRlQ2hhcmdlLnRzJyldOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnbW9ja3Mvc2VydmVyTW9kdWxlLmpzJyksXG4gICAgICAvLyAgICAgICB9LFxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgIH0pXG4gICAgICAvLyB9LFxuICAgICAgY29sbGVjdGlvbnM6IFtcbiAgICAgICAgLi4uKGNvbmZpZz8uY29sbGVjdGlvbnMgfHwgW10pLFxuICAgICAgICBnZW5lcmF0ZUZvcm1Db2xsZWN0aW9uKGZvcm1Db25maWcpLFxuICAgICAgICBnZW5lcmF0ZVN1Ym1pc3Npb25Db2xsZWN0aW9uKGZvcm1Db25maWcpLFxuICAgICAgXSxcbiAgICB9XG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgRm9ybUJ1aWxkZXJcbiJdLCJuYW1lcyI6WyJmaWVsZHMiLCJnZXRQYXltZW50VG90YWwiLCJGb3JtQnVpbGRlciIsImluY29taW5nRm9ybUNvbmZpZyIsImNvbmZpZyIsImZvcm1Db25maWciLCJjaGVja2JveCIsImNvdW50cnkiLCJlbWFpbCIsIm1lc3NhZ2UiLCJudW1iZXIiLCJwYXltZW50Iiwic2VsZWN0Iiwic3RhdGUiLCJ0ZXh0IiwidGV4dGFyZWEiLCJjb2xsZWN0aW9ucyIsImdlbmVyYXRlRm9ybUNvbGxlY3Rpb24iLCJnZW5lcmF0ZVN1Ym1pc3Npb25Db2xsZWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQU9TQSxNQUFNO2VBQU5BLGNBQU07O0lBQ05DLGVBQWU7ZUFBZkEsZ0NBQWU7O0lBOEN4QixPQUEwQjtlQUExQjs7O2lDQWxENkM7dUJBQ047d0JBRWhCO2lDQUNTO0FBRWhDLE1BQU1DLGNBQ0osQ0FBQ0MscUJBQ0QsQ0FBQ0M7UUFDQyxNQUFNQyxhQUEyQjtZQUMvQixHQUFHRixrQkFBa0I7WUFDckJILFFBQVE7Z0JBQ05NLFVBQVU7Z0JBQ1ZDLFNBQVM7Z0JBQ1RDLE9BQU87Z0JBQ1BDLFNBQVM7Z0JBQ1RDLFFBQVE7Z0JBQ1JDLFNBQVM7Z0JBQ1RDLFFBQVE7Z0JBQ1JDLE9BQU87Z0JBQ1BDLE1BQU07Z0JBQ05DLFVBQVU7Z0JBQ1YsR0FBR1osbUJBQW1CSCxNQUFNO1lBQzlCO1FBQ0Y7UUFFQSxPQUFPO1lBQ0wsR0FBR0ksTUFBTTtZQUNULFdBQVc7WUFDWCxxQkFBcUI7WUFDckIsbUNBQW1DO1lBQ25DLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsa0NBQWtDO1lBQ2xDLGlCQUFpQjtZQUNqQiwwQ0FBMEM7WUFDMUMseUlBQXlJO1lBQ3pJLDRJQUE0STtZQUM1SSxXQUFXO1lBQ1gsU0FBUztZQUNULE9BQU87WUFDUCxLQUFLO1lBQ0xZLGFBQWE7bUJBQ1BaLFFBQVFZLGVBQWUsRUFBRTtnQkFDN0JDLElBQUFBLDZCQUFzQixFQUFDWjtnQkFDdkJhLElBQUFBLDZDQUE0QixFQUFDYjthQUM5QjtRQUNIO0lBQ0Y7TUFFRixXQUFlSCJ9