payload-richtext-tiptap 0.0.145 → 0.0.147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts +10 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +55 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts +2 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js +3 -0
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/error-boundary.d.ts +15 -0
- package/dist/src/fields/TiptapEditor/extensions/error-boundary.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/error-boundary.js +35 -0
- package/dist/src/fields/TiptapEditor/extensions/error-boundary.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts +8 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +32 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts +2 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js +3 -0
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts +8 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js +57 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts +2 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js +3 -0
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +1 -0
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js +1 -4
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/tiptapSchema.d.ts +68 -68
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -26
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Node } from '@tiptap/core';
|
|
2
|
-
export var ColumnLayout
|
|
2
|
+
export var ColumnLayout;
|
|
3
|
+
(function(ColumnLayout) {
|
|
3
4
|
ColumnLayout["SidebarLeft"] = "sidebar-left";
|
|
4
5
|
ColumnLayout["SidebarRight"] = "sidebar-right";
|
|
5
6
|
ColumnLayout["TwoColumn"] = "two-column";
|
|
6
|
-
|
|
7
|
-
}({});
|
|
7
|
+
})(ColumnLayout || (ColumnLayout = {}));
|
|
8
8
|
export const Columns = Node.create({
|
|
9
9
|
name: 'columns',
|
|
10
10
|
group: 'columns',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/Columns.ts"],"sourcesContent":["import { Node } from '@tiptap/core'\n\nexport enum ColumnLayout {\n SidebarLeft = 'sidebar-left',\n SidebarRight = 'sidebar-right',\n TwoColumn = 'two-column',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n columns: {\n setColumns: () => ReturnType\n setLayout: (layout: ColumnLayout) => ReturnType\n }\n }\n}\n\nexport const Columns = Node.create({\n name: 'columns',\n\n group: 'columns',\n\n content: 'column column',\n\n defining: true,\n\n isolating: true,\n\n addAttributes() {\n return {\n layout: {\n default: ColumnLayout.TwoColumn,\n },\n }\n },\n\n addCommands() {\n return {\n setColumns:\n () =>\n ({ commands }) =>\n commands.insertContent(\n `<div data-type=\"columns\"><div data-type=\"column\" data-position=\"left\"><p></p></div><div data-type=\"column\" data-position=\"right\"><p></p></div></div>`,\n ),\n setLayout:\n (layout: ColumnLayout) =>\n ({ commands }) =>\n commands.updateAttributes('columns', { layout }),\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', { 'data-type': 'columns', class: `layout-${HTMLAttributes.layout}` }, 0]\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"columns\"]',\n },\n ]\n },\n})\n\nexport default Columns\n"],"names":["Node","ColumnLayout","Columns","create","name","group","content","defining","isolating","addAttributes","layout","default","addCommands","setColumns","commands","insertContent","setLayout","updateAttributes","renderHTML","HTMLAttributes","class","parseHTML","tag"],"mappings":"AAAA,SAASA,IAAI,QAAQ,eAAc
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/Columns.ts"],"sourcesContent":["import { Node } from '@tiptap/core'\n\nexport enum ColumnLayout {\n SidebarLeft = 'sidebar-left',\n SidebarRight = 'sidebar-right',\n TwoColumn = 'two-column',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n columns: {\n setColumns: () => ReturnType\n setLayout: (layout: ColumnLayout) => ReturnType\n }\n }\n}\n\nexport const Columns = Node.create({\n name: 'columns',\n\n group: 'columns',\n\n content: 'column column',\n\n defining: true,\n\n isolating: true,\n\n addAttributes() {\n return {\n layout: {\n default: ColumnLayout.TwoColumn,\n },\n }\n },\n\n addCommands() {\n return {\n setColumns:\n () =>\n ({ commands }) =>\n commands.insertContent(\n `<div data-type=\"columns\"><div data-type=\"column\" data-position=\"left\"><p></p></div><div data-type=\"column\" data-position=\"right\"><p></p></div></div>`,\n ),\n setLayout:\n (layout: ColumnLayout) =>\n ({ commands }) =>\n commands.updateAttributes('columns', { layout }),\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', { 'data-type': 'columns', class: `layout-${HTMLAttributes.layout}` }, 0]\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"columns\"]',\n },\n ]\n },\n})\n\nexport default Columns\n"],"names":["Node","ColumnLayout","Columns","create","name","group","content","defining","isolating","addAttributes","layout","default","addCommands","setColumns","commands","insertContent","setLayout","updateAttributes","renderHTML","HTMLAttributes","class","parseHTML","tag"],"mappings":"AAAA,SAASA,IAAI,QAAQ,eAAc;;UAEvBC;;;;GAAAA,iBAAAA;AAeZ,OAAO,MAAMC,UAAUF,KAAKG,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IAEPC,SAAS;IAETC,UAAU;IAEVC,WAAW;IAEXC;QACE,OAAO;YACLC,QAAQ;gBACNC,OAAO;YACT;QACF;IACF;IAEAC;QACE,OAAO;YACLC,YACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CACpB,CAAC,oJAAoJ,CAAC;YAE5JC,WACE,CAACN,SACD,CAAC,EAAEI,QAAQ,EAAE,GACXA,SAASG,gBAAgB,CAAC,WAAW;wBAAEP;oBAAO;QACpD;IACF;IAEAQ,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,aAAa;gBAAWC,OAAO,CAAC,OAAO,EAAED,eAAeT,MAAM,EAAE;YAAC;YAAG;SAAE;IACzF;IAEAW;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;AACF,GAAE;AAEF,eAAepB,QAAO"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Node } from "@tiptap/core";
|
|
2
|
+
declare module "@tiptap/core" {
|
|
3
|
+
interface Commands<ReturnType> {
|
|
4
|
+
tableOfContentsNode: {
|
|
5
|
+
insertTableOfContents: () => ReturnType;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export declare const TableOfContentsNode: Node<any, any>;
|
|
10
|
+
//# sourceMappingURL=TableOfContentsNode.d.ts.map
|
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableOfContentsNode.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAgB3D,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,mBAAmB,EAAE;YACnB,qBAAqB,EAAE,MAAM,UAAU,CAAC;SACzC,CAAC;KACH;CACF;AAED,eAAO,MAAM,mBAAmB,gBAmC9B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Node } from "@tiptap/core";
|
|
4
|
+
import { NodeViewWrapper, ReactNodeViewRenderer } from "@tiptap/react";
|
|
5
|
+
import { TableOfContents } from "../../features/TableOfContents/index.js";
|
|
6
|
+
const TableOfNodeContent = (props)=>{
|
|
7
|
+
const { editor } = props;
|
|
8
|
+
return /*#__PURE__*/ _jsx(NodeViewWrapper, {
|
|
9
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
10
|
+
className: "p-2 -m-2 rounded-lg",
|
|
11
|
+
contentEditable: false,
|
|
12
|
+
children: /*#__PURE__*/ _jsx(TableOfContents, {
|
|
13
|
+
editor: editor
|
|
14
|
+
})
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const TableOfContentsNode = Node.create({
|
|
19
|
+
name: "tableOfContentsNode",
|
|
20
|
+
group: "block",
|
|
21
|
+
atom: true,
|
|
22
|
+
selectable: true,
|
|
23
|
+
draggable: true,
|
|
24
|
+
inline: false,
|
|
25
|
+
parseHTML () {
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
tag: 'div[data-type="table-of-content"]'
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
},
|
|
32
|
+
renderHTML ({ HTMLAttributes }) {
|
|
33
|
+
return [
|
|
34
|
+
"div",
|
|
35
|
+
{
|
|
36
|
+
...HTMLAttributes,
|
|
37
|
+
"data-type": "table-of-content"
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
},
|
|
41
|
+
addNodeView () {
|
|
42
|
+
return ReactNodeViewRenderer(TableOfNodeContent);
|
|
43
|
+
},
|
|
44
|
+
addCommands () {
|
|
45
|
+
return {
|
|
46
|
+
insertTableOfContents: ()=>({ commands })=>{
|
|
47
|
+
return commands.insertContent({
|
|
48
|
+
type: this.name
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=TableOfContentsNode.js.map
|
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"sourcesContent":["import React from \"react\";\nimport { Node, NodeViewRendererProps } from \"@tiptap/core\";\nimport { NodeViewWrapper, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { TableOfContents } from \"../../features/TableOfContents/index.js\";\n\nconst TableOfNodeContent = (props: NodeViewRendererProps) => {\n const { editor } = props;\n\n return (\n <NodeViewWrapper>\n <div className=\"p-2 -m-2 rounded-lg\" contentEditable={false}>\n <TableOfContents editor={editor} />\n </div>\n </NodeViewWrapper>\n );\n};\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n tableOfContentsNode: {\n insertTableOfContents: () => ReturnType;\n };\n }\n}\n\nexport const TableOfContentsNode = Node.create({\n name: \"tableOfContentsNode\",\n group: \"block\",\n atom: true,\n selectable: true,\n draggable: true,\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"table-of-content\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"div\", { ...HTMLAttributes, \"data-type\": \"table-of-content\" }];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TableOfNodeContent);\n },\n\n addCommands() {\n return {\n insertTableOfContents:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"names":["React","Node","NodeViewWrapper","ReactNodeViewRenderer","TableOfContents","TableOfNodeContent","props","editor","div","className","contentEditable","TableOfContentsNode","create","name","group","atom","selectable","draggable","inline","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","addCommands","insertTableOfContents","commands","insertContent","type"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAA+B,eAAe;AAC3D,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,gBAAgB;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,MAAMC,qBAAqB,CAACC;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,qBACE,KAACJ;kBACC,cAAA,KAACM;YAAIC,WAAU;YAAsBC,iBAAiB;sBACpD,cAAA,KAACN;gBAAgBG,QAAQA;;;;AAIjC;AAUA,OAAO,MAAMI,sBAAsBV,KAAKW,MAAM,CAAC;IAC7CC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,WAAW;IACXC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,GAAGA,cAAc;gBAAE,aAAa;YAAmB;SAAE;IACxE;IAEAC;QACE,OAAOpB,sBAAsBE;IAC/B;IAEAmB;QACE,OAAO;YACLC,uBACE,IACA,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM,IAAI,CAACf,IAAI;oBACjB;gBACF;QACJ;IACF;AACF,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"sourcesContent":["export * from \"./TableOfContentsNode.js\";\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js"],"names":[],"mappings":"AAAA,mDAAoD;AACpD,iDAAkD;AAClD,4DAA6D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { ReactNode, ErrorInfo } from 'react';
|
|
2
|
+
interface ErrorBoundaryProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
}
|
|
5
|
+
interface ErrorBoundaryState {
|
|
6
|
+
hasError: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
9
|
+
constructor(props: ErrorBoundaryProps);
|
|
10
|
+
static getDerivedStateFromError(_: Error): ErrorBoundaryState;
|
|
11
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
12
|
+
render(): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>>;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=error-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/extensions/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAC5E,KAAK,EAAE,kBAAkB;IAOrC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,GAAG,kBAAkB;IAK7D,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAKpD,MAAM;CAUP"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export class ErrorBoundary extends React.Component {
|
|
4
|
+
constructor(props){
|
|
5
|
+
super(props);
|
|
6
|
+
// Define a state variable to track whether there is an error or not
|
|
7
|
+
this.state = {
|
|
8
|
+
hasError: false
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
static getDerivedStateFromError(_) {
|
|
12
|
+
// Update state so the next render will show the fallback UI
|
|
13
|
+
return {
|
|
14
|
+
hasError: true
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
componentDidCatch(error, errorInfo) {
|
|
18
|
+
// You can use your own error logging service here
|
|
19
|
+
console.log({
|
|
20
|
+
error,
|
|
21
|
+
errorInfo
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
// Check if the error is thrown
|
|
26
|
+
if (this.state.hasError) {
|
|
27
|
+
// You can render any custom fallback UI
|
|
28
|
+
return /*#__PURE__*/ _jsx(_Fragment, {});
|
|
29
|
+
}
|
|
30
|
+
// Return children components in case of no error
|
|
31
|
+
return this.props.children;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=error-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/error-boundary.tsx"],"sourcesContent":["import React, { ReactNode, ErrorInfo } from 'react';\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n\n // Define a state variable to track whether there is an error or not\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(_: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can use your own error logging service here\n console.log({ error, errorInfo });\n }\n\n render() {\n // Check if the error is thrown\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return <></>;\n }\n\n // Return children components in case of no error\n return this.props.children;\n }\n}\n\n"],"names":["React","ErrorBoundary","Component","constructor","props","state","hasError","getDerivedStateFromError","_","componentDidCatch","error","errorInfo","console","log","render","children"],"mappings":";AAAA,OAAOA,WAAqC,QAAQ;AAUpD,OAAO,MAAMC,sBAAsBD,MAAME,SAAS;IAChDC,YAAYC,KAAyB,CAAE;QACrC,KAAK,CAACA;QAEN,oEAAoE;QACpE,IAAI,CAACC,KAAK,GAAG;YAAEC,UAAU;QAAM;IACjC;IAEA,OAAOC,yBAAyBC,CAAQ,EAAsB;QAC5D,4DAA4D;QAC5D,OAAO;YAAEF,UAAU;QAAK;IAC1B;IAEAG,kBAAkBC,KAAY,EAAEC,SAAoB,EAAE;QACpD,kDAAkD;QAClDC,QAAQC,GAAG,CAAC;YAAEH;YAAOC;QAAU;IACjC;IAEAG,SAAS;QACP,+BAA+B;QAC/B,IAAI,IAAI,CAACT,KAAK,CAACC,QAAQ,EAAE;YACvB,wCAAwC;YACxC,qBAAO;QACT;QAEA,iDAAiD;QACjD,OAAO,IAAI,CAACF,KAAK,CAACW,QAAQ;IAC5B;AACF"}
|
|
@@ -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
|
|
@@ -80,7 +80,7 @@ export const ServersideTiptapBody = ({ body, additionalContext })=>{
|
|
|
80
80
|
if (!body) return null;
|
|
81
81
|
// Initialize i18n synchronously
|
|
82
82
|
initializeI18n(additionalContext);
|
|
83
|
-
const textDirection = i18n.dir();
|
|
83
|
+
const textDirection = additionalContext?.textDirection || i18n.dir();
|
|
84
84
|
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
85
85
|
children: /*#__PURE__*/ _jsx("div", {
|
|
86
86
|
className: "tiptap ProseMirror min-h-full",
|
|
@@ -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 = 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":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,YAAY,QAAQ,eAAe;AAC5C,OAAOC,UAAU,UAAU;AAC3B,iDAAiD;AACjD,SACEC,UAAU,EACVC,SAAS,EAETC,AADA,kBAAkB;AAClBA,SAAS,EACTC,WAAW,EAEXC,AADA,SAAS;AACTA,SAAS,EACTC,SAAS,EACTC,UAAU,EACVC,UAAU,EAIVC,AAHA,SAAS;AACT,cAAc;AACd,uBAAuB;AACvBA,SAAS,EAETC,AADA,mBAAmB;AACnBA,WAAW,EACXC,SAAS,EASTC,AARA,cAAc;AACd,eAAe;AACf,iBAAiB;AACjB,YAAY;AACZ,YAAY;AACZ,eAAe;AACf,aAAa;AACb,SAAS;AACTA,KAAK,EACLC,cAAc,EACdC,OAAO,EACPC,QAAQ,EAKRC,AAJA,gBAAgB;AAChB,YAAY;AACZ,UAAU;AACV,cAAc;AACdA,gBAAgB,EAGhBC,AAFA,SAAS;AACT,gBAAgB;AAChBA,IAAI,EAQJC,AAPA,eAAe;AACf,gBAAgB;AAChB,gBAAgB;AAChB,cAAc;AACd,WAAW;AACX,aAAa;AACb,WAAW;AACXA,SAAS,EAETC,AADA,eAAe;AACfA,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,MAAM,EACNC,WAAW,QAON,cAAc;AAErB,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,gBAAgB,QAAQ,wBAAwB;AAGzD,MAAMC,eAAe;AAOrB,6CAA6C;AAC7C,MAAMC,iBAAiB,CAACC;IACtB,IAAI,CAACA,mBAAmB;QACtBpC,KAAKqC,IAAI,CAAC;YACRC,aAAaJ;YACbK,KAAKL;YACLM,mBAAmB;YACnBC,WAAW,CAAC;QACd;QACA;IACF;IAEA,IAAIL,kBAAkBM,QAAQ,IAAIN,kBAAkBO,YAAY,EAAE;QAChE3C,KAAKqC,IAAI,CAAC;YACRC,aAAaF,kBAAkBM,QAAQ;YACvCH,KAAKH,kBAAkBM,QAAQ;YAC/BF,mBAAmB;YACnBC,WAAW;gBACT,CAACL,kBAAkBM,QAAQ,CAAC,EAAE;oBAC5BE,aAAaR,kBAAkBO,YAAY;gBAC7C;YACF;QACF;QACA;IACF;IAEA,IAAIP,kBAAkBM,QAAQ,EAAE;QAC9B1C,KAAKqC,IAAI,CAAC;YACRC,aAAaF,mBAAmBM;YAChCH,KAAKH,mBAAmBM;YACxBF,mBAAmB;YACnBC,WAAW,CAAC;QACd;IACF;AACF;AAEA,OAAO,MAAMI,uBAAuB,CAAC,EAAEC,IAAI,EAAEV,iBAAiB,EAAS;IACrE,IAAI,CAACU,MAAM,OAAO;IAElB,gCAAgC;IAChCX,eAAeC;IAEf,MAAMW,
|
|
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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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Editor } from "@tiptap/react";
|
|
3
|
+
export declare const Sidebar: React.MemoExoticComponent<({ editor, isOpen, onClose, }: {
|
|
4
|
+
editor: Editor;
|
|
5
|
+
isOpen?: boolean;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}) => React.JSX.Element>;
|
|
8
|
+
//# sourceMappingURL=Sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,eAAO,MAAM,OAAO,2DAKf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,uBA2BF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { memo, useCallback } from "react";
|
|
5
|
+
import { TableOfContents } from "../TableOfContents/index.js";
|
|
6
|
+
import { cn } from "../../lib/utils/index.js";
|
|
7
|
+
export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
|
|
8
|
+
const handlePotentialClose = useCallback(()=>{
|
|
9
|
+
if (window.innerWidth < 1024) {
|
|
10
|
+
onClose();
|
|
11
|
+
}
|
|
12
|
+
}, [
|
|
13
|
+
onClose
|
|
14
|
+
]);
|
|
15
|
+
const windowClassName = cn("absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all", "dark:bg-black lg:dark:bg-black/30", !isOpen && "border-r-transparent", isOpen && "w-80 border-r border-r-neutral-200 dark:border-r-neutral-800");
|
|
16
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
17
|
+
className: windowClassName,
|
|
18
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
19
|
+
className: "w-full h-full overflow-hidden",
|
|
20
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
21
|
+
className: "w-full h-full p-2 overflow-auto",
|
|
22
|
+
children: /*#__PURE__*/ _jsx(TableOfContents, {
|
|
23
|
+
onItemClick: handlePotentialClose,
|
|
24
|
+
editor: editor
|
|
25
|
+
})
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
Sidebar.displayName = "TableOfContentSidepanel";
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { memo, useCallback } from \"react\";\nimport { Editor } from \"@tiptap/react\";\nimport { TableOfContents } from \"../TableOfContents/index.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const Sidebar = memo(\n ({\n editor,\n isOpen,\n onClose,\n }: {\n editor: Editor;\n isOpen?: boolean;\n onClose: () => void;\n }) => {\n const handlePotentialClose = useCallback(() => {\n if (window.innerWidth < 1024) {\n onClose();\n }\n }, [onClose]);\n\n const windowClassName = cn(\n \"absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all\",\n \"dark:bg-black lg:dark:bg-black/30\",\n !isOpen && \"border-r-transparent\",\n isOpen && \"w-80 border-r border-r-neutral-200 dark:border-r-neutral-800\"\n );\n\n return (\n <div className={windowClassName}>\n <div className=\"w-full h-full overflow-hidden\">\n <div className=\"w-full h-full p-2 overflow-auto\">\n <TableOfContents\n onItemClick={handlePotentialClose}\n editor={editor}\n />\n </div>\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"TableOfContentSidepanel\";\n"],"names":["React","memo","useCallback","TableOfContents","cn","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","className","onItemClick","displayName"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AAE1C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,wBAAUJ,KACrB,CAAC,EACCK,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBP,YAAY;QACvC,IAAIQ,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBR,GACtB,0IACA,qCACA,CAACG,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,WAAWF;kBACd,cAAA,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACX;oBACCY,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"sourcesContent":["export * from \"./Sidebar.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Editor as CoreEditor } from "@tiptap/core";
|
|
3
|
+
export type TableOfContentsProps = {
|
|
4
|
+
editor: CoreEditor;
|
|
5
|
+
onItemClick?: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const TableOfContents: React.MemoExoticComponent<({ editor, onItemClick }: TableOfContentsProps) => React.JSX.Element>;
|
|
8
|
+
//# sourceMappingURL=TableOfContents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAOpD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,sDACA,oBAAoB,uBAoD/C,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { memo, useEffect, useState } from "react";
|
|
4
|
+
import { cn } from "../../lib/utils/index.js";
|
|
5
|
+
// import { toTranslationKey } from '@/languages'
|
|
6
|
+
import { useTranslation } from "@payloadcms/ui/providers/Translation";
|
|
7
|
+
export const TableOfContents = /*#__PURE__*/ memo(({ editor, onItemClick })=>{
|
|
8
|
+
const [data, setData] = useState(null);
|
|
9
|
+
useEffect(()=>{
|
|
10
|
+
const handler = ({ editor: currentEditor })=>{
|
|
11
|
+
setData({
|
|
12
|
+
...currentEditor.extensionStorage.tableOfContents
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
handler({
|
|
16
|
+
editor
|
|
17
|
+
});
|
|
18
|
+
editor.on("update", handler);
|
|
19
|
+
editor.on("selectionUpdate", handler);
|
|
20
|
+
return ()=>{
|
|
21
|
+
editor.off("update", handler);
|
|
22
|
+
editor.off("selectionUpdate", handler);
|
|
23
|
+
};
|
|
24
|
+
}, [
|
|
25
|
+
editor
|
|
26
|
+
]);
|
|
27
|
+
const { i18n } = useTranslation();
|
|
28
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
29
|
+
lang: i18n.language,
|
|
30
|
+
children: [
|
|
31
|
+
/*#__PURE__*/ _jsx("div", {
|
|
32
|
+
className: "mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400"
|
|
33
|
+
}),
|
|
34
|
+
data && data.content.length > 0 ? /*#__PURE__*/ _jsx("div", {
|
|
35
|
+
className: "flex flex-col gap-1",
|
|
36
|
+
children: data.content.map((item)=>/*#__PURE__*/ _jsxs("a", {
|
|
37
|
+
href: `#${item.id}`,
|
|
38
|
+
style: {
|
|
39
|
+
marginLeft: `${1 * item.level - 1}rem`
|
|
40
|
+
},
|
|
41
|
+
onClick: onItemClick,
|
|
42
|
+
className: cn("block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full", item.isActive && "text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900"),
|
|
43
|
+
children: [
|
|
44
|
+
item.itemIndex,
|
|
45
|
+
". ",
|
|
46
|
+
item.textContent
|
|
47
|
+
]
|
|
48
|
+
}, item.id))
|
|
49
|
+
}) : /*#__PURE__*/ _jsx("div", {
|
|
50
|
+
className: "text-sm text-neutral-500"
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
TableOfContents.displayName = "TableOfContents";
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=TableOfContents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Editor as CoreEditor } from \"@tiptap/core\";\nimport { memo, useEffect, useState } from \"react\";\nimport { TableOfContentsStorage } from \"@tiptap-pro/extension-table-of-contents\";\nimport { cn } from \"../../lib/utils/index.js\";\n// import { toTranslationKey } from '@/languages'\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\n\nexport type TableOfContentsProps = {\n editor: CoreEditor;\n onItemClick?: () => void;\n};\n\nexport const TableOfContents = memo(\n ({ editor, onItemClick }: TableOfContentsProps) => {\n const [data, setData] = useState<TableOfContentsStorage | null>(null);\n\n useEffect(() => {\n const handler = ({ editor: currentEditor }: { editor: CoreEditor }) => {\n setData({ ...currentEditor.extensionStorage.tableOfContents });\n };\n\n handler({ editor });\n\n editor.on(\"update\", handler);\n editor.on(\"selectionUpdate\", handler);\n\n return () => {\n editor.off(\"update\", handler);\n editor.off(\"selectionUpdate\", handler);\n };\n }, [editor]);\n const { i18n } = useTranslation();\n\n return (\n <div lang={i18n.language}>\n <div className=\"mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400\">\n {/* {toTranslationKey('table_of_contents')}Table of Contents */}\n </div>\n {data && data.content.length > 0 ? (\n <div className=\"flex flex-col gap-1\">\n {data.content.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n style={{ marginLeft: `${1 * item.level - 1}rem` }}\n onClick={onItemClick}\n className={cn(\n \"block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full\",\n item.isActive &&\n \"text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900\"\n )}\n >\n {item.itemIndex}. {item.textContent}\n </a>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-neutral-500\">\n {/* Start adding headlines to your document */}\n {/* {toTranslationKey(\"start_adding_headlines_to_your_document\")} */}\n </div>\n )}\n </div>\n );\n }\n);\n\nTableOfContents.displayName = \"TableOfContents\";\n"],"names":["React","memo","useEffect","useState","cn","useTranslation","TableOfContents","editor","onItemClick","data","setData","handler","currentEditor","extensionStorage","tableOfContents","on","off","i18n","div","lang","language","className","content","length","map","item","a","href","id","style","marginLeft","level","onClick","isActive","itemIndex","textContent","displayName"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,iDAAiD;AACjD,SAASC,cAAc,QAAQ,uCAAuC;AAOtE,OAAO,MAAMC,gCAAkBL,KAC7B,CAAC,EAAEM,MAAM,EAAEC,WAAW,EAAwB;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAwC;IAEhED,UAAU;QACR,MAAMS,UAAU,CAAC,EAAEJ,QAAQK,aAAa,EAA0B;YAChEF,QAAQ;gBAAE,GAAGE,cAAcC,gBAAgB,CAACC,eAAe;YAAC;QAC9D;QAEAH,QAAQ;YAAEJ;QAAO;QAEjBA,OAAOQ,EAAE,CAAC,UAAUJ;QACpBJ,OAAOQ,EAAE,CAAC,mBAAmBJ;QAE7B,OAAO;YACLJ,OAAOS,GAAG,CAAC,UAAUL;YACrBJ,OAAOS,GAAG,CAAC,mBAAmBL;QAChC;IACF,GAAG;QAACJ;KAAO;IACX,MAAM,EAAEU,IAAI,EAAE,GAAGZ;IAEjB,qBACE,MAACa;QAAIC,MAAMF,KAAKG,QAAQ;;0BACtB,KAACF;gBAAIG,WAAU;;YAGdZ,QAAQA,KAAKa,OAAO,CAACC,MAAM,GAAG,kBAC7B,KAACL;gBAAIG,WAAU;0BACZZ,KAAKa,OAAO,CAACE,GAAG,CAAC,CAACC,qBACjB,MAACC;wBAECC,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,EAAE;wBACnBC,OAAO;4BAAEC,YAAY,GAAG,IAAIL,KAAKM,KAAK,GAAG,EAAE,GAAG,CAAC;wBAAC;wBAChDC,SAASxB;wBACTa,WAAWjB,GACT,sLACAqB,KAAKQ,QAAQ,IACX;;4BAGHR,KAAKS,SAAS;4BAAC;4BAAGT,KAAKU,WAAW;;uBAV9BV,KAAKG,EAAE;+BAelB,KAACV;gBAAIG,WAAU;;;;AAOvB,GACA;AAEFf,gBAAgB8B,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"sourcesContent":["export * from \"./TableOfContents.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBlockEditor.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAQlD,OAAO,EAAmB,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;CACF;AAOD,eAAO,MAAM,cAAc,6FAOxB;IACD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;;;;;
|
|
1
|
+
{"version":3,"file":"useBlockEditor.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAQlD,OAAO,EAAmB,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;CACF;AAOD,eAAO,MAAM,cAAc,6FAOxB;IACD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;;;;;CAiGA,CAAC"}
|
|
@@ -18,7 +18,6 @@ export const useBlockEditor = ({ content, handleChange, openAssetHQHandler, addi
|
|
|
18
18
|
return "\n\n" + content + "\n\n";
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
const dir = i18next.dir();
|
|
22
21
|
const editor = useEditor({
|
|
23
22
|
content: content?.json ?? content ?? {},
|
|
24
23
|
immediatelyRender: false,
|
|
@@ -44,9 +43,7 @@ export const useBlockEditor = ({ content, handleChange, openAssetHQHandler, addi
|
|
|
44
43
|
onUpdate: ({ editor })=>{
|
|
45
44
|
handleChange(editor?.getJSON() ?? {});
|
|
46
45
|
}
|
|
47
|
-
}, [
|
|
48
|
-
dir
|
|
49
|
-
]);
|
|
46
|
+
}, []);
|
|
50
47
|
useEffect(()=>{
|
|
51
48
|
if (editor?.storage?.aiCommand) {
|
|
52
49
|
editor.storage.aiCommand.title = additionalContext?.title ?? "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {};\n\nexport const useBlockEditor = ({\n content,\n handleChange,\n openAssetHQHandler,\n additionalContext,\n autoFocus,\n isEditable,\n}: {\n content: { html: string; json: any };\n handleChange?: (data: any) => void;\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: Record<string, any>;\n autoFocus: boolean;\n isEditable?: boolean;\n}) => {\n const leftSidebar = useSidebar();\n\n const turndownService = new TurndownService({});\n // Use the gfm plugin\n turndownService.use(gfm);\n turndownService.addRule(\"twitter\", {\n filter: \"div\",\n replacement: function (content) {\n return \"\\n\\n\" + content + \"\\n\\n\";\n },\n });\n
|
|
1
|
+
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {};\n\nexport const useBlockEditor = ({\n content,\n handleChange,\n openAssetHQHandler,\n additionalContext,\n autoFocus,\n isEditable,\n}: {\n content: { html: string; json: any };\n handleChange?: (data: any) => void;\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: Record<string, any>;\n autoFocus: boolean;\n isEditable?: boolean;\n}) => {\n const leftSidebar = useSidebar();\n\n const turndownService = new TurndownService({});\n // Use the gfm plugin\n turndownService.use(gfm);\n turndownService.addRule(\"twitter\", {\n filter: \"div\",\n replacement: function (content) {\n return \"\\n\\n\" + content + \"\\n\\n\";\n },\n });\n\n const editor = useEditor(\n {\n content: content?.json ?? content ?? {},\n immediatelyRender: false,\n autofocus: autoFocus ?? true,\n editable: isEditable ?? true,\n onCreate: ({ editor }) => ({\n // provider?.on('synced', () => {\n // if (editor.isEmpty) {\n // editor.commands.setContent(initialContent)\n // }\n // })\n }),\n extensions: [\n ...ExtensionKit({\n dir: i18next.dir(),\n openAssetHQHandler: openAssetHQHandler ?? dummyAssetHqHandler,\n // provider,\n }),\n // Collaboration.configure({\n // document: ydoc,\n // }),\n // CollaborationCursor.configure({\n // provider,\n // user: {\n // name: randomElement(userNames),\n // color: randomElement(userColors),\n // },\n // }),\n ],\n editorProps: {\n attributes: {\n languages: i18next.language,\n autocomplete: \"off\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n class: \"min-h-full\",\n },\n },\n onUpdate: ({ editor }) => {\n handleChange(editor?.getJSON() ?? {});\n },\n },\n []\n );\n\n useEffect(() => {\n if (editor?.storage?.aiCommand) {\n editor.storage.aiCommand.title = additionalContext?.title ?? \"\";\n editor.storage.aiCommand.language = additionalContext?.language ?? \"\";\n }\n }, [editor, additionalContext]);\n\n const users = useMemo(() => {\n if (!editor?.storage?.collaborationCursor?.users) {\n return [];\n }\n\n return editor?.storage?.collaborationCursor?.users.map(\n (user: EditorUser) => {\n const names = user.name?.split(\" \");\n const firstName = names?.[0];\n const lastName = names?.[names.length - 1];\n const initials = `${firstName?.[0] || \"?\"}${lastName?.[0] || \"?\"}`;\n\n return { ...user, initials: initials.length ? initials : \"?\" };\n }\n );\n }, [editor?.storage.collaborationCursor?.users]);\n\n const characterCount = editor?.storage.characterCount || {\n characters: () => 0,\n words: () => 0,\n };\n\n // useEffect(() => {\n // provider?.on('status', (event: { status: WebSocketStatus }) => {\n // setCollabState(event.status)\n // })\n // }, [provider])\n\n if (typeof window != \"undefined\") window.editor = editor;\n\n return { editor, users, characterCount, leftSidebar };\n};\n"],"names":["useEffect","useMemo","useEditor","ExtensionKit","useSidebar","TurndownService","gfm","i18next","dummyAssetHqHandler","listener","file","useBlockEditor","content","handleChange","openAssetHQHandler","additionalContext","autoFocus","isEditable","leftSidebar","turndownService","use","addRule","filter","replacement","editor","json","immediatelyRender","autofocus","editable","onCreate","extensions","dir","editorProps","attributes","languages","language","autocomplete","autocorrect","autocapitalize","class","onUpdate","getJSON","storage","aiCommand","title","users","collaborationCursor","map","user","names","name","split","firstName","lastName","length","initials","characterCount","characters","words","window"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAE3C,SAAiBC,SAAS,QAAQ,gBAAgB;AAElD,OAAOC,kBAAkB,iCAAiC;AAE1D,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,qBAAqB,WAAW;AACvC,SAASC,GAAG,QAAQ,sBAAsB;AAE1C,OAAOC,aAAa,UAAU;AAQ9B,MAAMC,sBAAsB,CAC1BC,UACAC,QACI;AAEN,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,SAAS,EACTC,UAAU,EAQX;IACC,MAAMC,cAAcd;IAEpB,MAAMe,kBAAkB,IAAId,gBAAgB,CAAC;IAC7C,qBAAqB;IACrBc,gBAAgBC,GAAG,CAACd;IACpBa,gBAAgBE,OAAO,CAAC,WAAW;QACjCC,QAAQ;QACRC,aAAa,SAAUX,OAAO;YAC5B,OAAO,SAASA,UAAU;QAC5B;IACF;IAEA,MAAMY,SAAStB,UACb;QACEU,SAASA,SAASa,QAAQb,WAAW,CAAC;QACtCc,mBAAmB;QACnBC,WAAWX,aAAa;QACxBY,UAAUX,cAAc;QACxBY,UAAU,CAAC,EAAEL,MAAM,EAAE,GAAM,CAAA;YAM3B,CAAA;QACAM,YAAY;eACP3B,aAAa;gBACd4B,KAAKxB,QAAQwB,GAAG;gBAChBjB,oBAAoBA,sBAAsBN;YAE5C;SAWD;QACDwB,aAAa;YACXC,YAAY;gBACVC,WAAW3B,QAAQ4B,QAAQ;gBAC3BC,cAAc;gBACdC,aAAa;gBACbC,gBAAgB;gBAChBC,OAAO;YACT;QACF;QACAC,UAAU,CAAC,EAAEhB,MAAM,EAAE;YACnBX,aAAaW,QAAQiB,aAAa,CAAC;QACrC;IACF,GACA,EAAE;IAGJzC,UAAU;QACR,IAAIwB,QAAQkB,SAASC,WAAW;YAC9BnB,OAAOkB,OAAO,CAACC,SAAS,CAACC,KAAK,GAAG7B,mBAAmB6B,SAAS;YAC7DpB,OAAOkB,OAAO,CAACC,SAAS,CAACR,QAAQ,GAAGpB,mBAAmBoB,YAAY;QACrE;IACF,GAAG;QAACX;QAAQT;KAAkB;IAE9B,MAAM8B,QAAQ5C,QAAQ;QACpB,IAAI,CAACuB,QAAQkB,SAASI,qBAAqBD,OAAO;YAChD,OAAO,EAAE;QACX;QAEA,OAAOrB,QAAQkB,SAASI,qBAAqBD,MAAME,IACjD,CAACC;YACC,MAAMC,QAAQD,KAAKE,IAAI,EAAEC,MAAM;YAC/B,MAAMC,YAAYH,OAAO,CAAC,EAAE;YAC5B,MAAMI,WAAWJ,OAAO,CAACA,MAAMK,MAAM,GAAG,EAAE;YAC1C,MAAMC,WAAW,GAAGH,WAAW,CAAC,EAAE,IAAI,MAAMC,UAAU,CAAC,EAAE,IAAI,KAAK;YAElE,OAAO;gBAAE,GAAGL,IAAI;gBAAEO,UAAUA,SAASD,MAAM,GAAGC,WAAW;YAAI;QAC/D;IAEJ,GAAG;QAAC/B,QAAQkB,QAAQI,qBAAqBD;KAAM;IAE/C,MAAMW,iBAAiBhC,QAAQkB,QAAQc,kBAAkB;QACvDC,YAAY,IAAM;QAClBC,OAAO,IAAM;IACf;IAEA,oBAAoB;IACpB,qEAAqE;IACrE,mCAAmC;IACnC,OAAO;IACP,iBAAiB;IAEjB,IAAI,OAAOC,UAAU,aAAaA,OAAOnC,MAAM,GAAGA;IAElD,OAAO;QAAEA;QAAQqB;QAAOW;QAAgBtC;IAAY;AACtD,EAAE"}
|