@edifice.io/tiptap-extensions 2.0.0-develop-rc.13 → 2.0.0-develop-rc.15

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 (113) hide show
  1. package/README.md +8 -5
  2. package/dist/abbr/abbr.cjs +1 -32
  3. package/dist/abbr/abbr.cjs.map +1 -1
  4. package/dist/abbr/abbr.d.ts +13 -13
  5. package/dist/abbr/abbr.js +13 -17
  6. package/dist/abbr/abbr.js.map +1 -1
  7. package/dist/alert/alert.cjs +1 -32
  8. package/dist/alert/alert.cjs.map +1 -1
  9. package/dist/alert/alert.js +22 -20
  10. package/dist/alert/alert.js.map +1 -1
  11. package/dist/attachment/attachment-transformer.cjs +2 -0
  12. package/dist/attachment/attachment-transformer.cjs.map +1 -0
  13. package/dist/attachment/attachment-transformer.d.ts +12 -0
  14. package/dist/attachment/attachment-transformer.js +76 -0
  15. package/dist/attachment/attachment-transformer.js.map +1 -0
  16. package/dist/attachment/attachment.cjs +1 -73
  17. package/dist/attachment/attachment.cjs.map +1 -1
  18. package/dist/attachment/attachment.d.ts +7 -7
  19. package/dist/attachment/attachment.js +29 -40
  20. package/dist/attachment/attachment.js.map +1 -1
  21. package/dist/attachment/index.d.ts +1 -0
  22. package/dist/audio/audio.cjs +2 -52
  23. package/dist/audio/audio.cjs.map +1 -1
  24. package/dist/audio/audio.d.ts +14 -18
  25. package/dist/audio/audio.js +25 -28
  26. package/dist/audio/audio.js.map +1 -1
  27. package/dist/font-size/font-size.cjs +1 -48
  28. package/dist/font-size/font-size.cjs.map +1 -1
  29. package/dist/font-size/font-size.d.ts +14 -14
  30. package/dist/font-size/font-size.js +17 -29
  31. package/dist/font-size/font-size.js.map +1 -1
  32. package/dist/heading/heading.cjs +1 -61
  33. package/dist/heading/heading.cjs.map +1 -1
  34. package/dist/heading/heading.d.ts +13 -11
  35. package/dist/heading/heading.js +25 -39
  36. package/dist/heading/heading.js.map +1 -1
  37. package/dist/highlight/highlight.cjs +1 -25
  38. package/dist/highlight/highlight.cjs.map +1 -1
  39. package/dist/highlight/highlight.d.ts +1 -4
  40. package/dist/highlight/highlight.js +13 -11
  41. package/dist/highlight/highlight.js.map +1 -1
  42. package/dist/hyperlink/hyperlink.cjs +1 -47
  43. package/dist/hyperlink/hyperlink.cjs.map +1 -1
  44. package/dist/hyperlink/hyperlink.d.ts +25 -28
  45. package/dist/hyperlink/hyperlink.js +19 -21
  46. package/dist/hyperlink/hyperlink.js.map +1 -1
  47. package/dist/iframe/iframe.cjs +1 -69
  48. package/dist/iframe/iframe.cjs.map +1 -1
  49. package/dist/iframe/iframe.d.ts +15 -13
  50. package/dist/iframe/iframe.js +32 -48
  51. package/dist/iframe/iframe.js.map +1 -1
  52. package/dist/image/image.cjs +2 -0
  53. package/dist/image/image.cjs.map +1 -0
  54. package/dist/image/image.d.ts +26 -0
  55. package/dist/image/image.js +178 -0
  56. package/dist/image/image.js.map +1 -0
  57. package/dist/image/index.d.ts +3 -3
  58. package/dist/index.cjs +1 -43
  59. package/dist/index.js +24 -22
  60. package/dist/index.js.map +1 -1
  61. package/dist/line-height/line-height.cjs +1 -33
  62. package/dist/line-height/line-height.cjs.map +1 -1
  63. package/dist/line-height/line-height.js +15 -18
  64. package/dist/line-height/line-height.js.map +1 -1
  65. package/dist/linker/linker.cjs +1 -95
  66. package/dist/linker/linker.cjs.map +1 -1
  67. package/dist/linker/linker.d.ts +18 -18
  68. package/dist/linker/linker.js +49 -57
  69. package/dist/linker/linker.js.map +1 -1
  70. package/dist/mathjax/mathjax.cjs +1 -47
  71. package/dist/mathjax/mathjax.cjs.map +1 -1
  72. package/dist/mathjax/mathjax.js +20 -30
  73. package/dist/mathjax/mathjax.js.map +1 -1
  74. package/dist/paragraph/paragraph.cjs +1 -13
  75. package/dist/paragraph/paragraph.cjs.map +1 -1
  76. package/dist/paragraph/paragraph.d.ts +1 -4
  77. package/dist/paragraph/paragraph.js +8 -6
  78. package/dist/paragraph/paragraph.js.map +1 -1
  79. package/dist/speech-recognition/speech-recognition.cjs +1 -76
  80. package/dist/speech-recognition/speech-recognition.cjs.map +1 -1
  81. package/dist/speech-recognition/speech-recognition.d.ts +13 -13
  82. package/dist/speech-recognition/speech-recognition.js +36 -57
  83. package/dist/speech-recognition/speech-recognition.js.map +1 -1
  84. package/dist/speech-synthesis/speech-synthesis.cjs +1 -32
  85. package/dist/speech-synthesis/speech-synthesis.cjs.map +1 -1
  86. package/dist/speech-synthesis/speech-synthesis.d.ts +10 -10
  87. package/dist/speech-synthesis/speech-synthesis.js +10 -19
  88. package/dist/speech-synthesis/speech-synthesis.js.map +1 -1
  89. package/dist/table-cell/table-cell.cjs +1 -27
  90. package/dist/table-cell/table-cell.cjs.map +1 -1
  91. package/dist/table-cell/table-cell.d.ts +1 -4
  92. package/dist/table-cell/table-cell.js +12 -17
  93. package/dist/table-cell/table-cell.js.map +1 -1
  94. package/dist/transform/html-to-json/html-to-json.cjs +1 -4
  95. package/dist/transform/html-to-json/html-to-json.cjs.map +1 -1
  96. package/dist/transform/html-to-json/html-to-json.d.ts +1 -4
  97. package/dist/transform/html-to-json/html-to-json.js +4 -2
  98. package/dist/transform/html-to-json/html-to-json.js.map +1 -1
  99. package/dist/transform/json-to-html/json-to-html.cjs +1 -4
  100. package/dist/transform/json-to-html/json-to-html.cjs.map +1 -1
  101. package/dist/transform/json-to-html/json-to-html.js +4 -2
  102. package/dist/transform/json-to-html/json-to-html.js.map +1 -1
  103. package/dist/video/video.cjs +2 -111
  104. package/dist/video/video.cjs.map +1 -1
  105. package/dist/video/video.d.ts +20 -29
  106. package/dist/video/video.js +90 -114
  107. package/dist/video/video.js.map +1 -1
  108. package/package.json +24 -16
  109. package/dist/image/custom-image.cjs +0 -163
  110. package/dist/image/custom-image.cjs.map +0 -1
  111. package/dist/image/custom-image.d.ts +0 -27
  112. package/dist/image/custom-image.js +0 -181
  113. package/dist/image/custom-image.js.map +0 -1
@@ -1,91 +1,4 @@
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
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@tiptap/core"),VIDEO_INPUT_REGEX=/!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\)/,Video=core.Node.create({name:"video",group:"block",draggable:!0,selectable:!0,addAttributes(){return{src:{default:null,parseHTML:el=>el.getAttribute("src"),renderHTML:attrs=>({src:attrs.src})},controls:{default:!0,parseHTML:el=>el.getAttribute("controls")?el.getAttribute("controls"):!!el.hasAttribute("controls"),renderHTML:attrs=>({controls:attrs.controls})},documentId:{default:"",renderHTML:attributes=>({"data-document-id":attributes.documentId}),parseHTML:element=>element.getAttribute("data-document-id")},isCaptation:{default:!1,renderHTML:attributes=>({"data-document-is-captation":attributes.isCaptation}),parseHTML:element=>element.getAttribute("data-document-is-captation")},videoResolution:{default:"404x720",renderHTML:attributes=>({"data-video-resolution":attributes.videoResolution}),parseHTML:element=>element.getAttribute("data-video-resolution")},width:{renderHTML:attributes=>({width:parseInt(attributes.width)}),parseHTML:element=>element.getAttribute("width")},height:{renderHTML:attributes=>({height:parseInt(attributes.height)}),parseHTML:element=>element.getAttribute("height")}}},parseHTML(){return[{tag:"div.video-wrapper>video,video",getAttrs:el=>({src:el.getAttribute("src")})}]},renderHTML({HTMLAttributes}){return["div",{class:"video-wrapper"},["video",core.mergeAttributes(HTMLAttributes)]]},addCommands(){return{setVideo:(id,src,isCaptation,width=350,height=197,controls=!0,controlslist="nodownload",options)=>({commands,state})=>commands.insertContentAt(state.selection,`<video
89
2
  controls="${controls}"
90
3
  controlslist="${controlslist}"
91
4
  src="${src}"
@@ -93,27 +6,5 @@ const core = require('@tiptap/core'),
93
6
  height="${height}"
94
7
  data-document-id="${id}"
95
8
  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;
9
+ data-video-resolution="${width}x${height}" />`,options),toggleVideo:()=>({commands})=>commands.toggleNode(this.name,"paragraph")}},addInputRules(){return[core.nodeInputRule({find:VIDEO_INPUT_REGEX,type:this.type,getAttributes:match=>{const[,,src]=match;return{src}}})]}});exports.Video=Video;
119
10
  //# sourceMappingURL=video.cjs.map
@@ -1 +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"}
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,UAAW,GAErD,UAAY,SAAiB,QAAQ,aAAa,kBAAkB,CACtE,EACA,YAAa,CACX,QAAS,GACT,WAAa,aACJ,CAAE,6BAA8B,WAAW,WAAY,GAEhE,UAAY,SACV,QAAQ,aAAa,4BAA4B,CACrD,EACA,gBAAiB,CACf,QAAS,UACT,WAAa,aACJ,CAAE,wBAAyB,WAAW,eAAgB,GAE/D,UAAY,SACV,QAAQ,aAAa,uBAAuB,CAChD,EACA,MAAO,CACL,WAAa,aACJ,CACL,MAAO,SAAS,WAAW,KAAK,CAClC,GAEF,UAAY,SAAY,QAAQ,aAAa,OAAO,CACtD,EACA,OAAQ,CACN,WAAa,aACJ,CACL,OAAQ,SAAS,WAAW,MAAM,CACpC,GAEF,UAAY,SAAY,QAAQ,aAAa,QAAQ,CAAA,CAEzD,CACF,EAEA,WAAY,CACH,MAAA,CACL,CACE,IAAK,gCACL,SAAW,KAAa,CACtB,IAAM,GAAwB,aAAa,KAAK,CAClD,EAAA,CAEJ,CACF,EAEA,WAAW,CAAE,gBAAkB,CACtB,MAAA,CACL,MACA,CAAE,MAAO,eAAgB,EACzB,CAAC,QAASC,KAAgB,gBAAA,cAAc,CAAC,CAC3C,CACF,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,OACF,EAGJ,YACE,IACA,CAAC,CAAE,YACD,SAAS,WAAW,KAAK,KAAM,WAAW,CAChD,CACF,EAEA,eAAgB,CACP,MAAA,CACLC,mBAAc,CACZ,KAAM,kBACN,KAAM,KAAK,KACX,cAAgB,OAAU,CACxB,KAAM,CAAA,CAAA,CAAK,GAAG,EAAI,MAElB,MAAO,CAAE,GAAI,CAAA,CAEhB,CAAA,CACH,CAAA,CAEJ,CAAC"}
@@ -1,34 +1,25 @@
1
1
  import { Node } from '@tiptap/core';
2
2
  export interface VideoOptions {
3
- url: string;
4
- width: number;
5
- height: number;
6
- HTMLAttributes: Record<string, any>;
3
+ url: string;
4
+ width: number;
5
+ height: number;
6
+ HTMLAttributes: Record<string, any>;
7
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
- }
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: (id: string, src: string, isCaptation: boolean, width?: number, height?: number, controls?: boolean, controlslist?: string, options?: {
16
+ updateSelection: boolean;
17
+ }) => ReturnType;
18
+ /**
19
+ * Toggle a video
20
+ */
21
+ toggleVideo: (src: string) => ReturnType;
22
+ };
23
+ }
33
24
  }
34
25
  export declare const Video: Node<any, any>;
@@ -1,95 +1,72 @@
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
1
+ import { Node, mergeAttributes, nodeInputRule } from "@tiptap/core";
2
+ const VIDEO_INPUT_REGEX = /!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\)/, Video = Node.create({
3
+ name: "video",
4
+ group: "block",
5
+ draggable: !0,
6
+ selectable: !0,
7
+ addAttributes() {
8
+ return {
9
+ src: {
10
+ default: null,
11
+ parseHTML: (el) => el.getAttribute("src"),
12
+ renderHTML: (attrs) => ({ src: attrs.src })
13
+ },
14
+ controls: {
15
+ default: !0,
16
+ parseHTML: (el) => el.getAttribute("controls") ? el.getAttribute("controls") : !!el.hasAttribute("controls"),
17
+ renderHTML: (attrs) => ({ controls: attrs.controls })
18
+ },
19
+ documentId: {
20
+ default: "",
21
+ renderHTML: (attributes) => ({ "data-document-id": attributes.documentId }),
22
+ parseHTML: (element) => element.getAttribute("data-document-id")
23
+ },
24
+ isCaptation: {
25
+ default: !1,
26
+ renderHTML: (attributes) => ({ "data-document-is-captation": attributes.isCaptation }),
27
+ parseHTML: (element) => element.getAttribute("data-document-is-captation")
28
+ },
29
+ videoResolution: {
30
+ default: "404x720",
31
+ renderHTML: (attributes) => ({ "data-video-resolution": attributes.videoResolution }),
32
+ parseHTML: (element) => element.getAttribute("data-video-resolution")
33
+ },
34
+ width: {
35
+ renderHTML: (attributes) => ({
36
+ width: parseInt(attributes.width)
37
+ }),
38
+ parseHTML: (element) => element.getAttribute("width")
39
+ },
40
+ height: {
41
+ renderHTML: (attributes) => ({
42
+ height: parseInt(attributes.height)
43
+ }),
44
+ parseHTML: (element) => element.getAttribute("height")
45
+ }
46
+ };
47
+ },
48
+ parseHTML() {
49
+ return [
50
+ {
51
+ tag: "div.video-wrapper>video,video",
52
+ getAttrs: (el) => ({
53
+ src: el.getAttribute("src")
54
+ })
55
+ }
56
+ ];
57
+ },
58
+ renderHTML({ HTMLAttributes }) {
59
+ return [
60
+ "div",
61
+ { class: "video-wrapper" },
62
+ ["video", mergeAttributes(HTMLAttributes)]
63
+ ];
64
+ },
65
+ addCommands() {
66
+ return {
67
+ setVideo: (id, src, isCaptation, width = 350, height = 197, controls = !0, controlslist = "nodownload", options) => ({ commands, state }) => commands.insertContentAt(
68
+ state.selection,
69
+ `<video
93
70
  controls="${controls}"
94
71
  controlslist="${controlslist}"
95
72
  src="${src}"
@@ -98,26 +75,25 @@ const VIDEO_INPUT_REGEX = /!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\)/,
98
75
  data-document-id="${id}"
99
76
  data-document-is-captation="${isCaptation}"
100
77
  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 };
78
+ options
79
+ ),
80
+ toggleVideo: () => ({ commands }) => commands.toggleNode(this.name, "paragraph")
81
+ };
82
+ },
83
+ addInputRules() {
84
+ return [
85
+ nodeInputRule({
86
+ find: VIDEO_INPUT_REGEX,
87
+ type: this.type,
88
+ getAttributes: (match) => {
89
+ const [, , src] = match;
90
+ return { src };
91
+ }
92
+ })
93
+ ];
94
+ }
95
+ });
96
+ export {
97
+ Video
98
+ };
123
99
  //# sourceMappingURL=video.js.map
@@ -1 +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;"}
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":"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"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@edifice.io/tiptap-extensions",
3
- "version": "2.0.0-develop-rc.13",
3
+ "version": "2.0.0-develop-rc.15",
4
4
  "description": "Edifice Rich Text Editor Extensions",
5
- "homepage": "https://github.com/edificeio/edifice-ui/tree/main/packages/tiptap/extensions#readme",
5
+ "homepage": "https://github.com/edificeio/edifice-frontend-framework/tree/main/packages/extensions#readme",
6
6
  "bugs": {
7
- "url": "https://github.com/edificeio/edifice-ui/issues"
7
+ "url": "https://github.com/edificeio/edifice-frontend-framework/issues"
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "https://github.com/edificeio/edifice-ui.git"
11
+ "url": "https://github.com/edificeio/edifice-frontend-framework.git",
12
+ "directory": "packages/extensions"
12
13
  },
13
14
  "license": "AGPL-3.0",
14
15
  "author": "Edifice",
@@ -102,14 +103,6 @@
102
103
  "files": [
103
104
  "dist"
104
105
  ],
105
- "scripts": {
106
- "build": "vite build",
107
- "fix": "eslint . --ext ts --report-unused-disable-directives --max-warnings 0",
108
- "format": "pnpm run format:write && pnpm run format:check",
109
- "format:check": "npx prettier --check .",
110
- "format:write": "npx prettier --write .",
111
- "lint": "eslint \"**/*.ts\""
112
- },
113
106
  "dependencies": {
114
107
  "@tiptap/core": "2.3.0",
115
108
  "@tiptap/extension-bold": "2.3.0",
@@ -124,13 +117,28 @@
124
117
  "@tiptap/extension-text-style": "2.3.0",
125
118
  "@tiptap/html": "2.3.0",
126
119
  "@tiptap/pm": "2.3.0",
127
- "@tiptap/starter-kit": "2.3.0"
120
+ "@tiptap/starter-kit": "2.3.0",
121
+ "prosemirror-model": "^1.0.0",
122
+ "prosemirror-state": "^1.4.3",
123
+ "prosemirror-transform": "^1.0.0",
124
+ "prosemirror-view": "^1.27.0",
125
+ "vite": "^5.4.11",
126
+ "vite-plugin-dts": "^4.1.0",
127
+ "@edifice.io/utilities": "2.0.0-develop-rc.15"
128
128
  },
129
129
  "devDependencies": {
130
- "@types/dom-speech-recognition": "^0.0.1"
130
+ "@types/dom-speech-recognition": "^0.0.1",
131
+ "@edifice.io/ts-client": "2.0.0-develop-rc.15"
131
132
  },
132
133
  "publishConfig": {
133
134
  "access": "public"
134
135
  },
135
- "gitHead": "0139116ce0d4be358d1e6ca110bb7cd403f3a581"
136
- }
136
+ "scripts": {
137
+ "build": "vite build",
138
+ "fix": "eslint . --ext ts --report-unused-disable-directives --max-warnings 0",
139
+ "format": "pnpm run format:write && pnpm run format:check",
140
+ "format:check": "npx prettier --check \"src/**/*.ts\"",
141
+ "format:write": "npx prettier --write \"src/**/*.ts\"",
142
+ "lint": "eslint \"**/*.ts\""
143
+ }
144
+ }