@payloadcms/richtext-lexical 3.57.0-internal.74d0404 → 3.57.0-internal.801ab5a
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/exports/client/bundled.css +1 -1
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/client/pendingComponent-WFSCE6LJ.js +2 -0
- package/dist/exports/client/pendingComponent-WFSCE6LJ.js.map +7 -0
- package/dist/features/heading/client/index.d.ts.map +1 -1
- package/dist/features/heading/client/index.js +0 -60
- package/dist/features/heading/client/index.js.map +1 -1
- package/dist/features/heading/server/index.d.ts.map +1 -1
- package/dist/features/heading/server/index.js +0 -1
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/upload/client/index.d.ts.map +1 -1
- package/dist/features/upload/client/index.js +2 -1
- package/dist/features/upload/client/index.js.map +1 -1
- package/dist/features/upload/client/nodes/PendingUploadNode.d.ts +17 -0
- package/dist/features/upload/client/nodes/PendingUploadNode.d.ts.map +1 -0
- package/dist/features/upload/client/nodes/PendingUploadNode.js +57 -0
- package/dist/features/upload/client/nodes/PendingUploadNode.js.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts +2 -7
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +3 -27
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/pendingComponent/index.d.ts +7 -0
- package/dist/features/upload/client/pendingComponent/index.d.ts.map +1 -0
- package/dist/features/upload/client/pendingComponent/index.js +14 -0
- package/dist/features/upload/client/pendingComponent/index.js.map +1 -0
- package/dist/features/upload/client/plugin/index.d.ts +6 -0
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.js +292 -22
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/index.d.ts.map +1 -1
- package/dist/features/upload/server/index.js +4 -1
- package/dist/features/upload/server/index.js.map +1 -1
- package/dist/features/upload/server/nodes/PendingUploadNode.d.ts +42 -0
- package/dist/features/upload/server/nodes/PendingUploadNode.d.ts.map +1 -0
- package/dist/features/upload/server/nodes/PendingUploadNode.js +92 -0
- package/dist/features/upload/server/nodes/PendingUploadNode.js.map +1 -0
- package/dist/features/upload/server/nodes/UploadNode.d.ts +0 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js +3 -37
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/server/nodes/conversions.d.ts +9 -0
- package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -0
- package/dist/features/upload/server/nodes/conversions.js +53 -0
- package/dist/features/upload/server/nodes/conversions.js.map +1 -0
- package/dist/field/bundled.css +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import{ShimmerEffect as o}from"@payloadcms/ui";var t=i=>e("div",{className:"lexical-upload",children:e(o,{height:"95px",width:"203px"})});export{t as PendingUploadComponent};
|
|
2
|
+
//# sourceMappingURL=pendingComponent-WFSCE6LJ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/features/upload/client/pendingComponent/index.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\n\nimport type { PendingUploadData } from '../../server/nodes/PendingUploadNode.js'\n\nimport '../component/index.scss'\n\nexport const PendingUploadComponent = (props: {\n data: PendingUploadData\n nodeKey: string\n}): React.ReactNode => {\n return (\n <div className={'lexical-upload'}>\n <ShimmerEffect height={'95px'} width={'203px'} />\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "qDAEA,OAASA,iBAAAA,MAAqB,iBAMvB,IAAMC,EAA0BC,GAKnCC,EAAC,MAAA,CAAIC,UAAW,0BACdD,EAACH,EAAA,CAAcK,OAAQ,OAAQC,MAAO",
|
|
6
|
+
"names": ["ShimmerEffect", "PendingUploadComponent", "props", "_jsx", "className", "height", "width"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/client/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/client/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA2B7D,eAAO,MAAM,oBAAoB,wGA6E/B,CAAA"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
|
-
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
5
3
|
import { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text';
|
|
6
4
|
import { $setBlocksType } from '@lexical/selection';
|
|
7
5
|
import { $getSelection, $isRangeSelection } from 'lexical';
|
|
8
|
-
import { useEffect } from 'react';
|
|
9
6
|
import { H1Icon } from '../../../lexical/ui/icons/H1/index.js';
|
|
10
7
|
import { H2Icon } from '../../../lexical/ui/icons/H2/index.js';
|
|
11
8
|
import { H3Icon } from '../../../lexical/ui/icons/H3/index.js';
|
|
@@ -76,10 +73,6 @@ export const HeadingFeatureClient = createClientFeature(({
|
|
|
76
73
|
return {
|
|
77
74
|
markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],
|
|
78
75
|
nodes: [HeadingNode],
|
|
79
|
-
plugins: [{
|
|
80
|
-
Component: HeadingPlugin,
|
|
81
|
-
position: 'normal'
|
|
82
|
-
}],
|
|
83
76
|
sanitizedClientFeatureProps: props,
|
|
84
77
|
slashMenu: {
|
|
85
78
|
groups: enabledHeadingSizes?.length ? [slashMenuBasicGroupWithItems(enabledHeadingSizes.map(headingSize => {
|
|
@@ -112,57 +105,4 @@ export const HeadingFeatureClient = createClientFeature(({
|
|
|
112
105
|
}
|
|
113
106
|
};
|
|
114
107
|
});
|
|
115
|
-
const HeadingPlugin = t0 => {
|
|
116
|
-
const $ = _c(9);
|
|
117
|
-
const {
|
|
118
|
-
clientProps
|
|
119
|
-
} = t0;
|
|
120
|
-
const {
|
|
121
|
-
enabledHeadingSizes: t1
|
|
122
|
-
} = clientProps;
|
|
123
|
-
let t2;
|
|
124
|
-
if ($[0] !== t1) {
|
|
125
|
-
t2 = t1 === undefined ? ["h1", "h2", "h3", "h4", "h5", "h6"] : t1;
|
|
126
|
-
$[0] = t1;
|
|
127
|
-
$[1] = t2;
|
|
128
|
-
} else {
|
|
129
|
-
t2 = $[1];
|
|
130
|
-
}
|
|
131
|
-
const enabledHeadingSizes = t2;
|
|
132
|
-
let t3;
|
|
133
|
-
if ($[2] !== enabledHeadingSizes) {
|
|
134
|
-
t3 = enabledHeadingSizes.at(-1);
|
|
135
|
-
$[2] = enabledHeadingSizes;
|
|
136
|
-
$[3] = t3;
|
|
137
|
-
} else {
|
|
138
|
-
t3 = $[3];
|
|
139
|
-
}
|
|
140
|
-
const lowestAllowed = t3;
|
|
141
|
-
const [editor] = useLexicalComposerContext();
|
|
142
|
-
let t4;
|
|
143
|
-
let t5;
|
|
144
|
-
if ($[4] !== editor || $[5] !== enabledHeadingSizes || $[6] !== lowestAllowed) {
|
|
145
|
-
t4 = () => {
|
|
146
|
-
if (!lowestAllowed || enabledHeadingSizes.length === 6) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
return editor.registerNodeTransform(HeadingNode, node => {
|
|
150
|
-
if (!enabledHeadingSizes.includes(node.getTag())) {
|
|
151
|
-
node.setTag(lowestAllowed);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
};
|
|
155
|
-
t5 = [editor, enabledHeadingSizes, lowestAllowed];
|
|
156
|
-
$[4] = editor;
|
|
157
|
-
$[5] = enabledHeadingSizes;
|
|
158
|
-
$[6] = lowestAllowed;
|
|
159
|
-
$[7] = t4;
|
|
160
|
-
$[8] = t5;
|
|
161
|
-
} else {
|
|
162
|
-
t4 = $[7];
|
|
163
|
-
t5 = $[8];
|
|
164
|
-
}
|
|
165
|
-
useEffect(t4, t5);
|
|
166
|
-
return null;
|
|
167
|
-
};
|
|
168
108
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["$createHeadingNode","$isHeadingNode","HeadingNode","$setBlocksType","$getSelection","$isRangeSelection","H1Icon","H2Icon","H3Icon","H4Icon","H5Icon","H6Icon","createClientFeature","slashMenuBasicGroupWithItems","toolbarTextDropdownGroupWithItems","MarkdownTransformer","$setHeading","headingSize","selection","iconImports","h1","h2","h3","h4","h5","h6","HeadingFeatureClient","props","enabledHeadingSizes","toolbarGroups","map","i","ChildComponent","isActive","node","getNodes","getTag","parent","getParent","key","label","i18n","t","headingLevel","charAt","onSelect","editor","update","order","markdownTransformers","nodes","sanitizedClientFeatureProps","slashMenu","groups","length","Icon","keywords","toolbarFixed","toolbarInline"],"sources":["../../../../src/features/heading/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { HeadingTagType } from '@lexical/rich-text'\n\nimport { $createHeadingNode, $isHeadingNode, HeadingNode } from '@lexical/rich-text'\nimport { $setBlocksType } from '@lexical/selection'\nimport { $getSelection, $isRangeSelection } from 'lexical'\n\nimport type { ToolbarGroup } from '../../toolbars/types.js'\nimport type { HeadingFeatureProps } from '../server/index.js'\n\nimport { H1Icon } from '../../../lexical/ui/icons/H1/index.js'\nimport { H2Icon } from '../../../lexical/ui/icons/H2/index.js'\nimport { H3Icon } from '../../../lexical/ui/icons/H3/index.js'\nimport { H4Icon } from '../../../lexical/ui/icons/H4/index.js'\nimport { H5Icon } from '../../../lexical/ui/icons/H5/index.js'\nimport { H6Icon } from '../../../lexical/ui/icons/H6/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarTextDropdownGroupWithItems } from '../../shared/toolbar/textDropdownGroup.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\n\nconst $setHeading = (headingSize: HeadingTagType) => {\n const selection = $getSelection()\n $setBlocksType(selection, () => $createHeadingNode(headingSize))\n}\n\nconst iconImports = {\n h1: H1Icon,\n h2: H2Icon,\n h3: H3Icon,\n h4: H4Icon,\n h5: H5Icon,\n h6: H6Icon,\n}\n\nexport const HeadingFeatureClient = createClientFeature<HeadingFeatureProps>(({ props }) => {\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n const toolbarGroups: ToolbarGroup[] = [\n toolbarTextDropdownGroupWithItems(\n enabledHeadingSizes.map((headingSize, i) => {\n return {\n ChildComponent: iconImports[headingSize],\n isActive: ({ selection }) => {\n if (!$isRangeSelection(selection)) {\n return false\n }\n for (const node of selection.getNodes()) {\n if ($isHeadingNode(node) && node.getTag() === headingSize) {\n continue\n }\n\n const parent = node.getParent()\n if ($isHeadingNode(parent) && parent.getTag() === headingSize) {\n continue\n }\n\n return false\n }\n return true\n },\n key: headingSize,\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', { headingLevel: headingSize.charAt(1) })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n order: i + 2,\n }\n }),\n ),\n ]\n\n return {\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [HeadingNode],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: enabledHeadingSizes?.length\n ? [\n slashMenuBasicGroupWithItems(\n enabledHeadingSizes.map((headingSize) => {\n return {\n Icon: iconImports[headingSize],\n key: `heading-${headingSize.charAt(1)}`,\n keywords: ['heading', headingSize],\n label: ({ i18n }) => {\n return i18n.t('lexical:heading:label', {\n headingLevel: headingSize.charAt(1),\n })\n },\n onSelect: ({ editor }) => {\n editor.update(() => {\n $setHeading(headingSize)\n })\n },\n }\n }),\n ),\n ]\n : [],\n },\n toolbarFixed: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n toolbarInline: {\n groups: enabledHeadingSizes?.length ? toolbarGroups : [],\n },\n }\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,IAAI,sBAAsB,EAC/C,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAUrC,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,EACD,sBAAsB,CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/heading/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,IAAI,sBAAsB,EAC/C,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAUrC,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,EACD,sBAAsB,CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,cAAc,6HAoEzB,CAAA"}
|
|
@@ -14,7 +14,6 @@ export const HeadingFeature = createServerFeature({
|
|
|
14
14
|
const {
|
|
15
15
|
enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
|
|
16
16
|
} = props;
|
|
17
|
-
enabledHeadingSizes.sort();
|
|
18
17
|
return {
|
|
19
18
|
ClientFeature: '@payloadcms/richtext-lexical/client#HeadingFeatureClient',
|
|
20
19
|
clientFeatureProps: props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","
|
|
1
|
+
{"version":3,"file":"index.js","names":["HeadingNode","createServerFeature","convertLexicalNodesToHTML","createNode","MarkdownTransformer","i18n","HeadingFeature","feature","props","enabledHeadingSizes","ClientFeature","clientFeatureProps","markdownTransformers","nodes","converters","html","converter","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","tag","nodeTypes","getType","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/heading/server/index.ts"],"sourcesContent":["import type {\n SerializedHeadingNode as _SerializedHeadingNode,\n HeadingTagType,\n} from '@lexical/rich-text'\nimport type { Spread } from 'lexical'\n\nimport { HeadingNode } from '@lexical/rich-text'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { convertLexicalNodesToHTML } from '../../converters/lexicalToHtml_deprecated/converter/index.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { MarkdownTransformer } from '../markdownTransformer.js'\nimport { i18n } from './i18n.js'\n\nexport type SerializedHeadingNode = Spread<\n {\n type: 'heading'\n },\n _SerializedHeadingNode\n>\n\nexport type HeadingFeatureProps = {\n enabledHeadingSizes?: HeadingTagType[]\n}\n\nexport const HeadingFeature = createServerFeature<\n HeadingFeatureProps,\n HeadingFeatureProps,\n HeadingFeatureProps\n>({\n feature: ({ props }) => {\n if (!props) {\n props = {}\n }\n\n const { enabledHeadingSizes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] } = props\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#HeadingFeatureClient',\n clientFeatureProps: props,\n i18n,\n markdownTransformers: [MarkdownTransformer(enabledHeadingSizes)],\n nodes: [\n createNode({\n converters: {\n html: {\n converter: async ({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) => {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n const style = [\n node.format ? `text-align: ${node.format};` : '',\n // the unit should be px. Do not change it to rem, em, or something else.\n // The quantity should be 40px. Do not change it either.\n // See rationale in\n // https://github.com/payloadcms/payload/issues/13130#issuecomment-3058348085\n node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : '',\n ]\n .filter(Boolean)\n .join(' ')\n return `<${node?.tag}${style ? ` style='${style}'` : ''}>${childrenText}</${node?.tag}>`\n },\n nodeTypes: [HeadingNode.getType()],\n },\n },\n node: HeadingNode,\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'heading',\n})\n"],"mappings":"AAMA,SAASA,WAAW,QAAQ;AAE5B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,IAAI,QAAQ;AAarB,OAAO,MAAMC,cAAA,GAAiBL,mBAAA,CAI5B;EACAM,OAAA,EAASA,CAAC;IAAEC;EAAK,CAAE;IACjB,IAAI,CAACA,KAAA,EAAO;MACVA,KAAA,GAAQ,CAAC;IACX;IAEA,MAAM;MAAEC,mBAAA,GAAsB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM;IAAK,CAAE,GAAGD,KAAA;IAEvE,OAAO;MACLE,aAAA,EAAe;MACfC,kBAAA,EAAoBH,KAAA;MACpBH,IAAA;MACAO,oBAAA,EAAsB,CAACR,mBAAA,CAAoBK,mBAAA,EAAqB;MAChEI,KAAA,EAAO,CACLV,UAAA,CAAW;QACTW,UAAA,EAAY;UACVC,IAAA,EAAM;YACJC,SAAA,EAAW,MAAAA,CAAO;cAChBF,UAAU;cACVG,YAAY;cACZC,KAAK;cACLC,KAAK;cACLC,IAAI;cACJC,cAAc;cACdC,MAAM;cACNC,GAAG;cACHC;YAAgB,CACjB;cACC,MAAMC,YAAA,GAAe,MAAMvB,yBAAA,CAA0B;gBACnDY,UAAA;gBACAG,YAAA;gBACAC,KAAA;gBACAC,KAAA;gBACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;gBAC3BN,cAAA;gBACAC,MAAA,EAAQ;kBACN,GAAGF,IAAI;kBACPE;gBACF;gBACAC,GAAA;gBACAC;cACF;cACA,MAAMI,KAAA,GAAQ,CACZR,IAAA,CAAKS,MAAM,GAAG,eAAeT,IAAA,CAAKS,MAAM,GAAG,GAAG;cAC9C;cACA;cACA;cACA;cACAT,IAAA,CAAKU,MAAM,GAAG,IAAI,yBAAyBV,IAAA,CAAKU,MAAM,GAAG,OAAO,GAAG,GACpE,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cACR,OAAO,IAAIb,IAAA,EAAMc,GAAA,GAAMN,KAAA,GAAQ,WAAWA,KAAA,GAAQ,GAAG,MAAMH,YAAA,KAAiBL,IAAA,EAAMc,GAAA,GAAM;YAC1F;YACAC,SAAA,EAAW,CAACnC,WAAA,CAAYoC,OAAO;UACjC;QACF;QACAhB,IAAA,EAAMpB;MACR,GACD;MACDqC,2BAAA,EAA6B7B;IAC/B;EACF;EACA8B,GAAA,EAAK;AACP","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/upload/client/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/upload/client/index.tsx"],"names":[],"mappings":"AAaA,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE;QACX,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,cAAc,EAAE,OAAO,CAAA;SACxB,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,mBAAmB,kHAqD9B,CAAA"}
|
|
@@ -6,10 +6,11 @@ import { createClientFeature } from '../../../utilities/createClientFeature.js';
|
|
|
6
6
|
import { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js';
|
|
7
7
|
import { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js';
|
|
8
8
|
import { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js';
|
|
9
|
+
import { PendingUploadNode } from './nodes/PendingUploadNode.js';
|
|
9
10
|
import { $isUploadNode, UploadNode } from './nodes/UploadNode.js';
|
|
10
11
|
import { UploadPlugin } from './plugin/index.js';
|
|
11
12
|
export const UploadFeatureClient = createClientFeature({
|
|
12
|
-
nodes: [UploadNode],
|
|
13
|
+
nodes: [UploadNode, PendingUploadNode],
|
|
13
14
|
plugins: [{
|
|
14
15
|
Component: UploadPlugin,
|
|
15
16
|
position: 'normal'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["$isNodeSelection","UploadIcon","createClientFeature","slashMenuBasicGroupWithItems","toolbarAddDropdownGroupWithItems","INSERT_UPLOAD_WITH_DRAWER_COMMAND","$isUploadNode","UploadNode","UploadPlugin","UploadFeatureClient","nodes","plugins","Component","position","slashMenu","groups","Icon","key","keywords","label","i18n","t","onSelect","editor","dispatchCommand","replace","toolbarFixed","ChildComponent","isActive","selection","getNodes","length","firstNode"],"sources":["../../../../src/features/upload/client/index.tsx"],"sourcesContent":["'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport { UploadIcon } from '../../../lexical/ui/icons/Upload/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { $isUploadNode, UploadNode } from './nodes/UploadNode.js'\nimport { UploadPlugin } from './plugin/index.js'\n\nexport type UploadFeaturePropsClient = {\n collections: {\n [collection: string]: {\n hasExtraFields: boolean\n }\n }\n}\n\nexport const UploadFeatureClient = createClientFeature<UploadFeaturePropsClient>({\n nodes: [UploadNode],\n plugins: [\n {\n Component: UploadPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: UploadIcon,\n key: 'upload',\n keywords: ['upload', 'image', 'file', 'img', 'picture', 'photo', 'media'],\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: UploadIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isUploadNode(firstNode)\n },\n key: 'upload',\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,gBAAgB,QAAQ;AAEjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,gCAAgC,QAAQ;AACjD,SAASC,iCAAiC,QAAQ;AAClD,SAASC,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SAASC,YAAY,QAAQ;AAU7B,OAAO,MAAMC,mBAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["$isNodeSelection","UploadIcon","createClientFeature","slashMenuBasicGroupWithItems","toolbarAddDropdownGroupWithItems","INSERT_UPLOAD_WITH_DRAWER_COMMAND","PendingUploadNode","$isUploadNode","UploadNode","UploadPlugin","UploadFeatureClient","nodes","plugins","Component","position","slashMenu","groups","Icon","key","keywords","label","i18n","t","onSelect","editor","dispatchCommand","replace","toolbarFixed","ChildComponent","isActive","selection","getNodes","length","firstNode"],"sources":["../../../../src/features/upload/client/index.tsx"],"sourcesContent":["'use client'\n\nimport { $isNodeSelection } from 'lexical'\n\nimport { UploadIcon } from '../../../lexical/ui/icons/Upload/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { slashMenuBasicGroupWithItems } from '../../shared/slashMenu/basicGroup.js'\nimport { toolbarAddDropdownGroupWithItems } from '../../shared/toolbar/addDropdownGroup.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from './drawer/commands.js'\nimport { PendingUploadNode } from './nodes/PendingUploadNode.js'\nimport { $isUploadNode, UploadNode } from './nodes/UploadNode.js'\nimport { UploadPlugin } from './plugin/index.js'\n\nexport type UploadFeaturePropsClient = {\n collections: {\n [collection: string]: {\n hasExtraFields: boolean\n }\n }\n}\n\nexport const UploadFeatureClient = createClientFeature<UploadFeaturePropsClient>({\n nodes: [UploadNode, PendingUploadNode],\n plugins: [\n {\n Component: UploadPlugin,\n position: 'normal',\n },\n ],\n slashMenu: {\n groups: [\n slashMenuBasicGroupWithItems([\n {\n Icon: UploadIcon,\n key: 'upload',\n keywords: ['upload', 'image', 'file', 'img', 'picture', 'photo', 'media'],\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n toolbarFixed: {\n groups: [\n toolbarAddDropdownGroupWithItems([\n {\n ChildComponent: UploadIcon,\n isActive: ({ selection }) => {\n if (!$isNodeSelection(selection) || !selection.getNodes().length) {\n return false\n }\n\n const firstNode = selection.getNodes()[0]\n return $isUploadNode(firstNode)\n },\n key: 'upload',\n label: ({ i18n }) => {\n return i18n.t('lexical:upload:label')\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: false,\n })\n },\n },\n ]),\n ],\n },\n})\n"],"mappings":"AAAA;;AAEA,SAASA,gBAAgB,QAAQ;AAEjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,gCAAgC,QAAQ;AACjD,SAASC,iCAAiC,QAAQ;AAClD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SAASC,YAAY,QAAQ;AAU7B,OAAO,MAAMC,mBAAA,GAAsBR,mBAAA,CAA8C;EAC/ES,KAAA,EAAO,CAACH,UAAA,EAAYF,iBAAA,CAAkB;EACtCM,OAAA,EAAS,CACP;IACEC,SAAA,EAAWJ,YAAA;IACXK,QAAA,EAAU;EACZ,EACD;EACDC,SAAA,EAAW;IACTC,MAAA,EAAQ,CACNb,4BAAA,CAA6B,CAC3B;MACEc,IAAA,EAAMhB,UAAA;MACNiB,GAAA,EAAK;MACLC,QAAA,EAAU,CAAC,UAAU,SAAS,QAAQ,OAAO,WAAW,SAAS,QAAQ;MACzEC,KAAA,EAAOA,CAAC;QAAEC;MAAI,CAAE;QACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;MAChB;MACAC,QAAA,EAAUA,CAAC;QAAEC;MAAM,CAAE;QACnBA,MAAA,CAAOC,eAAe,CAACpB,iCAAA,EAAmC;UACxDqB,OAAA,EAAS;QACX;MACF;IACF,EACD;EAEL;EACAC,YAAA,EAAc;IACZX,MAAA,EAAQ,CACNZ,gCAAA,CAAiC,CAC/B;MACEwB,cAAA,EAAgB3B,UAAA;MAChB4B,QAAA,EAAUA,CAAC;QAAEC;MAAS,CAAE;QACtB,IAAI,CAAC9B,gBAAA,CAAiB8B,SAAA,KAAc,CAACA,SAAA,CAAUC,QAAQ,GAAGC,MAAM,EAAE;UAChE,OAAO;QACT;QAEA,MAAMC,SAAA,GAAYH,SAAA,CAAUC,QAAQ,EAAE,CAAC,EAAE;QACzC,OAAOxB,aAAA,CAAc0B,SAAA;MACvB;MACAf,GAAA,EAAK;MACLE,KAAA,EAAOA,CAAC;QAAEC;MAAI,CAAE;QACd,OAAOA,IAAA,CAAKC,CAAC,CAAC;MAChB;MACAC,QAAA,EAAUA,CAAC;QAAEC;MAAM,CAAE;QACnBA,MAAA,CAAOC,eAAe,CAACpB,iCAAA,EAAmC;UACxDqB,OAAA,EAAS;QACX;MACF;IACF,EACD;EAEL;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DOMConversionMap, LexicalNode } from 'lexical';
|
|
2
|
+
import type { JSX } from 'react';
|
|
3
|
+
import type { PendingUploadData, SerializedPendingUploadNode } from '../../server/nodes/PendingUploadNode.js';
|
|
4
|
+
import { PendingUploadServerNode } from '../../server/nodes/PendingUploadNode.js';
|
|
5
|
+
export declare class PendingUploadNode extends PendingUploadServerNode {
|
|
6
|
+
static clone(node: PendingUploadServerNode): PendingUploadServerNode;
|
|
7
|
+
static getType(): string;
|
|
8
|
+
static importDOM(): DOMConversionMap<HTMLImageElement>;
|
|
9
|
+
static importJSON(serializedNode: SerializedPendingUploadNode): PendingUploadNode;
|
|
10
|
+
decorate(): JSX.Element;
|
|
11
|
+
exportJSON(): SerializedPendingUploadNode;
|
|
12
|
+
}
|
|
13
|
+
export declare function $createPendingUploadNode({ data }: {
|
|
14
|
+
data: PendingUploadData;
|
|
15
|
+
}): PendingUploadNode;
|
|
16
|
+
export declare function $isPendingUploadNode(node: LexicalNode | null | undefined): node is PendingUploadNode;
|
|
17
|
+
//# sourceMappingURL=PendingUploadNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingUploadNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/nodes/PendingUploadNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EACV,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AAQjF,qBAAa,iBAAkB,SAAQ,uBAAuB;WAC5C,KAAK,CAAC,IAAI,EAAE,uBAAuB,GAAG,uBAAuB;WAI7D,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;WAS/C,UAAU,CAAC,cAAc,EAAE,2BAA2B,GAAG,iBAAiB;IAYjF,QAAQ,IAAI,GAAG,CAAC,OAAO;IAIvB,UAAU,IAAI,2BAA2B;CAGnD;AAED,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAAG,iBAAiB,CAEjG;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACnC,IAAI,IAAI,iBAAiB,CAE3B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { $applyNodeReplacement } from 'lexical';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { $convertPendingUploadElement } from '../../server/nodes/conversions.js';
|
|
7
|
+
import { PendingUploadServerNode } from '../../server/nodes/PendingUploadNode.js';
|
|
8
|
+
const PendingUploadComponent = /*#__PURE__*/React.lazy(() => import('../../client/pendingComponent/index.js').then(module => ({
|
|
9
|
+
default: module.PendingUploadComponent
|
|
10
|
+
})));
|
|
11
|
+
export class PendingUploadNode extends PendingUploadServerNode {
|
|
12
|
+
static clone(node) {
|
|
13
|
+
return super.clone(node);
|
|
14
|
+
}
|
|
15
|
+
static getType() {
|
|
16
|
+
return super.getType();
|
|
17
|
+
}
|
|
18
|
+
static importDOM() {
|
|
19
|
+
return {
|
|
20
|
+
img: () => ({
|
|
21
|
+
conversion: domNode => $convertPendingUploadElement(domNode, $createPendingUploadNode),
|
|
22
|
+
priority: 0
|
|
23
|
+
})
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static importJSON(serializedNode) {
|
|
27
|
+
const importedData = {
|
|
28
|
+
formID: serializedNode.formID,
|
|
29
|
+
src: serializedNode.src
|
|
30
|
+
};
|
|
31
|
+
const node = $createPendingUploadNode({
|
|
32
|
+
data: importedData
|
|
33
|
+
});
|
|
34
|
+
node.setFormat(serializedNode.format);
|
|
35
|
+
return node;
|
|
36
|
+
}
|
|
37
|
+
decorate() {
|
|
38
|
+
return /*#__PURE__*/_jsx(PendingUploadComponent, {
|
|
39
|
+
data: this.__data,
|
|
40
|
+
nodeKey: this.getKey()
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
exportJSON() {
|
|
44
|
+
return super.exportJSON();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function $createPendingUploadNode({
|
|
48
|
+
data
|
|
49
|
+
}) {
|
|
50
|
+
return $applyNodeReplacement(new PendingUploadNode({
|
|
51
|
+
data
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
export function $isPendingUploadNode(node) {
|
|
55
|
+
return node instanceof PendingUploadNode;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=PendingUploadNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingUploadNode.js","names":["$applyNodeReplacement","React","$convertPendingUploadElement","PendingUploadServerNode","PendingUploadComponent","lazy","then","module","default","PendingUploadNode","clone","node","getType","importDOM","img","conversion","domNode","$createPendingUploadNode","priority","importJSON","serializedNode","importedData","formID","src","data","setFormat","format","decorate","_jsx","__data","nodeKey","getKey","exportJSON","$isPendingUploadNode"],"sources":["../../../../../src/features/upload/client/nodes/PendingUploadNode.tsx"],"sourcesContent":["'use client'\nimport type { DOMConversionMap, LexicalNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type {\n PendingUploadData,\n SerializedPendingUploadNode,\n} from '../../server/nodes/PendingUploadNode.js'\n\nimport { $convertPendingUploadElement } from '../../server/nodes/conversions.js'\nimport { PendingUploadServerNode } from '../../server/nodes/PendingUploadNode.js'\n\nconst PendingUploadComponent = React.lazy(() =>\n import('../../client/pendingComponent/index.js').then((module) => ({\n default: module.PendingUploadComponent,\n })),\n)\n\nexport class PendingUploadNode extends PendingUploadServerNode {\n static override clone(node: PendingUploadServerNode): PendingUploadServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: () => ({\n conversion: (domNode) => $convertPendingUploadElement(domNode, $createPendingUploadNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedPendingUploadNode): PendingUploadNode {\n const importedData: PendingUploadData = {\n formID: serializedNode.formID,\n src: serializedNode.src,\n }\n\n const node = $createPendingUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n override decorate(): JSX.Element {\n return <PendingUploadComponent data={this.__data} nodeKey={this.getKey()} />\n }\n\n override exportJSON(): SerializedPendingUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createPendingUploadNode({ data }: { data: PendingUploadData }): PendingUploadNode {\n return $applyNodeReplacement(new PendingUploadNode({ data }))\n}\n\nexport function $isPendingUploadNode(\n node: LexicalNode | null | undefined,\n): node is PendingUploadNode {\n return node instanceof PendingUploadNode\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,qBAAqB,QAAQ;AACtC,YAAYC,KAAA,MAAW;AAOvB,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,QAAQ;AAExC,MAAMC,sBAAA,gBAAyBH,KAAA,CAAMI,IAAI,CAAC,MACxC,MAAM,CAAC,0CAA0CC,IAAI,CAAEC,MAAA,KAAY;EACjEC,OAAA,EAASD,MAAA,CAAOH;AAClB;AAGF,OAAO,MAAMK,iBAAA,SAA0BN,uBAAA;EACrC,OAAgBO,MAAMC,IAA6B,EAA2B;IAC5E,OAAO,KAAK,CAACD,KAAA,CAAMC,IAAA;EACrB;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO,KAAK,CAACA,OAAA;EACf;EAEA,OAAgBC,UAAA,EAAgD;IAC9D,OAAO;MACLC,GAAA,EAAKA,CAAA,MAAO;QACVC,UAAA,EAAaC,OAAA,IAAYd,4BAAA,CAA6Bc,OAAA,EAASC,wBAAA;QAC/DC,QAAA,EAAU;MACZ;IACF;EACF;EAEA,OAAgBC,WAAWC,cAA2C,EAAqB;IACzF,MAAMC,YAAA,GAAkC;MACtCC,MAAA,EAAQF,cAAA,CAAeE,MAAM;MAC7BC,GAAA,EAAKH,cAAA,CAAeG;IACtB;IAEA,MAAMZ,IAAA,GAAOM,wBAAA,CAAyB;MAAEO,IAAA,EAAMH;IAAa;IAC3DV,IAAA,CAAKc,SAAS,CAACL,cAAA,CAAeM,MAAM;IAEpC,OAAOf,IAAA;EACT;EAESgB,SAAA,EAAwB;IAC/B,oBAAOC,IAAA,CAACxB,sBAAA;MAAuBoB,IAAA,EAAM,IAAI,CAACK,MAAM;MAAEC,OAAA,EAAS,IAAI,CAACC,MAAM;;EACxE;EAESC,WAAA,EAA0C;IACjD,OAAO,KAAK,CAACA,UAAA;EACf;AACF;AAEA,OAAO,SAASf,yBAAyB;EAAEO;AAAI,CAA+B;EAC5E,OAAOxB,qBAAA,CAAsB,IAAIS,iBAAA,CAAkB;IAAEe;EAAK;AAC5D;AAEA,OAAO,SAASS,qBACdtB,IAAoC;EAEpC,OAAOA,IAAA,YAAgBF,iBAAA;AACzB","ignoreList":[]}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { DOMConversionMap, LexicalNode, Spread } from 'lexical';
|
|
1
|
+
import type { DOMConversionMap, LexicalNode } from 'lexical';
|
|
3
2
|
import type { JSX } from 'react';
|
|
4
|
-
import type { UploadData } from '../../server/nodes/UploadNode.js';
|
|
3
|
+
import type { SerializedUploadNode, UploadData } from '../../server/nodes/UploadNode.js';
|
|
5
4
|
import { UploadServerNode } from '../../server/nodes/UploadNode.js';
|
|
6
|
-
export type SerializedUploadNode = {
|
|
7
|
-
children?: never;
|
|
8
|
-
type: 'upload';
|
|
9
|
-
} & Spread<UploadData, SerializedDecoratorBlockNode>;
|
|
10
5
|
export declare class UploadNode extends UploadServerNode {
|
|
11
6
|
static clone(node: UploadServerNode): UploadServerNode;
|
|
12
7
|
static getType(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/nodes/UploadNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"UploadNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/nodes/UploadNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAMhC,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAMnE,qBAAa,UAAW,SAAQ,gBAAgB;WAC9B,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB;WAI/C,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;WAS/C,UAAU,CAAC,cAAc,EAAE,oBAAoB,GAAG,UAAU;IAsBnE,QAAQ,IAAI,GAAG,CAAC,OAAO;IAIvB,UAAU,IAAI,oBAAoB;CAG5C;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;CAC/D,GAAG,UAAU,CAKb;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,UAAU,CAEtF"}
|
|
@@ -4,35 +4,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
import ObjectID from 'bson-objectid';
|
|
5
5
|
import { $applyNodeReplacement } from 'lexical';
|
|
6
6
|
import * as React from 'react';
|
|
7
|
-
import {
|
|
7
|
+
import { $convertUploadElement } from '../../server/nodes/conversions.js';
|
|
8
|
+
import { UploadServerNode } from '../../server/nodes/UploadNode.js';
|
|
8
9
|
const RawUploadComponent = /*#__PURE__*/React.lazy(() => import('../../client/component/index.js').then(module => ({
|
|
9
10
|
default: module.UploadComponent
|
|
10
11
|
})));
|
|
11
|
-
function $convertUploadElement(domNode) {
|
|
12
|
-
if (domNode.hasAttribute('data-lexical-upload-relation-to') && domNode.hasAttribute('data-lexical-upload-id')) {
|
|
13
|
-
const id = domNode.getAttribute('data-lexical-upload-id');
|
|
14
|
-
const relationTo = domNode.getAttribute('data-lexical-upload-relation-to');
|
|
15
|
-
if (id != null && relationTo != null) {
|
|
16
|
-
const node = $createUploadNode({
|
|
17
|
-
data: {
|
|
18
|
-
fields: {},
|
|
19
|
-
relationTo,
|
|
20
|
-
value: id
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
return {
|
|
24
|
-
node
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
const img = domNode;
|
|
29
|
-
if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
// TODO: Auto-upload functionality here!
|
|
33
|
-
//}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
12
|
export class UploadNode extends UploadServerNode {
|
|
37
13
|
static clone(node) {
|
|
38
14
|
return super.clone(node);
|
|
@@ -43,7 +19,7 @@ export class UploadNode extends UploadServerNode {
|
|
|
43
19
|
static importDOM() {
|
|
44
20
|
return {
|
|
45
21
|
img: node => ({
|
|
46
|
-
conversion: $convertUploadElement,
|
|
22
|
+
conversion: domNode => $convertUploadElement(domNode, $createUploadNode),
|
|
47
23
|
priority: 0
|
|
48
24
|
})
|
|
49
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadNode.js","names":["ObjectID","$applyNodeReplacement","React","
|
|
1
|
+
{"version":3,"file":"UploadNode.js","names":["ObjectID","$applyNodeReplacement","React","$convertUploadElement","UploadServerNode","RawUploadComponent","lazy","then","module","default","UploadComponent","UploadNode","clone","node","getType","importDOM","img","conversion","domNode","$createUploadNode","priority","importJSON","serializedNode","version","value","id","toHexString","importedData","fields","relationTo","data","setFormat","format","decorate","_jsx","__data","nodeKey","getKey","exportJSON","$isUploadNode"],"sources":["../../../../../src/features/upload/client/nodes/UploadNode.tsx"],"sourcesContent":["'use client'\nimport type { DOMConversionMap, LexicalNode } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { SerializedUploadNode, UploadData } from '../../server/nodes/UploadNode.js'\n\nimport { $convertUploadElement } from '../../server/nodes/conversions.js'\nimport { UploadServerNode } from '../../server/nodes/UploadNode.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nexport class UploadNode extends UploadServerNode {\n static override clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLImageElement> {\n return {\n img: (node) => ({\n conversion: (domNode) => $convertUploadElement(domNode, $createUploadNode),\n priority: 0,\n }),\n }\n }\n\n static override importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n override decorate(): JSX.Element {\n return <RawUploadComponent data={this.__data} nodeKey={this.getKey()} />\n }\n\n override exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,QAAA,MAAc;AACrB,SAASC,qBAAqB,QAAQ;AACtC,YAAYC,KAAA,MAAW;AAIvB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,kBAAA,gBAAqBH,KAAA,CAAMI,IAAI,CAAC,MACpC,MAAM,CAAC,mCAAmCC,IAAI,CAAEC,MAAA,KAAY;EAAEC,OAAA,EAASD,MAAA,CAAOE;AAAgB;AAGhG,OAAO,MAAMC,UAAA,SAAmBP,gBAAA;EAC9B,OAAgBQ,MAAMC,IAAsB,EAAoB;IAC9D,OAAO,KAAK,CAACD,KAAA,CAAMC,IAAA;EACrB;EAEA,OAAgBC,QAAA,EAAkB;IAChC,OAAO,KAAK,CAACA,OAAA;EACf;EAEA,OAAgBC,UAAA,EAAgD;IAC9D,OAAO;MACLC,GAAA,EAAMH,IAAA,KAAU;QACdI,UAAA,EAAaC,OAAA,IAAYf,qBAAA,CAAsBe,OAAA,EAASC,iBAAA;QACxDC,QAAA,EAAU;MACZ;IACF;EACF;EAEA,OAAgBC,WAAWC,cAAoC,EAAc;IAC3E,IAAIA,cAAA,CAAeC,OAAO,KAAK,KAAMD,cAAA,EAAgBE,KAAA,EAAqCC,EAAA,EAAI;MAC5FH,cAAA,CAAeE,KAAK,GAAGF,cAAC,CAAeE,KAAK,CAA+BC,EAAE;IAC/E;IACA,IAAIH,cAAA,CAAeC,OAAO,KAAK,KAAK,CAACD,cAAA,EAAgBG,EAAA,EAAI;MACvDH,cAAA,CAAeG,EAAE,GAAG,IAAIzB,QAAA,CAASS,OAAO,GAAGiB,WAAW;MACtDJ,cAAA,CAAeC,OAAO,GAAG;IAC3B;IAEA,MAAMI,YAAA,GAA2B;MAC/BF,EAAA,EAAIH,cAAA,CAAeG,EAAE;MACrBG,MAAA,EAAQN,cAAA,CAAeM,MAAM;MAC7BC,UAAA,EAAYP,cAAA,CAAeO,UAAU;MACrCL,KAAA,EAAOF,cAAA,CAAeE;IACxB;IAEA,MAAMX,IAAA,GAAOM,iBAAA,CAAkB;MAAEW,IAAA,EAAMH;IAAa;IACpDd,IAAA,CAAKkB,SAAS,CAACT,cAAA,CAAeU,MAAM;IAEpC,OAAOnB,IAAA;EACT;EAESoB,SAAA,EAAwB;IAC/B,oBAAOC,IAAA,CAAC7B,kBAAA;MAAmByB,IAAA,EAAM,IAAI,CAACK,MAAM;MAAEC,OAAA,EAAS,IAAI,CAACC,MAAM;;EACpE;EAESC,WAAA,EAAmC;IAC1C,OAAO,KAAK,CAACA,UAAA;EACf;AACF;AAEA,OAAO,SAASnB,kBAAkB;EAChCW;AAAI,CAGL;EACC,IAAI,CAACA,IAAA,EAAML,EAAA,EAAI;IACbK,IAAA,CAAKL,EAAE,GAAG,IAAIzB,QAAA,CAASS,OAAO,GAAGiB,WAAW;EAC9C;EACA,OAAOzB,qBAAA,CAAsB,IAAIU,UAAA,CAAW;IAAEmB,IAAA,EAAMA;EAAmB;AACzE;AAEA,OAAO,SAASS,cAAc1B,IAAoC;EAChE,OAAOA,IAAA,YAAgBF,UAAA;AACzB","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PendingUploadData } from '../../server/nodes/PendingUploadNode.js';
|
|
2
|
+
import '../component/index.scss';
|
|
3
|
+
export declare const PendingUploadComponent: (props: {
|
|
4
|
+
data: PendingUploadData;
|
|
5
|
+
nodeKey: string;
|
|
6
|
+
}) => React.ReactNode;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/pendingComponent/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAEhF,OAAO,yBAAyB,CAAA;AAEhC,eAAO,MAAM,sBAAsB,UAAW;IAC5C,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB,KAAG,KAAK,CAAC,SAMT,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { ShimmerEffect } from '@payloadcms/ui';
|
|
5
|
+
export const PendingUploadComponent = props => {
|
|
6
|
+
return /*#__PURE__*/_jsx("div", {
|
|
7
|
+
className: 'lexical-upload',
|
|
8
|
+
children: /*#__PURE__*/_jsx(ShimmerEffect, {
|
|
9
|
+
height: '95px',
|
|
10
|
+
width: '203px'
|
|
11
|
+
})
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ShimmerEffect","PendingUploadComponent","props","_jsx","className","height","width"],"sources":["../../../../../src/features/upload/client/pendingComponent/index.tsx"],"sourcesContent":["'use client'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\n\nimport type { PendingUploadData } from '../../server/nodes/PendingUploadNode.js'\n\nimport '../component/index.scss'\n\nexport const PendingUploadComponent = (props: {\n data: PendingUploadData\n nodeKey: string\n}): React.ReactNode => {\n return (\n <div className={'lexical-upload'}>\n <ShimmerEffect height={'95px'} width={'203px'} />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,aAAa,QAAQ;AAM9B,OAAO,MAAMC,sBAAA,GAA0BC,KAAA;EAIrC,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAW;cACd,aAAAD,IAAA,CAACH,aAAA;MAAcK,MAAA,EAAQ;MAAQC,KAAA,EAAO;;;AAG5C","ignoreList":[]}
|
|
@@ -3,6 +3,12 @@ import type { PluginComponent } from '../../../typesClient.js';
|
|
|
3
3
|
import type { UploadData } from '../../server/nodes/UploadNode.js';
|
|
4
4
|
import type { UploadFeaturePropsClient } from '../index.js';
|
|
5
5
|
export type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>;
|
|
6
|
+
declare global {
|
|
7
|
+
interface DragEvent {
|
|
8
|
+
rangeOffset?: number;
|
|
9
|
+
rangeParent?: Node;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
6
12
|
export declare const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload>;
|
|
7
13
|
export declare const UploadPlugin: PluginComponent<UploadFeaturePropsClient>;
|
|
8
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/plugin/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/plugin/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAuB7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAM3D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAEpG,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,IAAI,CAAA;KACnB;CACF;AA4BD,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,mBAAmB,CAC9B,CAAA;AAYxC,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,wBAAwB,CA8SlE,CAAA"}
|