payload-richtext-tiptap 0.0.127 → 0.0.129

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 (19) hide show
  1. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.d.ts.map +1 -1
  2. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js +33 -21
  3. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.d.ts.map +1 -1
  5. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js +35 -22
  6. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.d.ts.map +1 -1
  8. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js +37 -20
  9. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.d.ts.map +1 -1
  11. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js +42 -29
  12. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
  13. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.d.ts.map +1 -1
  14. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js +52 -34
  15. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
  16. package/dist/src/mobile.css +1 -1
  17. package/dist/src/styles.css +1 -1
  18. package/dist/tsconfig.tsbuildinfo +1 -1
  19. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,QAAQ,EAAE;YACR;;eAEG;YAEH,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SACjE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,QAAQ,gBA4FnB,CAAA"}
1
+ {"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,QAAQ,EAAE;YACR;;eAEG;YAEH,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SACjE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,QAAQ,gBAmGnB,CAAA"}
@@ -26,7 +26,7 @@ export const Facebook = Node.create({
26
26
  default: null
27
27
  },
28
28
  width: {
29
- default: '500'
29
+ default: '550'
30
30
  },
31
31
  showText: {
32
32
  default: true
@@ -44,28 +44,40 @@ export const Facebook = Node.create({
44
44
  },
45
45
  renderHTML ({ HTMLAttributes }) {
46
46
  return [
47
- 'div',
48
- mergeAttributes({
49
- 'data-type': 'facebook-post',
50
- class: 'socialMediaContainer'
51
- }, HTMLAttributes),
47
+ "div",
48
+ mergeAttributes(HTMLAttributes, {
49
+ "data-type": "facebook",
50
+ class: `react-renderer node-facebook ${HTMLAttributes.class ?? ""}`
51
+ }),
52
52
  [
53
53
  'div',
54
- {
55
- class: 'fb-post',
56
- 'data-href': HTMLAttributes.url,
57
- 'data-width': HTMLAttributes.width,
58
- 'data-show-text': HTMLAttributes.showText
59
- }
60
- ],
61
- [
62
- 'script',
63
- {
64
- async: true,
65
- defer: true,
66
- crossorigin: 'anonymous',
67
- src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v22.0&appId=990160422555057'
68
- }
54
+ mergeAttributes({
55
+ class: 'socialMediaContainer'
56
+ }),
57
+ [
58
+ 'div',
59
+ mergeAttributes({
60
+ class: 'rsme-embed rsme-facebook-embed'
61
+ }, HTMLAttributes),
62
+ [
63
+ 'div',
64
+ {
65
+ class: 'fb-post',
66
+ 'data-href': HTMLAttributes.src,
67
+ 'data-width': HTMLAttributes.width,
68
+ 'data-show-text': HTMLAttributes.showText
69
+ }
70
+ ],
71
+ [
72
+ 'script',
73
+ {
74
+ async: true,
75
+ defer: true,
76
+ crossorigin: 'anonymous',
77
+ src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v22.0&appId=990160422555057'
78
+ }
79
+ ]
80
+ ]
69
81
  ]
70
82
  ];
71
83
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n facebook: {\n /**\n * Add an image\n */\n\n insertFacebook: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport FacebookEmbed from './FacebookEmbed.js'\n\nexport const Facebook = Node.create({\n name: 'facebook',\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"facebook-post\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '500',\n },\n showText: {\n default: true,\n },\n }\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'div',\n mergeAttributes(\n { 'data-type': 'facebook-post', class: 'socialMediaContainer' },\n HTMLAttributes,\n ),\n [\n 'div',\n {\n class: 'fb-post',\n 'data-href': HTMLAttributes.url,\n 'data-width': HTMLAttributes.width,\n 'data-show-text': HTMLAttributes.showText,\n },\n ],\n [\n 'script',\n {\n async: true,\n defer: true,\n crossorigin: 'anonymous',\n src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v22.0&appId=990160422555057',\n },\n ],\n ]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(FacebookEmbed)\n },\n\n addCommands() {\n return {\n insertFacebook:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: 'facebook',\n attrs: {\n url,\n class: className,\n src: url,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBACE;gBAAE,aAAa;gBAAiBc,OAAO;YAAuB,GAC9De;YAEF;gBACE;gBACA;oBACEf,OAAO;oBACP,aAAae,eAAejB,GAAG;oBAC/B,cAAciB,eAAeb,KAAK;oBAClC,kBAAkBa,eAAeZ,QAAQ;gBAC3C;aACD;YACD;gBACE;gBACA;oBACEa,OAAO;oBACPC,OAAO;oBACPC,aAAa;oBACbjB,KAAK;gBACP;aACD;SACF;IACH;IAEAkB;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,gBACE,CAACvB,KAAKwB,YACN,CAAC,EAAEC,QAAQ,EAAEf,KAAK,EAAE;oBAClB,OAAOe,SAASC,aAAa,CAAC;wBAC5Bb,MAAM;wBACNc,OAAO;4BACL3B;4BACAE,OAAOsB;4BACPrB,KAAKH;wBACP;oBACF;gBACF;QACJ;IACF;AACF,GAAE;AAEF,SAAS4B,eAAeC,MAAc;IACpC,IAAI7B;IAEJ,IAAI;QACFA,MAAM,IAAI8B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAO/B,IAAIgC,QAAQ,KAAK,WAAWhC,IAAIgC,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n facebook: {\n /**\n * Add an image\n */\n\n insertFacebook: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport FacebookEmbed from './FacebookEmbed.js'\n\nexport const Facebook = Node.create({\n name: 'facebook',\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"facebook-post\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '550',\n },\n showText: {\n default: true,\n },\n }\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"facebook\",\n class: `react-renderer node-facebook ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-facebook-embed', }, HTMLAttributes),\n\n [\n 'div',\n {\n class: 'fb-post',\n 'data-href': HTMLAttributes.src,\n 'data-width': HTMLAttributes.width,\n 'data-show-text': HTMLAttributes.showText,\n },\n ],\n [\n 'script',\n {\n async: true,\n defer: true,\n crossorigin: 'anonymous',\n src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v22.0&appId=990160422555057',\n },\n ],\n ]\n ]]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(FacebookEmbed)\n },\n\n addCommands() {\n return {\n insertFacebook:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: 'facebook',\n attrs: {\n url,\n class: className,\n src: url,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBAAgB6B,gBAAgB;gBAC9B,aAAa;gBACbf,OAAO,CAAC,6BAA6B,EAAEe,eAAef,KAAK,IAAI,GAAG,CAAC;YACrE;YAAI;gBACF;gBACAd,gBACE;oBAAEc,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOd,gBAAgB;wBAAEc,OAAO;oBAAkC,GAAGe;oBAEpE;wBACE;wBACA;4BACEf,OAAO;4BACP,aAAae,eAAed,GAAG;4BAC/B,cAAcc,eAAeb,KAAK;4BAClC,kBAAkBa,eAAeZ,QAAQ;wBAC3C;qBACD;oBACD;wBACE;wBACA;4BACEa,OAAO;4BACPC,OAAO;4BACPC,aAAa;4BACbjB,KAAK;wBACP;qBACD;iBACF;aACF;SAAC;IACN;IAEAkB;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,gBACE,CAACvB,KAAKwB,YACJ,CAAC,EAAEC,QAAQ,EAAEf,KAAK,EAAE;oBAClB,OAAOe,SAASC,aAAa,CAAC;wBAC5Bb,MAAM;wBACNc,OAAO;4BACL3B;4BACAE,OAAOsB;4BACPrB,KAAKH;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAS4B,eAAeC,MAAc;IACpC,IAAI7B;IAEJ,IAAI;QACFA,MAAM,IAAI8B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAO/B,IAAIgC,QAAQ,KAAK,WAAWhC,IAAIgC,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"instagram.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,SAAS,EAAE;YACT;;eAEG;YAEH,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAClE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,SAAS,gBAkGpB,CAAA"}
1
+ {"version":3,"file":"instagram.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,SAAS,EAAE;YACT;;eAEG;YAEH,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAClE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,SAAS,gBAwGpB,CAAA"}
@@ -19,10 +19,10 @@ export const Instagram = Node.create({
19
19
  default: null
20
20
  },
21
21
  width: {
22
- default: '400'
22
+ default: '328px'
23
23
  },
24
24
  height: {
25
- default: '480'
25
+ default: '100%'
26
26
  },
27
27
  frameborder: {
28
28
  default: '0'
@@ -38,22 +38,36 @@ export const Instagram = Node.create({
38
38
  parseHTML () {
39
39
  return [
40
40
  {
41
- tag: 'iframe[src*="instagram.com"]'
41
+ tag: 'div[data-type="instagram"]'
42
42
  }
43
43
  ];
44
44
  },
45
45
  renderHTML ({ HTMLAttributes }) {
46
46
  return [
47
- 'div',
48
- mergeAttributes({
49
- 'data-type': 'instagram',
50
- class: 'socialMediaContainer'
47
+ "div",
48
+ mergeAttributes(HTMLAttributes, {
49
+ "data-type": "instagram",
50
+ class: `react-renderer node-instagram ${HTMLAttributes.class ?? ""}`
51
51
  }),
52
52
  [
53
- 'iframe',
53
+ 'div',
54
54
  mergeAttributes({
55
- src: HTMLAttributes.url
56
- }, HTMLAttributes)
55
+ class: 'socialMediaContainer'
56
+ }),
57
+ [
58
+ 'div',
59
+ mergeAttributes({
60
+ class: 'rsme-embed rsme-instagram-embed max-w-[328px]',
61
+ style: 'overflow: hidden; width: 328px; border-radius: 3px; position: relative;'
62
+ }),
63
+ [
64
+ 'iframe',
65
+ mergeAttributes({
66
+ src: HTMLAttributes.src,
67
+ class: "instagram-media instagram-media-rendered"
68
+ }, HTMLAttributes)
69
+ ]
70
+ ]
57
71
  ]
58
72
  ];
59
73
  },
@@ -72,22 +86,21 @@ export const Instagram = Node.create({
72
86
  addCommands () {
73
87
  return {
74
88
  insertInstagram: (url, className)=>({ commands, state })=>{
75
- if (!isValidHttpUrl(url)) {
76
- return false;
77
- }
78
- // Convert URL to embed format
79
- const urlObj = new URL(url);
80
- const path = urlObj.pathname;
81
- const postId = path.split('/').filter(Boolean)[1] // Get the post ID after /p/
82
- ;
83
- if (!postId) {
84
- return false;
89
+ let embedUrl = "";
90
+ if (url) {
91
+ // Convert URL to embed format
92
+ const urlObj = new URL(url);
93
+ const path = urlObj.pathname;
94
+ const postId = path.split('/').filter(Boolean)[1] // Get the post ID after /p/
95
+ ;
96
+ if (postId) {
97
+ embedUrl = `https://www.instagram.com/p/${postId}/embed/`;
98
+ }
85
99
  }
86
- const embedUrl = `https://www.instagram.com/p/${postId}/embed/`;
87
100
  return commands.insertContent({
88
101
  type: 'instagram',
89
102
  attrs: {
90
- url: embedUrl,
103
+ url: url,
91
104
  class: className,
92
105
  src: embedUrl
93
106
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n instagram: {\n /**\n * Add an image\n */\n\n insertInstagram: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport InstagramEmbed from './InstagramEmbed.js'\n\nexport const Instagram = Node.create({\n name: 'instagram',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '400',\n },\n height: {\n default: '480',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[src*=\"instagram.com\"]',\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'div',\n mergeAttributes({\n 'data-type': 'instagram',\n class: 'socialMediaContainer',\n }),\n ['iframe', mergeAttributes({ src: HTMLAttributes.url }, HTMLAttributes)],\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(InstagramEmbed)\n },\n\n addCommands() {\n return {\n insertInstagram:\n (url, className) =>\n ({ commands, state }) => {\n if (!isValidHttpUrl(url)) {\n return false\n }\n\n // Convert URL to embed format\n const urlObj = new URL(url)\n const path = urlObj.pathname\n const postId = path.split('/').filter(Boolean)[1] // Get the post ID after /p/\n if (!postId) {\n return false\n }\n\n const embedUrl = `https://www.instagram.com/p/${postId}/embed/`\n return commands.insertContent({\n type: 'instagram',\n attrs: {\n url: embedUrl,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","isValidHttpUrl","urlObj","URL","path","pathname","postId","split","filter","Boolean","embedUrl","insertContent","attrs","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,oBAAoB,sBAAqB;AAEhD,OAAO,MAAMC,YAAYJ,KAAKK,MAAM,CAAC;IACnCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IACX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IAEAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO;YACT;YACA;gBAAC;gBAAUZ,gBAAgB;oBAAEa,KAAKS,eAAeZ,GAAG;gBAAC,GAAGY;aAAgB;SACzE;IACH;IACAC;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACzB,IAAI;gBACtB,GACC0B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,iBACE,CAACzB,KAAK0B,YACN,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAClB,IAAI,CAACW,eAAe5B,MAAM;wBACxB,OAAO;oBACT;oBAEA,8BAA8B;oBAC9B,MAAM6B,SAAS,IAAIC,IAAI9B;oBACvB,MAAM+B,OAAOF,OAAOG,QAAQ;oBAC5B,MAAMC,SAASF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,4BAA4B;;oBAC9E,IAAI,CAACH,QAAQ;wBACX,OAAO;oBACT;oBAEA,MAAMI,WAAW,CAAC,4BAA4B,EAAEJ,OAAO,OAAO,CAAC;oBAC/D,OAAON,SAASW,aAAa,CAAC;wBAC5BlB,MAAM;wBACNmB,OAAO;4BACLvC,KAAKqC;4BACLnC,OAAOwB;4BACPvB,KAAKkC;wBACP;oBACF;gBACF;QACJ;IACF;AACF,GAAE;AAEF,SAAST,eAAeY,MAAc;IACpC,IAAIxC;IAEJ,IAAI;QACFA,MAAM,IAAI8B,IAAIU;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAOzC,IAAI0C,QAAQ,KAAK,WAAW1C,IAAI0C,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n instagram: {\n /**\n * Add an image\n */\n\n insertInstagram: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport InstagramEmbed from './InstagramEmbed.js'\n\nexport const Instagram = Node.create({\n name: 'instagram',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '100%',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"instagram\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"instagram\",\n class: `react-renderer node-instagram ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-instagram-embed max-w-[328px]', style: 'overflow: hidden; width: 328px; border-radius: 3px; position: relative;' }),\n\n ['iframe', mergeAttributes({ src: HTMLAttributes.src, class: \"instagram-media instagram-media-rendered\" }, HTMLAttributes)],\n ]\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(InstagramEmbed)\n },\n\n addCommands() {\n return {\n insertInstagram:\n (url, className) =>\n ({ commands, state }) => {\n let embedUrl = \"\"\n if (url) {\n\n // Convert URL to embed format\n const urlObj = new URL(url)\n const path = urlObj.pathname\n const postId = path.split('/').filter(Boolean)[1] // Get the post ID after /p/\n if (postId) {\n embedUrl = `https://www.instagram.com/p/${postId}/embed/`\n }\n }\n return commands.insertContent({\n type: 'instagram',\n attrs: {\n url: url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","embedUrl","urlObj","URL","path","pathname","postId","split","filter","Boolean","insertContent","attrs","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,oBAAoB,sBAAqB;AAEhD,OAAO,MAAMC,YAAYJ,KAAKK,MAAM,CAAC;IACnCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IACX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IAGAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgBsB,gBAAgB;gBAC9B,aAAa;gBACbV,OAAO,CAAC,8BAA8B,EAAEU,eAAeV,KAAK,IAAI,GAAG,CAAC;YACtE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAiDW,OAAO;oBAA0E;oBAEjK;wBAAC;wBAAUvB,gBAAgB;4BAAEa,KAAKS,eAAeT,GAAG;4BAAED,OAAO;wBAA2C,GAAGU;qBAAgB;iBAC5H;aACF;SACF;IACH;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC1B,IAAI;gBACtB,GACC2B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,iBACE,CAAC1B,KAAK2B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAClB,IAAIW,WAAW;oBACf,IAAI7B,KAAK;wBAEP,8BAA8B;wBAC9B,MAAM8B,SAAS,IAAIC,IAAI/B;wBACvB,MAAMgC,OAAOF,OAAOG,QAAQ;wBAC5B,MAAMC,SAASF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,4BAA4B;;wBAC9E,IAAIH,QAAQ;4BACVL,WAAW,CAAC,4BAA4B,EAAEK,OAAO,OAAO,CAAC;wBAC3D;oBACF;oBACA,OAAON,SAASU,aAAa,CAAC;wBAC5BjB,MAAM;wBACNkB,OAAO;4BACLvC,KAAKA;4BACLE,OAAOyB;4BACPxB,KAAK0B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASW,eAAeC,MAAc;IACpC,IAAIzC;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAIU;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO1C,IAAI2C,QAAQ,KAAK,WAAW3C,IAAI2C,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"tiktok.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,MAAM,EAAE;YACN;;eAEG;YAEH,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAC/D,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,MAAM,gBAmGjB,CAAA"}
1
+ {"version":3,"file":"tiktok.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,MAAM,EAAE;YACN;;eAEG;YAEH,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAC/D,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD,eAAO,MAAM,MAAM,gBA0GjB,CAAA"}
@@ -19,7 +19,7 @@ export const Tiktok = Node.create({
19
19
  default: null
20
20
  },
21
21
  width: {
22
- default: '400'
22
+ default: '328px'
23
23
  },
24
24
  height: {
25
25
  default: '100%'
@@ -38,22 +38,41 @@ export const Tiktok = Node.create({
38
38
  parseHTML () {
39
39
  return [
40
40
  {
41
- tag: 'iframe[src*="tiktok.com"]'
41
+ tag: 'div[data-type="tiktok"]'
42
42
  }
43
43
  ];
44
44
  },
45
45
  renderHTML ({ HTMLAttributes }) {
46
46
  return [
47
- 'div',
47
+ "div",
48
48
  mergeAttributes({
49
- 'data-type': 'tiktok',
50
- class: 'socialMediaContainer'
49
+ "data-type": "tiktok",
50
+ class: `react-renderer node-tiktok ${HTMLAttributes.class ?? ""}`
51
51
  }),
52
52
  [
53
- 'iframe',
53
+ 'div',
54
54
  mergeAttributes({
55
- src: HTMLAttributes.url
56
- }, HTMLAttributes)
55
+ class: 'socialMediaContainer'
56
+ }),
57
+ [
58
+ 'div',
59
+ mergeAttributes({
60
+ class: 'rsme-embed rsme-tiktok-embed',
61
+ style: 'overflow: hidden; border-radius: 8px;'
62
+ }),
63
+ [
64
+ 'div',
65
+ {
66
+ class: 'tiktok-embed-container'
67
+ },
68
+ [
69
+ 'iframe',
70
+ mergeAttributes({
71
+ src: HTMLAttributes.src
72
+ }, HTMLAttributes)
73
+ ]
74
+ ]
75
+ ]
57
76
  ]
58
77
  ];
59
78
  },
@@ -72,24 +91,22 @@ export const Tiktok = Node.create({
72
91
  addCommands () {
73
92
  return {
74
93
  insertTiktok: (url, className)=>({ commands, state })=>{
75
- if (!isValidHttpUrl(url)) {
76
- return false;
77
- }
78
- // Convert URL to embed format
79
- const urlObj = new URL(url);
80
- const path = urlObj.pathname;
81
- const videoId = path.split('/').filter(Boolean)[2] // Get video ID from path
82
- ;
83
- if (!videoId) {
84
- return false;
94
+ let embedUrl;
95
+ if (url) {
96
+ const urlObj = new URL(url);
97
+ const path = urlObj.pathname;
98
+ const videoId = path.split('/').filter(Boolean)[2] // Get video ID from path
99
+ ;
100
+ if (videoId) {
101
+ embedUrl = `https://www.tiktok.com/embed/v3/${videoId}`;
102
+ }
85
103
  }
86
- url = `https://www.tiktok.com/embed/v3/${videoId}`;
87
104
  return commands.insertContent({
88
105
  type: 'tiktok',
89
106
  attrs: {
90
107
  url,
91
108
  class: className,
92
- src: url
109
+ src: embedUrl
93
110
  }
94
111
  });
95
112
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n tiktok: {\n /**\n * Add an image\n */\n\n insertTiktok: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TiktokEmbed from './TiktokEmbed.js'\n\nexport const Tiktok = Node.create({\n name: 'tiktok',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '400',\n },\n height: {\n default: '100%',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[src*=\"tiktok.com\"]',\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'div',\n mergeAttributes({\n 'data-type': 'tiktok',\n class: 'socialMediaContainer',\n }),\n ['iframe', mergeAttributes({ src: HTMLAttributes.url }, HTMLAttributes)],\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TiktokEmbed)\n },\n\n addCommands() {\n return {\n insertTiktok:\n (url, className) =>\n ({ commands, state }) => {\n if (!isValidHttpUrl(url)) {\n return false\n }\n\n // Convert URL to embed format\n const urlObj = new URL(url)\n const path = urlObj.pathname\n const videoId = path.split('/').filter(Boolean)[2] // Get video ID from path\n if (!videoId) {\n return false\n }\n\n url = `https://www.tiktok.com/embed/v3/${videoId}`\n return commands.insertContent({\n type: 'tiktok',\n attrs: {\n url,\n class: className,\n src: url,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","isValidHttpUrl","urlObj","URL","path","pathname","videoId","split","filter","Boolean","insertContent","attrs","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IAEAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO;YACT;YACA;gBAAC;gBAAUZ,gBAAgB;oBAAEa,KAAKS,eAAeZ,GAAG;gBAAC,GAAGY;aAAgB;SACzE;IACH;IACAC;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACzB,IAAI;gBACtB,GACC0B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,cACE,CAACzB,KAAK0B,YACN,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAClB,IAAI,CAACW,eAAe5B,MAAM;wBACxB,OAAO;oBACT;oBAEA,8BAA8B;oBAC9B,MAAM6B,SAAS,IAAIC,IAAI9B;oBACvB,MAAM+B,OAAOF,OAAOG,QAAQ;oBAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,yBAAyB;;oBAC5E,IAAI,CAACH,SAAS;wBACZ,OAAO;oBACT;oBAEAjC,MAAM,CAAC,gCAAgC,EAAEiC,QAAQ,CAAC;oBAClD,OAAON,SAASU,aAAa,CAAC;wBAC5BjB,MAAM;wBACNkB,OAAO;4BACLtC;4BACAE,OAAOwB;4BACPvB,KAAKH;wBACP;oBACF;gBACF;QACJ;IACF;AACF,GAAE;AAEF,SAAS4B,eAAeW,MAAc;IACpC,IAAIvC;IAEJ,IAAI;QACFA,MAAM,IAAI8B,IAAIS;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAOxC,IAAIyC,QAAQ,KAAK,WAAWzC,IAAIyC,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n tiktok: {\n /**\n * Add an image\n */\n\n insertTiktok: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TiktokEmbed from './TiktokEmbed.js'\n\nexport const Tiktok = Node.create({\n name: 'tiktok',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '100%',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"tiktok\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes({\n \"data-type\": \"tiktok\",\n class: `react-renderer node-tiktok ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-tiktok-embed', style: 'overflow: hidden; border-radius: 8px;' }),\n ['div', { class: 'tiktok-embed-container' },\n ['iframe', mergeAttributes({ src: HTMLAttributes.src }, HTMLAttributes)],\n ]\n ]\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TiktokEmbed)\n },\n\n addCommands() {\n return {\n insertTiktok:\n (url, className) =>\n ({ commands, state }) => {\n\n\n let embedUrl\n if (url) { // Convert URL to embed format\n const urlObj = new URL(url)\n const path = urlObj.pathname\n const videoId = path.split('/').filter(Boolean)[2] // Get video ID from path\n\n\n if (videoId) {\n embedUrl = `https://www.tiktok.com/embed/v3/${videoId}`\n }\n }\n return commands.insertContent({\n type: 'tiktok',\n attrs: {\n url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","embedUrl","urlObj","URL","path","pathname","videoId","split","filter","Boolean","insertContent","attrs","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IACAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO,CAAC,2BAA2B,EAAEU,eAAeV,KAAK,IAAI,GAAG,CAAC;YACnE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAgCW,OAAO;oBAAwC;oBAC9G;wBAAC;wBAAO;4BAAEX,OAAO;wBAAyB;wBACxC;4BAAC;4BAAUZ,gBAAgB;gCAAEa,KAAKS,eAAeT,GAAG;4BAAC,GAAGS;yBAAgB;qBACzE;iBACF;aACF;SACF;IACH;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC1B,IAAI;gBACtB,GACC2B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,cACE,CAAC1B,KAAK2B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAGlB,IAAIW;oBACJ,IAAI7B,KAAK;wBACP,MAAM8B,SAAS,IAAIC,IAAI/B;wBACvB,MAAMgC,OAAOF,OAAOG,QAAQ;wBAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,yBAAyB;;wBAG5E,IAAIH,SAAS;4BACXL,WAAW,CAAC,gCAAgC,EAAEK,QAAQ,CAAC;wBACzD;oBACF;oBACA,OAAON,SAASU,aAAa,CAAC;wBAC5BjB,MAAM;wBACNkB,OAAO;4BACLvC;4BACAE,OAAOyB;4BACPxB,KAAK0B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASW,eAAeC,MAAc;IACpC,IAAIzC;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAIU;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO1C,IAAI2C,QAAQ,KAAK,WAAW3C,IAAI2C,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"twitter.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP;;eAEG;YAEH,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAChE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAA6C,MAAM,cAAc,CAAA;AAI9E,eAAO,MAAM,OAAO,gBA8FlB,CAAA"}
1
+ {"version":3,"file":"twitter.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP;;eAEG;YAEH,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAChE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAA6C,MAAM,cAAc,CAAA;AAI9E,eAAO,MAAM,OAAO,gBA0GlB,CAAA"}
@@ -44,33 +44,45 @@ export const Twitter = Node.create({
44
44
  // ];
45
45
  // },
46
46
  renderHTML ({ HTMLAttributes }) {
47
- console.log('HTMLAttributes', HTMLAttributes);
48
47
  return [
49
- 'div',
50
- mergeAttributes({
51
- 'data-type': 'twitter',
52
- class: 'socialMediaContainer'
53
- }, HTMLAttributes),
48
+ "div",
49
+ mergeAttributes(HTMLAttributes, {
50
+ "data-type": "twitter",
51
+ class: `react-renderer node-twitter ${HTMLAttributes.class ?? ""}`
52
+ }),
54
53
  [
55
- 'blockquote',
56
- {
57
- class: 'twitter-tweet'
58
- },
54
+ 'div',
55
+ mergeAttributes({
56
+ class: 'socialMediaContainer'
57
+ }),
59
58
  [
60
- 'a',
61
- {
62
- href: HTMLAttributes.url ?? HTMLAttributes.src
63
- },
64
- ''
59
+ 'div',
60
+ mergeAttributes({
61
+ class: 'rsme-embed rsme-twitter-embed',
62
+ style: 'overflow: hidden; width: 325px; border-radius: 12px;'
63
+ }),
64
+ [
65
+ 'blockquote',
66
+ {
67
+ class: 'twitter-tweet'
68
+ },
69
+ [
70
+ 'a',
71
+ {
72
+ href: HTMLAttributes.src ?? HTMLAttributes.url
73
+ },
74
+ ''
75
+ ]
76
+ ],
77
+ [
78
+ 'script',
79
+ {
80
+ async: true,
81
+ src: 'https://platform.twitter.com/widgets.js',
82
+ charset: 'utf-8'
83
+ }
84
+ ]
65
85
  ]
66
- ],
67
- [
68
- 'script',
69
- {
70
- async: true,
71
- src: 'https://platform.twitter.com/widgets.js',
72
- charset: 'utf-8'
73
- }
74
86
  ]
75
87
  ];
76
88
  },
@@ -80,17 +92,18 @@ export const Twitter = Node.create({
80
92
  addCommands () {
81
93
  return {
82
94
  insertTwitter: (url, className)=>({ commands, state })=>{
83
- const tweetMatch = url.match(/(?:twitter\.com|x\.com)\/([^\/]+)\/status\/(\d+)/);
84
95
  let formattedUrl = url;
85
- if (tweetMatch) {
86
- const [_, username, tweetId] = tweetMatch;
87
- formattedUrl = `https://twitter.com/${username}/status/${tweetId}`;
96
+ if (url) {
97
+ const tweetMatch = url.match(/(?:twitter\.com|x\.com)\/([^\/]+)\/status\/(\d+)/);
98
+ if (tweetMatch) {
99
+ const [_, username, tweetId] = tweetMatch;
100
+ formattedUrl = `https://twitter.com/${username}/status/${tweetId}`;
101
+ }
88
102
  }
89
- console.log('URL', url);
90
103
  return commands.insertContent({
91
104
  type: 'twitter',
92
105
  attrs: {
93
- url: formattedUrl,
106
+ url: url,
94
107
  class: className,
95
108
  src: formattedUrl
96
109
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n twitter: {\n /**\n * Add an image\n */\n\n insertTwitter: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TwitterEmbed from './TwitterEmbed.js'\n\nexport const Twitter = Node.create({\n name: 'twitter',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"twitter\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n src: { default: null },\n class: { default: null },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n // renderHTML({ HTMLAttributes }) {\n // return [\n // \"div\",\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\n // 0,\n // ];\n // },\n renderHTML({ HTMLAttributes }) {\n console.log('HTMLAttributes', HTMLAttributes)\n return [\n 'div',\n mergeAttributes({ 'data-type': 'twitter', class: 'socialMediaContainer' }, HTMLAttributes),\n [\n 'blockquote',\n { class: 'twitter-tweet' },\n ['a', { href: HTMLAttributes.url ?? HTMLAttributes.src }, ''],\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://platform.twitter.com/widgets.js',\n charset: 'utf-8',\n },\n ],\n ]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TwitterEmbed)\n },\n\n addCommands() {\n return {\n insertTwitter:\n (url, className) =>\n ({ commands, state }) => {\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\n let formattedUrl = url\n if (tweetMatch) {\n const [_, username, tweetId] = tweetMatch\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\n }\n console.log('URL', url)\n return commands.insertContent({\n type: 'twitter',\n attrs: {\n url: formattedUrl,\n class: className,\n src: formattedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","console","log","href","async","charset","addNodeView","addCommands","insertTwitter","className","commands","tweetMatch","match","formattedUrl","_","username","tweetId","insertContent","attrs","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3BC,QAAQC,GAAG,CAAC,kBAAkBF;QAC9B,OAAO;YACL;YACA3B,gBAAgB;gBAAE,aAAa;gBAAWe,OAAO;YAAuB,GAAGY;YAC3E;gBACE;gBACA;oBAAEZ,OAAO;gBAAgB;gBACzB;oBAAC;oBAAK;wBAAEe,MAAMH,eAAef,GAAG,IAAIe,eAAeb,GAAG;oBAAC;oBAAG;iBAAG;aAC9D;YACD;gBACE;gBACA;oBACEiB,OAAO;oBACPjB,KAAK;oBACLkB,SAAS;gBACX;aACD;SACF;IACH;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,eACE,CAACvB,KAAKwB,YACN,CAAC,EAAEC,QAAQ,EAAEjB,KAAK,EAAE;oBAClB,MAAMkB,aAAa1B,IAAI2B,KAAK,CAAC;oBAC7B,IAAIC,eAAe5B;oBACnB,IAAI0B,YAAY;wBACd,MAAM,CAACG,GAAGC,UAAUC,QAAQ,GAAGL;wBAC/BE,eAAe,CAAC,oBAAoB,EAAEE,SAAS,QAAQ,EAAEC,QAAQ,CAAC;oBACpE;oBACAf,QAAQC,GAAG,CAAC,OAAOjB;oBACnB,OAAOyB,SAASO,aAAa,CAAC;wBAC5BrB,MAAM;wBACNsB,OAAO;4BACLjC,KAAK4B;4BACLzB,OAAOqB;4BACPtB,KAAK0B;wBACP;oBACF;gBACF;QACJ;IACF;AACF,GAAE;AAEF,SAASM,eAAeC,MAAc;IACpC,IAAInC;IAEJ,IAAI;QACFA,MAAM,IAAIoC,IAAID;IAChB,EAAE,OAAON,GAAG;QACV,OAAO;IACT;IAEA,OAAO7B,IAAIqC,QAAQ,KAAK,WAAWrC,IAAIqC,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n twitter: {\n /**\n * Add an image\n */\n\n insertTwitter: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TwitterEmbed from './TwitterEmbed.js'\n\nexport const Twitter = Node.create({\n name: 'twitter',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"twitter\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n src: { default: null },\n class: { default: null },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n // renderHTML({ HTMLAttributes }) {\n // return [\n // \"div\",\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\n // 0,\n // ];\n // },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"twitter\",\n class: `react-renderer node-twitter ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-twitter-embed', style: 'overflow: hidden; width: 325px; border-radius: 12px;' }),\n\n [\n 'blockquote',\n { class: 'twitter-tweet' },\n ['a', { href: HTMLAttributes.src ?? HTMLAttributes.url }, ''],\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://platform.twitter.com/widgets.js',\n charset: 'utf-8',\n },\n ],\n ]\n ]\n ]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TwitterEmbed)\n },\n\n addCommands() {\n return {\n insertTwitter:\n (url, className) =>\n ({ commands, state }) => {\n let formattedUrl = url\n if (url) {\n\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\n if (tweetMatch) {\n const [_, username, tweetId] = tweetMatch\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\n }\n }\n return commands.insertContent({\n type: 'twitter',\n attrs: {\n url: url,\n class: className,\n src: formattedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","href","async","charset","addNodeView","addCommands","insertTwitter","className","commands","formattedUrl","tweetMatch","match","_","username","tweetId","insertContent","attrs","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA3B,gBAAgB2B,gBAAgB;gBAC9B,aAAa;gBACbZ,OAAO,CAAC,4BAA4B,EAAEY,eAAeZ,KAAK,IAAI,GAAG,CAAC;YACpE;YAAI;gBACF;gBACAf,gBACE;oBAAEe,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOf,gBAAgB;wBAAEe,OAAO;wBAAiCa,OAAO;oBAAuD;oBAE9H;wBACE;wBACA;4BAAEb,OAAO;wBAAgB;wBACzB;4BAAC;4BAAK;gCAAEc,MAAMF,eAAeb,GAAG,IAAIa,eAAef,GAAG;4BAAC;4BAAG;yBAAG;qBAC9D;oBACD;wBACE;wBACA;4BACEkB,OAAO;4BACPhB,KAAK;4BACLiB,SAAS;wBACX;qBACD;iBACF;aACF;SACF;IACH;IAEAC;QACE,OAAO/B,sBAAsBC;IAC/B;IAEA+B;QACE,OAAO;YACLC,eACE,CAACtB,KAAKuB,YACJ,CAAC,EAAEC,QAAQ,EAAEhB,KAAK,EAAE;oBAClB,IAAIiB,eAAezB;oBACnB,IAAIA,KAAK;wBAEP,MAAM0B,aAAa1B,IAAI2B,KAAK,CAAC;wBAC7B,IAAID,YAAY;4BACd,MAAM,CAACE,GAAGC,UAAUC,QAAQ,GAAGJ;4BAC/BD,eAAe,CAAC,oBAAoB,EAAEI,SAAS,QAAQ,EAAEC,QAAQ,CAAC;wBACpE;oBACF;oBACA,OAAON,SAASO,aAAa,CAAC;wBAC5BpB,MAAM;wBACNqB,OAAO;4BACLhC,KAAKA;4BACLG,OAAOoB;4BACPrB,KAAKuB;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASQ,eAAeC,MAAc;IACpC,IAAIlC;IAEJ,IAAI;QACFA,MAAM,IAAImC,IAAID;IAChB,EAAE,OAAON,GAAG;QACV,OAAO;IACT;IAEA,OAAO5B,IAAIoC,QAAQ,KAAK,WAAWpC,IAAIoC,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP;;eAEG;YAEH,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAChE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAA6C,MAAM,cAAc,CAAA;AAI9E,eAAO,MAAM,OAAO,gBAiHlB,CAAA"}
1
+ {"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,OAAO,EAAE;YACP;;eAEG;YAEH,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,UAAU,CAAA;SAChE,CAAA;KACF;CACF;AAED,OAAO,EAAE,IAAI,EAA6C,MAAM,cAAc,CAAA;AAI9E,eAAO,MAAM,OAAO,gBA0HlB,CAAA"}