payload-richtext-tiptap 0.0.148 → 0.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/body/ArticleBody.d.ts.map +1 -1
- package/dist/src/body/ArticleBody.js +2 -1
- package/dist/src/body/ArticleBody.js.map +1 -1
- package/dist/src/client.d.ts +2 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +3 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts +2 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js +4 -2
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +22 -21
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/tiptapSchema.d.ts +66 -66
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleBody.d.ts","sourceRoot":"","sources":["../../../src/body/ArticleBody.tsx"],"names":[],"mappings":"AAYA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;IACV,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AACF,eAAO,MAAM,WAAW,sGAMnB,KAAK,
|
|
1
|
+
{"version":3,"file":"ArticleBody.d.ts","sourceRoot":"","sources":["../../../src/body/ArticleBody.tsx"],"names":[],"mappings":"AAYA,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;IACV,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AACF,eAAO,MAAM,WAAW,sGAMnB,KAAK,iCA8BT,CAAC"}
|
|
@@ -26,7 +26,8 @@ export const ArticleBody = /*#__PURE__*/ memo(({ body, wrapperClassName, article
|
|
|
26
26
|
}),
|
|
27
27
|
/*#__PURE__*/ _jsx(EmbedContentInlineRenderer, {
|
|
28
28
|
body: json,
|
|
29
|
-
getVideoAspect: getVideoAspect
|
|
29
|
+
getVideoAspect: getVideoAspect,
|
|
30
|
+
prefix: TRT_ARTICLE_BODY_ID
|
|
30
31
|
})
|
|
31
32
|
]
|
|
32
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/body/ArticleBody.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { memo } from \"react\";\r\n// import './article-custom.scss';\r\n\r\nimport { appendRequiredBlocksMarkerClient } from \"../fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js\";\r\nimport { ServersideTiptapBody } from \"../fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js\";\r\nimport { EmbedContentInlineRenderer } from \"../fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js\";\r\nimport { cn } from \"../fields/TiptapEditor/lib/utils/index.js\";\r\n\r\nconst TRT_ARTICLE_BODY_ID = \"TRT-ARTICLE-BODY-ID\";\r\n\r\ntype Props = {\r\n body: any;\r\n wrapperClassName?: string;\r\n articleClassName?: string;\r\n getVideoAspect?: () => void;\r\n};\r\nexport const ArticleBody = memo(\r\n ({\r\n body,\r\n wrapperClassName,\r\n articleClassName,\r\n getVideoAspect,\r\n }: Props) => {\r\n const json = appendRequiredBlocksMarkerClient(body);\r\n if (!json) return null;\r\n return (\r\n <div\r\n className={cn(\r\n \"text-grey-12 lg:grid trt-article-body-wrapper trt-article-page-wrapper w-full\",\r\n wrapperClassName\r\n )}\r\n >\r\n <div />\r\n <div id={TRT_ARTICLE_BODY_ID} className=\"w-full flex flex-col\">\r\n <div\r\n className={cn(\r\n \"!selection:text-purple-900 font-notosans lg:text-xl lg:leading-8 md:text-lg md:leading-[30px] text-base\",\r\n articleClassName\r\n )}\r\n >\r\n <ServersideTiptapBody body={json} />\r\n </div>\r\n </div>\r\n <EmbedContentInlineRenderer\r\n body={json}\r\n getVideoAspect={getVideoAspect}\r\n />\r\n </div>\r\n );\r\n },\r\n (prev, next) => prev.body?.content?.length === next.body?.content?.length\r\n);\r\n"],"names":["memo","appendRequiredBlocksMarkerClient","ServersideTiptapBody","EmbedContentInlineRenderer","cn","TRT_ARTICLE_BODY_ID","ArticleBody","body","wrapperClassName","articleClassName","getVideoAspect","json","div","className","id","prev","next","content","length"],"mappings":"AAAA;;AAEA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,kCAAkC;AAElC,SAASC,gCAAgC,QAAQ,sFAAsF;AACvI,SAASC,oBAAoB,QAAQ,uEAAuE;AAC5G,SAASC,0BAA0B,QAAQ,6EAA6E;AACxH,SAASC,EAAE,QAAQ,4CAA4C;AAE/D,MAAMC,sBAAsB;AAQ5B,OAAO,MAAMC,4BAAcN,KACzB,CAAC,EACCO,IAAI,EACJC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACR;IACN,MAAMC,OAAOV,iCAAiCM;IAC9C,IAAI,CAACI,MAAM,OAAO;IAClB,qBACE,MAACC;QACCC,WAAWT,GACT,iFACAI;;0BAGF,KAACI;0BACD,KAACA;gBAAIE,IAAIT;gBAAqBQ,WAAU;0BACtC,cAAA,KAACD;oBACCC,WAAWT,GACT,2GACAK;8BAGF,cAAA,KAACP;wBAAqBK,MAAMI;;;;0BAGhC,KAACR;gBACCI,MAAMI;gBACND,gBAAgBA;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/body/ArticleBody.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { memo } from \"react\";\r\n// import './article-custom.scss';\r\n\r\nimport { appendRequiredBlocksMarkerClient } from \"../fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js\";\r\nimport { ServersideTiptapBody } from \"../fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js\";\r\nimport { EmbedContentInlineRenderer } from \"../fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js\";\r\nimport { cn } from \"../fields/TiptapEditor/lib/utils/index.js\";\r\n\r\nconst TRT_ARTICLE_BODY_ID = \"TRT-ARTICLE-BODY-ID\";\r\n\r\ntype Props = {\r\n body: any;\r\n wrapperClassName?: string;\r\n articleClassName?: string;\r\n getVideoAspect?: () => void;\r\n};\r\nexport const ArticleBody = memo(\r\n ({\r\n body,\r\n wrapperClassName,\r\n articleClassName,\r\n getVideoAspect,\r\n }: Props) => {\r\n const json = appendRequiredBlocksMarkerClient(body);\r\n if (!json) return null;\r\n return (\r\n <div\r\n className={cn(\r\n \"text-grey-12 lg:grid trt-article-body-wrapper trt-article-page-wrapper w-full\",\r\n wrapperClassName\r\n )}\r\n >\r\n <div />\r\n <div id={TRT_ARTICLE_BODY_ID} className=\"w-full flex flex-col\">\r\n <div\r\n className={cn(\r\n \"!selection:text-purple-900 font-notosans lg:text-xl lg:leading-8 md:text-lg md:leading-[30px] text-base\",\r\n articleClassName\r\n )}\r\n >\r\n <ServersideTiptapBody body={json} />\r\n </div>\r\n </div>\r\n <EmbedContentInlineRenderer\r\n body={json}\r\n getVideoAspect={getVideoAspect}\r\n prefix={TRT_ARTICLE_BODY_ID}\r\n />\r\n </div>\r\n );\r\n },\r\n (prev, next) => prev.body?.content?.length === next.body?.content?.length\r\n);\r\n"],"names":["memo","appendRequiredBlocksMarkerClient","ServersideTiptapBody","EmbedContentInlineRenderer","cn","TRT_ARTICLE_BODY_ID","ArticleBody","body","wrapperClassName","articleClassName","getVideoAspect","json","div","className","id","prefix","prev","next","content","length"],"mappings":"AAAA;;AAEA,SAASA,IAAI,QAAQ,QAAQ;AAC7B,kCAAkC;AAElC,SAASC,gCAAgC,QAAQ,sFAAsF;AACvI,SAASC,oBAAoB,QAAQ,uEAAuE;AAC5G,SAASC,0BAA0B,QAAQ,6EAA6E;AACxH,SAASC,EAAE,QAAQ,4CAA4C;AAE/D,MAAMC,sBAAsB;AAQ5B,OAAO,MAAMC,4BAAcN,KACzB,CAAC,EACCO,IAAI,EACJC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACR;IACN,MAAMC,OAAOV,iCAAiCM;IAC9C,IAAI,CAACI,MAAM,OAAO;IAClB,qBACE,MAACC;QACCC,WAAWT,GACT,iFACAI;;0BAGF,KAACI;0BACD,KAACA;gBAAIE,IAAIT;gBAAqBQ,WAAU;0BACtC,cAAA,KAACD;oBACCC,WAAWT,GACT,2GACAK;8BAGF,cAAA,KAACP;wBAAqBK,MAAMI;;;;0BAGhC,KAACR;gBACCI,MAAMI;gBACND,gBAAgBA;gBAChBK,QAAQV;;;;AAIhB,GACA,CAACW,MAAMC,OAASD,KAAKT,IAAI,EAAEW,SAASC,WAAWF,KAAKV,IAAI,EAAEW,SAASC,QACnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,cAAc,sDAAsD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client.ts"],"sourcesContent":["export * from \"./fields/TiptapEditor/extensions/serverside/index.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uDAAuD"}
|
package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { CSSProperties } from "react";
|
|
2
|
-
import { VideoJsPlayerOptions } from "video.js/dist/video.js";
|
|
2
|
+
import { VideoJsPlayerOptions } from "video.js/dist/video.es.js";
|
|
3
3
|
import "video.js/dist/video-js.css";
|
|
4
4
|
import "video.js/dist/video-js.css";
|
|
5
5
|
interface IVideoPlayerProps {
|
package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAgB,EAEd,oBAAoB,EACrB,MAAM,
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAgB,EAEd,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,4BAA4B,CAAC;AAGpC,OAAO,4BAA4B,CAAC;AAKpC,UAAU,iBAAiB;IACzB,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAYD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CACzB,iBAAiB,GAAG;IAAE,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAkClE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.tsx"],"sourcesContent":["import React, { CSSProperties } from \"react\";\nimport videojs, {\n VideoJsPlayer,\n VideoJsPlayerOptions,\n} from \"video.js/dist/video.js\";\nimport \"video.js/dist/video-js.css\";\n\n// Styles\nimport \"video.js/dist/video-js.css\";\n\nimport { QualitySelector } from \"./quality-selector/index.js\";\nimport { cn } from \"../../../../lib/utils/index.js\";\n\ninterface IVideoPlayerProps {\n options: VideoJsPlayerOptions;\n}\n\nconst initialOptions: VideoJsPlayerOptions = {\n controls: true,\n fluid: true,\n controlBar: {\n volumePanel: {\n inline: false,\n },\n },\n};\n\nconst VideoPlayer: React.FC<\n IVideoPlayerProps & { style?: CSSProperties; className?: string }\n> = ({ options, style, className }) => {\n const videoNode = React.useRef<HTMLVideoElement>(null);\n const player = React.useRef<videojs.Player>(null);\n\n React.useEffect(() => {\n QualitySelector(videojs);\n\n player.current = videojs(videoNode.current, {\n ...initialOptions,\n ...options,\n }).ready(function () {\n if (\n !this.controlBar\n .children()\n .some((c: { name_: string }) => c.name_ === \"QualitySelector\")\n ) {\n this.controlBar.addChild(\"QualitySelector\");\n }\n });\n return () => {\n if (player.current) {\n player.current.dispose();\n }\n };\n }, [options]);\n\n return (\n <video\n ref={videoNode}\n className={cn(\"video-js\", className)}\n style={style}\n />\n );\n};\n\nexport default VideoPlayer;\n"],"names":["React","videojs","QualitySelector","cn","initialOptions","controls","fluid","controlBar","volumePanel","inline","VideoPlayer","options","style","className","videoNode","useRef","player","useEffect","current","ready","children","some","c","name_","addChild","dispose","video","ref"],"mappings":";AAAA,OAAOA,WAA8B,QAAQ;AAC7C,OAAOC,aAGA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.tsx"],"sourcesContent":["import React, { CSSProperties } from \"react\";\nimport videojs, {\n VideoJsPlayer,\n VideoJsPlayerOptions,\n} from \"video.js/dist/video.es.js\";\nimport \"video.js/dist/video-js.css\";\n\n// Styles\nimport \"video.js/dist/video-js.css\";\n\nimport { QualitySelector } from \"./quality-selector/index.js\";\nimport { cn } from \"../../../../lib/utils/index.js\";\n\ninterface IVideoPlayerProps {\n options: VideoJsPlayerOptions;\n}\n\nconst initialOptions: VideoJsPlayerOptions = {\n controls: true,\n fluid: true,\n controlBar: {\n volumePanel: {\n inline: false,\n },\n },\n};\n\nconst VideoPlayer: React.FC<\n IVideoPlayerProps & { style?: CSSProperties; className?: string }\n> = ({ options, style, className }) => {\n const videoNode = React.useRef<HTMLVideoElement>(null);\n const player = React.useRef<videojs.Player>(null);\n\n React.useEffect(() => {\n QualitySelector(videojs);\n\n player.current = videojs(videoNode.current, {\n ...initialOptions,\n ...options,\n }).ready(function () {\n if (\n !this.controlBar\n .children()\n .some((c: { name_: string }) => c.name_ === \"QualitySelector\")\n ) {\n this.controlBar.addChild(\"QualitySelector\");\n }\n });\n return () => {\n if (player.current) {\n player.current.dispose();\n }\n };\n }, [options]);\n\n return (\n <video\n ref={videoNode}\n className={cn(\"video-js\", className)}\n style={style}\n />\n );\n};\n\nexport default VideoPlayer;\n"],"names":["React","videojs","QualitySelector","cn","initialOptions","controls","fluid","controlBar","volumePanel","inline","VideoPlayer","options","style","className","videoNode","useRef","player","useEffect","current","ready","children","some","c","name_","addChild","dispose","video","ref"],"mappings":";AAAA,OAAOA,WAA8B,QAAQ;AAC7C,OAAOC,aAGA,4BAA4B;AACnC,OAAO,6BAA6B;AAEpC,SAAS;AACT,OAAO,6BAA6B;AAEpC,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,iCAAiC;AAMpD,MAAMC,iBAAuC;IAC3CC,UAAU;IACVC,OAAO;IACPC,YAAY;QACVC,aAAa;YACXC,QAAQ;QACV;IACF;AACF;AAEA,MAAMC,cAEF,CAAC,EAAEC,OAAO,EAAEC,KAAK,EAAEC,SAAS,EAAE;IAChC,MAAMC,YAAYd,MAAMe,MAAM,CAAmB;IACjD,MAAMC,SAAShB,MAAMe,MAAM,CAAiB;IAE5Cf,MAAMiB,SAAS,CAAC;QACdf,gBAAgBD;QAEhBe,OAAOE,OAAO,GAAGjB,QAAQa,UAAUI,OAAO,EAAE;YAC1C,GAAGd,cAAc;YACjB,GAAGO,OAAO;QACZ,GAAGQ,KAAK,CAAC;YACP,IACE,CAAC,IAAI,CAACZ,UAAU,CACba,QAAQ,GACRC,IAAI,CAAC,CAACC,IAAyBA,EAAEC,KAAK,KAAK,oBAC9C;gBACA,IAAI,CAAChB,UAAU,CAACiB,QAAQ,CAAC;YAC3B;QACF;QACA,OAAO;YACL,IAAIR,OAAOE,OAAO,EAAE;gBAClBF,OAAOE,OAAO,CAACO,OAAO;YACxB;QACF;IACF,GAAG;QAACd;KAAQ;IAEZ,qBACE,KAACe;QACCC,KAAKb;QACLD,WAAWV,GAAG,YAAYU;QAC1BD,OAAOA;;AAGb;AAEA,eAAeF,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AACrD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,QAyD/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.ts"],"sourcesContent":["import _ from \"underscore\";\nimport * as events from \"./events.js\";\nimport { default as qualitySelectorFactory } from \"./components/QualitySelector.js\";\nimport { default as sourceInterceptorFactory } from \"./middleware/SourceInterceptor.js\";\nimport SafeSeek from \"./util/SafeSeek.js\";\nimport type videojs from \"video.js\";\nexport function QualitySelector(videojs: videojs) {\n qualitySelectorFactory(videojs);\n sourceInterceptorFactory(videojs);\n\n videojs.hook(\"setup\", function (player: videojs.Player) {\n function changeQuality(event: any, newSource: { src: any }) {\n var sources = player.currentSources(),\n currentTime = player.currentTime(),\n currentPlaybackRate = player.playbackRate(),\n isPaused = player.paused(),\n selectedSource;\n\n // Clear out any previously selected sources (see: #11)\n _.each(sources, function (source) {\n source.selected = false;\n });\n\n selectedSource = _.findWhere(sources, { src: newSource.src });\n // Note: `_.findWhere` returns a reference to an object. Thus the\n // following updates the original object in `sources`.\n selectedSource.selected = true;\n\n if (player._qualitySelectorSafeSeek) {\n player._qualitySelectorSafeSeek.onQualitySelectionChange();\n }\n\n player.src(sources);\n\n player.ready(function () {\n if (\n !player._qualitySelectorSafeSeek ||\n player._qualitySelectorSafeSeek.hasFinished()\n ) {\n // Either we don't have a pending seek action or the one that we have is no\n // longer applicable. This block must be within a `player.ready` callback\n // because the call to `player.src` above is asynchronous, and so not\n // having it within this `ready` callback would cause the SourceInterceptor\n // to execute after this block instead of before.\n //\n // We save the `currentTime` within the SafeSeek instance because if\n // multiple QUALITY_REQUESTED events are received before the SafeSeek\n // operation finishes, the player's `currentTime` will be `0` if the\n // player's `src` is updated but the player's `currentTime` has not yet\n // been set by the SafeSeek operation.\n player._qualitySelectorSafeSeek = new SafeSeek(player, currentTime);\n player.playbackRate(currentPlaybackRate);\n }\n\n if (!isPaused) {\n player.play();\n }\n });\n }\n\n // Add handler to switch sources when the user requests a change\n player.on(events.QUALITY_REQUESTED, changeQuality);\n });\n}\n\n//export const EVENTS = events;\n"],"names":["_","events","default","qualitySelectorFactory","sourceInterceptorFactory","SafeSeek","QualitySelector","videojs","hook","player","changeQuality","event","newSource","sources","currentSources","currentTime","currentPlaybackRate","playbackRate","isPaused","paused","selectedSource","each","source","selected","findWhere","src","_qualitySelectorSafeSeek","onQualitySelectionChange","ready","hasFinished","play","on","QUALITY_REQUESTED"],"mappings":"AAAA,OAAOA,OAAO,aAAa;AAC3B,YAAYC,YAAY,cAAc;AACtC,SAASC,WAAWC,sBAAsB,QAAQ,kCAAkC;AACpF,SAASD,WAAWE,wBAAwB,QAAQ,oCAAoC;AACxF,OAAOC,cAAc,qBAAqB;AAE1C,OAAO,SAASC,gBAAgBC,OAAgB;IAC9CJ,uBAAuBI;IACvBH,yBAAyBG;IAEzBA,QAAQC,IAAI,CAAC,SAAS,SAAUC,MAAsB;QACpD,SAASC,cAAcC,KAAU,EAAEC,SAAuB;YACxD,IAAIC,UAAUJ,OAAOK,cAAc,IACjCC,cAAcN,OAAOM,WAAW,IAChCC,sBAAsBP,OAAOQ,YAAY,IACzCC,WAAWT,OAAOU,MAAM,IACxBC;YAEF,uDAAuD;YACvDpB,EAAEqB,IAAI,CAACR,SAAS,SAAUS,MAAM;gBAC9BA,OAAOC,QAAQ,GAAG;YACpB;YAEAH,iBAAiBpB,EAAEwB,SAAS,CAACX,SAAS;gBAAEY,KAAKb,UAAUa,GAAG;YAAC;YAC3D,iEAAiE;YACjE,sDAAsD;YACtDL,eAAeG,QAAQ,GAAG;YAE1B,IAAId,OAAOiB,wBAAwB,EAAE;gBACnCjB,OAAOiB,wBAAwB,CAACC,wBAAwB;YAC1D;YAEAlB,OAAOgB,GAAG,CAACZ;YAEXJ,OAAOmB,KAAK,CAAC;gBACX,IACE,CAACnB,OAAOiB,wBAAwB,IAChCjB,OAAOiB,wBAAwB,CAACG,WAAW,IAC3C;oBACA,2EAA2E;oBAC3E,yEAAyE;oBACzE,qEAAqE;oBACrE,2EAA2E;oBAC3E,iDAAiD;oBACjD,EAAE;oBACF,oEAAoE;oBACpE,qEAAqE;oBACrE,oEAAoE;oBACpE,uEAAuE;oBACvE,sCAAsC;oBACtCpB,OAAOiB,wBAAwB,GAAG,IAAIrB,SAASI,QAAQM;oBACvDN,OAAOQ,YAAY,CAACD;gBACtB;gBAEA,IAAI,CAACE,UAAU;oBACbT,OAAOqB,IAAI;gBACb;YACF;QACF;QAEA,gEAAgE;QAChErB,OAAOsB,EAAE,CAAC9B,OAAO+B,iBAAiB,EAAEtB;IACtC;AACF,EAEA,+BAA+B"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.ts"],"sourcesContent":["import _ from \"underscore\";\nimport * as events from \"./events.js\";\nimport { default as qualitySelectorFactory } from \"./components/QualitySelector.js\";\nimport { default as sourceInterceptorFactory } from \"./middleware/SourceInterceptor.js\";\nimport SafeSeek from \"./util/SafeSeek.js\";\nimport type videojs from \"video.js/dist/video.es.js\";\nexport function QualitySelector(videojs: videojs) {\n qualitySelectorFactory(videojs);\n sourceInterceptorFactory(videojs);\n\n videojs.hook(\"setup\", function (player: videojs.Player) {\n function changeQuality(event: any, newSource: { src: any }) {\n var sources = player.currentSources(),\n currentTime = player.currentTime(),\n currentPlaybackRate = player.playbackRate(),\n isPaused = player.paused(),\n selectedSource;\n\n // Clear out any previously selected sources (see: #11)\n _.each(sources, function (source) {\n source.selected = false;\n });\n\n selectedSource = _.findWhere(sources, { src: newSource.src });\n // Note: `_.findWhere` returns a reference to an object. Thus the\n // following updates the original object in `sources`.\n selectedSource.selected = true;\n\n if (player._qualitySelectorSafeSeek) {\n player._qualitySelectorSafeSeek.onQualitySelectionChange();\n }\n\n player.src(sources);\n\n player.ready(function () {\n if (\n !player._qualitySelectorSafeSeek ||\n player._qualitySelectorSafeSeek.hasFinished()\n ) {\n // Either we don't have a pending seek action or the one that we have is no\n // longer applicable. This block must be within a `player.ready` callback\n // because the call to `player.src` above is asynchronous, and so not\n // having it within this `ready` callback would cause the SourceInterceptor\n // to execute after this block instead of before.\n //\n // We save the `currentTime` within the SafeSeek instance because if\n // multiple QUALITY_REQUESTED events are received before the SafeSeek\n // operation finishes, the player's `currentTime` will be `0` if the\n // player's `src` is updated but the player's `currentTime` has not yet\n // been set by the SafeSeek operation.\n player._qualitySelectorSafeSeek = new SafeSeek(player, currentTime);\n player.playbackRate(currentPlaybackRate);\n }\n\n if (!isPaused) {\n player.play();\n }\n });\n }\n\n // Add handler to switch sources when the user requests a change\n player.on(events.QUALITY_REQUESTED, changeQuality);\n });\n}\n\n//export const EVENTS = events;\n"],"names":["_","events","default","qualitySelectorFactory","sourceInterceptorFactory","SafeSeek","QualitySelector","videojs","hook","player","changeQuality","event","newSource","sources","currentSources","currentTime","currentPlaybackRate","playbackRate","isPaused","paused","selectedSource","each","source","selected","findWhere","src","_qualitySelectorSafeSeek","onQualitySelectionChange","ready","hasFinished","play","on","QUALITY_REQUESTED"],"mappings":"AAAA,OAAOA,OAAO,aAAa;AAC3B,YAAYC,YAAY,cAAc;AACtC,SAASC,WAAWC,sBAAsB,QAAQ,kCAAkC;AACpF,SAASD,WAAWE,wBAAwB,QAAQ,oCAAoC;AACxF,OAAOC,cAAc,qBAAqB;AAE1C,OAAO,SAASC,gBAAgBC,OAAgB;IAC9CJ,uBAAuBI;IACvBH,yBAAyBG;IAEzBA,QAAQC,IAAI,CAAC,SAAS,SAAUC,MAAsB;QACpD,SAASC,cAAcC,KAAU,EAAEC,SAAuB;YACxD,IAAIC,UAAUJ,OAAOK,cAAc,IACjCC,cAAcN,OAAOM,WAAW,IAChCC,sBAAsBP,OAAOQ,YAAY,IACzCC,WAAWT,OAAOU,MAAM,IACxBC;YAEF,uDAAuD;YACvDpB,EAAEqB,IAAI,CAACR,SAAS,SAAUS,MAAM;gBAC9BA,OAAOC,QAAQ,GAAG;YACpB;YAEAH,iBAAiBpB,EAAEwB,SAAS,CAACX,SAAS;gBAAEY,KAAKb,UAAUa,GAAG;YAAC;YAC3D,iEAAiE;YACjE,sDAAsD;YACtDL,eAAeG,QAAQ,GAAG;YAE1B,IAAId,OAAOiB,wBAAwB,EAAE;gBACnCjB,OAAOiB,wBAAwB,CAACC,wBAAwB;YAC1D;YAEAlB,OAAOgB,GAAG,CAACZ;YAEXJ,OAAOmB,KAAK,CAAC;gBACX,IACE,CAACnB,OAAOiB,wBAAwB,IAChCjB,OAAOiB,wBAAwB,CAACG,WAAW,IAC3C;oBACA,2EAA2E;oBAC3E,yEAAyE;oBACzE,qEAAqE;oBACrE,2EAA2E;oBAC3E,iDAAiD;oBACjD,EAAE;oBACF,oEAAoE;oBACpE,qEAAqE;oBACrE,oEAAoE;oBACpE,uEAAuE;oBACvE,sCAAsC;oBACtCpB,OAAOiB,wBAAwB,GAAG,IAAIrB,SAASI,QAAQM;oBACvDN,OAAOQ,YAAY,CAACD;gBACtB;gBAEA,IAAI,CAACE,UAAU;oBACbT,OAAOqB,IAAI;gBACb;YACF;QACF;QAEA,gEAAgE;QAChErB,OAAOsB,EAAE,CAAC9B,OAAO+B,iBAAiB,EAAEtB;IACtC;AACF,EAEA,+BAA+B"}
|
|
@@ -3,6 +3,6 @@ interface ExtensionKitProps {
|
|
|
3
3
|
openAssetHQHandler: openAssetHQType;
|
|
4
4
|
dir?: "ltr" | "rtl";
|
|
5
5
|
}
|
|
6
|
-
export declare const ExtensionKit: ({ dir, openAssetHQHandler, }: ExtensionKitProps) => (import("@tiptap/core").
|
|
6
|
+
export declare const ExtensionKit: ({ dir, openAssetHQHandler, }: ExtensionKitProps) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
|
|
7
7
|
export default ExtensionKit;
|
|
8
8
|
//# sourceMappingURL=extension-kit.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export declare function EmbedContentInlineRenderer({ body, getVideoAspect }: {
|
|
1
|
+
export declare function EmbedContentInlineRenderer({ body, getVideoAspect, prefix }: {
|
|
2
2
|
body: any;
|
|
3
3
|
getVideoAspect: any;
|
|
4
|
+
prefix: any;
|
|
4
5
|
}): import("react").JSX.Element;
|
|
5
6
|
//# sourceMappingURL=EmbedContentInlineRenderer.d.ts.map
|
package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbedContentInlineRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,0BAA0B,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE
|
|
1
|
+
{"version":3,"file":"EmbedContentInlineRenderer.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,0BAA0B,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE;;;;CAAA,+BA+B1E"}
|
|
@@ -10,7 +10,7 @@ const CustomPortal = /*#__PURE__*/ memo(({ content, getVideoAspect, ...props })=
|
|
|
10
10
|
children: renderEmbedContent(content, getVideoAspect)
|
|
11
11
|
});
|
|
12
12
|
});
|
|
13
|
-
export function EmbedContentInlineRenderer({ body, getVideoAspect }) {
|
|
13
|
+
export function EmbedContentInlineRenderer({ body, getVideoAspect, prefix }) {
|
|
14
14
|
const [mounted, setMounted] = useState(false);
|
|
15
15
|
useEffect(()=>{
|
|
16
16
|
setMounted(true);
|
|
@@ -18,8 +18,10 @@ export function EmbedContentInlineRenderer({ body, getVideoAspect }) {
|
|
|
18
18
|
if (!mounted) return null;
|
|
19
19
|
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
20
20
|
children: body.content.filter((content)=>typeof content?.attrs?.["data-id"] === "number" || typeof content?.attrs?.["data-id"] === "string").map((content)=>{
|
|
21
|
+
const container = document.getElementById(prefix);
|
|
22
|
+
const element = container?.querySelector(`[data-id='${content.attrs["data-id"]}']`);
|
|
21
23
|
return /*#__PURE__*/ _jsx(CustomPortal, {
|
|
22
|
-
container:
|
|
24
|
+
container: element,
|
|
23
25
|
content: content,
|
|
24
26
|
getVideoAspect: getVideoAspect
|
|
25
27
|
}, `embed-content-inline-${content.attrs["data-id"]}-${content.attrs.key}`);
|
package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.tsx"],"sourcesContent":["\"use client\";\n\nimport { Portal } from \"@radix-ui/react-portal\";\nimport { ComponentProps, memo, useEffect, useState } from \"react\";\n\nimport { renderEmbedContent } from \"./RenderEmbedClientSide.js\";\n\nconst CustomPortal = memo(\n ({\n content,\n getVideoAspect,\n ...props\n }: ComponentProps<typeof Portal> & { getVideoAspect }) => {\n useEffect(() => {}, []);\n return (\n <Portal {...props}>{renderEmbedContent(content, getVideoAspect)}</Portal>\n );\n }\n);\n\nexport function EmbedContentInlineRenderer({ body, getVideoAspect }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) return null;\n return (\n <>\n {body.content\n .filter(\n (content) =>\n typeof content?.attrs?.[\"data-id\"] === \"number\" ||\n typeof content?.attrs?.[\"data-id\"] === \"string\"\n )\n .map((content) => {\n return (\n <CustomPortal\n key={`embed-content-inline-${content.attrs[\"data-id\"]}-${content.attrs.key}`}\n container={
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.tsx"],"sourcesContent":["\"use client\";\n\nimport { Portal } from \"@radix-ui/react-portal\";\nimport { ComponentProps, memo, useEffect, useState } from \"react\";\n\nimport { renderEmbedContent } from \"./RenderEmbedClientSide.js\";\n\nconst CustomPortal = memo(\n ({\n content,\n getVideoAspect,\n ...props\n }: ComponentProps<typeof Portal> & { getVideoAspect }) => {\n useEffect(() => {}, []);\n return (\n <Portal {...props}>{renderEmbedContent(content, getVideoAspect)}</Portal>\n );\n }\n);\n\nexport function EmbedContentInlineRenderer({ body, getVideoAspect, prefix }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) return null;\n return (\n <>\n {body.content\n .filter(\n (content) =>\n typeof content?.attrs?.[\"data-id\"] === \"number\" ||\n typeof content?.attrs?.[\"data-id\"] === \"string\"\n )\n .map((content) => {\n const container = document.getElementById(prefix);\n const element = container?.querySelector(\n `[data-id='${content.attrs[\"data-id\"]}']`\n );\n return (\n <CustomPortal\n key={`embed-content-inline-${content.attrs[\"data-id\"]}-${content.attrs.key}`}\n container={element}\n content={content}\n getVideoAspect={getVideoAspect}\n />\n );\n })}\n </>\n );\n}\n"],"names":["Portal","memo","useEffect","useState","renderEmbedContent","CustomPortal","content","getVideoAspect","props","EmbedContentInlineRenderer","body","prefix","mounted","setMounted","filter","attrs","map","container","document","getElementById","element","querySelector","key"],"mappings":"AAAA;;AAEA,SAASA,MAAM,QAAQ,yBAAyB;AAChD,SAAyBC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElE,SAASC,kBAAkB,QAAQ,6BAA6B;AAEhE,MAAMC,6BAAeJ,KACnB,CAAC,EACCK,OAAO,EACPC,cAAc,EACd,GAAGC,OACgD;IACnDN,UAAU,KAAO,GAAG,EAAE;IACtB,qBACE,KAACF;QAAQ,GAAGQ,KAAK;kBAAGJ,mBAAmBE,SAASC;;AAEpD;AAGF,OAAO,SAASE,2BAA2B,EAAEC,IAAI,EAAEH,cAAc,EAAEI,MAAM,EAAE;IACzE,MAAM,CAACC,SAASC,WAAW,GAAGV,SAAS;IACvCD,UAAU;QACRW,WAAW;IACb,GAAG,EAAE;IAEL,IAAI,CAACD,SAAS,OAAO;IACrB,qBACE;kBACGF,KAAKJ,OAAO,CACVQ,MAAM,CACL,CAACR,UACC,OAAOA,SAASS,OAAO,CAAC,UAAU,KAAK,YACvC,OAAOT,SAASS,OAAO,CAAC,UAAU,KAAK,UAE1CC,GAAG,CAAC,CAACV;YACJ,MAAMW,YAAYC,SAASC,cAAc,CAACR;YAC1C,MAAMS,UAAUH,WAAWI,cACzB,CAAC,UAAU,EAAEf,QAAQS,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAE3C,qBACE,KAACV;gBAECY,WAAWG;gBACXd,SAASA;gBACTC,gBAAgBA;eAHX,CAAC,qBAAqB,EAAED,QAAQS,KAAK,CAAC,UAAU,CAAC,CAAC,EAAET,QAAQS,KAAK,CAACO,GAAG,EAAE;QAMlF;;AAGR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from 'react';\nimport { generateHTML } from '@tiptap/html';\nimport i18n from 'i18next';\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from '../index.js';\n\nimport { TwitterBlockServerside } from './TwitterBlockServerside.js';\nimport { YouTubeServerside } from './YouTubeServerside.js';\nimport { InstagramServerside } from './InstagramServerside.js';\nimport { ImageBlockServerside } from './ImageBlockServerside.js';\nimport { TiktokServerside } from './TiktokServerside.js';\nimport { LinkedinServerside } from './LinkedinServerside.js';\nimport { FacebookServerside } from './FacebookServerside.js';\nimport { VideoBlockServerside } from './VideoBlockServerside.js';\nimport { InsideLinkServerside } from './InsideLinkServerside.js';\nimport { IFrameServerside } from './IFrameServerside.js';\nimport { AdditionalContextType } from '../../features/BlockEditor/types.js';\n\nconst DEFAULT_LANG = 'en';\n\ntype Props = {\n body: any;\n additionalContext?: AdditionalContextType;\n};\n\n// Initialize i18n based on additionalContext\nconst initializeI18n = (additionalContext?: AdditionalContextType) => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {}\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations\n }\n }\n });\n return;\n }\n\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {}\n });\n }\n};\n\nexport const ServersideTiptapBody = ({ body, additionalContext }: Props) => {\n if (!body) return null;\n\n // Initialize i18n synchronously\n initializeI18n(additionalContext);\n\n const textDirection = additionalContext?.textDirection || i18n.dir();\n\n return (\n <>\n <div\n className='tiptap ProseMirror min-h-full'\n dir={textDirection}\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from 'react';\nimport { generateHTML } from '@tiptap/html';\nimport i18n from 'i18next';\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from '../index.js';\n\nimport { TwitterBlockServerside } from './TwitterBlockServerside.js';\nimport { YouTubeServerside } from './YouTubeServerside.js';\nimport { InstagramServerside } from './InstagramServerside.js';\nimport { ImageBlockServerside } from './ImageBlockServerside.js';\nimport { TiktokServerside } from './TiktokServerside.js';\nimport { LinkedinServerside } from './LinkedinServerside.js';\nimport { FacebookServerside } from './FacebookServerside.js';\nimport { VideoBlockServerside } from './VideoBlockServerside.js';\nimport { InsideLinkServerside } from './InsideLinkServerside.js';\nimport { IFrameServerside } from './IFrameServerside.js';\nimport { AdditionalContextType } from '../../features/BlockEditor/types.js';\n\nconst DEFAULT_LANG = 'en';\n\ntype Props = {\n body: any;\n additionalContext?: AdditionalContextType;\n};\n\n// Initialize i18n based on additionalContext\nconst initializeI18n = (additionalContext?: AdditionalContextType) => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {}\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations\n }\n }\n });\n return;\n }\n\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {}\n });\n }\n};\n\nexport const ServersideTiptapBody = ({ body, additionalContext }: Props) => {\n if (!body) return null;\n\n // Initialize i18n synchronously\n initializeI18n(additionalContext);\n\n const textDirection = additionalContext?.textDirection || i18n.dir();\n\n return (\n <>\n <div\n className='tiptap ProseMirror min-h-full'\n dir={textDirection}\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false,\n }),\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n // Subscript,\n // TableOfContents,\n // Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // SlashCommand,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n ImageBlockServerside,\n VideoBlockServerside,\n // AudioBlock,\n // Columns,\n TwitterBlockServerside,\n InstagramServerside,\n YouTubeServerside,\n Paragraph,\n Superscript,\n Subscript,\n Link,\n TiktokServerside,\n LinkedinServerside,\n FacebookServerside,\n InsideLinkServerside,\n IFrameServerside,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n ])\n }}\n />\n </>\n );\n};\n"],"names":["React","generateHTML","i18n","StarterKit","Highlight","Underline","Placeholder","TextAlign","TextStyle","FontFamily","Typography","Subscript","Superscript","CodeBlock","Table","HorizontalRule","Heading","Document","BlockquoteFigure","Link","Paragraph","TableCell","TableHeader","TableRow","Column","LinkPreview","TwitterBlockServerside","YouTubeServerside","InstagramServerside","ImageBlockServerside","TiktokServerside","LinkedinServerside","FacebookServerside","VideoBlockServerside","InsideLinkServerside","IFrameServerside","DEFAULT_LANG","initializeI18n","additionalContext","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","ServersideTiptapBody","body","textDirection","dir","div","className","dangerouslySetInnerHTML","__html","configure","paragraph","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { openAssetHQType } from
|
|
2
|
-
import { AdditionalContextType, FetchSiteMetadataType, TiptapProps } from
|
|
1
|
+
import { openAssetHQType } from "../../types.js";
|
|
2
|
+
import { AdditionalContextType, FetchSiteMetadataType, TiptapProps } from "./types.js";
|
|
3
3
|
export declare const BlockEditor: ({ handleChange, content, openAssetHQHandler, additionalContext, isEditable, autoFocus, dir, fetchSiteMetadata, }: TiptapProps & {
|
|
4
4
|
openAssetHQHandler?: openAssetHQType;
|
|
5
5
|
additionalContext?: AdditionalContextType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACZ,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,WAAW,qHASrB,WAAW,GAAG;IACf,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAC9B,gCA4FA,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { EditorContent } from
|
|
4
|
-
import { useEffect, useMemo, useRef } from
|
|
5
|
-
import i18n from
|
|
6
|
-
import { EditorContext } from
|
|
7
|
-
import { IframeMenu } from
|
|
8
|
-
import ImageBlockMenu from
|
|
9
|
-
import { InsideLinksMenu } from
|
|
10
|
-
import { ColumnsMenu } from
|
|
11
|
-
import { SocialMediaMenu } from
|
|
12
|
-
import VideoBlockMenu from
|
|
13
|
-
import { useBlockEditor } from
|
|
14
|
-
import { ContentItemMenu } from
|
|
15
|
-
import { TextMenu } from
|
|
16
|
-
import { LinkMenu } from
|
|
17
|
-
import i18next from
|
|
18
|
-
import ILinkPreviewMenu from
|
|
19
|
-
const DEFAULT_LANG =
|
|
3
|
+
import { EditorContent } from "@tiptap/react";
|
|
4
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
5
|
+
import i18n from "i18next";
|
|
6
|
+
import { EditorContext } from "../../context/EditorContext.js";
|
|
7
|
+
import { IframeMenu } from "../../extensions/Iframe/menus/index.js";
|
|
8
|
+
import ImageBlockMenu from "../../extensions/ImageBlock/components/ImageBlockMenu.js";
|
|
9
|
+
import { InsideLinksMenu } from "../../extensions/InsideLinks/menus/index.js";
|
|
10
|
+
import { ColumnsMenu } from "../../extensions/MultiColumn/menus/ColumnsMenu.js";
|
|
11
|
+
import { SocialMediaMenu } from "../../extensions/SocialMedia/menus/index.js";
|
|
12
|
+
import VideoBlockMenu from "../../extensions/VideoBlock/components/VideoBlockMenu.js";
|
|
13
|
+
import { useBlockEditor } from "../../hooks/useBlockEditor.js";
|
|
14
|
+
import { ContentItemMenu } from "../menus/ContentItemMenu/ContentItemMenu.js";
|
|
15
|
+
import { TextMenu } from "../menus/TextMenu/TextMenu.js";
|
|
16
|
+
import { LinkMenu } from "../menus/index.js";
|
|
17
|
+
import i18next from "i18next";
|
|
18
|
+
import ILinkPreviewMenu from "../../extensions/LinkPreview/menus/linkPreviewMenu.js";
|
|
19
|
+
const DEFAULT_LANG = "en";
|
|
20
20
|
export const BlockEditor = ({ handleChange, content, openAssetHQHandler, additionalContext, isEditable = true, autoFocus = true, dir, fetchSiteMetadata })=>{
|
|
21
21
|
const menuContainerRef = useRef(null);
|
|
22
22
|
const editorRef = useRef(null);
|
|
@@ -66,22 +66,23 @@ export const BlockEditor = ({ handleChange, content, openAssetHQHandler, additio
|
|
|
66
66
|
}, [
|
|
67
67
|
additionalContext
|
|
68
68
|
]);
|
|
69
|
+
const sectionDir = dir || i18next.dir();
|
|
69
70
|
return editor && /*#__PURE__*/ _jsx(EditorContext.Provider, {
|
|
70
71
|
value: providerValue,
|
|
71
72
|
children: /*#__PURE__*/ _jsx("div", {
|
|
72
73
|
className: "flex h-full overflow-visible",
|
|
73
74
|
ref: menuContainerRef,
|
|
74
|
-
dir:
|
|
75
|
+
dir: sectionDir,
|
|
75
76
|
children: /*#__PURE__*/ _jsxs("div", {
|
|
76
77
|
className: "relative flex flex-col flex-1 h-full justify-center items-center ",
|
|
77
78
|
children: [
|
|
78
79
|
/*#__PURE__*/ _jsx(EditorContent, {
|
|
79
|
-
dir:
|
|
80
|
+
dir: sectionDir,
|
|
80
81
|
editor: editor,
|
|
81
82
|
ref: editorRef,
|
|
82
83
|
className: "flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0",
|
|
83
84
|
style: {
|
|
84
|
-
outline:
|
|
85
|
+
outline: "none"
|
|
85
86
|
}
|
|
86
87
|
}),
|
|
87
88
|
isEditable && /*#__PURE__*/ _jsxs(_Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["\"use client\";\nimport { EditorContent } from \"@tiptap/react\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport i18n from \"i18next\";\n\nimport { EditorContext } from \"../../context/EditorContext.js\";\nimport { IframeMenu } from \"../../extensions/Iframe/menus/index.js\";\nimport ImageBlockMenu from \"../../extensions/ImageBlock/components/ImageBlockMenu.js\";\nimport { InsideLinksMenu } from \"../../extensions/InsideLinks/menus/index.js\";\nimport { ColumnsMenu } from \"../../extensions/MultiColumn/menus/ColumnsMenu.js\";\nimport { SocialMediaMenu } from \"../../extensions/SocialMedia/menus/index.js\";\n\nimport VideoBlockMenu from \"../../extensions/VideoBlock/components/VideoBlockMenu.js\";\nimport { useBlockEditor } from \"../../hooks/useBlockEditor.js\";\nimport { openAssetHQType } from \"../../types.js\";\nimport { ContentItemMenu } from \"../menus/ContentItemMenu/ContentItemMenu.js\";\nimport { TextMenu } from \"../menus/TextMenu/TextMenu.js\";\nimport { LinkMenu } from \"../menus/index.js\";\nimport {\n AdditionalContextType,\n FetchSiteMetadataType,\n TiptapProps,\n} from \"./types.js\";\nimport i18next from \"i18next\";\nimport ILinkPreviewMenu from \"../../extensions/LinkPreview/menus/linkPreviewMenu.js\";\n\nconst DEFAULT_LANG = \"en\";\n\nexport const BlockEditor = ({\n handleChange,\n content,\n openAssetHQHandler,\n additionalContext,\n isEditable = true,\n autoFocus = true,\n dir,\n fetchSiteMetadata,\n}: TiptapProps & {\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: AdditionalContextType;\n fetchSiteMetadata?: FetchSiteMetadataType;\n autoFocus?: boolean;\n isEditable?: boolean;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n}) => {\n const menuContainerRef = useRef(null);\n const editorRef = useRef<HTMLDivElement>(null);\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n openAssetHQHandler: openAssetHQHandler,\n additionalContext: additionalContext,\n autoFocus,\n isEditable,\n });\n\n const displayedUsers = users.slice(0, 3);\n const providerValue = useMemo(() => {\n return {};\n }, []);\n useEffect(() => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {},\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations,\n },\n },\n });\n return;\n }\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {},\n });\n }\n }, [additionalContext]);\n const sectionDir = dir || i18next.dir();\n return (\n editor && (\n <EditorContext.Provider value={providerValue}>\n <div\n className=\"flex h-full overflow-visible\"\n ref={menuContainerRef}\n dir={sectionDir}\n >\n <div className=\"relative flex flex-col flex-1 h-full justify-center items-center \">\n <EditorContent\n dir={sectionDir}\n editor={editor}\n ref={editorRef}\n className=\"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n style={{\n outline: \"none\",\n }}\n />\n {isEditable && (\n <>\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n <TextMenu editor={editor} dir={i18next.dir()} />\n <ILinkPreviewMenu\n editor={editor}\n appendTo={menuContainerRef}\n fetchSiteMetadata={fetchSiteMetadata}\n />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n <VideoBlockMenu editor={editor} appendTo={menuContainerRef} />\n </>\n )}\n </div>\n </div>\n </EditorContext.Provider>\n )\n );\n};\n\nexport default BlockEditor;\n"],"names":["EditorContent","useEffect","useMemo","useRef","i18n","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","VideoBlockMenu","useBlockEditor","ContentItemMenu","TextMenu","LinkMenu","i18next","ILinkPreviewMenu","DEFAULT_LANG","BlockEditor","handleChange","content","openAssetHQHandler","additionalContext","isEditable","autoFocus","dir","fetchSiteMetadata","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","displayedUsers","slice","providerValue","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","sectionDir","Provider","value","div","className","ref","style","outline","appendTo"],"mappings":"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"}
|