@payloadcms/richtext-slate 3.0.0-canary.b8dd0db → 3.0.0-canary.bb00d64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/cell/rscEntry.d.ts +8 -0
  2. package/dist/cell/rscEntry.d.ts.map +1 -0
  3. package/dist/cell/rscEntry.js +51 -0
  4. package/dist/cell/rscEntry.js.map +1 -0
  5. package/dist/data/populate.d.ts +3 -2
  6. package/dist/data/populate.d.ts.map +1 -1
  7. package/dist/data/populate.js +2 -1
  8. package/dist/data/populate.js.map +1 -1
  9. package/dist/data/recurseNestedFields.d.ts +3 -2
  10. package/dist/data/recurseNestedFields.d.ts.map +1 -1
  11. package/dist/data/recurseNestedFields.js +10 -1
  12. package/dist/data/recurseNestedFields.js.map +1 -1
  13. package/dist/data/richTextRelationshipPromise.d.ts +4 -3
  14. package/dist/data/richTextRelationshipPromise.d.ts.map +1 -1
  15. package/dist/data/richTextRelationshipPromise.js +8 -2
  16. package/dist/data/richTextRelationshipPromise.js.map +1 -1
  17. package/dist/data/validation.d.ts.map +1 -1
  18. package/dist/data/validation.js +3 -1
  19. package/dist/data/validation.js.map +1 -1
  20. package/dist/exports/client/index.d.ts +4 -3
  21. package/dist/exports/client/index.d.ts.map +1 -1
  22. package/dist/exports/client/index.js +4 -3
  23. package/dist/exports/client/index.js.map +1 -1
  24. package/dist/exports/server/rsc.d.ts +3 -0
  25. package/dist/exports/server/rsc.d.ts.map +1 -0
  26. package/dist/exports/server/rsc.js +4 -0
  27. package/dist/exports/server/rsc.js.map +1 -0
  28. package/dist/field/RichText.d.ts.map +1 -1
  29. package/dist/field/RichText.js +22 -37
  30. package/dist/field/RichText.js.map +1 -1
  31. package/dist/field/buttons.scss +11 -10
  32. package/dist/field/createFeatureMap.d.ts +2 -2
  33. package/dist/field/createFeatureMap.d.ts.map +1 -1
  34. package/dist/field/createFeatureMap.js +15 -4
  35. package/dist/field/createFeatureMap.js.map +1 -1
  36. package/dist/field/elements/Button.js +2 -2
  37. package/dist/field/elements/Button.js.map +1 -1
  38. package/dist/field/elements/blockquote/index.scss +7 -5
  39. package/dist/field/elements/h3/Heading3.d.ts.map +1 -1
  40. package/dist/field/elements/h3/Heading3.js.map +1 -1
  41. package/dist/field/elements/h4/Heading4.d.ts.map +1 -1
  42. package/dist/field/elements/h4/Heading4.js.map +1 -1
  43. package/dist/field/elements/h5/Heading5.d.ts.map +1 -1
  44. package/dist/field/elements/h5/Heading5.js.map +1 -1
  45. package/dist/field/elements/h6/Heading6.d.ts.map +1 -1
  46. package/dist/field/elements/h6/Heading6.js.map +1 -1
  47. package/dist/field/elements/isActive.d.ts.map +1 -1
  48. package/dist/field/elements/isActive.js +3 -1
  49. package/dist/field/elements/isActive.js.map +1 -1
  50. package/dist/field/elements/isLastSelectedElementEmpty.d.ts.map +1 -1
  51. package/dist/field/elements/isLastSelectedElementEmpty.js +3 -1
  52. package/dist/field/elements/isLastSelectedElementEmpty.js.map +1 -1
  53. package/dist/field/elements/isListActive.d.ts.map +1 -1
  54. package/dist/field/elements/isListActive.js +6 -2
  55. package/dist/field/elements/isListActive.js.map +1 -1
  56. package/dist/field/elements/link/Button/index.d.ts +3 -1
  57. package/dist/field/elements/link/Button/index.d.ts.map +1 -1
  58. package/dist/field/elements/link/Button/index.js +21 -16
  59. package/dist/field/elements/link/Button/index.js.map +1 -1
  60. package/dist/field/elements/link/Element/index.d.ts.map +1 -1
  61. package/dist/field/elements/link/Element/index.js +29 -20
  62. package/dist/field/elements/link/Element/index.js.map +1 -1
  63. package/dist/field/elements/link/Element/index.scss +65 -67
  64. package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
  65. package/dist/field/elements/link/LinkDrawer/index.js +49 -43
  66. package/dist/field/elements/link/LinkDrawer/index.js.map +1 -1
  67. package/dist/field/elements/link/LinkDrawer/index.scss +39 -37
  68. package/dist/field/elements/link/LinkDrawer/types.d.ts +1 -0
  69. package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
  70. package/dist/field/elements/link/LinkDrawer/types.js.map +1 -1
  71. package/dist/field/elements/ol/index.scss +5 -3
  72. package/dist/field/elements/relationship/Button/index.scss +6 -4
  73. package/dist/field/elements/relationship/Element/index.d.ts +1 -7
  74. package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
  75. package/dist/field/elements/relationship/Element/index.js.map +1 -1
  76. package/dist/field/elements/relationship/Element/index.scss +73 -71
  77. package/dist/field/elements/toggleList.d.ts.map +1 -1
  78. package/dist/field/elements/toggleList.js +6 -2
  79. package/dist/field/elements/toggleList.js.map +1 -1
  80. package/dist/field/elements/ul/index.scss +5 -3
  81. package/dist/field/elements/upload/Button/index.scss +6 -4
  82. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
  83. package/dist/field/elements/upload/Element/UploadDrawer/index.js +68 -57
  84. package/dist/field/elements/upload/Element/UploadDrawer/index.js.map +1 -1
  85. package/dist/field/elements/upload/Element/index.d.ts +1 -7
  86. package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
  87. package/dist/field/elements/upload/Element/index.js +2 -2
  88. package/dist/field/elements/upload/Element/index.js.map +1 -1
  89. package/dist/field/elements/upload/Element/index.scss +116 -114
  90. package/dist/field/icons/IndentLeft/index.scss +12 -10
  91. package/dist/field/icons/IndentRight/index.scss +12 -10
  92. package/dist/field/icons/Link/index.scss +8 -6
  93. package/dist/field/icons/Relationship/index.scss +9 -7
  94. package/dist/field/icons/Upload/index.scss +8 -6
  95. package/dist/field/index.d.ts.map +1 -1
  96. package/dist/field/index.js +16 -14
  97. package/dist/field/index.js.map +1 -1
  98. package/dist/field/index.scss +169 -151
  99. package/dist/field/rscEntry.d.ts +7 -0
  100. package/dist/field/rscEntry.d.ts.map +1 -0
  101. package/dist/field/rscEntry.js +132 -0
  102. package/dist/field/rscEntry.js.map +1 -0
  103. package/dist/field/types.d.ts +5 -6
  104. package/dist/field/types.d.ts.map +1 -1
  105. package/dist/field/types.js.map +1 -1
  106. package/dist/generateSchemaMap.d.ts.map +1 -1
  107. package/dist/generateSchemaMap.js +28 -3
  108. package/dist/generateSchemaMap.js.map +1 -1
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +12 -9
  111. package/dist/index.js.map +1 -1
  112. package/dist/scss/app.scss +164 -163
  113. package/dist/scss/colors.scss +256 -254
  114. package/dist/scss/resets.scss +9 -7
  115. package/dist/scss/toastify.scss +42 -41
  116. package/dist/scss/toasts.scss +104 -103
  117. package/dist/scss/type.scss +80 -79
  118. package/dist/types.d.ts +6 -2
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js.map +1 -1
  121. package/dist/utilities/SlatePropsProvider.d.ts +11 -0
  122. package/dist/utilities/SlatePropsProvider.d.ts.map +1 -0
  123. package/dist/utilities/SlatePropsProvider.js +21 -0
  124. package/dist/utilities/SlatePropsProvider.js.map +1 -0
  125. package/dist/utilities/useSlatePlugin.d.ts.map +1 -1
  126. package/dist/utilities/useSlatePlugin.js +3 -2
  127. package/dist/utilities/useSlatePlugin.js.map +1 -1
  128. package/package.json +20 -19
  129. package/dist/cell/index.d.ts +0 -4
  130. package/dist/cell/index.d.ts.map +0 -1
  131. package/dist/cell/index.js +0 -14
  132. package/dist/cell/index.js.map +0 -1
  133. package/dist/generateComponentMap.d.ts +0 -4
  134. package/dist/generateComponentMap.d.ts.map +0 -1
  135. package/dist/generateComponentMap.js +0 -92
  136. package/dist/generateComponentMap.js.map +0 -1
@@ -1,195 +1,213 @@
1
1
  @import '../scss/styles.scss';
2
+ @layer payload-default {
3
+ .rich-text {
4
+ margin-bottom: base(2);
5
+ display: flex;
6
+ flex-direction: column;
7
+ isolation: isolate;
2
8
 
3
- .rich-text {
4
- margin-bottom: base(2);
5
- display: flex;
6
- flex-direction: column;
7
- isolation: isolate;
8
-
9
- &__toolbar {
10
- @include blur-bg(var(--theme-elevation-0));
11
- margin-bottom: $baseline;
12
- border: $style-stroke-width-s solid var(--theme-elevation-150);
13
- position: sticky;
14
- z-index: 1;
15
- top: var(--doc-controls-height);
16
- }
9
+ &__toolbar {
10
+ @include blur-bg(var(--theme-elevation-0));
11
+ margin-bottom: $baseline;
12
+ border: $style-stroke-width-s solid var(--theme-elevation-150);
13
+ position: sticky;
14
+ z-index: 1;
15
+ top: var(--doc-controls-height);
16
+ }
17
+
18
+ &__toolbar-wrap {
19
+ padding: base(0.25);
20
+ display: flex;
21
+ flex-wrap: wrap;
22
+ align-items: stretch;
23
+ position: relative;
24
+ z-index: 1;
17
25
 
18
- &__toolbar-wrap {
19
- padding: base(0.25);
20
- display: flex;
21
- flex-wrap: wrap;
22
- align-items: stretch;
23
- position: relative;
24
- z-index: 1;
25
-
26
- &:after {
27
- content: ' ';
28
- opacity: 0.8;
29
- position: absolute;
30
- top: calc(100% + 1px);
31
- background: linear-gradient(var(--theme-elevation-0), transparent);
32
- display: block;
33
- left: -1px;
34
- right: -1px;
35
- height: base(1);
26
+ &:after {
27
+ content: ' ';
28
+ opacity: 0.8;
29
+ position: absolute;
30
+ top: calc(100% + 1px);
31
+ background: linear-gradient(var(--theme-elevation-0), transparent);
32
+ display: block;
33
+ left: -1px;
34
+ right: -1px;
35
+ height: base(1);
36
+ }
36
37
  }
37
- }
38
38
 
39
- &__editor {
40
- font-family: var(--font-serif);
41
- font-size: base(0.8);
42
- letter-spacing: 0.02em;
43
-
44
- h1,
45
- h2,
46
- h3,
47
- h4,
48
- h5,
49
- h6 {
50
- font-family: var(--font-body);
51
- line-height: 1.125;
52
- letter-spacing: 0;
53
- }
39
+ &__editor {
40
+ font-family: var(--font-serif);
41
+ font-size: base(0.8);
42
+ line-height: 1.5;
54
43
 
55
- h1[data-slate-node='element'] {
56
- font-size: base(1.5);
57
- margin: base(1) 0 base(0.5);
58
- }
44
+ *[data-slate-node='element'] {
45
+ margin-top: 0.75em;
46
+ position: relative;
47
+ line-height: 1.5;
48
+ letter-spacing: normal;
49
+ }
59
50
 
60
- h2[data-slate-node='element'] {
61
- font-size: base(1.25);
62
- margin: base(1) 0 base(0.5);
63
- }
51
+ h1,
52
+ h2,
53
+ h3,
54
+ h4,
55
+ h5,
56
+ h6 {
57
+ font-weight: 700;
58
+ letter-spacing: normal;
59
+ }
64
60
 
65
- h3[data-slate-node='element'] {
66
- font-size: base(1.125);
67
- margin: base(0.75) 0 base(0.5);
68
- }
61
+ h1[data-slate-node='element'] {
62
+ font-size: base(1.4);
63
+ margin-block: 0.5em 0.4em;
64
+ line-height: base(1.2);
65
+ letter-spacing: normal;
66
+ }
69
67
 
70
- h4[data-slate-node='element'] {
71
- font-size: base(1);
72
- margin: base(0.5) 0 base(0.5);
68
+ h2[data-slate-node='element'] {
69
+ font-size: base(1.25);
70
+ margin-block: 0.55em 0.4em;
71
+ line-height: base(1.2);
72
+ letter-spacing: normal;
73
+ }
74
+
75
+ h3[data-slate-node='element'] {
76
+ font-size: base(1.1);
77
+ margin-block: 0.6em 0.4em;
78
+ line-height: base(1.3);
79
+ letter-spacing: normal;
80
+ }
81
+
82
+ h4[data-slate-node='element'] {
83
+ font-size: base(1);
84
+ margin-block: 0.65em 0.4em;
85
+ line-height: base(1.4);
86
+ letter-spacing: normal;
87
+ }
88
+
89
+ h5[data-slate-node='element'] {
90
+ font-size: base(0.9);
91
+ margin-block: 0.7em 0.4em;
92
+ line-height: base(1.5);
93
+ letter-spacing: normal;
94
+ }
95
+
96
+ h6[data-slate-node='element'] {
97
+ font-size: base(0.8);
98
+ margin-block: 0.75em 0.4em;
99
+ line-height: base(1.5);
100
+ }
73
101
  }
74
102
 
75
- h5[data-slate-node='element'] {
76
- font-size: base(0.875);
77
- margin: base(0.25) 0 base(0.25);
103
+ &--gutter {
104
+ .rich-text__editor {
105
+ padding-left: $baseline;
106
+ border-left: 1px solid var(--theme-elevation-100);
107
+ }
78
108
  }
79
109
 
80
- h6[data-slate-node='element'] {
81
- font-size: base(0.75);
82
- margin: base(0.25) 0 base(0.25);
110
+ &__input {
111
+ min-height: base(10);
83
112
  }
84
- }
85
113
 
86
- &--gutter {
87
- .rich-text__editor {
88
- padding-left: $baseline;
89
- border-left: 1px solid var(--theme-elevation-100);
114
+ &__wrap {
115
+ width: 100%;
116
+ position: relative;
90
117
  }
91
- }
92
118
 
93
- &__input {
94
- min-height: base(10);
95
- }
119
+ &__wrapper {
120
+ width: 100%;
121
+ }
96
122
 
97
- &__wrap {
98
- width: 100%;
99
- position: relative;
100
- }
123
+ &--read-only {
124
+ .rich-text__editor {
125
+ background: var(--theme-elevation-200);
126
+ color: var(--theme-elevation-450);
127
+ padding: base(0.5);
101
128
 
102
- &__wrapper {
103
- width: 100%;
104
- }
129
+ .popup button {
130
+ display: none;
131
+ }
132
+ }
105
133
 
106
- &--read-only {
107
- .rich-text__editor {
108
- background: var(--theme-elevation-200);
109
- color: var(--theme-elevation-450);
110
- padding: base(0.5);
134
+ .rich-text__toolbar {
135
+ pointer-events: none;
136
+ position: relative;
137
+ top: 0;
111
138
 
112
- .popup button {
113
- display: none;
139
+ &::after {
140
+ content: ' ';
141
+ position: absolute;
142
+ top: 0;
143
+ left: 0;
144
+ right: 0;
145
+ bottom: 0;
146
+ background-color: var(--theme-elevation-200);
147
+ opacity: 0.85;
148
+ z-index: 2;
149
+ backdrop-filter: unset;
150
+ }
114
151
  }
115
152
  }
116
153
 
117
- .rich-text__toolbar {
118
- pointer-events: none;
119
- position: relative;
120
- top: 0;
154
+ &__button {
155
+ @extend %btn-reset;
156
+ padding: base(0.25);
121
157
 
122
- &::after {
123
- content: ' ';
124
- position: absolute;
125
- top: 0;
126
- left: 0;
127
- right: 0;
128
- bottom: 0;
129
- background-color: var(--theme-elevation-200);
130
- opacity: 0.85;
131
- z-index: 2;
132
- backdrop-filter: unset;
158
+ svg {
159
+ @include color-svg(var(--theme-elevation-800));
160
+ width: base(0.75);
161
+ height: base(0.75);
133
162
  }
134
- }
135
- }
136
-
137
- &__button {
138
- @extend %btn-reset;
139
- padding: base(0.25);
140
163
 
141
- svg {
142
- @include color-svg(var(--theme-elevation-800));
143
- width: base(0.75);
144
- height: base(0.75);
145
- }
164
+ &:hover {
165
+ background-color: var(--theme-elevation-100);
166
+ }
146
167
 
147
- &:hover {
148
- background-color: var(--theme-elevation-100);
168
+ &__button--active,
169
+ &__button--active:hover {
170
+ background-color: var(--theme-elevation-150);
171
+ }
149
172
  }
150
173
 
151
- &__button--active,
152
- &__button--active:hover {
153
- background-color: var(--theme-elevation-150);
174
+ &__drawerIsOpen {
175
+ top: base(1);
154
176
  }
155
- }
156
177
 
157
- &__drawerIsOpen {
158
- top: base(1);
159
- }
160
-
161
- @include mid-break {
162
- &__toolbar {
163
- top: base(3);
164
- }
178
+ @include mid-break {
179
+ &__toolbar {
180
+ top: base(3);
181
+ }
165
182
 
166
- &__drawerIsOpen {
167
- top: base(1);
183
+ &__drawerIsOpen {
184
+ top: base(1);
185
+ }
168
186
  }
169
187
  }
170
- }
171
188
 
172
- [data-slate-node='element'] {
173
- margin-bottom: base(0.25);
174
- }
189
+ [data-slate-node='element'] {
190
+ margin-bottom: base(0.25);
191
+ }
175
192
 
176
- html[data-theme='light'] {
177
- .rich-text {
178
- &.error {
179
- .rich-text__editor,
180
- .rich-text__toolbar {
181
- @include lightInputError;
193
+ html[data-theme='light'] {
194
+ .rich-text {
195
+ &.error {
196
+ .rich-text__editor,
197
+ .rich-text__toolbar {
198
+ @include lightInputError;
199
+ }
182
200
  }
183
201
  }
184
202
  }
185
- }
186
203
 
187
- html[data-theme='dark'] {
188
- .rich-text {
189
- &.error {
190
- .rich-text__editor,
191
- .rich-text__toolbar {
192
- @include darkInputError;
204
+ html[data-theme='dark'] {
205
+ .rich-text {
206
+ &.error {
207
+ .rich-text__editor,
208
+ .rich-text__toolbar {
209
+ @include darkInputError;
210
+ }
193
211
  }
194
212
  }
195
213
  }
@@ -0,0 +1,7 @@
1
+ import { type ClientComponentProps, type ServerComponentProps } from 'payload';
2
+ import React from 'react';
3
+ import type { AdapterArguments } from '../types.js';
4
+ export declare const RscEntrySlateField: React.FC<{
5
+ args: AdapterArguments;
6
+ } & ClientComponentProps & ServerComponentProps>;
7
+ //# sourceMappingURL=rscEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/field/rscEntry.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAMzB,KAAK,oBAAoB,EAC1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAA;AAQ9F,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC;IACE,IAAI,EAAE,gBAAgB,CAAA;CACvB,GAAG,oBAAoB,GACtB,oBAAoB,CAkLvB,CAAA"}
@@ -0,0 +1,132 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
3
+ import { createClientFields, deepCopyObjectSimple } from 'payload';
4
+ import React from 'react';
5
+ // eslint-disable-next-line payload/no-imports-from-exports-dir
6
+ import { RichTextField } from '../exports/client/index.js';
7
+ import { elements as elementTypes } from '../field/elements/index.js';
8
+ import { defaultLeaves as leafTypes } from '../field/leaves/index.js';
9
+ import { linkFieldsSchemaPath } from './elements/link/shared.js';
10
+ import { uploadFieldsSchemaPath } from './elements/upload/shared.js';
11
+ export const RscEntrySlateField = ({ args, clientField, forceRender, i18n, indexPath, parentPath, parentSchemaPath, path, payload, readOnly, renderedBlocks, schemaPath })=>{
12
+ const componentMap = new Map();
13
+ const clientProps = {
14
+ schemaPath
15
+ };
16
+ (args?.admin?.leaves || Object.values(leafTypes)).forEach((leaf)=>{
17
+ let leafObject;
18
+ if (typeof leaf === 'object' && leaf !== null) {
19
+ leafObject = leaf;
20
+ } else if (typeof leaf === 'string' && leafTypes[leaf]) {
21
+ leafObject = leafTypes[leaf];
22
+ }
23
+ if (leafObject) {
24
+ const LeafButton = leafObject.Button;
25
+ const LeafComponent = leafObject.Leaf;
26
+ componentMap.set(`leaf.button.${leafObject.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
27
+ clientProps: clientProps,
28
+ Component: LeafButton,
29
+ importMap: payload.importMap
30
+ }));
31
+ componentMap.set(`leaf.component.${leafObject.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
32
+ clientProps: clientProps,
33
+ Component: LeafComponent,
34
+ importMap: payload.importMap
35
+ }));
36
+ if (Array.isArray(leafObject.plugins)) {
37
+ leafObject.plugins.forEach((Plugin, i)=>{
38
+ componentMap.set(`leaf.plugin.${leafObject.name}.${i}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
39
+ clientProps: clientProps,
40
+ Component: Plugin,
41
+ importMap: payload.importMap
42
+ }));
43
+ });
44
+ }
45
+ }
46
+ });
47
+ (args?.admin?.elements || Object.values(elementTypes)).forEach((el)=>{
48
+ let element;
49
+ if (typeof el === 'object' && el !== null) {
50
+ element = el;
51
+ } else if (typeof el === 'string' && elementTypes[el]) {
52
+ element = elementTypes[el];
53
+ }
54
+ if (element) {
55
+ const ElementButton = element.Button;
56
+ const ElementComponent = element.Element;
57
+ if (ElementButton) {
58
+ componentMap.set(`element.button.${element.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
59
+ clientProps: clientProps,
60
+ Component: ElementButton,
61
+ importMap: payload.importMap
62
+ }));
63
+ }
64
+ componentMap.set(`element.component.${element.name}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
65
+ clientProps: clientProps,
66
+ Component: ElementComponent,
67
+ importMap: payload.importMap
68
+ }));
69
+ if (Array.isArray(element.plugins)) {
70
+ element.plugins.forEach((Plugin, i)=>{
71
+ componentMap.set(`element.plugin.${element.name}.${i}`, /*#__PURE__*/ _jsx(RenderServerComponent, {
72
+ clientProps: clientProps,
73
+ Component: Plugin,
74
+ importMap: payload.importMap
75
+ }));
76
+ });
77
+ }
78
+ switch(element.name){
79
+ case 'link':
80
+ {
81
+ let clientFields = deepCopyObjectSimple(args.admin?.link?.fields);
82
+ clientFields = createClientFields({
83
+ clientFields,
84
+ defaultIDType: payload.config.db.defaultIDType,
85
+ fields: args.admin?.link?.fields,
86
+ i18n
87
+ });
88
+ componentMap.set(linkFieldsSchemaPath, clientFields);
89
+ break;
90
+ }
91
+ case 'upload':
92
+ {
93
+ const uploadEnabledCollections = payload.config.collections.filter(({ admin: { enableRichTextRelationship, hidden }, upload })=>{
94
+ if (hidden === true) {
95
+ return false;
96
+ }
97
+ return enableRichTextRelationship && Boolean(upload) === true;
98
+ });
99
+ uploadEnabledCollections.forEach((collection)=>{
100
+ if (args?.admin?.upload?.collections[collection.slug]?.fields) {
101
+ let clientFields = deepCopyObjectSimple(args?.admin?.upload?.collections[collection.slug]?.fields);
102
+ clientFields = createClientFields({
103
+ clientFields,
104
+ defaultIDType: payload.config.db.defaultIDType,
105
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields,
106
+ i18n
107
+ });
108
+ componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, clientFields);
109
+ }
110
+ });
111
+ break;
112
+ }
113
+ case 'relationship':
114
+ break;
115
+ }
116
+ }
117
+ });
118
+ return /*#__PURE__*/ _jsx(RichTextField, {
119
+ componentMap: Object.fromEntries(componentMap),
120
+ field: clientField,
121
+ forceRender: forceRender,
122
+ indexPath: indexPath,
123
+ parentPath: parentPath,
124
+ parentSchemaPath: parentSchemaPath,
125
+ path: path,
126
+ readOnly: readOnly,
127
+ renderedBlocks: renderedBlocks,
128
+ schemaPath: schemaPath
129
+ });
130
+ };
131
+
132
+ //# sourceMappingURL=rscEntry.js.map
@@ -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 '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 case 'relationship':\n break\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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"}
@@ -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: MappedComponent;
7
- Element: MappedComponent;
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: MappedComponent;
14
- Leaf: MappedComponent;
12
+ Button: React.ReactNode;
13
+ Leaf: React.ReactNode;
15
14
  name: string;
16
15
  };
17
16
  };
18
- plugins: MappedComponent[];
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,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,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,eAAe,CAAA;YACvB,OAAO,EAAE,eAAe,CAAA;YACxB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,MAAM,EAAE;QACN,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,MAAM,EAAE,eAAe,CAAA;YACvB,IAAI,EAAE,eAAe,CAAA;YACrB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,OAAO,EAAE,eAAe,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/field/types.ts"],"sourcesContent":["import type { MappedComponent } from 'payload'\n\nimport type { RichTextPlugin, SlateFieldProps } from '../types.js'\n\nexport type EnabledFeatures = {\n elements: {\n [name: string]: {\n Button: MappedComponent\n Element: MappedComponent\n name: string\n }\n }\n leaves: {\n [name: string]: {\n Button: MappedComponent\n Leaf: MappedComponent\n name: string\n }\n }\n plugins: MappedComponent[]\n}\n\nexport type LoadedSlateFieldProps = {\n elements: EnabledFeatures['elements']\n leaves: EnabledFeatures['leaves']\n plugins: RichTextPlugin[]\n} & SlateFieldProps\n"],"names":[],"mappings":"AAsBA,WAImB"}
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;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAA;AAMzE,eAAO,MAAM,oBAAoB,SACxB,gBAAgB,KAAG,eAAe,CAAC,mBAAmB,CAoD5D,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,7 +14,20 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
13
14
  switch(element.name){
14
15
  case 'link':
15
16
  {
16
- schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, args.admin?.link?.fields);
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
  }
19
33
  case 'upload':
@@ -26,7 +40,18 @@ export const getGenerateSchemaMap = (args)=>({ config, schemaMap, schemaPath })=
26
40
  });
27
41
  uploadEnabledCollections.forEach((collection)=>{
28
42
  if (args?.admin?.upload?.collections[collection.slug]?.fields) {
29
- schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, args?.admin?.upload?.collections[collection.slug]?.fields);
43
+ schemaMap.set(`${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, {
44
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields
45
+ });
46
+ // generate schema map entries for sub-fields using traverseFields
47
+ traverseFields({
48
+ config,
49
+ fields: args?.admin?.upload?.collections[collection.slug]?.fields,
50
+ i18n,
51
+ parentIndexPath: '',
52
+ parentSchemaPath: `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,
53
+ schemaMap
54
+ });
30
55
  }
31
56
  });
32
57
  break;
@@ -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(\n `${schemaPath}.${linkFieldsSchemaPath}`,\n args.admin?.link?.fields as Field[],\n )\n\n break\n }\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(\n `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`,\n args?.admin?.upload?.collections[collection.slug]?.fields,\n )\n }\n })\n\n break\n }\n\n case 'relationship':\n break\n }\n }\n })\n\n return schemaMap\n }\n"],"names":["elements","elementTypes","linkFieldsSchemaPath","uploadFieldsSchemaPath","getGenerateSchemaMap","args","config","schemaMap","schemaPath","admin","Object","values","forEach","el","element","name","set","link","fields","uploadEnabledCollections","collections","filter","enableRichTextRelationship","hidden","upload","Boolean","collection","slug"],"mappings":"AAIA,SAASA,YAAYC,YAAY,QAAQ,4BAA2B;AACpE,SAASC,oBAAoB,QAAQ,kCAAiC;AACtE,SAASC,sBAAsB,QAAQ,oCAAmC;AAE1E,OAAO,MAAMC,uBACX,CAACC,OACD,CAAC,EAAEC,MAAM,EAAEC,SAAS,EAAEC,UAAU,EAAE;QAC9BH,CAAAA,MAAMI,OAAOT,YAAYU,OAAOC,MAAM,CAACV,aAAY,EAAGW,OAAO,CAAC,CAACC;YAC/D,IAAIC;YAEJ,IAAI,OAAOD,OAAO,YAAYA,OAAO,MAAM;gBACzCC,UAAUD;YACZ,OAAO,IAAI,OAAOA,OAAO,YAAYZ,YAAY,CAACY,GAAG,EAAE;gBACrDC,UAAUb,YAAY,CAACY,GAAG;YAC5B;YAEA,IAAIC,SAAS;gBACX,OAAQA,QAAQC,IAAI;oBAClB,KAAK;wBAAQ;4BACXR,UAAUS,GAAG,CACX,CAAC,EAAER,WAAW,CAAC,EAAEN,qBAAqB,CAAC,EACvCG,KAAKI,KAAK,EAAEQ,MAAMC;4BAGpB;wBACF;oBAEA,KAAK;wBAAU;4BACb,MAAMC,2BAA2Bb,OAAOc,WAAW,CAACC,MAAM,CACxD,CAAC,EAAEZ,OAAO,EAAEa,0BAA0B,EAAEC,MAAM,EAAE,EAAEC,MAAM,EAAE;gCACxD,IAAID,WAAW,MAAM;oCACnB,OAAO;gCACT;gCAEA,OAAOD,8BAA8BG,QAAQD,YAAY;4BAC3D;4BAGFL,yBAAyBP,OAAO,CAAC,CAACc;gCAChC,IAAIrB,MAAMI,OAAOe,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAET,QAAQ;oCAC7DX,UAAUS,GAAG,CACX,CAAC,EAAER,WAAW,CAAC,EAAEL,uBAAuB,CAAC,EAAEuB,WAAWC,IAAI,CAAC,CAAC,EAC5DtB,MAAMI,OAAOe,QAAQJ,WAAW,CAACM,WAAWC,IAAI,CAAC,EAAET;gCAEvD;4BACF;4BAEA;wBACF;oBAEA,KAAK;wBACH;gBACJ;YACF;QACF;QAEA,OAAOX;IACT,EAAC"}
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 '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 case 'relationship':\n break\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;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;oBAEA,KAAK;wBACH;gBACJ;YACF;QACF;QAEA,OAAOA;IACT,EAAC"}