@payloadcms/plugin-form-builder 3.84.0 → 4.0.0-internal.38b7f1d
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/sendEmail.d.ts.map +1 -1
- package/dist/collections/FormSubmissions/hooks/sendEmail.js +1 -3
- package/dist/collections/FormSubmissions/hooks/sendEmail.js.map +1 -1
- package/package.json +5 -5
- package/dist/utilities/slate/serializeSlate.d.ts +0 -12
- package/dist/utilities/slate/serializeSlate.d.ts.map +0 -1
- package/dist/utilities/slate/serializeSlate.js +0 -128
- package/dist/utilities/slate/serializeSlate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,EAAyB,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,EAAyB,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAKvF,KAAK,iBAAiB,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjE,eAAO,MAAM,SAAS,0BACG,iBAAiB,cAC5B,uBAAuB,kBA8FpC,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { serializeLexical } from '../../../utilities/lexical/serializeLexical.js';
|
|
2
2
|
import { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js';
|
|
3
|
-
import { serializeSlate } from '../../../utilities/slate/serializeSlate.js';
|
|
4
3
|
export const sendEmail = async (afterChangeParameters, formConfig)=>{
|
|
5
4
|
if (afterChangeParameters.operation === 'create') {
|
|
6
5
|
const { data, doc: { id: formSubmissionID }, req: { locale, payload }, req } = afterChangeParameters;
|
|
@@ -30,8 +29,7 @@ export const sendEmail = async (afterChangeParameters, formConfig)=>{
|
|
|
30
29
|
const bcc = emailBCC ? replaceDoubleCurlys(emailBCC, submissionData) : '';
|
|
31
30
|
const from = replaceDoubleCurlys(emailFrom, submissionData);
|
|
32
31
|
const replyTo = replaceDoubleCurlys(emailReplyTo || emailFrom, submissionData);
|
|
33
|
-
const
|
|
34
|
-
const serializedMessage = isLexical ? await serializeLexical(message, submissionData) : serializeSlate(message, submissionData);
|
|
32
|
+
const serializedMessage = await serializeLexical(message, submissionData);
|
|
35
33
|
return {
|
|
36
34
|
bcc,
|
|
37
35
|
cc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\n\nimport type { Email, FormattedEmail, FormBuilderPluginConfig } from '../../../types.js'\n\nimport { serializeLexical } from '../../../utilities/lexical/serializeLexical.js'\nimport { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js'\
|
|
1
|
+
{"version":3,"sources":["../../../../src/collections/FormSubmissions/hooks/sendEmail.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\n\nimport type { Email, FormattedEmail, FormBuilderPluginConfig } from '../../../types.js'\n\nimport { serializeLexical } from '../../../utilities/lexical/serializeLexical.js'\nimport { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js'\n\ntype AfterChangeParams = Parameters<CollectionAfterChangeHook>[0]\n\nexport const sendEmail = async (\n afterChangeParameters: AfterChangeParams,\n formConfig: FormBuilderPluginConfig,\n) => {\n if (afterChangeParameters.operation === 'create') {\n const {\n data,\n doc: { id: formSubmissionID },\n req: { locale, payload },\n req,\n } = afterChangeParameters\n\n const { form: formID, submissionData: submissionDataFromProps } = data || {}\n const { beforeEmail, defaultToEmail, formOverrides } = formConfig || {}\n\n try {\n const form = await payload.findByID({\n id: formID,\n collection: formOverrides?.slug || 'forms',\n locale,\n req,\n })\n\n const emails = form.emails as Email[]\n\n const submissionData = [\n ...submissionDataFromProps,\n {\n field: 'formSubmissionID',\n value: String(formSubmissionID),\n },\n ]\n\n if (emails && emails.length) {\n const formattedEmails: FormattedEmail[] = await Promise.all(\n emails.map(async (email: Email): Promise<FormattedEmail> => {\n const {\n bcc: emailBCC,\n cc: emailCC,\n emailFrom,\n emailTo: emailToFromConfig,\n message,\n replyTo: emailReplyTo,\n subject,\n } = email\n\n const emailTo = emailToFromConfig || defaultToEmail || payload.email.defaultFromAddress\n\n const to = replaceDoubleCurlys(emailTo, submissionData)\n const cc = emailCC ? replaceDoubleCurlys(emailCC, submissionData) : ''\n const bcc = emailBCC ? replaceDoubleCurlys(emailBCC, submissionData) : ''\n const from = replaceDoubleCurlys(emailFrom, submissionData)\n const replyTo = replaceDoubleCurlys(emailReplyTo || emailFrom, submissionData)\n\n const serializedMessage = await serializeLexical(message, submissionData)\n\n return {\n bcc,\n cc,\n from,\n html: `<div>${serializedMessage}</div>`,\n replyTo,\n subject: replaceDoubleCurlys(subject, submissionData),\n to,\n }\n }),\n )\n\n let emailsToSend = formattedEmails\n\n if (typeof beforeEmail === 'function') {\n emailsToSend = await beforeEmail(formattedEmails, afterChangeParameters)\n }\n\n await Promise.all(\n emailsToSend.map(async (email) => {\n const { to } = email\n try {\n const emailPromise = await payload.sendEmail(email)\n return emailPromise\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error while sending email to address: ${to}. Email not sent.`,\n })\n }\n }),\n )\n } else {\n payload.logger.info({ msg: 'No emails to send.' })\n }\n } catch (err: unknown) {\n const msg = `Error while sending one or more emails in form submission id: ${formSubmissionID}.`\n payload.logger.error({ err, msg })\n }\n }\n}\n"],"names":["serializeLexical","replaceDoubleCurlys","sendEmail","afterChangeParameters","formConfig","operation","data","doc","id","formSubmissionID","req","locale","payload","form","formID","submissionData","submissionDataFromProps","beforeEmail","defaultToEmail","formOverrides","findByID","collection","slug","emails","field","value","String","length","formattedEmails","Promise","all","map","email","bcc","emailBCC","cc","emailCC","emailFrom","emailTo","emailToFromConfig","message","replyTo","emailReplyTo","subject","defaultFromAddress","to","from","serializedMessage","html","emailsToSend","emailPromise","err","logger","error","msg","info"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ,iDAAgD;AACjF,SAASC,mBAAmB,QAAQ,4CAA2C;AAI/E,OAAO,MAAMC,YAAY,OACvBC,uBACAC;IAEA,IAAID,sBAAsBE,SAAS,KAAK,UAAU;QAChD,MAAM,EACJC,IAAI,EACJC,KAAK,EAAEC,IAAIC,gBAAgB,EAAE,EAC7BC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAE,EACxBF,GAAG,EACJ,GAAGP;QAEJ,MAAM,EAAEU,MAAMC,MAAM,EAAEC,gBAAgBC,uBAAuB,EAAE,GAAGV,QAAQ,CAAC;QAC3E,MAAM,EAAEW,WAAW,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGf,cAAc,CAAC;QAEtE,IAAI;YACF,MAAMS,OAAO,MAAMD,QAAQQ,QAAQ,CAAC;gBAClCZ,IAAIM;gBACJO,YAAYF,eAAeG,QAAQ;gBACnCX;gBACAD;YACF;YAEA,MAAMa,SAASV,KAAKU,MAAM;YAE1B,MAAMR,iBAAiB;mBAClBC;gBACH;oBACEQ,OAAO;oBACPC,OAAOC,OAAOjB;gBAChB;aACD;YAED,IAAIc,UAAUA,OAAOI,MAAM,EAAE;gBAC3B,MAAMC,kBAAoC,MAAMC,QAAQC,GAAG,CACzDP,OAAOQ,GAAG,CAAC,OAAOC;oBAChB,MAAM,EACJC,KAAKC,QAAQ,EACbC,IAAIC,OAAO,EACXC,SAAS,EACTC,SAASC,iBAAiB,EAC1BC,OAAO,EACPC,SAASC,YAAY,EACrBC,OAAO,EACR,GAAGX;oBAEJ,MAAMM,UAAUC,qBAAqBrB,kBAAkBN,QAAQoB,KAAK,CAACY,kBAAkB;oBAEvF,MAAMC,KAAK5C,oBAAoBqC,SAASvB;oBACxC,MAAMoB,KAAKC,UAAUnC,oBAAoBmC,SAASrB,kBAAkB;oBACpE,MAAMkB,MAAMC,WAAWjC,oBAAoBiC,UAAUnB,kBAAkB;oBACvE,MAAM+B,OAAO7C,oBAAoBoC,WAAWtB;oBAC5C,MAAM0B,UAAUxC,oBAAoByC,gBAAgBL,WAAWtB;oBAE/D,MAAMgC,oBAAoB,MAAM/C,iBAAiBwC,SAASzB;oBAE1D,OAAO;wBACLkB;wBACAE;wBACAW;wBACAE,MAAM,CAAC,KAAK,EAAED,kBAAkB,MAAM,CAAC;wBACvCN;wBACAE,SAAS1C,oBAAoB0C,SAAS5B;wBACtC8B;oBACF;gBACF;gBAGF,IAAII,eAAerB;gBAEnB,IAAI,OAAOX,gBAAgB,YAAY;oBACrCgC,eAAe,MAAMhC,YAAYW,iBAAiBzB;gBACpD;gBAEA,MAAM0B,QAAQC,GAAG,CACfmB,aAAalB,GAAG,CAAC,OAAOC;oBACtB,MAAM,EAAEa,EAAE,EAAE,GAAGb;oBACf,IAAI;wBACF,MAAMkB,eAAe,MAAMtC,QAAQV,SAAS,CAAC8B;wBAC7C,OAAOkB;oBACT,EAAE,OAAOC,KAAc;wBACrBvC,QAAQwC,MAAM,CAACC,KAAK,CAAC;4BACnBF;4BACAG,KAAK,CAAC,sCAAsC,EAAET,GAAG,iBAAiB,CAAC;wBACrE;oBACF;gBACF;YAEJ,OAAO;gBACLjC,QAAQwC,MAAM,CAACG,IAAI,CAAC;oBAAED,KAAK;gBAAqB;YAClD;QACF,EAAE,OAAOH,KAAc;YACrB,MAAMG,MAAM,CAAC,8DAA8D,EAAE7C,iBAAiB,CAAC,CAAC;YAChGG,QAAQwC,MAAM,CAACC,KAAK,CAAC;gBAAEF;gBAAKG;YAAI;QAClC;IACF;AACF,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-form-builder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-internal.38b7f1d",
|
|
4
4
|
"description": "Form builder plugin for Payload CMS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"payload",
|
|
@@ -53,21 +53,21 @@
|
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"escape-html": "^1.0.3",
|
|
56
|
-
"@payloadcms/ui": "
|
|
56
|
+
"@payloadcms/ui": "4.0.0-internal.38b7f1d"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/escape-html": "^1.0.4",
|
|
60
|
-
"@types/react": "19.2.
|
|
60
|
+
"@types/react": "19.2.14",
|
|
61
61
|
"@types/react-dom": "19.2.3",
|
|
62
62
|
"copyfiles": "^2.4.1",
|
|
63
63
|
"cross-env": "^7.0.3",
|
|
64
64
|
"@payloadcms/eslint-config": "3.28.0",
|
|
65
|
-
"payload": "
|
|
65
|
+
"payload": "4.0.0-internal.38b7f1d"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"react": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
69
69
|
"react-dom": "^19.0.1 || ^19.1.2 || ^19.2.1",
|
|
70
|
-
"payload": "
|
|
70
|
+
"payload": "4.0.0-internal.38b7f1d"
|
|
71
71
|
},
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
interface Node {
|
|
2
|
-
bold?: boolean;
|
|
3
|
-
children?: Node[];
|
|
4
|
-
code?: boolean;
|
|
5
|
-
italic?: boolean;
|
|
6
|
-
text?: string;
|
|
7
|
-
type?: string;
|
|
8
|
-
url?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const serializeSlate: (children?: Node[], submissionData?: any) => string | undefined;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=serializeSlate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializeSlate.d.ts","sourceRoot":"","sources":["../../../src/utilities/slate/serializeSlate.ts"],"names":[],"mappings":"AAKA,UAAU,IAAI;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAMD,eAAO,MAAM,cAAc,cAAe,IAAI,EAAE,mBAAmB,GAAG,KAAG,MAAM,GAAG,SAiIrE,CAAA"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import escapeHTML from 'escape-html';
|
|
2
|
-
import { sanitizeUrl } from 'payload/shared';
|
|
3
|
-
import { replaceDoubleCurlys } from '../replaceDoubleCurlys.js';
|
|
4
|
-
const isTextNode = (node)=>{
|
|
5
|
-
return 'text' in node;
|
|
6
|
-
};
|
|
7
|
-
export const serializeSlate = (children, submissionData)=>children?.map((node)=>{
|
|
8
|
-
if (isTextNode(node)) {
|
|
9
|
-
let text = escapeHTML(node.text);
|
|
10
|
-
if (submissionData) {
|
|
11
|
-
text = replaceDoubleCurlys(text, submissionData);
|
|
12
|
-
}
|
|
13
|
-
text = `<span>${text}</span>`;
|
|
14
|
-
if (node.bold) {
|
|
15
|
-
text = `
|
|
16
|
-
<strong>
|
|
17
|
-
${text}
|
|
18
|
-
</strong>
|
|
19
|
-
`;
|
|
20
|
-
}
|
|
21
|
-
if (node.code) {
|
|
22
|
-
text = `
|
|
23
|
-
<code>
|
|
24
|
-
${text}
|
|
25
|
-
</code>
|
|
26
|
-
`;
|
|
27
|
-
}
|
|
28
|
-
if (node.italic) {
|
|
29
|
-
text = `
|
|
30
|
-
<em >
|
|
31
|
-
${text}
|
|
32
|
-
</em>
|
|
33
|
-
`;
|
|
34
|
-
}
|
|
35
|
-
return text;
|
|
36
|
-
}
|
|
37
|
-
if (!node) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
switch(node.type){
|
|
41
|
-
case 'h1':
|
|
42
|
-
return `
|
|
43
|
-
<h1>
|
|
44
|
-
${serializeSlate(node.children, submissionData)}
|
|
45
|
-
</h1>
|
|
46
|
-
`;
|
|
47
|
-
case 'h2':
|
|
48
|
-
return `
|
|
49
|
-
<h2>
|
|
50
|
-
${serializeSlate(node.children, submissionData)}
|
|
51
|
-
</h2>
|
|
52
|
-
`;
|
|
53
|
-
case 'h3':
|
|
54
|
-
return `
|
|
55
|
-
<h3>
|
|
56
|
-
${serializeSlate(node.children, submissionData)}
|
|
57
|
-
</h3>
|
|
58
|
-
`;
|
|
59
|
-
case 'h4':
|
|
60
|
-
return `
|
|
61
|
-
<h4>
|
|
62
|
-
${serializeSlate(node.children, submissionData)}
|
|
63
|
-
</h4>
|
|
64
|
-
`;
|
|
65
|
-
case 'h5':
|
|
66
|
-
return `
|
|
67
|
-
<h5>
|
|
68
|
-
${serializeSlate(node.children, submissionData)}
|
|
69
|
-
</h5>
|
|
70
|
-
`;
|
|
71
|
-
case 'h6':
|
|
72
|
-
return `
|
|
73
|
-
<h6>
|
|
74
|
-
${serializeSlate(node.children, submissionData)}
|
|
75
|
-
</h6>
|
|
76
|
-
`;
|
|
77
|
-
case 'indent':
|
|
78
|
-
return `
|
|
79
|
-
<p style="padding-left: 20px">
|
|
80
|
-
${serializeSlate(node.children, submissionData)}
|
|
81
|
-
</p>
|
|
82
|
-
`;
|
|
83
|
-
case 'li':
|
|
84
|
-
return `
|
|
85
|
-
<li>
|
|
86
|
-
${serializeSlate(node.children, submissionData)}
|
|
87
|
-
</li>
|
|
88
|
-
`;
|
|
89
|
-
case 'link':
|
|
90
|
-
{
|
|
91
|
-
let href = escapeHTML(sanitizeUrl(node.url ?? ''));
|
|
92
|
-
if (submissionData) {
|
|
93
|
-
href = replaceDoubleCurlys(href, submissionData);
|
|
94
|
-
}
|
|
95
|
-
return `
|
|
96
|
-
<a href="${href}">
|
|
97
|
-
${serializeSlate(node.children, submissionData)}
|
|
98
|
-
</a>
|
|
99
|
-
`;
|
|
100
|
-
}
|
|
101
|
-
case 'ol':
|
|
102
|
-
return `
|
|
103
|
-
<ol>
|
|
104
|
-
${serializeSlate(node.children, submissionData)}
|
|
105
|
-
</ol>
|
|
106
|
-
`;
|
|
107
|
-
case 'quote':
|
|
108
|
-
return `
|
|
109
|
-
<blockquote>
|
|
110
|
-
${serializeSlate(node.children, submissionData)}
|
|
111
|
-
</blockquote>
|
|
112
|
-
`;
|
|
113
|
-
case 'ul':
|
|
114
|
-
return `
|
|
115
|
-
<ul>
|
|
116
|
-
${serializeSlate(node.children, submissionData)}
|
|
117
|
-
</ul>
|
|
118
|
-
`;
|
|
119
|
-
default:
|
|
120
|
-
return `
|
|
121
|
-
<p>
|
|
122
|
-
${serializeSlate(node.children, submissionData)}
|
|
123
|
-
</p>
|
|
124
|
-
`;
|
|
125
|
-
}
|
|
126
|
-
}).filter(Boolean).join('');
|
|
127
|
-
|
|
128
|
-
//# sourceMappingURL=serializeSlate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/slate/serializeSlate.ts"],"sourcesContent":["import escapeHTML from 'escape-html'\nimport { sanitizeUrl } from 'payload/shared'\n\nimport { replaceDoubleCurlys } from '../replaceDoubleCurlys.js'\n\ninterface Node {\n bold?: boolean\n children?: Node[]\n code?: boolean\n italic?: boolean\n text?: string\n type?: string\n url?: string\n}\n\nconst isTextNode = (node: Node): node is { text: string } & Node => {\n return 'text' in node\n}\n\nexport const serializeSlate = (children?: Node[], submissionData?: any): string | undefined =>\n children\n ?.map((node: Node) => {\n if (isTextNode(node)) {\n let text = escapeHTML(node.text)\n if (submissionData) {\n text = replaceDoubleCurlys(text, submissionData)\n }\n text = `<span>${text}</span>`\n\n if (node.bold) {\n text = `\n <strong>\n ${text}\n </strong>\n `\n }\n\n if (node.code) {\n text = `\n <code>\n ${text}\n </code>\n `\n }\n\n if (node.italic) {\n text = `\n <em >\n ${text}\n </em>\n `\n }\n\n return text\n }\n\n if (!node) {\n return null\n }\n\n switch (node.type) {\n case 'h1':\n return `\n <h1>\n ${serializeSlate(node.children, submissionData)}\n </h1>\n `\n case 'h2':\n return `\n <h2>\n ${serializeSlate(node.children, submissionData)}\n </h2>\n `\n case 'h3':\n return `\n <h3>\n ${serializeSlate(node.children, submissionData)}\n </h3>\n `\n case 'h4':\n return `\n <h4>\n ${serializeSlate(node.children, submissionData)}\n </h4>\n `\n case 'h5':\n return `\n <h5>\n ${serializeSlate(node.children, submissionData)}\n </h5>\n `\n case 'h6':\n return `\n <h6>\n ${serializeSlate(node.children, submissionData)}\n </h6>\n `\n case 'indent':\n return `\n <p style=\"padding-left: 20px\">\n ${serializeSlate(node.children, submissionData)}\n </p>\n `\n case 'li':\n return `\n <li>\n ${serializeSlate(node.children, submissionData)}\n </li>\n `\n case 'link': {\n let href = escapeHTML(sanitizeUrl(node.url ?? ''))\n if (submissionData) {\n href = replaceDoubleCurlys(href, submissionData)\n }\n return `\n <a href=\"${href}\">\n ${serializeSlate(node.children, submissionData)}\n </a>\n `\n }\n case 'ol':\n return `\n <ol>\n ${serializeSlate(node.children, submissionData)}\n </ol>\n `\n case 'quote':\n return `\n <blockquote>\n ${serializeSlate(node.children, submissionData)}\n </blockquote>\n `\n case 'ul':\n return `\n <ul>\n ${serializeSlate(node.children, submissionData)}\n </ul>\n `\n\n default:\n return `\n <p>\n ${serializeSlate(node.children, submissionData)}\n </p>\n `\n }\n })\n .filter(Boolean)\n .join('')\n"],"names":["escapeHTML","sanitizeUrl","replaceDoubleCurlys","isTextNode","node","serializeSlate","children","submissionData","map","text","bold","code","italic","type","href","url","filter","Boolean","join"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,WAAW,QAAQ,iBAAgB;AAE5C,SAASC,mBAAmB,QAAQ,4BAA2B;AAY/D,MAAMC,aAAa,CAACC;IAClB,OAAO,UAAUA;AACnB;AAEA,OAAO,MAAMC,iBAAiB,CAACC,UAAmBC,iBAChDD,UACIE,IAAI,CAACJ;QACL,IAAID,WAAWC,OAAO;YACpB,IAAIK,OAAOT,WAAWI,KAAKK,IAAI;YAC/B,IAAIF,gBAAgB;gBAClBE,OAAOP,oBAAoBO,MAAMF;YACnC;YACAE,OAAO,CAAC,MAAM,EAAEA,KAAK,OAAO,CAAC;YAE7B,IAAIL,KAAKM,IAAI,EAAE;gBACbD,OAAO,CAAC;;UAER,EAAEA,KAAK;;MAEX,CAAC;YACC;YAEA,IAAIL,KAAKO,IAAI,EAAE;gBACbF,OAAO,CAAC;;UAER,EAAEA,KAAK;;MAEX,CAAC;YACC;YAEA,IAAIL,KAAKQ,MAAM,EAAE;gBACfH,OAAO,CAAC;;UAER,EAAEA,KAAK;;MAEX,CAAC;YACC;YAEA,OAAOA;QACT;QAEA,IAAI,CAACL,MAAM;YACT,OAAO;QACT;QAEA,OAAQA,KAAKS,IAAI;YACf,KAAK;gBACH,OAAO,CAAC;;UAER,EAAER,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;YAEN,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;QAEpD,CAAC;YACD,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBAAQ;oBACX,IAAIO,OAAOd,WAAWC,YAAYG,KAAKW,GAAG,IAAI;oBAC9C,IAAIR,gBAAgB;wBAClBO,OAAOZ,oBAAoBY,MAAMP;oBACnC;oBACA,OAAO,CAAC;mBACC,EAAEO,KAAK;UAChB,EAAET,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;gBACC;YACA,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YACC,KAAK;gBACH,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;YAEC;gBACE,OAAO,CAAC;;UAER,EAAEF,eAAeD,KAAKE,QAAQ,EAAEC,gBAAgB;;MAEpD,CAAC;QACD;IACF,GACCS,OAAOC,SACPC,KAAK,IAAG"}
|