@payloadcms/richtext-slate 3.0.0-beta.126 → 3.0.0-beta.128
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/cell/rscEntry.d.ts +8 -0
- package/dist/cell/rscEntry.d.ts.map +1 -0
- package/dist/cell/rscEntry.js +51 -0
- package/dist/cell/rscEntry.js.map +1 -0
- package/dist/exports/client/index.d.ts +0 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +0 -1
- package/dist/exports/client/index.js.map +1 -1
- package/dist/exports/server/rsc.d.ts +3 -0
- package/dist/exports/server/rsc.d.ts.map +1 -0
- package/dist/exports/server/rsc.js +4 -0
- package/dist/exports/server/rsc.js.map +1 -0
- package/dist/field/RichText.d.ts.map +1 -1
- package/dist/field/RichText.js +26 -43
- package/dist/field/RichText.js.map +1 -1
- package/dist/field/createFeatureMap.d.ts +2 -2
- package/dist/field/createFeatureMap.d.ts.map +1 -1
- package/dist/field/createFeatureMap.js +3 -0
- package/dist/field/createFeatureMap.js.map +1 -1
- package/dist/field/elements/link/Button/index.d.ts +3 -1
- package/dist/field/elements/link/Button/index.d.ts.map +1 -1
- package/dist/field/elements/link/Button/index.js +19 -15
- package/dist/field/elements/link/Button/index.js.map +1 -1
- package/dist/field/elements/link/Element/index.d.ts.map +1 -1
- package/dist/field/elements/link/Element/index.js +21 -17
- package/dist/field/elements/link/Element/index.js.map +1 -1
- package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
- package/dist/field/elements/link/LinkDrawer/index.js +47 -42
- package/dist/field/elements/link/LinkDrawer/index.js.map +1 -1
- package/dist/field/elements/link/LinkDrawer/types.d.ts +1 -0
- package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
- package/dist/field/elements/link/LinkDrawer/types.js.map +1 -1
- package/dist/field/elements/relationship/Element/index.d.ts +1 -7
- package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
- package/dist/field/elements/relationship/Element/index.js.map +1 -1
- package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
- package/dist/field/elements/upload/Element/UploadDrawer/index.js +64 -55
- package/dist/field/elements/upload/Element/UploadDrawer/index.js.map +1 -1
- package/dist/field/elements/upload/Element/index.d.ts +1 -7
- package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
- package/dist/field/elements/upload/Element/index.js +27 -23
- package/dist/field/elements/upload/Element/index.js.map +1 -1
- package/dist/field/index.d.ts.map +1 -1
- package/dist/field/index.js +15 -13
- package/dist/field/index.js.map +1 -1
- package/dist/field/rscEntry.d.ts +7 -0
- package/dist/field/rscEntry.d.ts.map +1 -0
- package/dist/field/rscEntry.js +132 -0
- package/dist/field/rscEntry.js.map +1 -0
- package/dist/field/types.d.ts +5 -6
- package/dist/field/types.d.ts.map +1 -1
- package/dist/field/types.js.map +1 -1
- package/dist/generateSchemaMap.d.ts.map +1 -1
- package/dist/generateSchemaMap.js +30 -5
- package/dist/generateSchemaMap.js.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/SlatePropsProvider.d.ts +11 -0
- package/dist/utilities/SlatePropsProvider.d.ts.map +1 -0
- package/dist/utilities/SlatePropsProvider.js +21 -0
- package/dist/utilities/SlatePropsProvider.js.map +1 -0
- package/dist/utilities/useSlatePlugin.d.ts.map +1 -1
- package/dist/utilities/useSlatePlugin.js +3 -2
- package/dist/utilities/useSlatePlugin.js.map +1 -1
- package/license.md +22 -0
- package/package.json +17 -10
- package/dist/cell/index.d.ts +0 -4
- package/dist/cell/index.d.ts.map +0 -1
- package/dist/cell/index.js +0 -35
- package/dist/cell/index.js.map +0 -1
- package/dist/generateComponentMap.d.ts +0 -4
- package/dist/generateComponentMap.d.ts.map +0 -1
- package/dist/generateComponentMap.js +0 -94
- package/dist/generateComponentMap.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/field/rscEntry.tsx"],"sourcesContent":["import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport {\n type ClientComponentProps,\n type ClientField,\n createClientFields,\n deepCopyObjectSimple,\n type Field,\n type RichTextFieldClient,\n type ServerComponentProps,\n} from 'payload'\nimport React from 'react'\n\nimport type { AdapterArguments, RichTextCustomElement, RichTextCustomLeaf } from '../types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { RichTextField } from '../exports/client/index.js'\nimport { elements as elementTypes } from '../field/elements/index.js'\nimport { defaultLeaves as leafTypes } from '../field/leaves/index.js'\nimport { linkFieldsSchemaPath } from './elements/link/shared.js'\nimport { uploadFieldsSchemaPath } from './elements/upload/shared.js'\nexport const RscEntrySlateField: React.FC<\n {\n args: AdapterArguments\n } & ClientComponentProps &\n ServerComponentProps\n> = ({\n args,\n clientField,\n forceRender,\n i18n,\n indexPath,\n parentPath,\n parentSchemaPath,\n path,\n payload,\n readOnly,\n renderedBlocks,\n schemaPath,\n}) => {\n const componentMap: Map<string, ClientField[] | React.ReactNode> = new Map()\n\n const clientProps = {\n schemaPath,\n }\n\n ;(args?.admin?.leaves || Object.values(leafTypes)).forEach((leaf) => {\n let leafObject: RichTextCustomLeaf\n\n if (typeof leaf === 'object' && leaf !== null) {\n leafObject = leaf\n } else if (typeof leaf === 'string' && leafTypes[leaf]) {\n leafObject = leafTypes[leaf]\n }\n\n if (leafObject) {\n const LeafButton = leafObject.Button\n const LeafComponent = leafObject.Leaf\n\n componentMap.set(\n `leaf.button.${leafObject.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={LeafButton}\n importMap={payload.importMap}\n />,\n )\n\n componentMap.set(\n `leaf.component.${leafObject.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={LeafComponent}\n importMap={payload.importMap}\n />,\n )\n\n if (Array.isArray(leafObject.plugins)) {\n leafObject.plugins.forEach((Plugin, i) => {\n componentMap.set(\n `leaf.plugin.${leafObject.name}.${i}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={Plugin}\n importMap={payload.importMap}\n />,\n )\n })\n }\n }\n })\n ;(args?.admin?.elements || Object.values(elementTypes)).forEach((el) => {\n let element: RichTextCustomElement\n\n if (typeof el === 'object' && el !== null) {\n element = el\n } else if (typeof el === 'string' && elementTypes[el]) {\n element = elementTypes[el]\n }\n\n if (element) {\n const ElementButton = element.Button\n const ElementComponent = element.Element\n\n if (ElementButton) {\n componentMap.set(\n `element.button.${element.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={ElementButton}\n importMap={payload.importMap}\n />,\n )\n }\n componentMap.set(\n `element.component.${element.name}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={ElementComponent}\n importMap={payload.importMap}\n />,\n )\n\n if (Array.isArray(element.plugins)) {\n element.plugins.forEach((Plugin, i) => {\n componentMap.set(\n `element.plugin.${element.name}.${i}`,\n <RenderServerComponent\n clientProps={clientProps}\n Component={Plugin}\n importMap={payload.importMap}\n />,\n )\n })\n }\n\n switch (element.name) {\n case 'link': {\n let clientFields = deepCopyObjectSimple(\n args.admin?.link?.fields,\n ) as unknown as ClientField[]\n clientFields = createClientFields({\n clientFields,\n defaultIDType: payload.config.db.defaultIDType,\n fields: args.admin?.link?.fields as Field[],\n i18n,\n })\n\n componentMap.set(linkFieldsSchemaPath, clientFields)\n\n break\n }\n\n case 'relationship':\n break\n\n case 'upload': {\n const uploadEnabledCollections = payload.config.collections.filter(\n ({ admin: { enableRichTextRelationship, hidden }, upload }) => {\n if (hidden === true) {\n return false\n }\n\n return enableRichTextRelationship && Boolean(upload) === true\n },\n )\n\n uploadEnabledCollections.forEach((collection) => {\n if (args?.admin?.upload?.collections[collection.slug]?.fields) {\n let clientFields = deepCopyObjectSimple(\n args?.admin?.upload?.collections[collection.slug]?.fields,\n ) as unknown as ClientField[]\n clientFields = createClientFields({\n clientFields,\n defaultIDType: payload.config.db.defaultIDType,\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n i18n,\n })\n\n componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, clientFields)\n }\n })\n\n break\n }\n }\n }\n })\n\n return (\n <RichTextField\n componentMap={Object.fromEntries(componentMap)}\n field={clientField as RichTextFieldClient}\n forceRender={forceRender}\n indexPath={indexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n path={path}\n readOnly={readOnly}\n renderedBlocks={renderedBlocks}\n schemaPath={schemaPath}\n />\n )\n}\n"],"names":["RenderServerComponent","createClientFields","deepCopyObjectSimple","React","RichTextField","elements","elementTypes","defaultLeaves","leafTypes","linkFieldsSchemaPath","uploadFieldsSchemaPath","RscEntrySlateField","args","clientField","forceRender","i18n","indexPath","parentPath","parentSchemaPath","path","payload","readOnly","renderedBlocks","schemaPath","componentMap","Map","clientProps","admin","leaves","Object","values","forEach","leaf","leafObject","LeafButton","Button","LeafComponent","Leaf","set","name","Component","importMap","Array","isArray","plugins","Plugin","i","el","element","ElementButton","ElementComponent","Element","clientFields","link","fields","defaultIDType","config","db","uploadEnabledCollections","collections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","slug","fromEntries","field"],"mappings":"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"}
|
package/dist/field/types.d.ts
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import type { MappedComponent } from 'payload';
|
|
2
1
|
import type { RichTextPlugin, SlateFieldProps } from '../types.js';
|
|
3
2
|
export type EnabledFeatures = {
|
|
4
3
|
elements: {
|
|
5
4
|
[name: string]: {
|
|
6
|
-
Button:
|
|
7
|
-
Element:
|
|
5
|
+
Button: React.ReactNode;
|
|
6
|
+
Element: React.ReactNode;
|
|
8
7
|
name: string;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
10
|
leaves: {
|
|
12
11
|
[name: string]: {
|
|
13
|
-
Button:
|
|
14
|
-
Leaf:
|
|
12
|
+
Button: React.ReactNode;
|
|
13
|
+
Leaf: React.ReactNode;
|
|
15
14
|
name: string;
|
|
16
15
|
};
|
|
17
16
|
};
|
|
18
|
-
plugins:
|
|
17
|
+
plugins: React.ReactNode[];
|
|
19
18
|
};
|
|
20
19
|
export type LoadedSlateFieldProps = {
|
|
21
20
|
elements: EnabledFeatures['elements'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;YACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;YACxB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,MAAM,EAAE;QACN,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;YACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;YACrB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;IACrC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B,GAAG,eAAe,CAAA"}
|
package/dist/field/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/field/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../src/field/types.ts"],"sourcesContent":["import type { RichTextPlugin, SlateFieldProps } from '../types.js'\n\nexport type EnabledFeatures = {\n elements: {\n [name: string]: {\n Button: React.ReactNode\n Element: React.ReactNode\n name: string\n }\n }\n leaves: {\n [name: string]: {\n Button: React.ReactNode\n Leaf: React.ReactNode\n name: string\n }\n }\n plugins: React.ReactNode[]\n}\n\nexport type LoadedSlateFieldProps = {\n elements: EnabledFeatures['elements']\n leaves: EnabledFeatures['leaves']\n plugins: RichTextPlugin[]\n} & SlateFieldProps\n"],"names":[],"mappings":"AAoBA,WAImB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSchemaMap.d.ts","sourceRoot":"","sources":["../src/generateSchemaMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"generateSchemaMap.d.ts","sourceRoot":"","sources":["../src/generateSchemaMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,eAAe,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAA;AAMzE,eAAO,MAAM,oBAAoB,SACxB,gBAAgB,KAAG,eAAe,CAAC,mBAAmB,CAwE5D,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields';
|
|
1
2
|
import { elements as elementTypes } from './field/elements/index.js';
|
|
2
3
|
import { linkFieldsSchemaPath } from './field/elements/link/shared.js';
|
|
3
4
|
import { uploadFieldsSchemaPath } from './field/elements/upload/shared.js';
|
|
4
|
-
export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=>{
|
|
5
|
+
export const getGenerateSchemaMap = (args)=>({ config, i18n, schemaMap, schemaPath })=>{
|
|
5
6
|
(args?.admin?.elements || Object.values(elementTypes)).forEach((el)=>{
|
|
6
7
|
let element;
|
|
7
8
|
if (typeof el === 'object' && el !== null) {
|
|
@@ -13,9 +14,24 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
|
|
|
13
14
|
switch(element.name){
|
|
14
15
|
case 'link':
|
|
15
16
|
{
|
|
16
|
-
|
|
17
|
+
if (args.admin?.link?.fields) {
|
|
18
|
+
schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, {
|
|
19
|
+
fields: args.admin?.link?.fields
|
|
20
|
+
});
|
|
21
|
+
// generate schema map entries for sub-fields using traverseFields
|
|
22
|
+
traverseFields({
|
|
23
|
+
config,
|
|
24
|
+
fields: args.admin?.link?.fields,
|
|
25
|
+
i18n,
|
|
26
|
+
parentIndexPath: '',
|
|
27
|
+
parentSchemaPath: `${schemaPath}.${linkFieldsSchemaPath}`,
|
|
28
|
+
schemaMap
|
|
29
|
+
});
|
|
30
|
+
}
|
|
17
31
|
break;
|
|
18
32
|
}
|
|
33
|
+
case 'relationship':
|
|
34
|
+
break;
|
|
19
35
|
case 'upload':
|
|
20
36
|
{
|
|
21
37
|
const uploadEnabledCollections = config.collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload })=>{
|
|
@@ -26,13 +42,22 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
|
|
|
26
42
|
});
|
|
27
43
|
uploadEnabledCollections.forEach((collection)=>{
|
|
28
44
|
if (args?.admin?.upload?.collections[collection.slug]?.fields) {
|
|
29
|
-
schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,
|
|
45
|
+
schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, {
|
|
46
|
+
fields: args?.admin?.upload?.collections[collection.slug]?.fields
|
|
47
|
+
});
|
|
48
|
+
// generate schema map entries for sub-fields using traverseFields
|
|
49
|
+
traverseFields({
|
|
50
|
+
config,
|
|
51
|
+
fields: args?.admin?.upload?.collections[collection.slug]?.fields,
|
|
52
|
+
i18n,
|
|
53
|
+
parentIndexPath: '',
|
|
54
|
+
parentSchemaPath: `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,
|
|
55
|
+
schemaMap
|
|
56
|
+
});
|
|
30
57
|
}
|
|
31
58
|
});
|
|
32
59
|
break;
|
|
33
60
|
}
|
|
34
|
-
case 'relationship':
|
|
35
|
-
break;
|
|
36
61
|
}
|
|
37
62
|
}
|
|
38
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generateSchemaMap.ts"],"sourcesContent":["import type { Field, RichTextAdapter } from 'payload'\n\nimport type { AdapterArguments, RichTextCustomElement } from './types.js'\n\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { linkFieldsSchemaPath } from './field/elements/link/shared.js'\nimport { uploadFieldsSchemaPath } from './field/elements/upload/shared.js'\n\nexport const getGenerateSchemaMap =\n (args: AdapterArguments): RichTextAdapter['generateSchemaMap'] =>\n ({ config, schemaMap, schemaPath }) => {\n ;(args?.admin?.elements || Object.values(elementTypes)).forEach((el) => {\n let element: RichTextCustomElement\n\n if (typeof el === 'object' && el !== null) {\n element = el\n } else if (typeof el === 'string' && elementTypes[el]) {\n element = elementTypes[el]\n }\n\n if (element) {\n switch (element.name) {\n case 'link': {\n schemaMap.set(
|
|
1
|
+
{"version":3,"sources":["../src/generateSchemaMap.ts"],"sourcesContent":["import type { Field, RichTextAdapter } from 'payload'\n\nimport { traverseFields } from '@payloadcms/ui/utilities/buildFieldSchemaMap/traverseFields'\n\nimport type { AdapterArguments, RichTextCustomElement } from './types.js'\n\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { linkFieldsSchemaPath } from './field/elements/link/shared.js'\nimport { uploadFieldsSchemaPath } from './field/elements/upload/shared.js'\n\nexport const getGenerateSchemaMap =\n (args: AdapterArguments): RichTextAdapter['generateSchemaMap'] =>\n ({ config, i18n, schemaMap, schemaPath }) => {\n ;(args?.admin?.elements || Object.values(elementTypes)).forEach((el) => {\n let element: RichTextCustomElement\n\n if (typeof el === 'object' && el !== null) {\n element = el\n } else if (typeof el === 'string' && elementTypes[el]) {\n element = elementTypes[el]\n }\n\n if (element) {\n switch (element.name) {\n case 'link': {\n if (args.admin?.link?.fields) {\n schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, {\n fields: args.admin?.link?.fields as Field[],\n })\n\n // generate schema map entries for sub-fields using traverseFields\n traverseFields({\n config,\n fields: args.admin?.link?.fields as Field[],\n i18n,\n parentIndexPath: '',\n parentSchemaPath: `${schemaPath}.${linkFieldsSchemaPath}`,\n schemaMap,\n })\n }\n\n break\n }\n\n case 'relationship':\n break\n\n case 'upload': {\n const uploadEnabledCollections = config.collections.filter(\n ({ admin: { enableRichTextRelationship, hidden }, upload }) => {\n if (hidden === true) {\n return false\n }\n\n return enableRichTextRelationship && Boolean(upload) === true\n },\n )\n\n uploadEnabledCollections.forEach((collection) => {\n if (args?.admin?.upload?.collections[collection.slug]?.fields) {\n schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, {\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n })\n\n // generate schema map entries for sub-fields using traverseFields\n traverseFields({\n config,\n fields: args?.admin?.upload?.collections[collection.slug]?.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,\n schemaMap,\n })\n }\n })\n\n break\n }\n }\n }\n })\n\n return schemaMap\n }\n"],"names":["traverseFields","elements","elementTypes","linkFieldsSchemaPath","uploadFieldsSchemaPath","getGenerateSchemaMap","args","config","i18n","schemaMap","schemaPath","admin","Object","values","forEach","el","element","name","link","fields","set","parentIndexPath","parentSchemaPath","uploadEnabledCollections","collections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","slug"],"mappings":"AAEA,SAASA,cAAc,QAAQ,8DAA6D;AAI5F,SAASC,YAAYC,YAAY,QAAQ,4BAA2B;AACpE,SAASC,oBAAoB,QAAQ,kCAAiC;AACtE,SAASC,sBAAsB,QAAQ,oCAAmC;AAE1E,OAAO,MAAMC,uBACX,CAACC,OACD,CAAC,EAAEC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,UAAU,EAAE;QACpCJ,CAAAA,MAAMK,OAAOV,YAAYW,OAAOC,MAAM,CAACX,aAAY,EAAGY,OAAO,CAAC,CAACC;YAC/D,IAAIC;YAEJ,IAAI,OAAOD,OAAO,YAAYA,OAAO,MAAM;gBACzCC,UAAUD;YACZ,OAAO,IAAI,OAAOA,OAAO,YAAYb,YAAY,CAACa,GAAG,EAAE;gBACrDC,UAAUd,YAAY,CAACa,GAAG;YAC5B;YAEA,IAAIC,SAAS;gBACX,OAAQA,QAAQC,IAAI;oBAClB,KAAK;wBAAQ;4BACX,IAAIX,KAAKK,KAAK,EAAEO,MAAMC,QAAQ;gCAC5BV,UAAUW,GAAG,CAAC,CAAC,EAAEV,WAAW,CAAC,EAAEP,qBAAqB,CAAC,EAAE;oCACrDgB,QAAQb,KAAKK,KAAK,EAAEO,MAAMC;gCAC5B;gCAEA,kEAAkE;gCAClEnB,eAAe;oCACbO;oCACAY,QAAQb,KAAKK,KAAK,EAAEO,MAAMC;oCAC1BX;oCACAa,iBAAiB;oCACjBC,kBAAkB,CAAC,EAAEZ,WAAW,CAAC,EAAEP,qBAAqB,CAAC;oCACzDM;gCACF;4BACF;4BAEA;wBACF;oBAEA,KAAK;wBACH;oBAEF,KAAK;wBAAU;4BACb,MAAMc,2BAA2BhB,OAAOiB,WAAW,CAACC,MAAM,CACxD,CAAC,EAAEd,OAAO,EAAEe,0BAA0B,EAAEC,MAAM,EAAE,EAAEC,MAAM,EAAE;gCACxD,IAAID,WAAW,MAAM;oCACnB,OAAO;gCACT;gCAEA,OAAOD,8BAA8BG,QAAQD,YAAY;4BAC3D;4BAGFL,yBAAyBT,OAAO,CAAC,CAACgB;gCAChC,IAAIxB,MAAMK,OAAOiB,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ,QAAQ;oCAC7DV,UAAUW,GAAG,CAAC,CAAC,EAAEV,WAAW,CAAC,EAAEN,uBAAuB,CAAC,EAAE0B,WAAWC,IAAI,CAAC,CAAC,EAAE;wCAC1EZ,QAAQb,MAAMK,OAAOiB,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ;oCAC7D;oCAEA,kEAAkE;oCAClEnB,eAAe;wCACbO;wCACAY,QAAQb,MAAMK,OAAOiB,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAEZ;wCAC3DX;wCACAa,iBAAiB;wCACjBC,kBAAkB,CAAC,EAAEZ,WAAW,CAAC,EAAEN,uBAAuB,CAAC,EAAE0B,WAAWC,IAAI,CAAC,CAAC;wCAC9EtB;oCACF;gCACF;4BACF;4BAEA;wBACF;gBACF;YACF;QACF;QAEA,OAAOA;IACT,EAAC"}
|
package/dist/index.js
CHANGED
|
@@ -36,16 +36,16 @@ export function slateEditor(args) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
return {
|
|
39
|
-
CellComponent: '@payloadcms/richtext-slate/
|
|
40
|
-
FieldComponent:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
CellComponent: '@payloadcms/richtext-slate/rsc#RscEntrySlateCell',
|
|
40
|
+
FieldComponent: {
|
|
41
|
+
path: '@payloadcms/richtext-slate/rsc#RscEntrySlateField',
|
|
42
|
+
serverProps: {
|
|
43
|
+
args
|
|
44
|
+
}
|
|
44
45
|
},
|
|
45
46
|
generateImportMap: ({ addToImportMap })=>{
|
|
46
|
-
addToImportMap('@payloadcms/richtext-slate/
|
|
47
|
-
addToImportMap('@payloadcms/richtext-slate/
|
|
48
|
-
addToImportMap('@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap');
|
|
47
|
+
addToImportMap('@payloadcms/richtext-slate/rsc#RscEntrySlateCell');
|
|
48
|
+
addToImportMap('@payloadcms/richtext-slate/rsc#RscEntrySlateField');
|
|
49
49
|
Object.values(leafTypes).forEach((leaf)=>{
|
|
50
50
|
if (leaf.Button) {
|
|
51
51
|
addToImportMap(leaf.Button);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { Config, RichTextAdapterProvider } from 'payload'\n\nimport { sanitizeFields, withNullableJSONSchemaType } from 'payload'\n\nimport type { AdapterArguments } from './types.js'\n\nimport { richTextRelationshipPromise } from './data/richTextRelationshipPromise.js'\nimport { richTextValidate } from './data/validation.js'\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\nimport { getGenerateSchemaMap } from './generateSchemaMap.js'\n\nexport function slateEditor(\n args: AdapterArguments,\n): RichTextAdapterProvider<any[], AdapterArguments, any> {\n return async ({ config }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n if (!args.admin) {\n args.admin = {}\n }\n if (!args.admin.link) {\n args.admin.link = {}\n }\n if (!args.admin.link.fields) {\n args.admin.link.fields = []\n }\n args.admin.link.fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: transformExtraFields(args.admin?.link?.fields, config),\n parentIsLocalized: false,\n validRelationships,\n })\n\n if (args?.admin?.upload?.collections) {\n for (const collection of Object.keys(args.admin.upload.collections)) {\n if (args?.admin?.upload?.collections[collection]?.fields) {\n args.admin.upload.collections[collection].fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: args.admin?.upload?.collections[collection]?.fields,\n parentIsLocalized: false,\n validRelationships,\n })\n }\n }\n }\n\n return {\n CellComponent: '@payloadcms/richtext-slate/client#RichTextCell',\n FieldComponent: '@payloadcms/richtext-slate/client#RichTextField',\n generateComponentMap: {\n path: '@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap',\n serverProps: args,\n },\n generateImportMap: ({ addToImportMap }) => {\n addToImportMap('@payloadcms/richtext-slate/client#RichTextCell')\n addToImportMap('@payloadcms/richtext-slate/client#RichTextField')\n addToImportMap('@payloadcms/richtext-slate/generateComponentMap#getGenerateComponentMap')\n Object.values(leafTypes).forEach((leaf) => {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n })\n args?.admin?.leaves?.forEach((leaf) => {\n if (typeof leaf === 'object') {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n }\n })\n\n Object.values(elementTypes).forEach((element) => {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n })\n\n args?.admin?.elements?.forEach((element) => {\n if (typeof element === 'object') {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n }\n })\n },\n generateSchemaMap: getGenerateSchemaMap(args),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterRead: [\n ({\n context: _context,\n currentDepth,\n depth,\n draft,\n field: _field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingData,\n }) => {\n const context: any = _context\n const field = _field as any\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populateArg: populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: siblingData,\n })\n }\n },\n ],\n },\n outputSchema: ({ isRequired }) => {\n return {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n },\n validate: richTextValidate,\n }\n }\n}\n\nexport type {\n AdapterArguments,\n ElementNode,\n RichTextCustomElement,\n RichTextCustomLeaf,\n RichTextElement,\n RichTextLeaf,\n RichTextPlugin,\n RichTextPluginComponent,\n SlateFieldProps,\n TextNode,\n} from './types.js'\n\nexport { nodeIsTextNode } from './types.js'\n"],"names":["sanitizeFields","withNullableJSONSchemaType","richTextRelationshipPromise","richTextValidate","elements","elementTypes","transformExtraFields","defaultLeaves","leafTypes","getGenerateSchemaMap","slateEditor","args","config","validRelationships","collections","map","c","slug","admin","link","fields","parentIsLocalized","upload","collection","Object","keys","CellComponent","FieldComponent","generateComponentMap","path","serverProps","generateImportMap","addToImportMap","values","forEach","leaf","Button","Leaf","Array","isArray","plugins","length","leaves","element","Element","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","includes","hooks","afterRead","_context","_field","populate","siblingData","populateArg","outputSchema","isRequired","type","items","validate","nodeIsTextNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { Config, RichTextAdapterProvider } from 'payload'\n\nimport { sanitizeFields, withNullableJSONSchemaType } from 'payload'\n\nimport type { AdapterArguments } from './types.js'\n\nimport { richTextRelationshipPromise } from './data/richTextRelationshipPromise.js'\nimport { richTextValidate } from './data/validation.js'\nimport { elements as elementTypes } from './field/elements/index.js'\nimport { transformExtraFields } from './field/elements/link/utilities.js'\nimport { defaultLeaves as leafTypes } from './field/leaves/index.js'\nimport { getGenerateSchemaMap } from './generateSchemaMap.js'\n\nexport function slateEditor(\n args: AdapterArguments,\n): RichTextAdapterProvider<any[], AdapterArguments, any> {\n return async ({ config }) => {\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n if (!args.admin) {\n args.admin = {}\n }\n if (!args.admin.link) {\n args.admin.link = {}\n }\n if (!args.admin.link.fields) {\n args.admin.link.fields = []\n }\n args.admin.link.fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: transformExtraFields(args.admin?.link?.fields, config),\n parentIsLocalized: false,\n validRelationships,\n })\n\n if (args?.admin?.upload?.collections) {\n for (const collection of Object.keys(args.admin.upload.collections)) {\n if (args?.admin?.upload?.collections[collection]?.fields) {\n args.admin.upload.collections[collection].fields = await sanitizeFields({\n config: config as unknown as Config,\n fields: args.admin?.upload?.collections[collection]?.fields,\n parentIsLocalized: false,\n validRelationships,\n })\n }\n }\n }\n\n return {\n CellComponent: '@payloadcms/richtext-slate/rsc#RscEntrySlateCell',\n FieldComponent: {\n path: '@payloadcms/richtext-slate/rsc#RscEntrySlateField',\n serverProps: {\n args,\n },\n },\n generateImportMap: ({ addToImportMap }) => {\n addToImportMap('@payloadcms/richtext-slate/rsc#RscEntrySlateCell')\n addToImportMap('@payloadcms/richtext-slate/rsc#RscEntrySlateField')\n Object.values(leafTypes).forEach((leaf) => {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n })\n args?.admin?.leaves?.forEach((leaf) => {\n if (typeof leaf === 'object') {\n if (leaf.Button) {\n addToImportMap(leaf.Button)\n }\n if (leaf.Leaf) {\n addToImportMap(leaf.Leaf)\n }\n if (Array.isArray(leaf.plugins) && leaf.plugins?.length) {\n addToImportMap(leaf.plugins)\n }\n }\n })\n\n Object.values(elementTypes).forEach((element) => {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n })\n\n args?.admin?.elements?.forEach((element) => {\n if (typeof element === 'object') {\n if (element.Button) {\n addToImportMap(element.Button)\n }\n if (element.Element) {\n addToImportMap(element.Element)\n }\n if (Array.isArray(element.plugins) && element.plugins?.length) {\n addToImportMap(element.plugins)\n }\n }\n })\n },\n generateSchemaMap: getGenerateSchemaMap(args),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterRead: [\n ({\n context: _context,\n currentDepth,\n depth,\n draft,\n field: _field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingData,\n }) => {\n const context: any = _context\n const field = _field as any\n if (\n field.admin?.elements?.includes('relationship') ||\n field.admin?.elements?.includes('upload') ||\n field.admin?.elements?.includes('link') ||\n !field?.admin?.elements\n ) {\n richTextRelationshipPromise({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populateArg: populate,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: siblingData,\n })\n }\n },\n ],\n },\n outputSchema: ({ isRequired }) => {\n return {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n },\n validate: richTextValidate,\n }\n }\n}\n\nexport type {\n AdapterArguments,\n ElementNode,\n RichTextCustomElement,\n RichTextCustomLeaf,\n RichTextElement,\n RichTextLeaf,\n RichTextPlugin,\n RichTextPluginComponent,\n SlateFieldProps,\n TextNode,\n} from './types.js'\n\nexport { nodeIsTextNode } from './types.js'\n"],"names":["sanitizeFields","withNullableJSONSchemaType","richTextRelationshipPromise","richTextValidate","elements","elementTypes","transformExtraFields","defaultLeaves","leafTypes","getGenerateSchemaMap","slateEditor","args","config","validRelationships","collections","map","c","slug","admin","link","fields","parentIsLocalized","upload","collection","Object","keys","CellComponent","FieldComponent","path","serverProps","generateImportMap","addToImportMap","values","forEach","leaf","Button","Leaf","Array","isArray","plugins","length","leaves","element","Element","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","includes","hooks","afterRead","_context","_field","populate","siblingData","populateArg","outputSchema","isRequired","type","items","validate","nodeIsTextNode"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Field, PayloadComponent, RichTextFieldClientProps, SanitizedConfig } from 'payload';
|
|
1
|
+
import type { ClientField, Field, PayloadComponent, RichTextFieldClientProps, SanitizedConfig } from 'payload';
|
|
2
2
|
import type { Editor } from 'slate';
|
|
3
3
|
export type TextNode = {
|
|
4
4
|
[x: string]: unknown;
|
|
@@ -47,5 +47,9 @@ export type AdapterArguments = {
|
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
|
-
export type SlateFieldProps =
|
|
50
|
+
export type SlateFieldProps = {
|
|
51
|
+
componentMap: {
|
|
52
|
+
[x: string]: ClientField[] | React.ReactNode;
|
|
53
|
+
};
|
|
54
|
+
} & RichTextFieldClientProps<any[], AdapterArguments, AdapterArguments>;
|
|
51
55
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EAChB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEnC,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,CAAC,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,IAAI,QAAQ,CAE7E;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAA;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,cAAc,GACd,WAAW,GACX,IAAI,GACJ,QAAQ,GACR,qBAAqB,CAAA;AACzB,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,CAAA;AAEtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE;YACL,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;gBAAE,MAAM,EAAE,eAAe,CAAC;gBAAC,aAAa,EAAE,KAAK,EAAE,CAAA;aAAE,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAA;SAC5F,CAAA;QACD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;QAC7C,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,MAAM,CAAC,EAAE;YACP,WAAW,EAAE;gBACX,CAAC,UAAU,EAAE,MAAM,GAAG;oBACpB,MAAM,EAAE,KAAK,EAAE,CAAA;iBAChB,CAAA;aACF,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE;QACZ,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;KAC7C,CAAA;CACF,GAAG,wBAAwB,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAA"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n ClientField,\n Field,\n PayloadComponent,\n RichTextFieldClientProps,\n SanitizedConfig,\n} from 'payload'\nimport type { Editor } from 'slate'\n\nexport type TextNode = { [x: string]: unknown; text: string }\n\nexport type ElementNode = { children: (ElementNode | TextNode)[]; type?: string }\n\nexport function nodeIsTextNode(node: ElementNode | TextNode): node is TextNode {\n return 'text' in node\n}\n\nexport type RichTextPluginComponent = PayloadComponent\nexport type RichTextPlugin = (editor: Editor) => Editor\n\nexport type RichTextCustomElement = {\n Button?: PayloadComponent\n Element: PayloadComponent\n name: string\n plugins?: RichTextPluginComponent[]\n}\n\nexport type RichTextCustomLeaf = {\n Button: PayloadComponent\n Leaf: PayloadComponent\n name: string\n plugins?: RichTextPluginComponent[]\n}\n\nexport type RichTextElement =\n | 'blockquote'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'indent'\n | 'link'\n | 'ol'\n | 'relationship'\n | 'textAlign'\n | 'ul'\n | 'upload'\n | RichTextCustomElement\nexport type RichTextLeaf =\n | 'bold'\n | 'code'\n | 'italic'\n | 'strikethrough'\n | 'underline'\n | RichTextCustomLeaf\n\nexport type AdapterArguments = {\n admin?: {\n elements?: RichTextElement[]\n hideGutter?: boolean\n leaves?: RichTextLeaf[]\n link?: {\n fields?: ((args: { config: SanitizedConfig; defaultFields: Field[] }) => Field[]) | Field[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n upload?: {\n collections: {\n [collection: string]: {\n fields: Field[]\n }\n }\n }\n }\n}\n\nexport type SlateFieldProps = {\n componentMap: {\n [x: string]: ClientField[] | React.ReactNode\n }\n} & RichTextFieldClientProps<any[], AdapterArguments, AdapterArguments>\n"],"names":["nodeIsTextNode","node"],"mappings":"AAaA,OAAO,SAASA,eAAeC,IAA4B;IACzD,OAAO,UAAUA;AACnB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
interface SlateProps {
|
|
3
|
+
schemaPath: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function SlatePropsProvider({ children, schemaPath, }: {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
schemaPath: string;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function useSlateProps(): SlateProps;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=SlatePropsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlatePropsProvider.d.ts","sourceRoot":"","sources":["../../src/utilities/SlatePropsProvider.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAExE,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAID,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,UAAU,GACX,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,2CAEA;AAED,wBAAgB,aAAa,eAM5B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import React, { createContext, useContext } from 'react';
|
|
4
|
+
const SlatePropsContext = /*#__PURE__*/ createContext(undefined);
|
|
5
|
+
export function SlatePropsProvider({ children, schemaPath }) {
|
|
6
|
+
return /*#__PURE__*/ _jsx(SlatePropsContext.Provider, {
|
|
7
|
+
value: {
|
|
8
|
+
schemaPath
|
|
9
|
+
},
|
|
10
|
+
children: children
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export function useSlateProps() {
|
|
14
|
+
const context = useContext(SlatePropsContext);
|
|
15
|
+
if (!context) {
|
|
16
|
+
throw new Error('useSlateProps must be used within SlatePropsProvider');
|
|
17
|
+
}
|
|
18
|
+
return context;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=SlatePropsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/SlatePropsProvider.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, type ReactNode, useContext } from 'react'\n\ninterface SlateProps {\n schemaPath: string\n}\n\nconst SlatePropsContext = createContext<SlateProps | undefined>(undefined)\n\nexport function SlatePropsProvider({\n children,\n schemaPath,\n}: {\n children: ReactNode\n schemaPath: string\n}) {\n return <SlatePropsContext.Provider value={{ schemaPath }}>{children}</SlatePropsContext.Provider>\n}\n\nexport function useSlateProps() {\n const context = useContext(SlatePropsContext)\n if (!context) {\n throw new Error('useSlateProps must be used within SlatePropsProvider')\n }\n return context\n}\n"],"names":["React","createContext","useContext","SlatePropsContext","undefined","SlatePropsProvider","children","schemaPath","Provider","value","useSlateProps","context","Error"],"mappings":"AAAA;;AAEA,OAAOA,SAASC,aAAa,EAAkBC,UAAU,QAAQ,QAAO;AAMxE,MAAMC,kCAAoBF,cAAsCG;AAEhE,OAAO,SAASC,mBAAmB,EACjCC,QAAQ,EACRC,UAAU,EAIX;IACC,qBAAO,KAACJ,kBAAkBK,QAAQ;QAACC,OAAO;YAAEF;QAAW;kBAAID;;AAC7D;AAEA,OAAO,SAASI;IACd,MAAMC,UAAUT,WAAWC;IAC3B,IAAI,CAACQ,SAAS;QACZ,MAAM,IAAIC,MAAM;IAClB;IACA,OAAOD;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlatePlugin.d.ts","sourceRoot":"","sources":["../../src/utilities/useSlatePlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useSlatePlugin.d.ts","sourceRoot":"","sources":["../../src/utilities/useSlatePlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAMnC,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;AAExC,eAAO,MAAM,cAAc,QAAS,MAAM,UAAU,MAAM,SAIzD,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { useAddClientFunction
|
|
1
|
+
import { useAddClientFunction } from '@payloadcms/ui';
|
|
2
|
+
import { useSlateProps } from './SlatePropsProvider.js';
|
|
2
3
|
export const useSlatePlugin = (key, plugin)=>{
|
|
3
|
-
const { schemaPath } =
|
|
4
|
+
const { schemaPath } = useSlateProps();
|
|
4
5
|
useAddClientFunction(`slatePlugin.${schemaPath}.${key}`, plugin);
|
|
5
6
|
};
|
|
6
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/useSlatePlugin.tsx"],"sourcesContent":["import type { Editor } from 'slate'\n\nimport { useAddClientFunction
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/useSlatePlugin.tsx"],"sourcesContent":["import type { Editor } from 'slate'\n\nimport { useAddClientFunction } from '@payloadcms/ui'\n\nimport { useSlateProps } from './SlatePropsProvider.js'\n\ntype Plugin = (editor: Editor) => Editor\n\nexport const useSlatePlugin = (key: string, plugin: Plugin) => {\n const { schemaPath } = useSlateProps()\n\n useAddClientFunction(`slatePlugin.${schemaPath}.${key}`, plugin)\n}\n"],"names":["useAddClientFunction","useSlateProps","useSlatePlugin","key","plugin","schemaPath"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ,iBAAgB;AAErD,SAASC,aAAa,QAAQ,0BAAyB;AAIvD,OAAO,MAAMC,iBAAiB,CAACC,KAAaC;IAC1C,MAAM,EAAEC,UAAU,EAAE,GAAGJ;IAEvBD,qBAAqB,CAAC,YAAY,EAAEK,WAAW,CAAC,EAAEF,IAAI,CAAC,EAAEC;AAC3D,EAAC"}
|
package/license.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/richtext-slate",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.128",
|
|
4
4
|
"description": "The officially supported Slate richtext adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
},
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
|
|
13
|
+
"maintainers": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Payload",
|
|
16
|
+
"email": "info@payloadcms.com",
|
|
17
|
+
"url": "https://payloadcms.com"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
13
20
|
"type": "module",
|
|
14
21
|
"exports": {
|
|
15
22
|
".": {
|
|
@@ -17,10 +24,10 @@
|
|
|
17
24
|
"types": "./dist/index.d.ts",
|
|
18
25
|
"default": "./dist/index.js"
|
|
19
26
|
},
|
|
20
|
-
"./
|
|
21
|
-
"import": "./dist/
|
|
22
|
-
"types": "./dist/
|
|
23
|
-
"default": "./dist/
|
|
27
|
+
"./rsc": {
|
|
28
|
+
"import": "./dist/exports/server/rsc.js",
|
|
29
|
+
"types": "./dist/exports/server/rsc.d.ts",
|
|
30
|
+
"default": "./dist/exports/server/rsc.js"
|
|
24
31
|
},
|
|
25
32
|
"./client": {
|
|
26
33
|
"import": "./dist/exports/client/index.js",
|
|
@@ -39,20 +46,20 @@
|
|
|
39
46
|
"slate-history": "0.86.0",
|
|
40
47
|
"slate-hyperscript": "0.81.3",
|
|
41
48
|
"slate-react": "0.92.0",
|
|
42
|
-
"@payloadcms/
|
|
43
|
-
"@payloadcms/
|
|
49
|
+
"@payloadcms/translations": "3.0.0-beta.128",
|
|
50
|
+
"@payloadcms/ui": "3.0.0-beta.128"
|
|
44
51
|
},
|
|
45
52
|
"devDependencies": {
|
|
46
53
|
"@types/is-hotkey": "^0.1.10",
|
|
47
54
|
"@types/node": "22.5.4",
|
|
48
55
|
"@types/react": "npm:types-react@19.0.0-rc.1",
|
|
49
56
|
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
57
|
+
"payload": "3.0.0-beta.128",
|
|
58
|
+
"@payloadcms/eslint-config": "3.0.0-beta.112"
|
|
52
59
|
},
|
|
53
60
|
"peerDependencies": {
|
|
54
61
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
55
|
-
"payload": "3.0.0-beta.
|
|
62
|
+
"payload": "3.0.0-beta.128"
|
|
56
63
|
},
|
|
57
64
|
"engines": {
|
|
58
65
|
"node": "^18.20.2 || >=20.9.0"
|
package/dist/cell/index.d.ts
DELETED
package/dist/cell/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,CAqCnE,CAAA"}
|
package/dist/cell/index.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useConfig, useTableCell } from '@payloadcms/ui';
|
|
4
|
-
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
5
|
-
import LinkImport from 'next/link.js';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
const Link = LinkImport.default || LinkImport;
|
|
8
|
-
export const RichTextCell = ()=>{
|
|
9
|
-
const { cellData, cellProps, columnIndex, customCellContext, rowData } = useTableCell();
|
|
10
|
-
const flattenedText = cellData?.map((i)=>i?.children?.map((c)=>c.text)).join(' ');
|
|
11
|
-
const { config: { routes: { admin: adminRoute } } } = useConfig();
|
|
12
|
-
const { link } = cellProps || {};
|
|
13
|
-
let WrapElement = 'span';
|
|
14
|
-
const wrapElementProps = {};
|
|
15
|
-
const isLink = link !== undefined ? link : columnIndex === 0;
|
|
16
|
-
if (isLink) {
|
|
17
|
-
WrapElement = Link;
|
|
18
|
-
wrapElementProps.href = customCellContext?.collectionSlug ? formatAdminURL({
|
|
19
|
-
adminRoute,
|
|
20
|
-
path: `/collections/${customCellContext?.collectionSlug}/${rowData.id}`
|
|
21
|
-
}) : '';
|
|
22
|
-
}
|
|
23
|
-
if (isLink) {
|
|
24
|
-
return /*#__PURE__*/ _jsx(WrapElement, {
|
|
25
|
-
...wrapElementProps,
|
|
26
|
-
children: flattenedText
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
// Limiting the number of characters shown is done in a CSS rule
|
|
30
|
-
return /*#__PURE__*/ _jsx("span", {
|
|
31
|
-
children: flattenedText
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cell/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload'\n\nimport { useConfig, useTableCell } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const RichTextCell: React.FC<DefaultCellComponentProps<any[]>> = () => {\n const { cellData, cellProps, columnIndex, customCellContext, rowData } = useTableCell()\n const flattenedText = cellData?.map((i) => i?.children?.map((c) => c.text)).join(' ')\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { link } = cellProps || {}\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n type?: 'button'\n } = {}\n\n const isLink = link !== undefined ? link : columnIndex === 0\n\n if (isLink) {\n WrapElement = Link\n wrapElementProps.href = customCellContext?.collectionSlug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${customCellContext?.collectionSlug}/${rowData.id}`,\n })\n : ''\n }\n\n if (isLink) {\n return <WrapElement {...wrapElementProps}>{flattenedText}</WrapElement>\n }\n // Limiting the number of characters shown is done in a CSS rule\n return <span>{flattenedText}</span>\n}\n"],"names":["useConfig","useTableCell","formatAdminURL","LinkImport","React","Link","default","RichTextCell","cellData","cellProps","columnIndex","customCellContext","rowData","flattenedText","map","i","children","c","text","join","config","routes","admin","adminRoute","link","WrapElement","wrapElementProps","isLink","undefined","href","collectionSlug","path","id","span"],"mappings":"AAAA;;AAGA,SAASA,SAAS,EAAEC,YAAY,QAAQ,iBAAgB;AACxD,SAASC,cAAc,QAAQ,wBAAuB;AACtD,OAAOC,gBAAgB,eAAc;AACrC,OAAOC,WAAW,QAAO;AAEzB,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AAEpC,OAAO,MAAMI,eAA2D;IACtE,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGX;IACzE,MAAMY,gBAAgBL,UAAUM,IAAI,CAACC,IAAMA,GAAGC,UAAUF,IAAI,CAACG,IAAMA,EAAEC,IAAI,GAAGC,KAAK;IAEjF,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC9B,EACF,GAAGvB;IAEJ,MAAM,EAAEwB,IAAI,EAAE,GAAGf,aAAa,CAAC;IAC/B,IAAIgB,cAAiD;IAErD,MAAMC,mBAKF,CAAC;IAEL,MAAMC,SAASH,SAASI,YAAYJ,OAAOd,gBAAgB;IAE3D,IAAIiB,QAAQ;QACVF,cAAcpB;QACdqB,iBAAiBG,IAAI,GAAGlB,mBAAmBmB,iBACvC5B,eAAe;YACbqB;YACAQ,MAAM,CAAC,aAAa,EAAEpB,mBAAmBmB,eAAe,CAAC,EAAElB,QAAQoB,EAAE,CAAC,CAAC;QACzE,KACA;IACN;IAEA,IAAIL,QAAQ;QACV,qBAAO,KAACF;YAAa,GAAGC,gBAAgB;sBAAGb;;IAC7C;IACA,gEAAgE;IAChE,qBAAO,KAACoB;kBAAMpB;;AAChB,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateComponentMap.d.ts","sourceRoot":"","sources":["../src/generateComponentMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuC,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAKhG,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,YAAY,CAAA;AAO7F,eAAO,MAAM,uBAAuB,SAC3B,gBAAgB,KAAG,4BAgIzB,CAAA"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { createClientFields } from '@payloadcms/ui/utilities/createClientConfig';
|
|
2
|
-
import { deepCopyObjectSimple } from 'payload';
|
|
3
|
-
import { elements as elementTypes } from './field/elements/index.js';
|
|
4
|
-
import { linkFieldsSchemaPath } from './field/elements/link/shared.js';
|
|
5
|
-
import { uploadFieldsSchemaPath } from './field/elements/upload/shared.js';
|
|
6
|
-
import { defaultLeaves as leafTypes } from './field/leaves/index.js';
|
|
7
|
-
export const getGenerateComponentMap = (args)=>({ createMappedComponent, i18n, importMap, payload })=>{
|
|
8
|
-
const componentMap = new Map();
|
|
9
|
-
(args?.admin?.leaves || Object.values(leafTypes)).forEach((leaf)=>{
|
|
10
|
-
let leafObject;
|
|
11
|
-
if (typeof leaf === 'object' && leaf !== null) {
|
|
12
|
-
leafObject = leaf;
|
|
13
|
-
} else if (typeof leaf === 'string' && leafTypes[leaf]) {
|
|
14
|
-
leafObject = leafTypes[leaf];
|
|
15
|
-
}
|
|
16
|
-
if (leafObject) {
|
|
17
|
-
const LeafButton = leafObject.Button;
|
|
18
|
-
const LeafComponent = leafObject.Leaf;
|
|
19
|
-
componentMap.set(`leaf.button.${leafObject.name}`, createMappedComponent(LeafButton, undefined, undefined, 'slate-LeafButton'));
|
|
20
|
-
componentMap.set(`leaf.component.${leafObject.name}`, createMappedComponent(LeafComponent, undefined, undefined, 'slate-LeafComponent'));
|
|
21
|
-
if (Array.isArray(leafObject.plugins)) {
|
|
22
|
-
leafObject.plugins.forEach((Plugin, i)=>{
|
|
23
|
-
componentMap.set(`leaf.plugin.${leafObject.name}.${i}`, createMappedComponent(Plugin, undefined, undefined, 'slate-LeafPlugin'));
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
(args?.admin?.elements || Object.values(elementTypes)).forEach((el)=>{
|
|
29
|
-
let element;
|
|
30
|
-
if (typeof el === 'object' && el !== null) {
|
|
31
|
-
element = el;
|
|
32
|
-
} else if (typeof el === 'string' && elementTypes[el]) {
|
|
33
|
-
element = elementTypes[el];
|
|
34
|
-
}
|
|
35
|
-
if (element) {
|
|
36
|
-
const ElementButton = element.Button;
|
|
37
|
-
const ElementComponent = element.Element;
|
|
38
|
-
if (ElementButton) {
|
|
39
|
-
componentMap.set(`element.button.${element.name}`, createMappedComponent(ElementButton, undefined, undefined, 'slate-ElementButton'));
|
|
40
|
-
}
|
|
41
|
-
componentMap.set(`element.component.${element.name}`, createMappedComponent(ElementComponent, undefined, undefined, 'slate-ElementComponent'));
|
|
42
|
-
if (Array.isArray(element.plugins)) {
|
|
43
|
-
element.plugins.forEach((Plugin, i)=>{
|
|
44
|
-
componentMap.set(`element.plugin.${element.name}.${i}`, createMappedComponent(Plugin, undefined, undefined, 'slate-ElementPlugin'));
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
switch(element.name){
|
|
48
|
-
case 'link':
|
|
49
|
-
{
|
|
50
|
-
let clientFields = deepCopyObjectSimple(args.admin?.link?.fields);
|
|
51
|
-
clientFields = createClientFields({
|
|
52
|
-
clientFields,
|
|
53
|
-
createMappedComponent,
|
|
54
|
-
fields: args.admin?.link?.fields,
|
|
55
|
-
i18n,
|
|
56
|
-
importMap,
|
|
57
|
-
payload
|
|
58
|
-
});
|
|
59
|
-
componentMap.set(linkFieldsSchemaPath, clientFields);
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
case 'upload':
|
|
63
|
-
{
|
|
64
|
-
const uploadEnabledCollections = payload.config.collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload })=>{
|
|
65
|
-
if (hidden === true) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
return enableRichTextRelationship && Boolean(upload) === true;
|
|
69
|
-
});
|
|
70
|
-
uploadEnabledCollections.forEach((collection)=>{
|
|
71
|
-
if (args?.admin?.upload?.collections[collection.slug]?.fields) {
|
|
72
|
-
let clientFields = deepCopyObjectSimple(args?.admin?.upload?.collections[collection.slug]?.fields);
|
|
73
|
-
clientFields = createClientFields({
|
|
74
|
-
clientFields,
|
|
75
|
-
createMappedComponent,
|
|
76
|
-
fields: args?.admin?.upload?.collections[collection.slug]?.fields,
|
|
77
|
-
i18n,
|
|
78
|
-
importMap,
|
|
79
|
-
payload
|
|
80
|
-
});
|
|
81
|
-
componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, clientFields);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
case 'relationship':
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return componentMap;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
//# sourceMappingURL=generateComponentMap.js.map
|