payload-richtext-tiptap 0.0.80 → 0.0.81
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/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js +3 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js +6 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js +7 -7
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js +4 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js +4 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js +11 -8
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js +4 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js +5 -2
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js +4 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.d.ts +3 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js +15 -3
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Node, mergeAttributes } from
|
|
1
|
+
import { Node, mergeAttributes } from "@tiptap/core";
|
|
2
2
|
export const LinkedinServerside = Node.create({
|
|
3
|
-
name:
|
|
4
|
-
group:
|
|
5
|
-
content:
|
|
3
|
+
name: "linkedin",
|
|
4
|
+
group: "block",
|
|
5
|
+
content: "inline*",
|
|
6
6
|
parseHTML () {
|
|
7
7
|
return [
|
|
8
8
|
{
|
|
@@ -15,17 +15,20 @@ export const LinkedinServerside = Node.create({
|
|
|
15
15
|
url: {
|
|
16
16
|
default: null
|
|
17
17
|
},
|
|
18
|
-
|
|
18
|
+
"data-id": {
|
|
19
19
|
default: null
|
|
20
|
+
},
|
|
21
|
+
class: {
|
|
22
|
+
default: "inline-tiktok"
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
},
|
|
23
26
|
renderHTML ({ HTMLAttributes }) {
|
|
24
27
|
return [
|
|
25
|
-
|
|
28
|
+
"a",
|
|
26
29
|
mergeAttributes(HTMLAttributes, {
|
|
27
|
-
|
|
28
|
-
class:
|
|
30
|
+
"data-type": "linkedin",
|
|
31
|
+
class: `react-renderer node-linkedin ${HTMLAttributes.class}`
|
|
29
32
|
}),
|
|
30
33
|
0
|
|
31
34
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const LinkedinServerside = Node.create({\n name: \"linkedin\",\n\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"linkedin\"]',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n class: { default: \"inline-tiktok\" },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"linkedin\",\n class: `react-renderer node-linkedin ${HTMLAttributes.class}`,\n }),\n 0,\n ];\n },\n});\n"],"names":["Node","mergeAttributes","LinkedinServerside","create","name","group","content","parseHTML","tag","addAttributes","url","default","class","renderHTML","HTMLAttributes"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAErD,OAAO,MAAMC,qBAAqBF,KAAKG,MAAM,CAAC;IAC5CC,MAAM;IAENC,OAAO;IACPC,SAAS;IAETC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrB,WAAW;gBAAEA,SAAS;YAAK;YAC3BC,OAAO;gBAAED,SAAS;YAAgB;QACpC;IACF;IACAE,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAb,gBAAgBa,gBAAgB;gBAC9B,aAAa;gBACbF,OAAO,CAAC,6BAA6B,EAAEE,eAAeF,KAAK,EAAE;YAC/D;YACA;SACD;IACH;AACF,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiktokServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TiktokServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"TiktokServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TiktokServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,gBAAgB,gBA8B3B,CAAC"}
|
|
@@ -17,6 +17,9 @@ export const TiktokServerside = Node.create({
|
|
|
17
17
|
},
|
|
18
18
|
"data-id": {
|
|
19
19
|
default: null
|
|
20
|
+
},
|
|
21
|
+
class: {
|
|
22
|
+
default: "inline-tiktok"
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
},
|
|
@@ -25,7 +28,7 @@ export const TiktokServerside = Node.create({
|
|
|
25
28
|
"a",
|
|
26
29
|
mergeAttributes(HTMLAttributes, {
|
|
27
30
|
"data-type": "tiktok",
|
|
28
|
-
class:
|
|
31
|
+
class: `react-renderer node-tiktok ${HTMLAttributes.class}`
|
|
29
32
|
}),
|
|
30
33
|
0
|
|
31
34
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TiktokServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const TiktokServerside = Node.create({\n name: \"tiktok\",\n\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"tiktok\"]',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"tiktok\",\n class:
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TiktokServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const TiktokServerside = Node.create({\n name: \"tiktok\",\n\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"tiktok\"]',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n class: { default: \"inline-tiktok\" },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"tiktok\",\n class: `react-renderer node-tiktok ${HTMLAttributes.class}`,\n }),\n 0,\n ];\n },\n});\n"],"names":["Node","mergeAttributes","TiktokServerside","create","name","group","content","parseHTML","tag","addAttributes","url","default","class","renderHTML","HTMLAttributes"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAErD,OAAO,MAAMC,mBAAmBF,KAAKG,MAAM,CAAC;IAC1CC,MAAM;IAENC,OAAO;IACPC,SAAS;IAETC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrB,WAAW;gBAAEA,SAAS;YAAK;YAC3BC,OAAO;gBAAED,SAAS;YAAgB;QACpC;IACF;IACAE,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAb,gBAAgBa,gBAAgB;gBAC9B,aAAa;gBACbF,OAAO,CAAC,2BAA2B,EAAEE,eAAeF,KAAK,EAAE;YAC7D;YACA;SACD;IACH;AACF,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwitterBlockServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"TwitterBlockServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,sBAAsB,gBA6BjC,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const TwitterBlockServerside = Node.create({
|
|
|
6
6
|
parseHTML () {
|
|
7
7
|
return [
|
|
8
8
|
{
|
|
9
|
-
tag: 'a[data-type="twitter"
|
|
9
|
+
tag: 'a[data-type="twitter"'
|
|
10
10
|
}
|
|
11
11
|
];
|
|
12
12
|
},
|
|
@@ -17,6 +17,9 @@ export const TwitterBlockServerside = Node.create({
|
|
|
17
17
|
},
|
|
18
18
|
"data-id": {
|
|
19
19
|
default: null
|
|
20
|
+
},
|
|
21
|
+
class: {
|
|
22
|
+
default: "inline-twitter"
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
},
|
|
@@ -25,7 +28,7 @@ export const TwitterBlockServerside = Node.create({
|
|
|
25
28
|
"a",
|
|
26
29
|
mergeAttributes(HTMLAttributes, {
|
|
27
30
|
"data-type": "twitter",
|
|
28
|
-
class:
|
|
31
|
+
class: `react-renderer node-twitter ${HTMLAttributes.class}`
|
|
29
32
|
}),
|
|
30
33
|
0
|
|
31
34
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const TwitterBlockServerside = Node.create({\n name: \"twitter\",\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"twitter\"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const TwitterBlockServerside = Node.create({\n name: \"twitter\",\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"twitter\"',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n class: { default: \"inline-twitter\" },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"twitter\",\n class: `react-renderer node-twitter ${HTMLAttributes.class}`,\n }),\n 0,\n ];\n },\n});\n"],"names":["Node","mergeAttributes","TwitterBlockServerside","create","name","group","content","parseHTML","tag","addAttributes","url","default","class","renderHTML","HTMLAttributes"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAErD,OAAO,MAAMC,yBAAyBF,KAAKG,MAAM,CAAC;IAChDC,MAAM;IACNC,OAAO;IACPC,SAAS;IAETC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrB,WAAW;gBAAEA,SAAS;YAAK;YAC3BC,OAAO;gBAAED,SAAS;YAAiB;QACrC;IACF;IACAE,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAb,gBAAgBa,gBAAgB;gBAC9B,aAAa;gBACbF,OAAO,CAAC,4BAA4B,EAAEE,eAAeF,KAAK,EAAE;YAC9D;YACA;SACD;IACH;AACF,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YouTubeServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"YouTubeServerside.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,eAAO,MAAM,iBAAiB,gBA8B5B,CAAC"}
|
|
@@ -17,6 +17,9 @@ export const YouTubeServerside = Node.create({
|
|
|
17
17
|
},
|
|
18
18
|
"data-id": {
|
|
19
19
|
default: null
|
|
20
|
+
},
|
|
21
|
+
class: {
|
|
22
|
+
default: "inline-youtube"
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
},
|
|
@@ -25,7 +28,7 @@ export const YouTubeServerside = Node.create({
|
|
|
25
28
|
"a",
|
|
26
29
|
mergeAttributes(HTMLAttributes, {
|
|
27
30
|
"data-type": "youtube",
|
|
28
|
-
class:
|
|
31
|
+
class: `react-renderer node-youtube ${HTMLAttributes.class}`
|
|
29
32
|
}),
|
|
30
33
|
0
|
|
31
34
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const YouTubeServerside = Node.create({\n name: \"youtube\",\n\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"youtube\"]',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"youtube\",\n class:
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.ts"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\n\nexport const YouTubeServerside = Node.create({\n name: \"youtube\",\n\n group: \"block\",\n content: \"inline*\",\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"youtube\"]',\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n \"data-id\": { default: null },\n class: { default: \"inline-youtube\" },\n };\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"youtube\",\n class: `react-renderer node-youtube ${HTMLAttributes.class}`,\n }),\n 0,\n ];\n },\n});\n"],"names":["Node","mergeAttributes","YouTubeServerside","create","name","group","content","parseHTML","tag","addAttributes","url","default","class","renderHTML","HTMLAttributes"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAErD,OAAO,MAAMC,oBAAoBF,KAAKG,MAAM,CAAC;IAC3CC,MAAM;IAENC,OAAO;IACPC,SAAS;IAETC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrB,WAAW;gBAAEA,SAAS;YAAK;YAC3BC,OAAO;gBAAED,SAAS;YAAiB;QACrC;IACF;IACAE,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAb,gBAAgBa,gBAAgB;gBAC9B,aAAa;gBACbF,OAAO,CAAC,4BAA4B,EAAEE,eAAeF,KAAK,EAAE;YAC9D;YACA;SACD;IACH;AACF,GAAG"}
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
export type SocialMediaEditorPanelProps = {
|
|
3
3
|
initialSrc?: string;
|
|
4
4
|
initialOpenInNewTab?: boolean;
|
|
5
|
-
onSetLink: (src: string) => void;
|
|
5
|
+
onSetLink: (src: string, className?: boolean) => void;
|
|
6
6
|
placeholderText: string;
|
|
7
7
|
buttonText: string;
|
|
8
8
|
descriptionText: string;
|
|
@@ -12,6 +12,8 @@ export declare const useLinkEditorState: ({ initialSrc, onSetLink, }: SocialMedi
|
|
|
12
12
|
setUrl: React.Dispatch<React.SetStateAction<string>>;
|
|
13
13
|
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
14
14
|
handleSubmit: (e: React.FormEvent) => void;
|
|
15
|
+
isInline: boolean;
|
|
16
|
+
setIsInline: React.Dispatch<React.SetStateAction<boolean>>;
|
|
15
17
|
};
|
|
16
18
|
export declare const SocialMediaEditorPanel: ({ onSetLink, initialOpenInNewTab, initialSrc, placeholderText, buttonText, descriptionText, }: SocialMediaEditorPanelProps) => React.JSX.Element;
|
|
17
19
|
//# sourceMappingURL=SocialMediaEditorPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialMediaEditorPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SocialMediaEditorPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAKrD,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,+BAG5B,2BAA2B;;;sBAIS,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;sBAOlE,KAAK,CAAC,SAAS;;;CAiBtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,kGAOhC,2BAA2B,sBA6C7B,CAAC"}
|
|
@@ -2,8 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { useCallback, useState } from "react";
|
|
3
3
|
import { Button } from "../../ui/Button/Button.js";
|
|
4
4
|
import { Surface } from "../../ui/Surface.js";
|
|
5
|
+
import { CheckboxField } from "@payloadcms/ui";
|
|
5
6
|
export const useLinkEditorState = ({ initialSrc, onSetLink })=>{
|
|
6
7
|
const [url, setUrl] = useState(initialSrc || "");
|
|
8
|
+
const [isInline, setIsInline] = useState(false);
|
|
7
9
|
const onChange = useCallback((event)=>{
|
|
8
10
|
setUrl(event.target.value);
|
|
9
11
|
}, []);
|
|
@@ -11,17 +13,20 @@ export const useLinkEditorState = ({ initialSrc, onSetLink })=>{
|
|
|
11
13
|
const handleSubmit = useCallback((e)=>{
|
|
12
14
|
e.preventDefault();
|
|
13
15
|
// if (isValidUrl) {
|
|
14
|
-
onSetLink(url);
|
|
16
|
+
onSetLink(url, isInline);
|
|
15
17
|
// }
|
|
16
18
|
}, [
|
|
17
19
|
url,
|
|
18
|
-
onSetLink
|
|
20
|
+
onSetLink,
|
|
21
|
+
isInline
|
|
19
22
|
]);
|
|
20
23
|
return {
|
|
21
24
|
url,
|
|
22
25
|
setUrl,
|
|
23
26
|
onChange,
|
|
24
|
-
handleSubmit
|
|
27
|
+
handleSubmit,
|
|
28
|
+
isInline,
|
|
29
|
+
setIsInline
|
|
25
30
|
};
|
|
26
31
|
};
|
|
27
32
|
export const SocialMediaEditorPanel = ({ onSetLink, initialOpenInNewTab, initialSrc, placeholderText, buttonText, descriptionText })=>{
|
|
@@ -60,6 +65,13 @@ export const SocialMediaEditorPanel = ({ onSetLink, initialOpenInNewTab, initial
|
|
|
60
65
|
/*#__PURE__*/ _jsx("span", {
|
|
61
66
|
className: "mt-1 mb-0 text-sm",
|
|
62
67
|
children: descriptionText
|
|
68
|
+
}),
|
|
69
|
+
/*#__PURE__*/ _jsx(CheckboxField, {
|
|
70
|
+
label: "Inline Embed",
|
|
71
|
+
checked: state.isInline,
|
|
72
|
+
onChange: ()=>{
|
|
73
|
+
state.setIsInline((p)=>!p);
|
|
74
|
+
}
|
|
63
75
|
})
|
|
64
76
|
]
|
|
65
77
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Button } from \"../../ui/Button/Button.js\";\nimport { Surface } from \"../../ui/Surface.js\";\n\nexport type SocialMediaEditorPanelProps = {\n initialSrc?: string;\n initialOpenInNewTab?: boolean;\n onSetLink: (src: string) => void;\n placeholderText: string;\n buttonText: string;\n descriptionText: string;\n};\n\nexport const useLinkEditorState = ({\n initialSrc,\n onSetLink,\n}: SocialMediaEditorPanelProps) => {\n const [url, setUrl] = useState(initialSrc || \"\");\n\n const onChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n setUrl(event.target.value);\n }, []);\n\n // const isValidUrl = useMemo(() => /^(\\S+):(\\/\\/)?\\S+$/.test(url), [url]);\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n // if (isValidUrl) {\n onSetLink(url);\n // }\n },\n [url, onSetLink]\n );\n\n return {\n url,\n setUrl,\n onChange,\n handleSubmit,\n };\n};\n\nexport const SocialMediaEditorPanel = ({\n onSetLink,\n initialOpenInNewTab,\n initialSrc,\n placeholderText,\n buttonText,\n descriptionText,\n}: SocialMediaEditorPanelProps) => {\n const state = useLinkEditorState({\n onSetLink,\n initialOpenInNewTab,\n initialSrc,\n placeholderText,\n buttonText,\n descriptionText,\n });\n\n return (\n <Surface className=\"p-2\">\n <div className=\"flex flex-col items-center gap-2 p-1\">\n <label className=\"flex items-center gap-2 p-2 rounded-lg bg-neutral-100 dark:bg-neutral-900 cursor-text w-full\">\n {/* <Icon icon={Link} className=\"flex-none text-black dark:text-white\" /> */}\n <input\n className=\"flex-1 bg-transparent outline-none min-w-[276px] text-black text-sm dark:text-white\"\n placeholder={placeholderText}\n value={state.url}\n onChange={state.onChange}\n />\n </label>\n <Button\n variant=\"primary\"\n buttonSize=\"medium\"\n className=\"w-full m-2\"\n type=\"button\"\n onClick={(e) => {\n state.handleSubmit(e);\n }}\n // disabled={!state.isValidUrl}\n >\n {buttonText}\n </Button>\n <span className=\"mt-1 mb-0 text-sm\">{descriptionText}</span>\n </div>\n </Surface>\n );\n};\n"],"names":["React","useCallback","useState","Button","Surface","useLinkEditorState","initialSrc","onSetLink","url","setUrl","onChange","event","target","value","handleSubmit","e","preventDefault","SocialMediaEditorPanel","initialOpenInNewTab","placeholderText","buttonText","descriptionText","state","className","div","label","input","placeholder","variant","buttonSize","type","onClick","span"],"mappings":";AAAA,OAAOA,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AACrD,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,OAAO,QAAQ,sBAAsB;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Button } from \"../../ui/Button/Button.js\";\nimport { Surface } from \"../../ui/Surface.js\";\nimport { CheckboxField, CheckboxInput } from \"@payloadcms/ui\";\n\nexport type SocialMediaEditorPanelProps = {\n initialSrc?: string;\n initialOpenInNewTab?: boolean;\n onSetLink: (src: string, className?: boolean) => void;\n placeholderText: string;\n buttonText: string;\n descriptionText: string;\n};\n\nexport const useLinkEditorState = ({\n initialSrc,\n onSetLink,\n}: SocialMediaEditorPanelProps) => {\n const [url, setUrl] = useState(initialSrc || \"\");\n const [isInline, setIsInline] = useState(false);\n\n const onChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n setUrl(event.target.value);\n }, []);\n\n // const isValidUrl = useMemo(() => /^(\\S+):(\\/\\/)?\\S+$/.test(url), [url]);\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n // if (isValidUrl) {\n onSetLink(url, isInline);\n // }\n },\n [url, onSetLink, isInline]\n );\n\n return {\n url,\n setUrl,\n onChange,\n handleSubmit,\n isInline,\n setIsInline,\n };\n};\n\nexport const SocialMediaEditorPanel = ({\n onSetLink,\n initialOpenInNewTab,\n initialSrc,\n placeholderText,\n buttonText,\n descriptionText,\n}: SocialMediaEditorPanelProps) => {\n const state = useLinkEditorState({\n onSetLink,\n initialOpenInNewTab,\n initialSrc,\n placeholderText,\n buttonText,\n descriptionText,\n });\n\n return (\n <Surface className=\"p-2\">\n <div className=\"flex flex-col items-center gap-2 p-1\">\n <label className=\"flex items-center gap-2 p-2 rounded-lg bg-neutral-100 dark:bg-neutral-900 cursor-text w-full\">\n {/* <Icon icon={Link} className=\"flex-none text-black dark:text-white\" /> */}\n <input\n className=\"flex-1 bg-transparent outline-none min-w-[276px] text-black text-sm dark:text-white\"\n placeholder={placeholderText}\n value={state.url}\n onChange={state.onChange}\n />\n </label>\n <Button\n variant=\"primary\"\n buttonSize=\"medium\"\n className=\"w-full m-2\"\n type=\"button\"\n onClick={(e) => {\n state.handleSubmit(e);\n }}\n // disabled={!state.isValidUrl}\n >\n {buttonText}\n </Button>\n <span className=\"mt-1 mb-0 text-sm\">{descriptionText}</span>\n <CheckboxField\n label=\"Inline Embed\"\n checked={state.isInline}\n onChange={() => {\n state.setIsInline((p) => !p);\n }}\n />\n </div>\n </Surface>\n );\n};\n"],"names":["React","useCallback","useState","Button","Surface","CheckboxField","useLinkEditorState","initialSrc","onSetLink","url","setUrl","isInline","setIsInline","onChange","event","target","value","handleSubmit","e","preventDefault","SocialMediaEditorPanel","initialOpenInNewTab","placeholderText","buttonText","descriptionText","state","className","div","label","input","placeholder","variant","buttonSize","type","onClick","span","checked","p"],"mappings":";AAAA,OAAOA,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AACrD,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAuB,iBAAiB;AAW9D,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,UAAU,EACVC,SAAS,EACmB;IAC5B,MAAM,CAACC,KAAKC,OAAO,GAAGR,SAASK,cAAc;IAC7C,MAAM,CAACI,UAAUC,YAAY,GAAGV,SAAS;IAEzC,MAAMW,WAAWZ,YAAY,CAACa;QAC5BJ,OAAOI,MAAMC,MAAM,CAACC,KAAK;IAC3B,GAAG,EAAE;IAEL,2EAA2E;IAE3E,MAAMC,eAAehB,YACnB,CAACiB;QACCA,EAAEC,cAAc;QAChB,oBAAoB;QACpBX,UAAUC,KAAKE;IACf,IAAI;IACN,GACA;QAACF;QAAKD;QAAWG;KAAS;IAG5B,OAAO;QACLF;QACAC;QACAG;QACAI;QACAN;QACAC;IACF;AACF,EAAE;AAEF,OAAO,MAAMQ,yBAAyB,CAAC,EACrCZ,SAAS,EACTa,mBAAmB,EACnBd,UAAU,EACVe,eAAe,EACfC,UAAU,EACVC,eAAe,EACa;IAC5B,MAAMC,QAAQnB,mBAAmB;QAC/BE;QACAa;QACAd;QACAe;QACAC;QACAC;IACF;IAEA,qBACE,KAACpB;QAAQsB,WAAU;kBACjB,cAAA,MAACC;YAAID,WAAU;;8BACb,KAACE;oBAAMF,WAAU;8BAEf,cAAA,KAACG;wBACCH,WAAU;wBACVI,aAAaR;wBACbN,OAAOS,MAAMhB,GAAG;wBAChBI,UAAUY,MAAMZ,QAAQ;;;8BAG5B,KAACV;oBACC4B,SAAQ;oBACRC,YAAW;oBACXN,WAAU;oBACVO,MAAK;oBACLC,SAAS,CAAChB;wBACRO,MAAMR,YAAY,CAACC;oBACrB;8BAGCK;;8BAEH,KAACY;oBAAKT,WAAU;8BAAqBF;;8BACrC,KAACnB;oBACCuB,OAAM;oBACNQ,SAASX,MAAMd,QAAQ;oBACvBE,UAAU;wBACRY,MAAMb,WAAW,CAAC,CAACyB,IAAM,CAACA;oBAC5B;;;;;AAKV,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {};\n\nexport const useBlockEditor = ({\n content,\n handleChange,\n openAssetHQHandler,\n additionalContext,\n autoFocus,\n isEditable,\n}: {\n content: { html: string; json: any };\n handleChange?: (data: any) => void;\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: Record<string, any>;\n autoFocus: boolean;\n isEditable?: boolean;\n}) => {\n const leftSidebar = useSidebar();\n\n const turndownService = new TurndownService({});\n // Use the gfm plugin\n turndownService.use(gfm);\n turndownService.addRule(\"twitter\", {\n filter: \"div\",\n replacement: function (content) {\n return \"\\n\\n\" + content + \"\\n\\n\";\n },\n });\n\n const editor = useEditor(\n {\n content: content?.json ?? content ?? {},\n immediatelyRender: false,\n autofocus: autoFocus ?? true,\n editable: isEditable ?? true,\n onCreate: ({ editor }) => ({\n // provider?.on('synced', () => {\n // if (editor.isEmpty) {\n // editor.commands.setContent(initialContent)\n // }\n // })\n }),\n extensions: [\n ...ExtensionKit({\n openAssetHQHandler: openAssetHQHandler ?? dummyAssetHqHandler,\n // provider,\n }),\n // Collaboration.configure({\n // document: ydoc,\n // }),\n // CollaborationCursor.configure({\n // provider,\n // user: {\n // name: randomElement(userNames),\n // color: randomElement(userColors),\n // },\n // }),\n ],\n editorProps: {\n attributes: {\n languages: i18next.language,\n autocomplete: \"off\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n class: \"min-h-full\",\n },\n },\n onUpdate: ({ editor }) => {\n handleChange(editor?.getJSON() ?? {});\n },\n },\n []\n );\n\n useEffect(() => {\n if (editor?.storage?.aiCommand) {\n editor.storage.aiCommand.title = additionalContext?.title ?? \"\";\n editor.storage.aiCommand.language = additionalContext?.language ?? \"\";\n }\n }, [editor, additionalContext]);\n\n const users = useMemo(() => {\n if (!editor?.storage?.collaborationCursor?.users) {\n return [];\n }\n\n return editor?.storage?.collaborationCursor?.users.map(\n (user: EditorUser) => {\n const names = user.name?.split(\" \");\n const firstName = names?.[0];\n const lastName = names?.[names.length - 1];\n const initials = `${firstName?.[0] || \"?\"}${lastName?.[0] || \"?\"}`;\n\n return { ...user, initials: initials.length ? initials : \"?\" };\n }\n );\n }, [editor?.storage.collaborationCursor?.users]);\n\n const characterCount = editor?.storage.characterCount || {\n characters: () => 0,\n words: () => 0,\n };\n\n // useEffect(() => {\n // provider?.on('status', (event: { status: WebSocketStatus }) => {\n // setCollabState(event.status)\n // })\n // }, [provider])\n\n if (typeof window != \"undefined\") window.editor = editor;\n\n return { editor, users, characterCount, leftSidebar };\n};\n"],"names":["useEffect","useMemo","useEditor","ExtensionKit","useSidebar","TurndownService","gfm","i18next","dummyAssetHqHandler","listener","file","useBlockEditor","content","handleChange","openAssetHQHandler","additionalContext","autoFocus","isEditable","leftSidebar","turndownService","use","addRule","filter","replacement","editor","json","immediatelyRender","autofocus","editable","onCreate","extensions","editorProps","attributes","languages","language","autocomplete","autocorrect","autocapitalize","class","onUpdate","getJSON","storage","aiCommand","title","users","collaborationCursor","map","user","names","name","split","firstName","lastName","length","initials","characterCount","characters","words","window"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAE3C,SAAiBC,SAAS,QAAQ,gBAAgB;AAElD,OAAOC,kBAAkB,iCAAiC;AAE1D,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,qBAAqB,WAAW;AACvC,SAASC,GAAG,QAAQ,sBAAsB;AAE1C,OAAOC,aAAa,UAAU;AAQ9B,MAAMC,sBAAsB,CAC1BC,UACAC,QACI;AAEN,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,SAAS,EACTC,UAAU,EAQX;IACC,MAAMC,cAAcd;IAEpB,MAAMe,kBAAkB,IAAId,gBAAgB,CAAC;IAC7C,qBAAqB;IACrBc,gBAAgBC,GAAG,CAACd;IACpBa,gBAAgBE,OAAO,CAAC,WAAW;QACjCC,QAAQ;QACRC,aAAa,SAAUX,OAAO;YAC5B,OAAO,SAASA,UAAU;QAC5B;IACF;IAEA,MAAMY,SAAStB,UACb;QACEU,SAASA,SAASa,QAAQb,WAAW,CAAC;QACtCc,mBAAmB;QACnBC,WAAWX,aAAa;QACxBY,UAAUX,cAAc;QACxBY,UAAU,CAAC,EAAEL,MAAM,EAAE,GAAM,CAAA;YAM3B,CAAA;QACAM,YAAY;eACP3B,aAAa;gBACdW,oBAAoBA,sBAAsBN;YAE5C;SAWD;QACDuB,aAAa;YACXC,YAAY;gBACVC,WAAW1B,QAAQ2B,QAAQ;gBAC3BC,cAAc;gBACdC,aAAa;gBACbC,gBAAgB;gBAChBC,OAAO;YACT;QACF;QACAC,UAAU,CAAC,EAAEf,MAAM,EAAE;YACnBX,aAAaW,QAAQgB,aAAa,CAAC;QACrC;IACF,GACA,EAAE;IAGJxC,UAAU;QACR,IAAIwB,QAAQiB,SAASC,WAAW;YAC9BlB,OAAOiB,OAAO,CAACC,SAAS,CAACC,KAAK,GAAG5B,mBAAmB4B,SAAS;YAC7DnB,OAAOiB,OAAO,CAACC,SAAS,CAACR,QAAQ,GAAGnB,mBAAmBmB,YAAY;QACrE;IACF,GAAG;QAACV;QAAQT;KAAkB;IAE9B,MAAM6B,QAAQ3C,QAAQ;QACpB,IAAI,CAACuB,QAAQiB,SAASI,qBAAqBD,OAAO;YAChD,OAAO,EAAE;QACX;QAEA,OAAOpB,QAAQiB,SAASI,qBAAqBD,MAAME,IACjD,CAACC;YACC,MAAMC,QAAQD,KAAKE,IAAI,EAAEC,MAAM;YAC/B,MAAMC,YAAYH,OAAO,CAAC,EAAE;YAC5B,MAAMI,WAAWJ,OAAO,CAACA,MAAMK,MAAM,GAAG,EAAE;YAC1C,MAAMC,WAAW,GAAGH,WAAW,CAAC,EAAE,IAAI,MAAMC,UAAU,CAAC,EAAE,IAAI,KAAK;YAElE,OAAO;gBAAE,GAAGL,IAAI;gBAAEO,UAAUA,SAASD,MAAM,GAAGC,WAAW;YAAI;QAC/D;IAEJ,GAAG;QAAC9B,QAAQiB,QAAQI,qBAAqBD;KAAM;IAE/C,MAAMW,iBAAiB/B,QAAQiB,QAAQc,kBAAkB;QACvDC,YAAY,IAAM;QAClBC,OAAO,IAAM;IACf;IAEA,oBAAoB;IACpB,qEAAqE;IACrE,mCAAmC;IACnC,OAAO;IACP,iBAAiB;IAEjB,IAAI,OAAOC,UAAU,aAAaA,OAAOlC,MAAM,GAAGA;IAElD,OAAO;QAAEA;QAAQoB;QAAOW;QAAgBrC;IAAY;AACtD,EAAE"}
|