@edifice.io/tiptap-extensions 1.5.16-develop-rc.2

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 (171) hide show
  1. package/.turbo/turbo-build.log +58 -0
  2. package/.turbo/turbo-format.log +142 -0
  3. package/.turbo/turbo-lint.log +5 -0
  4. package/LICENSE +661 -0
  5. package/dist/abbr/abbr.cjs +33 -0
  6. package/dist/abbr/abbr.cjs.map +1 -0
  7. package/dist/abbr/abbr.d.ts +16 -0
  8. package/dist/abbr/abbr.js +37 -0
  9. package/dist/abbr/abbr.js.map +1 -0
  10. package/dist/abbr/index.d.ts +3 -0
  11. package/dist/alert/alert.cjs +33 -0
  12. package/dist/alert/alert.cjs.map +1 -0
  13. package/dist/alert/alert.d.ts +2 -0
  14. package/dist/alert/alert.js +43 -0
  15. package/dist/alert/alert.js.map +1 -0
  16. package/dist/alert/index.d.ts +3 -0
  17. package/dist/attachment/attachment.cjs +74 -0
  18. package/dist/attachment/attachment.cjs.map +1 -0
  19. package/dist/attachment/attachment.d.ts +12 -0
  20. package/dist/attachment/attachment.js +86 -0
  21. package/dist/attachment/attachment.js.map +1 -0
  22. package/dist/attachment/index.d.ts +3 -0
  23. package/dist/audio/audio.cjs +55 -0
  24. package/dist/audio/audio.cjs.map +1 -0
  25. package/dist/audio/audio.d.ts +23 -0
  26. package/dist/audio/audio.js +55 -0
  27. package/dist/audio/audio.js.map +1 -0
  28. package/dist/audio/index.d.ts +3 -0
  29. package/dist/font-size/font-size.cjs +49 -0
  30. package/dist/font-size/font-size.cjs.map +1 -0
  31. package/dist/font-size/font-size.d.ts +19 -0
  32. package/dist/font-size/font-size.js +51 -0
  33. package/dist/font-size/font-size.js.map +1 -0
  34. package/dist/font-size/index.d.ts +3 -0
  35. package/dist/heading/heading.cjs +62 -0
  36. package/dist/heading/heading.cjs.map +1 -0
  37. package/dist/heading/heading.d.ts +17 -0
  38. package/dist/heading/heading.js +60 -0
  39. package/dist/heading/heading.js.map +1 -0
  40. package/dist/heading/index.d.ts +3 -0
  41. package/dist/highlight/highlight.cjs +26 -0
  42. package/dist/highlight/highlight.cjs.map +1 -0
  43. package/dist/highlight/highlight.d.ts +4 -0
  44. package/dist/highlight/highlight.js +26 -0
  45. package/dist/highlight/highlight.js.map +1 -0
  46. package/dist/highlight/index.d.ts +3 -0
  47. package/dist/hyperlink/hyperlink.cjs +48 -0
  48. package/dist/hyperlink/hyperlink.cjs.map +1 -0
  49. package/dist/hyperlink/hyperlink.d.ts +38 -0
  50. package/dist/hyperlink/hyperlink.js +55 -0
  51. package/dist/hyperlink/hyperlink.js.map +1 -0
  52. package/dist/hyperlink/index.d.ts +3 -0
  53. package/dist/iframe/iframe.cjs +70 -0
  54. package/dist/iframe/iframe.cjs.map +1 -0
  55. package/dist/iframe/iframe.d.ts +18 -0
  56. package/dist/iframe/iframe.js +85 -0
  57. package/dist/iframe/iframe.js.map +1 -0
  58. package/dist/iframe/index.d.ts +3 -0
  59. package/dist/image/custom-image.cjs +163 -0
  60. package/dist/image/custom-image.cjs.map +1 -0
  61. package/dist/image/custom-image.d.ts +27 -0
  62. package/dist/image/custom-image.js +181 -0
  63. package/dist/image/custom-image.js.map +1 -0
  64. package/dist/image/index.d.ts +3 -0
  65. package/dist/index.cjs +44 -0
  66. package/dist/index.cjs.map +1 -0
  67. package/dist/index.d.ts +19 -0
  68. package/dist/index.js +44 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/line-height/index.d.ts +3 -0
  71. package/dist/line-height/line-height.cjs +34 -0
  72. package/dist/line-height/line-height.cjs.map +1 -0
  73. package/dist/line-height/line-height.d.ts +2 -0
  74. package/dist/line-height/line-height.js +36 -0
  75. package/dist/line-height/line-height.js.map +1 -0
  76. package/dist/linker/index.d.ts +3 -0
  77. package/dist/linker/linker.cjs +96 -0
  78. package/dist/linker/linker.cjs.map +1 -0
  79. package/dist/linker/linker.d.ts +30 -0
  80. package/dist/linker/linker.js +104 -0
  81. package/dist/linker/linker.js.map +1 -0
  82. package/dist/mathjax/index.d.ts +3 -0
  83. package/dist/mathjax/mathjax.cjs +48 -0
  84. package/dist/mathjax/mathjax.cjs.map +1 -0
  85. package/dist/mathjax/mathjax.d.ts +2 -0
  86. package/dist/mathjax/mathjax.js +50 -0
  87. package/dist/mathjax/mathjax.js.map +1 -0
  88. package/dist/paragraph/index.d.ts +3 -0
  89. package/dist/paragraph/paragraph.cjs +14 -0
  90. package/dist/paragraph/paragraph.cjs.map +1 -0
  91. package/dist/paragraph/paragraph.d.ts +16 -0
  92. package/dist/paragraph/paragraph.js +14 -0
  93. package/dist/paragraph/paragraph.js.map +1 -0
  94. package/dist/speech-recognition/index.d.ts +3 -0
  95. package/dist/speech-recognition/speech-recognition.cjs +77 -0
  96. package/dist/speech-recognition/speech-recognition.cjs.map +1 -0
  97. package/dist/speech-recognition/speech-recognition.d.ts +21 -0
  98. package/dist/speech-recognition/speech-recognition.js +77 -0
  99. package/dist/speech-recognition/speech-recognition.js.map +1 -0
  100. package/dist/speech-synthesis/index.d.ts +3 -0
  101. package/dist/speech-synthesis/speech-synthesis.cjs +33 -0
  102. package/dist/speech-synthesis/speech-synthesis.cjs.map +1 -0
  103. package/dist/speech-synthesis/speech-synthesis.d.ts +18 -0
  104. package/dist/speech-synthesis/speech-synthesis.js +34 -0
  105. package/dist/speech-synthesis/speech-synthesis.js.map +1 -0
  106. package/dist/table-cell/index.d.ts +3 -0
  107. package/dist/table-cell/table-cell.cjs +28 -0
  108. package/dist/table-cell/table-cell.cjs.map +1 -0
  109. package/dist/table-cell/table-cell.d.ts +8 -0
  110. package/dist/table-cell/table-cell.js +28 -0
  111. package/dist/table-cell/table-cell.js.map +1 -0
  112. package/dist/transform/html-to-json/html-to-json.cjs +5 -0
  113. package/dist/transform/html-to-json/html-to-json.cjs.map +1 -0
  114. package/dist/transform/html-to-json/html-to-json.d.ts +6 -0
  115. package/dist/transform/html-to-json/html-to-json.js +4 -0
  116. package/dist/transform/html-to-json/html-to-json.js.map +1 -0
  117. package/dist/transform/index.d.ts +3 -0
  118. package/dist/transform/json-to-html/json-to-html.cjs +5 -0
  119. package/dist/transform/json-to-html/json-to-html.cjs.map +1 -0
  120. package/dist/transform/json-to-html/json-to-html.d.ts +3 -0
  121. package/dist/transform/json-to-html/json-to-html.js +4 -0
  122. package/dist/transform/json-to-html/json-to-html.js.map +1 -0
  123. package/dist/video/index.d.ts +3 -0
  124. package/dist/video/video.cjs +119 -0
  125. package/dist/video/video.cjs.map +1 -0
  126. package/dist/video/video.d.ts +34 -0
  127. package/dist/video/video.js +123 -0
  128. package/dist/video/video.js.map +1 -0
  129. package/package.json +133 -0
  130. package/src/abbr/abbr.ts +57 -0
  131. package/src/abbr/index.ts +5 -0
  132. package/src/alert/alert.ts +46 -0
  133. package/src/alert/index.ts +5 -0
  134. package/src/attachment/attachment.ts +113 -0
  135. package/src/attachment/index.ts +5 -0
  136. package/src/audio/audio.ts +81 -0
  137. package/src/audio/index.ts +5 -0
  138. package/src/font-size/font-size.ts +74 -0
  139. package/src/font-size/index.ts +5 -0
  140. package/src/heading/heading.ts +90 -0
  141. package/src/heading/index.ts +5 -0
  142. package/src/highlight/highlight.ts +27 -0
  143. package/src/highlight/index.ts +5 -0
  144. package/src/hyperlink/hyperlink.ts +92 -0
  145. package/src/hyperlink/index.ts +5 -0
  146. package/src/iframe/iframe.ts +112 -0
  147. package/src/iframe/index.ts +5 -0
  148. package/src/image/custom-image.ts +226 -0
  149. package/src/image/index.ts +5 -0
  150. package/src/index.ts +19 -0
  151. package/src/line-height/index.ts +5 -0
  152. package/src/line-height/line-height.ts +37 -0
  153. package/src/linker/index.ts +5 -0
  154. package/src/linker/linker.ts +153 -0
  155. package/src/mathjax/index.ts +5 -0
  156. package/src/mathjax/mathjax.ts +55 -0
  157. package/src/paragraph/index.ts +5 -0
  158. package/src/paragraph/paragraph.ts +25 -0
  159. package/src/speech-recognition/index.ts +5 -0
  160. package/src/speech-recognition/speech-recognition.ts +123 -0
  161. package/src/speech-synthesis/index.ts +5 -0
  162. package/src/speech-synthesis/speech-synthesis.ts +52 -0
  163. package/src/table-cell/index.ts +5 -0
  164. package/src/table-cell/table-cell.ts +28 -0
  165. package/src/transform/html-to-json/html-to-json.ts +5 -0
  166. package/src/transform/index.ts +4 -0
  167. package/src/transform/json-to-html/json-to-html.ts +5 -0
  168. package/src/video/index.ts +5 -0
  169. package/src/video/video.ts +173 -0
  170. package/tsconfig.json +20 -0
  171. package/vite.config.ts +46 -0
@@ -0,0 +1,3 @@
1
+ import { SpeechSynthesis } from './speech-synthesis';
2
+ export * from './speech-synthesis';
3
+ export default SpeechSynthesis;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
+ const core = require('@tiptap/core');
4
+ class SS_Node extends core.Node {
5
+ static create(config) {
6
+ return core.Node.create(config);
7
+ }
8
+ }
9
+ const SpeechSynthesis = SS_Node.create({
10
+ name: 'speechSynthesis',
11
+ addOptions() {
12
+ return { lang: 'fr-FR', pitch: 1 };
13
+ },
14
+ addCommands() {
15
+ return {
16
+ startSpeechSynthesis:
17
+ () =>
18
+ ({ commands }) => (
19
+ (this.speechSynthesis = new SpeechSynthesisUtterance()),
20
+ (this.speechSynthesis.lang = this.options.lang),
21
+ (this.speechSynthesis.pitch = this.options.pitch),
22
+ (this.speechSynthesis.text = this.editor.getText()),
23
+ window.speechSynthesis.speak(this.speechSynthesis),
24
+ commands
25
+ ),
26
+ stopSpeechSynthesis:
27
+ () =>
28
+ ({ commands }) => (window.speechSynthesis.cancel(), commands),
29
+ };
30
+ },
31
+ });
32
+ exports.SpeechSynthesis = SpeechSynthesis;
33
+ //# sourceMappingURL=speech-synthesis.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-synthesis.cjs","sources":["../../src/speech-synthesis/speech-synthesis.ts"],"sourcesContent":["import { Node } from '@tiptap/core';\n\nexport interface SpeechSynthesisOptions {\n lang: string;\n pitch: number;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n speechSynthesis: {\n startSpeechSynthesis: () => ReturnType;\n stopSpeechSynthesis: () => ReturnType;\n };\n }\n}\n\nclass SS_Node<O = any, S = any> extends Node<O, S> {\n static create<O = any, S = any>(config?: any) {\n return Node.create(config) as SS_Node<O, S>;\n }\n}\n\nexport const SpeechSynthesis = SS_Node.create<SpeechSynthesisOptions>({\n name: 'speechSynthesis',\n addOptions() {\n return {\n lang: 'fr-FR',\n pitch: 1,\n };\n },\n addCommands() {\n return {\n startSpeechSynthesis:\n () =>\n ({ commands }) => {\n this.speechSynthesis = new SpeechSynthesisUtterance();\n this.speechSynthesis.lang = this.options.lang;\n this.speechSynthesis.pitch = this.options.pitch;\n this.speechSynthesis.text = this.editor.getText();\n\n window.speechSynthesis.speak(this.speechSynthesis);\n return commands;\n },\n stopSpeechSynthesis:\n () =>\n ({ commands }) => {\n window.speechSynthesis.cancel();\n return commands;\n },\n };\n },\n});\n"],"names":["Node"],"mappings":"mHAgBA,MAAM,gBAAkCA,KAAAA,IAAW,CACjD,OAAO,OAAyB,OAAc,CACrC,OAAAA,KAAA,KAAK,OAAO,MAAM,CAC3B,CACF,CAEa,MAAA,gBAAkB,QAAQ,OAA+B,CACpE,KAAM,kBACN,YAAa,CACJ,MAAA,CACL,KAAM,QACN,MAAO,CAAA,CAEX,EACA,aAAc,CACL,MAAA,CACL,qBACE,IACA,CAAC,CAAE,aACI,KAAA,gBAAkB,IAAI,yBACtB,KAAA,gBAAgB,KAAO,KAAK,QAAQ,KACpC,KAAA,gBAAgB,MAAQ,KAAK,QAAQ,MAC1C,KAAK,gBAAgB,KAAO,KAAK,OAAO,QAAQ,EAEzC,OAAA,gBAAgB,MAAM,KAAK,eAAe,EAC1C,UAEX,oBACE,IACA,CAAC,CAAE,aACD,OAAO,gBAAgB,SAChB,SACT,CAEN,CACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface SpeechSynthesisOptions {
3
+ lang: string;
4
+ pitch: number;
5
+ }
6
+ declare module '@tiptap/core' {
7
+ interface Commands<ReturnType> {
8
+ speechSynthesis: {
9
+ startSpeechSynthesis: () => ReturnType;
10
+ stopSpeechSynthesis: () => ReturnType;
11
+ };
12
+ }
13
+ }
14
+ declare class SS_Node<O = any, S = any> extends Node<O, S> {
15
+ static create<O = any, S = any>(config?: any): SS_Node<O, S>;
16
+ }
17
+ export declare const SpeechSynthesis: SS_Node<SpeechSynthesisOptions, any>;
18
+ export {};
@@ -0,0 +1,34 @@
1
+ import { Node } from '@tiptap/core';
2
+ class SS_Node extends Node {
3
+ static create(config) {
4
+ return Node.create(config);
5
+ }
6
+ }
7
+ const SpeechSynthesis = SS_Node.create({
8
+ name: 'speechSynthesis',
9
+ addOptions() {
10
+ return {
11
+ lang: 'fr-FR',
12
+ pitch: 1,
13
+ };
14
+ },
15
+ addCommands() {
16
+ return {
17
+ startSpeechSynthesis:
18
+ () =>
19
+ ({ commands }) => (
20
+ (this.speechSynthesis = new SpeechSynthesisUtterance()),
21
+ (this.speechSynthesis.lang = this.options.lang),
22
+ (this.speechSynthesis.pitch = this.options.pitch),
23
+ (this.speechSynthesis.text = this.editor.getText()),
24
+ window.speechSynthesis.speak(this.speechSynthesis),
25
+ commands
26
+ ),
27
+ stopSpeechSynthesis:
28
+ () =>
29
+ ({ commands }) => (window.speechSynthesis.cancel(), commands),
30
+ };
31
+ },
32
+ });
33
+ export { SpeechSynthesis };
34
+ //# sourceMappingURL=speech-synthesis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-synthesis.js","sources":["../../src/speech-synthesis/speech-synthesis.ts"],"sourcesContent":["import { Node } from '@tiptap/core';\n\nexport interface SpeechSynthesisOptions {\n lang: string;\n pitch: number;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n speechSynthesis: {\n startSpeechSynthesis: () => ReturnType;\n stopSpeechSynthesis: () => ReturnType;\n };\n }\n}\n\nclass SS_Node<O = any, S = any> extends Node<O, S> {\n static create<O = any, S = any>(config?: any) {\n return Node.create(config) as SS_Node<O, S>;\n }\n}\n\nexport const SpeechSynthesis = SS_Node.create<SpeechSynthesisOptions>({\n name: 'speechSynthesis',\n addOptions() {\n return {\n lang: 'fr-FR',\n pitch: 1,\n };\n },\n addCommands() {\n return {\n startSpeechSynthesis:\n () =>\n ({ commands }) => {\n this.speechSynthesis = new SpeechSynthesisUtterance();\n this.speechSynthesis.lang = this.options.lang;\n this.speechSynthesis.pitch = this.options.pitch;\n this.speechSynthesis.text = this.editor.getText();\n\n window.speechSynthesis.speak(this.speechSynthesis);\n return commands;\n },\n stopSpeechSynthesis:\n () =>\n ({ commands }) => {\n window.speechSynthesis.cancel();\n return commands;\n },\n };\n },\n});\n"],"names":[],"mappings":";AAgBA,MAAM,gBAAkC,KAAW;AAAA,EACjD,OAAO,OAAyB,QAAc;AACrC,WAAA,KAAK,OAAO,MAAM;AAAA,EAC3B;AACF;AAEa,MAAA,kBAAkB,QAAQ,OAA+B;AAAA,EACpE,MAAM;AAAA,EACN,aAAa;AACJ,WAAA;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EAEX;AAAA,EACA,cAAc;AACL,WAAA;AAAA,MACL,sBACE,MACA,CAAC,EAAE,gBACI,KAAA,kBAAkB,IAAI,4BACtB,KAAA,gBAAgB,OAAO,KAAK,QAAQ,MACpC,KAAA,gBAAgB,QAAQ,KAAK,QAAQ,OAC1C,KAAK,gBAAgB,OAAO,KAAK,OAAO,QAAQ,GAEzC,OAAA,gBAAgB,MAAM,KAAK,eAAe,GAC1C;AAAA,MAEX,qBACE,MACA,CAAC,EAAE,gBACD,OAAO,gBAAgB,UAChB;AAAA,IACT;AAAA,EAEN;AACF,CAAC;"}
@@ -0,0 +1,3 @@
1
+ import { TableCell } from './table-cell';
2
+ export * from './table-cell';
3
+ export default TableCell;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
+ const extensionTableCell = require('@tiptap/extension-table-cell'),
4
+ TableCell = extensionTableCell.TableCell.extend({
5
+ addAttributes() {
6
+ var _a;
7
+ return {
8
+ ...((_a = this.parent) == null ? void 0 : _a.call(this)),
9
+ backgroundColor: {
10
+ default: null,
11
+ renderHTML: (attributes) =>
12
+ attributes.backgroundColor
13
+ ? { style: `background-color: ${attributes.backgroundColor}` }
14
+ : {},
15
+ parseHTML: (element) => {
16
+ var _a2, _b;
17
+ return (_b =
18
+ (_a2 = element.style) == null ? void 0 : _a2.backgroundColor) ==
19
+ null
20
+ ? void 0
21
+ : _b.replace(/['"]+/g, '');
22
+ },
23
+ },
24
+ };
25
+ },
26
+ });
27
+ exports.TableCell = TableCell;
28
+ //# sourceMappingURL=table-cell.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cell.cjs","sources":["../../src/table-cell/table-cell.ts"],"sourcesContent":["import { TableCell as TipTapTableCell } from '@tiptap/extension-table-cell';\n\n/**\n * This custom extension allows setting a background-color to table cells.\n * Apply with ̀`editor.chain().focus().setCellAttribute(\"backgroundColor\", color).run()`\n */\nexport const TableCell = TipTapTableCell.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n backgroundColor: {\n default: null,\n renderHTML: (attributes: { backgroundColor?: string }) => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n parseHTML: (element: { style?: { backgroundColor: string } }) => {\n return element.style?.backgroundColor?.replace(/['\"]+/g, '');\n },\n },\n };\n },\n});\n"],"names":["TipTapTableCell","_a"],"mappings":"iJAMa,UAAYA,6BAAgB,OAAO,CAC9C,eAAgB,QACP,MAAA,CACL,IAAG,QAAK,SAAL,0BACH,gBAAiB,CACf,QAAS,KACT,WAAa,YACN,WAAW,gBAIT,CACL,MAAO,qBAAqB,WAAW,eAAe,EAAA,EAJ/C,GAOX,UAAY,SAAqD,YAC/D,OAAO,IAAAC,IAAA,QAAQ,QAAR,YAAAA,IAAe,kBAAf,eAAgC,QAAQ,SAAU,GAC3D,CACF,CAAA,CAEJ,CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This custom extension allows setting a background-color to table cells.
3
+ * Apply with ̀`editor.chain().focus().setCellAttribute("backgroundColor", color).run()`
4
+ */
5
+ export declare const TableCell: import('@tiptap/core').Node<
6
+ import('@tiptap/extension-table-cell').TableCellOptions,
7
+ any
8
+ >;
@@ -0,0 +1,28 @@
1
+ import { TableCell as TableCell$1 } from '@tiptap/extension-table-cell';
2
+ const TableCell = TableCell$1.extend({
3
+ addAttributes() {
4
+ var _a;
5
+ return {
6
+ ...((_a = this.parent) == null ? void 0 : _a.call(this)),
7
+ backgroundColor: {
8
+ default: null,
9
+ renderHTML: (attributes) =>
10
+ attributes.backgroundColor
11
+ ? {
12
+ style: `background-color: ${attributes.backgroundColor}`,
13
+ }
14
+ : {},
15
+ parseHTML: (element) => {
16
+ var _a2, _b;
17
+ return (_b =
18
+ (_a2 = element.style) == null ? void 0 : _a2.backgroundColor) ==
19
+ null
20
+ ? void 0
21
+ : _b.replace(/['"]+/g, '');
22
+ },
23
+ },
24
+ };
25
+ },
26
+ });
27
+ export { TableCell };
28
+ //# sourceMappingURL=table-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cell.js","sources":["../../src/table-cell/table-cell.ts"],"sourcesContent":["import { TableCell as TipTapTableCell } from '@tiptap/extension-table-cell';\n\n/**\n * This custom extension allows setting a background-color to table cells.\n * Apply with ̀`editor.chain().focus().setCellAttribute(\"backgroundColor\", color).run()`\n */\nexport const TableCell = TipTapTableCell.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n backgroundColor: {\n default: null,\n renderHTML: (attributes: { backgroundColor?: string }) => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n parseHTML: (element: { style?: { backgroundColor: string } }) => {\n return element.style?.backgroundColor?.replace(/['\"]+/g, '');\n },\n },\n };\n },\n});\n"],"names":["TipTapTableCell","_a"],"mappings":";AAMa,MAAA,YAAYA,YAAgB,OAAO;AAAA,EAC9C,gBAAgB;;AACP,WAAA;AAAA,MACL,IAAG,UAAK,WAAL;AAAA,MACH,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,YAAY,CAAC,eACN,WAAW,kBAIT;AAAA,UACL,OAAO,qBAAqB,WAAW,eAAe;AAAA,QAAA,IAJ/C;QAOX,WAAW,CAAC,YAAqD;;AAC/D,kBAAO,MAAAC,MAAA,QAAQ,UAAR,gBAAAA,IAAe,oBAAf,mBAAgC,QAAQ,UAAU;AAAA,QAC3D;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ const core = require('@tiptap/core'),
3
+ htmlToJson = (html, extensions) => core.generateJSON(html, extensions);
4
+ module.exports = htmlToJson;
5
+ //# sourceMappingURL=html-to-json.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-to-json.cjs","sources":["../../../src/transform/html-to-json/html-to-json.ts"],"sourcesContent":["import { Extensions, HTMLContent, generateJSON } from '@tiptap/core';\n\nexport default (html: HTMLContent, extensions: Extensions) => {\n return generateJSON(html, extensions);\n};\n"],"names":["generateJSON"],"mappings":"gDAEA,WAAe,CAAC,KAAmB,aAC1BA,KAAA,aAAa,KAAM,UAAU"}
@@ -0,0 +1,6 @@
1
+ import { Extensions, HTMLContent } from '@tiptap/core';
2
+ declare const _default: (
3
+ html: HTMLContent,
4
+ extensions: Extensions,
5
+ ) => Record<string, any>;
6
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { generateJSON } from '@tiptap/core';
2
+ const htmlToJson = (html, extensions) => generateJSON(html, extensions);
3
+ export { htmlToJson as default };
4
+ //# sourceMappingURL=html-to-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-to-json.js","sources":["../../../src/transform/html-to-json/html-to-json.ts"],"sourcesContent":["import { Extensions, HTMLContent, generateJSON } from '@tiptap/core';\n\nexport default (html: HTMLContent, extensions: Extensions) => {\n return generateJSON(html, extensions);\n};\n"],"names":[],"mappings":";AAEA,MAAA,aAAe,CAAC,MAAmB,eAC1B,aAAa,MAAM,UAAU;"}
@@ -0,0 +1,3 @@
1
+ import { default as htmlToJson } from './html-to-json/html-to-json';
2
+ import { default as jsonToHtml } from './json-to-html/json-to-html';
3
+ export { htmlToJson, jsonToHtml };
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ const core = require('@tiptap/core'),
3
+ jsonToHtml = (json, extensions) => core.generateHTML(json, extensions);
4
+ module.exports = jsonToHtml;
5
+ //# sourceMappingURL=json-to-html.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-to-html.cjs","sources":["../../../src/transform/json-to-html/json-to-html.ts"],"sourcesContent":["import { Extensions, JSONContent, generateHTML } from '@tiptap/core';\n\nexport default (json: JSONContent, extensions: Extensions) => {\n return generateHTML(json, extensions);\n};\n"],"names":["generateHTML"],"mappings":"gDAEA,WAAe,CAAC,KAAmB,aAC1BA,KAAA,aAAa,KAAM,UAAU"}
@@ -0,0 +1,3 @@
1
+ import { Extensions, JSONContent } from '@tiptap/core';
2
+ declare const _default: (json: JSONContent, extensions: Extensions) => string;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { generateHTML } from '@tiptap/core';
2
+ const jsonToHtml = (json, extensions) => generateHTML(json, extensions);
3
+ export { jsonToHtml as default };
4
+ //# sourceMappingURL=json-to-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-to-html.js","sources":["../../../src/transform/json-to-html/json-to-html.ts"],"sourcesContent":["import { Extensions, JSONContent, generateHTML } from '@tiptap/core';\n\nexport default (json: JSONContent, extensions: Extensions) => {\n return generateHTML(json, extensions);\n};\n"],"names":[],"mappings":";AAEA,MAAA,aAAe,CAAC,MAAmB,eAC1B,aAAa,MAAM,UAAU;"}
@@ -0,0 +1,3 @@
1
+ import { Video } from './video';
2
+ export * from './video';
3
+ export default Video;
@@ -0,0 +1,119 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
+ const core = require('@tiptap/core'),
4
+ VIDEO_INPUT_REGEX = /!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\)/,
5
+ Video = core.Node.create({
6
+ name: 'video',
7
+ group: 'block',
8
+ draggable: !0,
9
+ selectable: !0,
10
+ addAttributes() {
11
+ return {
12
+ src: {
13
+ default: null,
14
+ parseHTML: (el) => el.getAttribute('src'),
15
+ renderHTML: (attrs) => ({ src: attrs.src }),
16
+ },
17
+ controls: {
18
+ default: !0,
19
+ parseHTML: (el) =>
20
+ el.getAttribute('controls')
21
+ ? el.getAttribute('controls')
22
+ : !!el.hasAttribute('controls'),
23
+ renderHTML: (attrs) => ({ controls: attrs.controls }),
24
+ },
25
+ documentId: {
26
+ default: '',
27
+ renderHTML: (attributes) => ({
28
+ 'data-document-id': attributes.documentId,
29
+ }),
30
+ parseHTML: (element) => element.getAttribute('data-document-id'),
31
+ },
32
+ isCaptation: {
33
+ default: !1,
34
+ renderHTML: (attributes) => ({
35
+ 'data-document-is-captation': attributes.isCaptation,
36
+ }),
37
+ parseHTML: (element) =>
38
+ element.getAttribute('data-document-is-captation'),
39
+ },
40
+ videoResolution: {
41
+ default: '404x720',
42
+ renderHTML: (attributes) => ({
43
+ 'data-video-resolution': attributes.videoResolution,
44
+ }),
45
+ parseHTML: (element) => element.getAttribute('data-video-resolution'),
46
+ },
47
+ width: {
48
+ renderHTML: (attributes) => ({ width: parseInt(attributes.width) }),
49
+ parseHTML: (element) => element.getAttribute('width'),
50
+ },
51
+ height: {
52
+ renderHTML: (attributes) => ({ height: parseInt(attributes.height) }),
53
+ parseHTML: (element) => element.getAttribute('height'),
54
+ },
55
+ };
56
+ },
57
+ parseHTML() {
58
+ return [
59
+ {
60
+ tag: 'div.video-wrapper>video,video',
61
+ getAttrs: (el) => ({ src: el.getAttribute('src') }),
62
+ },
63
+ ];
64
+ },
65
+ renderHTML({ HTMLAttributes }) {
66
+ return [
67
+ 'div',
68
+ { class: 'video-wrapper' },
69
+ ['video', core.mergeAttributes(HTMLAttributes)],
70
+ ];
71
+ },
72
+ addCommands() {
73
+ return {
74
+ setVideo:
75
+ (
76
+ id,
77
+ src,
78
+ isCaptation,
79
+ width = 350,
80
+ height = 197,
81
+ controls = !0,
82
+ controlslist = 'nodownload',
83
+ options,
84
+ ) =>
85
+ ({ commands, state }) =>
86
+ commands.insertContentAt(
87
+ state.selection,
88
+ `<video
89
+ controls="${controls}"
90
+ controlslist="${controlslist}"
91
+ src="${src}"
92
+ width="${width}"
93
+ height="${height}"
94
+ data-document-id="${id}"
95
+ data-document-is-captation="${isCaptation}"
96
+ data-video-resolution="${width}x${height}" />`,
97
+ options,
98
+ ),
99
+ toggleVideo:
100
+ () =>
101
+ ({ commands }) =>
102
+ commands.toggleNode(this.name, 'paragraph'),
103
+ };
104
+ },
105
+ addInputRules() {
106
+ return [
107
+ core.nodeInputRule({
108
+ find: VIDEO_INPUT_REGEX,
109
+ type: this.type,
110
+ getAttributes: (match) => {
111
+ const [, , src] = match;
112
+ return { src };
113
+ },
114
+ }),
115
+ ];
116
+ },
117
+ });
118
+ exports.Video = Video;
119
+ //# sourceMappingURL=video.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.cjs","sources":["../../src/video/video.ts"],"sourcesContent":["import { mergeAttributes, Node, nodeInputRule } from '@tiptap/core';\n\nexport interface VideoOptions {\n url: string;\n width: number;\n height: number;\n HTMLAttributes: Record<string, any>;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n video: {\n /**\n * Set a video node\n * @param options.updateSelection set to true will select the newly inserted content\n */\n setVideo: (\n id: string,\n src: string,\n isCaptation: boolean,\n width?: number,\n height?: number,\n controls?: boolean,\n controlslist?: string,\n options?: { updateSelection: boolean },\n ) => ReturnType;\n /**\n * Toggle a video\n */\n toggleVideo: (src: string) => ReturnType;\n };\n }\n}\n\nconst VIDEO_INPUT_REGEX = /!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\)/;\n\nexport const Video = Node.create({\n name: 'video',\n group: 'block',\n draggable: true,\n selectable: true,\n\n addAttributes() {\n return {\n src: {\n default: null,\n parseHTML: (el: any) => (el as HTMLSpanElement).getAttribute('src'),\n renderHTML: (attrs: any) => ({ src: attrs.src }),\n },\n controls: {\n default: true,\n parseHTML: (el: any) => {\n if ((el as HTMLSpanElement).getAttribute('controls')) {\n return (el as HTMLSpanElement).getAttribute('controls');\n } else if ((el as HTMLSpanElement).hasAttribute('controls')) {\n return true;\n } else {\n return false;\n }\n },\n renderHTML: (attrs: any) => ({ controls: attrs.controls }),\n },\n documentId: {\n default: '',\n renderHTML: (attributes: any) => {\n return { 'data-document-id': attributes.documentId };\n },\n parseHTML: (element: any) => element.getAttribute('data-document-id'),\n },\n isCaptation: {\n default: false,\n renderHTML: (attributes: any) => {\n return { 'data-document-is-captation': attributes.isCaptation };\n },\n parseHTML: (element: any) =>\n element.getAttribute('data-document-is-captation'),\n },\n videoResolution: {\n default: '404x720',\n renderHTML: (attributes: any) => {\n return { 'data-video-resolution': attributes.videoResolution };\n },\n parseHTML: (element: any) =>\n element.getAttribute('data-video-resolution'),\n },\n width: {\n renderHTML: (attributes: any) => {\n return {\n width: parseInt(attributes.width),\n };\n },\n parseHTML: (element) => element.getAttribute('width'),\n },\n height: {\n renderHTML: (attributes: any) => {\n return {\n height: parseInt(attributes.height),\n };\n },\n parseHTML: (element) => element.getAttribute('height'),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div.video-wrapper>video,video',\n getAttrs: (el: any) => ({\n src: (el as HTMLVideoElement).getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'div',\n { class: 'video-wrapper' },\n ['video', mergeAttributes(HTMLAttributes)],\n ];\n },\n\n addCommands() {\n return {\n setVideo:\n (\n id: string,\n src: string,\n isCaptation: boolean,\n width = 350,\n height = 197,\n controls = true,\n controlslist = 'nodownload',\n options,\n ) =>\n ({ commands, state }) => {\n return commands.insertContentAt(\n state.selection,\n `<video \n controls=\"${controls}\" \n controlslist=\"${controlslist}\"\n src=\"${src}\" \n width=\"${width}\"\n height=\"${height}\"\n data-document-id=\"${id}\" \n data-document-is-captation=\"${isCaptation}\"\n data-video-resolution=\"${width}x${height}\" />`,\n options,\n );\n },\n\n toggleVideo:\n () =>\n ({ commands }) =>\n commands.toggleNode(this.name, 'paragraph'),\n };\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: VIDEO_INPUT_REGEX,\n type: this.type,\n getAttributes: (match) => {\n const [, , src] = match;\n\n return { src };\n },\n }),\n ];\n },\n});\n"],"names":["Node","mergeAttributes","nodeInputRule"],"mappings":"mHAkCM,kBAAoB,gDAEb,MAAQA,UAAK,OAAO,CAC/B,KAAM,QACN,MAAO,QACP,UAAW,GACX,WAAY,GAEZ,eAAgB,CACP,MAAA,CACL,IAAK,CACH,QAAS,KACT,UAAY,IAAa,GAAuB,aAAa,KAAK,EAClE,WAAa,QAAgB,CAAE,IAAK,MAAM,GAAI,EAChD,EACA,SAAU,CACR,QAAS,GACT,UAAY,IACL,GAAuB,aAAa,UAAU,EACzC,GAAuB,aAAa,UAAU,EAC5C,KAAuB,aAAa,UAAU,EAM5D,WAAa,QAAgB,CAAE,SAAU,MAAM,QAAS,EAC1D,EACA,WAAY,CACV,QAAS,GACT,WAAa,aACJ,CAAE,mBAAoB,WAAW,aAE1C,UAAY,SAAiB,QAAQ,aAAa,kBAAkB,CACtE,EACA,YAAa,CACX,QAAS,GACT,WAAa,aACJ,CAAE,6BAA8B,WAAW,cAEpD,UAAY,SACV,QAAQ,aAAa,4BAA4B,CACrD,EACA,gBAAiB,CACf,QAAS,UACT,WAAa,aACJ,CAAE,wBAAyB,WAAW,kBAE/C,UAAY,SACV,QAAQ,aAAa,uBAAuB,CAChD,EACA,MAAO,CACL,WAAa,aACJ,CACL,MAAO,SAAS,WAAW,KAAK,CAAA,GAGpC,UAAY,SAAY,QAAQ,aAAa,OAAO,CACtD,EACA,OAAQ,CACN,WAAa,aACJ,CACL,OAAQ,SAAS,WAAW,MAAM,CAAA,GAGtC,UAAY,SAAY,QAAQ,aAAa,QAAQ,CACvD,CAAA,CAEJ,EAEA,WAAY,CACH,MAAA,CACL,CACE,IAAK,gCACL,SAAW,KAAa,CACtB,IAAM,GAAwB,aAAa,KAAK,CAAA,EAEpD,CAAA,CAEJ,EAEA,WAAW,CAAE,gBAAkB,CACtB,MAAA,CACL,MACA,CAAE,MAAO,eAAgB,EACzB,CAAC,QAASC,qBAAgB,cAAc,CAAC,CAAA,CAE7C,EAEA,aAAc,CACL,MAAA,CACL,SACE,CACE,GACA,IACA,YACA,MAAQ,IACR,OAAS,IACT,SAAW,GACX,aAAe,aACf,UAEF,CAAC,CAAE,SAAU,SACJ,SAAS,gBACd,MAAM,UACN;AAAA,0BACc,QAAQ;AAAA,8BACJ,YAAY;AAAA,qBACrB,GAAG;AAAA,uBACD,KAAK;AAAA,wBACJ,MAAM;AAAA,kCACI,EAAE;AAAA,4CACQ,WAAW;AAAA,uCAChB,KAAK,IAAI,MAAM,OAC1C,OAAA,EAIN,YACE,IACA,CAAC,CAAE,YACD,SAAS,WAAW,KAAK,KAAM,WAAW,CAAA,CAElD,EAEA,eAAgB,CACP,MAAA,CACLC,mBAAc,CACZ,KAAM,kBACN,KAAM,KAAK,KACX,cAAgB,OAAU,CACxB,KAAM,CAAK,CAAA,CAAA,GAAG,EAAI,MAElB,MAAO,CAAE,GAAI,CACf,CAAA,CACD,CAAA,CAEL,CACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface VideoOptions {
3
+ url: string;
4
+ width: number;
5
+ height: number;
6
+ HTMLAttributes: Record<string, any>;
7
+ }
8
+ declare module '@tiptap/core' {
9
+ interface Commands<ReturnType> {
10
+ video: {
11
+ /**
12
+ * Set a video node
13
+ * @param options.updateSelection set to true will select the newly inserted content
14
+ */
15
+ setVideo: (
16
+ id: string,
17
+ src: string,
18
+ isCaptation: boolean,
19
+ width?: number,
20
+ height?: number,
21
+ controls?: boolean,
22
+ controlslist?: string,
23
+ options?: {
24
+ updateSelection: boolean;
25
+ },
26
+ ) => ReturnType;
27
+ /**
28
+ * Toggle a video
29
+ */
30
+ toggleVideo: (src: string) => ReturnType;
31
+ };
32
+ }
33
+ }
34
+ export declare const Video: Node<any, any>;
@@ -0,0 +1,123 @@
1
+ import { Node, mergeAttributes, nodeInputRule } from '@tiptap/core';
2
+ const VIDEO_INPUT_REGEX = /!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\)/,
3
+ Video = Node.create({
4
+ name: 'video',
5
+ group: 'block',
6
+ draggable: !0,
7
+ selectable: !0,
8
+ addAttributes() {
9
+ return {
10
+ src: {
11
+ default: null,
12
+ parseHTML: (el) => el.getAttribute('src'),
13
+ renderHTML: (attrs) => ({ src: attrs.src }),
14
+ },
15
+ controls: {
16
+ default: !0,
17
+ parseHTML: (el) =>
18
+ el.getAttribute('controls')
19
+ ? el.getAttribute('controls')
20
+ : !!el.hasAttribute('controls'),
21
+ renderHTML: (attrs) => ({ controls: attrs.controls }),
22
+ },
23
+ documentId: {
24
+ default: '',
25
+ renderHTML: (attributes) => ({
26
+ 'data-document-id': attributes.documentId,
27
+ }),
28
+ parseHTML: (element) => element.getAttribute('data-document-id'),
29
+ },
30
+ isCaptation: {
31
+ default: !1,
32
+ renderHTML: (attributes) => ({
33
+ 'data-document-is-captation': attributes.isCaptation,
34
+ }),
35
+ parseHTML: (element) =>
36
+ element.getAttribute('data-document-is-captation'),
37
+ },
38
+ videoResolution: {
39
+ default: '404x720',
40
+ renderHTML: (attributes) => ({
41
+ 'data-video-resolution': attributes.videoResolution,
42
+ }),
43
+ parseHTML: (element) => element.getAttribute('data-video-resolution'),
44
+ },
45
+ width: {
46
+ renderHTML: (attributes) => ({
47
+ width: parseInt(attributes.width),
48
+ }),
49
+ parseHTML: (element) => element.getAttribute('width'),
50
+ },
51
+ height: {
52
+ renderHTML: (attributes) => ({
53
+ height: parseInt(attributes.height),
54
+ }),
55
+ parseHTML: (element) => element.getAttribute('height'),
56
+ },
57
+ };
58
+ },
59
+ parseHTML() {
60
+ return [
61
+ {
62
+ tag: 'div.video-wrapper>video,video',
63
+ getAttrs: (el) => ({
64
+ src: el.getAttribute('src'),
65
+ }),
66
+ },
67
+ ];
68
+ },
69
+ renderHTML({ HTMLAttributes }) {
70
+ return [
71
+ 'div',
72
+ { class: 'video-wrapper' },
73
+ ['video', mergeAttributes(HTMLAttributes)],
74
+ ];
75
+ },
76
+ addCommands() {
77
+ return {
78
+ setVideo:
79
+ (
80
+ id,
81
+ src,
82
+ isCaptation,
83
+ width = 350,
84
+ height = 197,
85
+ controls = !0,
86
+ controlslist = 'nodownload',
87
+ options,
88
+ ) =>
89
+ ({ commands, state }) =>
90
+ commands.insertContentAt(
91
+ state.selection,
92
+ `<video
93
+ controls="${controls}"
94
+ controlslist="${controlslist}"
95
+ src="${src}"
96
+ width="${width}"
97
+ height="${height}"
98
+ data-document-id="${id}"
99
+ data-document-is-captation="${isCaptation}"
100
+ data-video-resolution="${width}x${height}" />`,
101
+ options,
102
+ ),
103
+ toggleVideo:
104
+ () =>
105
+ ({ commands }) =>
106
+ commands.toggleNode(this.name, 'paragraph'),
107
+ };
108
+ },
109
+ addInputRules() {
110
+ return [
111
+ nodeInputRule({
112
+ find: VIDEO_INPUT_REGEX,
113
+ type: this.type,
114
+ getAttributes: (match) => {
115
+ const [, , src] = match;
116
+ return { src };
117
+ },
118
+ }),
119
+ ];
120
+ },
121
+ });
122
+ export { Video };
123
+ //# sourceMappingURL=video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.js","sources":["../../src/video/video.ts"],"sourcesContent":["import { mergeAttributes, Node, nodeInputRule } from '@tiptap/core';\n\nexport interface VideoOptions {\n url: string;\n width: number;\n height: number;\n HTMLAttributes: Record<string, any>;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n video: {\n /**\n * Set a video node\n * @param options.updateSelection set to true will select the newly inserted content\n */\n setVideo: (\n id: string,\n src: string,\n isCaptation: boolean,\n width?: number,\n height?: number,\n controls?: boolean,\n controlslist?: string,\n options?: { updateSelection: boolean },\n ) => ReturnType;\n /**\n * Toggle a video\n */\n toggleVideo: (src: string) => ReturnType;\n };\n }\n}\n\nconst VIDEO_INPUT_REGEX = /!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\)/;\n\nexport const Video = Node.create({\n name: 'video',\n group: 'block',\n draggable: true,\n selectable: true,\n\n addAttributes() {\n return {\n src: {\n default: null,\n parseHTML: (el: any) => (el as HTMLSpanElement).getAttribute('src'),\n renderHTML: (attrs: any) => ({ src: attrs.src }),\n },\n controls: {\n default: true,\n parseHTML: (el: any) => {\n if ((el as HTMLSpanElement).getAttribute('controls')) {\n return (el as HTMLSpanElement).getAttribute('controls');\n } else if ((el as HTMLSpanElement).hasAttribute('controls')) {\n return true;\n } else {\n return false;\n }\n },\n renderHTML: (attrs: any) => ({ controls: attrs.controls }),\n },\n documentId: {\n default: '',\n renderHTML: (attributes: any) => {\n return { 'data-document-id': attributes.documentId };\n },\n parseHTML: (element: any) => element.getAttribute('data-document-id'),\n },\n isCaptation: {\n default: false,\n renderHTML: (attributes: any) => {\n return { 'data-document-is-captation': attributes.isCaptation };\n },\n parseHTML: (element: any) =>\n element.getAttribute('data-document-is-captation'),\n },\n videoResolution: {\n default: '404x720',\n renderHTML: (attributes: any) => {\n return { 'data-video-resolution': attributes.videoResolution };\n },\n parseHTML: (element: any) =>\n element.getAttribute('data-video-resolution'),\n },\n width: {\n renderHTML: (attributes: any) => {\n return {\n width: parseInt(attributes.width),\n };\n },\n parseHTML: (element) => element.getAttribute('width'),\n },\n height: {\n renderHTML: (attributes: any) => {\n return {\n height: parseInt(attributes.height),\n };\n },\n parseHTML: (element) => element.getAttribute('height'),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div.video-wrapper>video,video',\n getAttrs: (el: any) => ({\n src: (el as HTMLVideoElement).getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'div',\n { class: 'video-wrapper' },\n ['video', mergeAttributes(HTMLAttributes)],\n ];\n },\n\n addCommands() {\n return {\n setVideo:\n (\n id: string,\n src: string,\n isCaptation: boolean,\n width = 350,\n height = 197,\n controls = true,\n controlslist = 'nodownload',\n options,\n ) =>\n ({ commands, state }) => {\n return commands.insertContentAt(\n state.selection,\n `<video \n controls=\"${controls}\" \n controlslist=\"${controlslist}\"\n src=\"${src}\" \n width=\"${width}\"\n height=\"${height}\"\n data-document-id=\"${id}\" \n data-document-is-captation=\"${isCaptation}\"\n data-video-resolution=\"${width}x${height}\" />`,\n options,\n );\n },\n\n toggleVideo:\n () =>\n ({ commands }) =>\n commands.toggleNode(this.name, 'paragraph'),\n };\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: VIDEO_INPUT_REGEX,\n type: this.type,\n getAttributes: (match) => {\n const [, , src] = match;\n\n return { src };\n },\n }),\n ];\n },\n});\n"],"names":[],"mappings":";AAkCA,MAAM,oBAAoB,iDAEb,QAAQ,KAAK,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EAEZ,gBAAgB;AACP,WAAA;AAAA,MACL,KAAK;AAAA,QACH,SAAS;AAAA,QACT,WAAW,CAAC,OAAa,GAAuB,aAAa,KAAK;AAAA,QAClE,YAAY,CAAC,WAAgB,EAAE,KAAK,MAAM,IAAI;AAAA,MAChD;AAAA,MACA,UAAU;AAAA,QACR,SAAS;AAAA,QACT,WAAW,CAAC,OACL,GAAuB,aAAa,UAAU,IACzC,GAAuB,aAAa,UAAU,IAC5C,KAAuB,aAAa,UAAU;AAAA,QAM5D,YAAY,CAAC,WAAgB,EAAE,UAAU,MAAM,SAAS;AAAA,MAC1D;AAAA,MACA,YAAY;AAAA,QACV,SAAS;AAAA,QACT,YAAY,CAAC,gBACJ,EAAE,oBAAoB,WAAW;QAE1C,WAAW,CAAC,YAAiB,QAAQ,aAAa,kBAAkB;AAAA,MACtE;AAAA,MACA,aAAa;AAAA,QACX,SAAS;AAAA,QACT,YAAY,CAAC,gBACJ,EAAE,8BAA8B,WAAW;QAEpD,WAAW,CAAC,YACV,QAAQ,aAAa,4BAA4B;AAAA,MACrD;AAAA,MACA,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,YAAY,CAAC,gBACJ,EAAE,yBAAyB,WAAW;QAE/C,WAAW,CAAC,YACV,QAAQ,aAAa,uBAAuB;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,QACL,YAAY,CAAC,gBACJ;AAAA,UACL,OAAO,SAAS,WAAW,KAAK;AAAA,QAAA;AAAA,QAGpC,WAAW,CAAC,YAAY,QAAQ,aAAa,OAAO;AAAA,MACtD;AAAA,MACA,QAAQ;AAAA,QACN,YAAY,CAAC,gBACJ;AAAA,UACL,QAAQ,SAAS,WAAW,MAAM;AAAA,QAAA;AAAA,QAGtC,WAAW,CAAC,YAAY,QAAQ,aAAa,QAAQ;AAAA,MACvD;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,KAAK;AAAA,QACL,UAAU,CAAC,QAAa;AAAA,UACtB,KAAM,GAAwB,aAAa,KAAK;AAAA,QAAA;AAAA,MAEpD;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,WAAW,EAAE,kBAAkB;AACtB,WAAA;AAAA,MACL;AAAA,MACA,EAAE,OAAO,gBAAgB;AAAA,MACzB,CAAC,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAAA;AAAA,EAE7C;AAAA,EAEA,cAAc;AACL,WAAA;AAAA,MACL,UACE,CACE,IACA,KACA,aACA,QAAQ,KACR,SAAS,KACT,WAAW,IACX,eAAe,cACf,YAEF,CAAC,EAAE,UAAU,YACJ,SAAS;AAAA,QACd,MAAM;AAAA,QACN;AAAA,0BACc,QAAQ;AAAA,8BACJ,YAAY;AAAA,qBACrB,GAAG;AAAA,uBACD,KAAK;AAAA,wBACJ,MAAM;AAAA,kCACI,EAAE;AAAA,4CACQ,WAAW;AAAA,uCAChB,KAAK,IAAI,MAAM;AAAA,QAC1C;AAAA,MAAA;AAAA,MAIN,aACE,MACA,CAAC,EAAE,eACD,SAAS,WAAW,KAAK,MAAM,WAAW;AAAA,IAAA;AAAA,EAElD;AAAA,EAEA,gBAAgB;AACP,WAAA;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,MAAM,KAAK;AAAA,QACX,eAAe,CAAC,UAAU;AACxB,gBAAM,CAAK,EAAA,EAAA,GAAG,IAAI;AAElB,iBAAO,EAAE,IAAI;AAAA,QACf;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AACF,CAAC;"}