@payloadcms/ui 3.71.0-internal.27e1e08 → 3.71.0-internal.49c4f67

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 (27) hide show
  1. package/dist/exports/client/index.js +12 -12
  2. package/dist/exports/client/index.js.map +3 -3
  3. package/dist/fields/Group/index.scss +2 -0
  4. package/dist/fields/Tabs/index.d.ts.map +1 -1
  5. package/dist/fields/Tabs/index.js +138 -201
  6. package/dist/fields/Tabs/index.js.map +1 -1
  7. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  8. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  9. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +125 -103
  10. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  11. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  12. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  13. package/dist/forms/fieldSchemasToFormState/iterateFields.js +1 -1
  14. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  15. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  16. package/dist/forms/fieldSchemasToFormState/renderField.js +5 -3
  17. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  18. package/dist/styles.css +1 -1
  19. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +2 -2
  20. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  21. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +40 -36
  22. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  23. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +2 -2
  24. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  25. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +40 -38
  26. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  27. package/package.json +4 -4
@@ -101,6 +101,8 @@
101
101
  }
102
102
 
103
103
  &--within-group {
104
+ margin-left: 0;
105
+ margin-right: 0;
104
106
  padding: 0;
105
107
  }
106
108
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAOrB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA2C,MAAM,OAAO,CAAA;AAa/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,YAAY,EAAE,CAAA;AAuNvB,eAAO,MAAM,SAAS;;6DAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAMrB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA2C,MAAM,OAAO,CAAA;AAa/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,YAAY,EAAE,CAAA;AAsKvB,eAAO,MAAM,SAAS;;6DAAoC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
- import { tabHasName, toKebabCase } from 'payload/shared';
6
+ import { getFieldPaths, toKebabCase } from 'payload/shared';
7
7
  import React, { useCallback, useEffect, useState } from 'react';
8
8
  import { useCollapsible } from '../../elements/Collapsible/provider.js';
9
9
  import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
@@ -21,22 +21,8 @@ import { TabComponent } from './Tab/index.js';
21
21
  import './index.scss';
22
22
  const baseClass = 'tabs-field';
23
23
  export { TabsProvider };
24
- function generateTabPath({
25
- activeTabConfig,
26
- path
27
- }) {
28
- let tabPath = path;
29
- if (tabHasName(activeTabConfig) && activeTabConfig.name) {
30
- if (path) {
31
- tabPath = `${path}.${activeTabConfig.name}`;
32
- } else {
33
- tabPath = activeTabConfig.name;
34
- }
35
- }
36
- return tabPath;
37
- }
38
24
  const TabsFieldComponent = props => {
39
- const $ = _c(59);
25
+ const $ = _c(43);
40
26
  const {
41
27
  field: t0,
42
28
  forceRender: t1,
@@ -45,37 +31,39 @@ const TabsFieldComponent = props => {
45
31
  parentSchemaPath: t4,
46
32
  path: t5,
47
33
  permissions,
48
- readOnly
34
+ readOnly,
35
+ schemaPath: t6
49
36
  } = props;
50
37
  const {
51
- admin: t6,
52
- tabs: t7
38
+ admin: t7,
39
+ tabs: t8
53
40
  } = t0;
54
- let t8;
55
- if ($[0] !== t6) {
56
- t8 = t6 === undefined ? {} : t6;
57
- $[0] = t6;
58
- $[1] = t8;
41
+ let t9;
42
+ if ($[0] !== t7) {
43
+ t9 = t7 === undefined ? {} : t7;
44
+ $[0] = t7;
45
+ $[1] = t9;
59
46
  } else {
60
- t8 = $[1];
47
+ t9 = $[1];
61
48
  }
62
49
  const {
63
50
  className
64
- } = t8;
65
- let t9;
66
- if ($[2] !== t7) {
67
- t9 = t7 === undefined ? [] : t7;
68
- $[2] = t7;
69
- $[3] = t9;
51
+ } = t9;
52
+ let t10;
53
+ if ($[2] !== t8) {
54
+ t10 = t8 === undefined ? [] : t8;
55
+ $[2] = t8;
56
+ $[3] = t10;
70
57
  } else {
71
- t9 = $[3];
58
+ t10 = $[3];
72
59
  }
73
- const tabs = t9;
60
+ const tabs = t10;
74
61
  const forceRender = t1 === undefined ? false : t1;
75
62
  const indexPath = t2 === undefined ? "" : t2;
76
63
  const parentPath = t3 === undefined ? "" : t3;
77
64
  const parentSchemaPath = t4 === undefined ? "" : t4;
78
65
  const path = t5 === undefined ? "" : t5;
66
+ const schemaPath = t6 === undefined ? "" : t6;
79
67
  const {
80
68
  getPreference,
81
69
  setPreference
@@ -89,10 +77,10 @@ const TabsFieldComponent = props => {
89
77
  const {
90
78
  isWithinCollapsible
91
79
  } = useCollapsible();
92
- let t10;
80
+ let t11;
93
81
  if ($[4] !== tabs) {
94
- t10 = t11 => {
95
- const [fields] = t11;
82
+ t11 = t12 => {
83
+ const [fields] = t12;
96
84
  return tabs.map((tab, index) => {
97
85
  const id = tab?.id;
98
86
  return {
@@ -103,92 +91,33 @@ const TabsFieldComponent = props => {
103
91
  });
104
92
  };
105
93
  $[4] = tabs;
106
- $[5] = t10;
94
+ $[5] = t11;
107
95
  } else {
108
- t10 = $[5];
96
+ t11 = $[5];
109
97
  }
110
- const tabStates = useFormFields(t10);
111
- let t11;
98
+ const tabStates = useFormFields(t11);
99
+ let t12;
112
100
  if ($[6] !== tabStates) {
113
- t11 = () => tabStates.filter(_temp)?.[0]?.index ?? 0;
101
+ t12 = () => tabStates.filter(_temp)?.[0]?.index ?? 0;
114
102
  $[6] = tabStates;
115
- $[7] = t11;
103
+ $[7] = t12;
116
104
  } else {
117
- t11 = $[7];
105
+ t12 = $[7];
118
106
  }
119
- const [activeTabIndex, setActiveTabIndex] = useState(t11);
107
+ const [activeTabIndex, setActiveTabIndex] = useState(t12);
120
108
  const tabsPrefKey = `tabs-${indexPath}`;
121
- let t12;
122
- if ($[8] !== activeTabIndex || $[9] !== parentPath || $[10] !== tabs) {
123
- t12 = () => generateTabPath({
124
- activeTabConfig: tabs[activeTabIndex],
125
- path: parentPath
126
- });
127
- $[8] = activeTabIndex;
128
- $[9] = parentPath;
129
- $[10] = tabs;
130
- $[11] = t12;
131
- } else {
132
- t12 = $[11];
133
- }
134
- const [activeTabPath, setActiveTabPath] = useState(t12);
135
- let t13;
136
- if ($[12] !== parentSchemaPath || $[13] !== tabs[0]) {
137
- t13 = () => generateTabPath({
138
- activeTabConfig: tabs[0],
139
- path: parentSchemaPath
140
- });
141
- $[12] = parentSchemaPath;
142
- $[13] = tabs[0];
143
- $[14] = t13;
144
- } else {
145
- t13 = $[14];
146
- }
147
- const [activeTabSchemaPath, setActiveTabSchemaPath] = useState(t13);
148
- let t14;
149
- if ($[15] !== activeTabIndex || $[16] !== activeTabPath || $[17] !== parentPath || $[18] !== tabs) {
150
- t14 = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath;
151
- $[15] = activeTabIndex;
152
- $[16] = activeTabPath;
153
- $[17] = parentPath;
154
- $[18] = tabs;
155
- $[19] = t14;
156
- } else {
157
- t14 = $[19];
158
- }
159
- const activePathChildrenPath = t14;
160
109
  const activeTabInfo = tabStates[activeTabIndex];
161
110
  const activeTabConfig = activeTabInfo?.tab;
162
- let t15;
163
- if ($[20] !== activeTabIndex || $[21] !== activeTabSchemaPath || $[22] !== parentSchemaPath || $[23] !== tabs) {
164
- t15 = tabHasName(tabs[activeTabIndex]) ? activeTabSchemaPath : parentSchemaPath;
165
- $[20] = activeTabIndex;
166
- $[21] = activeTabSchemaPath;
167
- $[22] = parentSchemaPath;
168
- $[23] = tabs;
169
- $[24] = t15;
170
- } else {
171
- t15 = $[24];
172
- }
173
- const activePathSchemaChildrenPath = t15;
174
111
  const activeTabDescription = activeTabConfig.admin?.description ?? activeTabConfig.description;
175
112
  const activeTabStaticDescription = typeof activeTabDescription === "function" ? activeTabDescription({
176
113
  i18n,
177
114
  t: i18n.t
178
115
  }) : activeTabDescription;
179
116
  const hasVisibleTabs = tabStates.some(_temp2);
180
- let t16;
181
- if ($[25] !== getPreference || $[26] !== parentPath || $[27] !== parentSchemaPath || $[28] !== path || $[29] !== preferencesKey || $[30] !== setPreference || $[31] !== tabs || $[32] !== tabsPrefKey) {
182
- t16 = async incomingTabIndex => {
117
+ let t13;
118
+ if ($[8] !== getPreference || $[9] !== path || $[10] !== preferencesKey || $[11] !== setPreference || $[12] !== tabsPrefKey) {
119
+ t13 = async incomingTabIndex => {
183
120
  setActiveTabIndex(incomingTabIndex);
184
- setActiveTabPath(generateTabPath({
185
- activeTabConfig: tabs[incomingTabIndex],
186
- path: parentPath
187
- }));
188
- setActiveTabSchemaPath(generateTabPath({
189
- activeTabConfig: tabs[incomingTabIndex],
190
- path: parentSchemaPath
191
- }));
192
121
  const existingPreferences = await getPreference(preferencesKey);
193
122
  if (preferencesKey) {
194
123
  setPreference(preferencesKey, {
@@ -213,59 +142,55 @@ const TabsFieldComponent = props => {
213
142
  });
214
143
  }
215
144
  };
216
- $[25] = getPreference;
217
- $[26] = parentPath;
218
- $[27] = parentSchemaPath;
219
- $[28] = path;
220
- $[29] = preferencesKey;
221
- $[30] = setPreference;
222
- $[31] = tabs;
223
- $[32] = tabsPrefKey;
224
- $[33] = t16;
145
+ $[8] = getPreference;
146
+ $[9] = path;
147
+ $[10] = preferencesKey;
148
+ $[11] = setPreference;
149
+ $[12] = tabsPrefKey;
150
+ $[13] = t13;
225
151
  } else {
226
- t16 = $[33];
152
+ t13 = $[13];
227
153
  }
228
- const handleTabChange = t16;
229
- let t17;
230
- let t18;
231
- if ($[34] !== getPreference || $[35] !== parentPath || $[36] !== parentSchemaPath || $[37] !== path || $[38] !== preferencesKey || $[39] !== tabs || $[40] !== tabsPrefKey) {
232
- t17 = () => {
154
+ const handleTabChange = t13;
155
+ let t14;
156
+ if ($[14] !== getPreference || $[15] !== path || $[16] !== preferencesKey || $[17] !== tabsPrefKey) {
157
+ t14 = () => {
233
158
  if (preferencesKey) {
234
159
  const getInitialPref = async () => {
235
160
  const existingPreferences_0 = await getPreference(preferencesKey);
236
161
  const initialIndex = path ? existingPreferences_0?.fields?.[path]?.tabIndex : existingPreferences_0?.fields?.[tabsPrefKey]?.tabIndex;
237
162
  const newIndex = initialIndex || 0;
238
163
  setActiveTabIndex(newIndex);
239
- setActiveTabPath(generateTabPath({
240
- activeTabConfig: tabs[newIndex],
241
- path: parentPath
242
- }));
243
- setActiveTabSchemaPath(generateTabPath({
244
- activeTabConfig: tabs[newIndex],
245
- path: parentSchemaPath
246
- }));
247
164
  };
248
165
  getInitialPref();
249
166
  }
250
167
  };
251
- t18 = [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath];
252
- $[34] = getPreference;
253
- $[35] = parentPath;
254
- $[36] = parentSchemaPath;
255
- $[37] = path;
256
- $[38] = preferencesKey;
257
- $[39] = tabs;
258
- $[40] = tabsPrefKey;
259
- $[41] = t17;
260
- $[42] = t18;
168
+ $[14] = getPreference;
169
+ $[15] = path;
170
+ $[16] = preferencesKey;
171
+ $[17] = tabsPrefKey;
172
+ $[18] = t14;
173
+ } else {
174
+ t14 = $[18];
175
+ }
176
+ let t15;
177
+ if ($[19] !== getPreference || $[20] !== parentPath || $[21] !== parentSchemaPath || $[22] !== path || $[23] !== preferencesKey || $[24] !== tabs || $[25] !== tabsPrefKey) {
178
+ t15 = [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath];
179
+ $[19] = getPreference;
180
+ $[20] = parentPath;
181
+ $[21] = parentSchemaPath;
182
+ $[22] = path;
183
+ $[23] = preferencesKey;
184
+ $[24] = tabs;
185
+ $[25] = tabsPrefKey;
186
+ $[26] = t15;
261
187
  } else {
262
- t17 = $[41];
263
- t18 = $[42];
188
+ t15 = $[26];
264
189
  }
265
- useEffect(t17, t18);
266
- let t19;
267
- if ($[43] !== activeTabInfo?.passesCondition || $[44] !== handleTabChange || $[45] !== tabStates) {
268
- t19 = () => {
190
+ useEffect(t14, t15);
191
+ let t16;
192
+ if ($[27] !== activeTabInfo?.passesCondition || $[28] !== handleTabChange || $[29] !== tabStates) {
193
+ t16 = () => {
269
194
  if (activeTabInfo?.passesCondition === false) {
270
195
  const nextTab = tabStates.find(_temp3);
271
196
  if (nextTab) {
@@ -273,44 +198,44 @@ const TabsFieldComponent = props => {
273
198
  }
274
199
  }
275
200
  };
276
- $[43] = activeTabInfo?.passesCondition;
277
- $[44] = handleTabChange;
278
- $[45] = tabStates;
279
- $[46] = t19;
201
+ $[27] = activeTabInfo?.passesCondition;
202
+ $[28] = handleTabChange;
203
+ $[29] = tabStates;
204
+ $[30] = t16;
280
205
  } else {
281
- t19 = $[46];
206
+ t16 = $[30];
282
207
  }
283
- let t20;
284
- if ($[47] !== activeTabInfo || $[48] !== handleTabChange || $[49] !== tabStates) {
285
- t20 = [activeTabInfo, tabStates, handleTabChange];
286
- $[47] = activeTabInfo;
287
- $[48] = handleTabChange;
288
- $[49] = tabStates;
289
- $[50] = t20;
208
+ let t17;
209
+ if ($[31] !== activeTabInfo || $[32] !== handleTabChange || $[33] !== tabStates) {
210
+ t17 = [activeTabInfo, tabStates, handleTabChange];
211
+ $[31] = activeTabInfo;
212
+ $[32] = handleTabChange;
213
+ $[33] = tabStates;
214
+ $[34] = t17;
290
215
  } else {
291
- t20 = $[50];
216
+ t17 = $[34];
292
217
  }
293
- useEffect(t19, t20);
294
- const t21 = isWithinCollapsible && `${baseClass}--within-collapsible`;
295
- const t22 = !hasVisibleTabs && `${baseClass}--hidden`;
296
- let t23;
297
- if ($[51] !== className || $[52] !== t21 || $[53] !== t22) {
298
- t23 = [fieldBaseClass, className, baseClass, t21, t22].filter(Boolean);
299
- $[51] = className;
300
- $[52] = t21;
301
- $[53] = t22;
302
- $[54] = t23;
218
+ useEffect(t16, t17);
219
+ const t18 = isWithinCollapsible && `${baseClass}--within-collapsible`;
220
+ const t19 = !hasVisibleTabs && `${baseClass}--hidden`;
221
+ let t20;
222
+ if ($[35] !== className || $[36] !== t18 || $[37] !== t19) {
223
+ t20 = [fieldBaseClass, className, baseClass, t18, t19].filter(Boolean);
224
+ $[35] = className;
225
+ $[36] = t18;
226
+ $[37] = t19;
227
+ $[38] = t20;
303
228
  } else {
304
- t23 = $[54];
229
+ t20 = $[38];
305
230
  }
306
- let t24;
307
- if ($[55] !== activeTabIndex || $[56] !== handleTabChange || $[57] !== path) {
308
- t24 = t25 => {
231
+ let t21;
232
+ if ($[39] !== activeTabIndex || $[40] !== handleTabChange || $[41] !== path) {
233
+ t21 = t22 => {
309
234
  const {
310
235
  index: index_0,
311
236
  passesCondition: passesCondition_2,
312
237
  tab: tab_0
313
- } = t25;
238
+ } = t22;
314
239
  return _jsx(TabComponent, {
315
240
  hidden: !passesCondition_2,
316
241
  isActive: activeTabIndex === index_0,
@@ -321,35 +246,36 @@ const TabsFieldComponent = props => {
321
246
  tab: tab_0
322
247
  }, index_0);
323
248
  };
324
- $[55] = activeTabIndex;
325
- $[56] = handleTabChange;
326
- $[57] = path;
327
- $[58] = t24;
249
+ $[39] = activeTabIndex;
250
+ $[40] = handleTabChange;
251
+ $[41] = path;
252
+ $[42] = t21;
328
253
  } else {
329
- t24 = $[58];
254
+ t21 = $[42];
330
255
  }
331
256
  return _jsx("div", {
332
- className: t23.join(" "),
257
+ className: t20.join(" "),
333
258
  children: _jsxs(TabsProvider, {
334
259
  children: [_jsx("div", {
335
260
  className: `${baseClass}__tabs-wrap`,
336
261
  children: _jsx("div", {
337
262
  className: `${baseClass}__tabs`,
338
- children: tabStates.map(t24)
263
+ children: tabStates.map(t21)
339
264
  })
340
265
  }), _jsx("div", {
341
266
  className: `${baseClass}__content-wrap`,
342
267
  children: activeTabConfig && _jsx(TabContent, {
343
268
  description: activeTabStaticDescription,
344
- fields: activeTabConfig.fields,
269
+ field: activeTabConfig,
345
270
  forceRender,
346
271
  hidden: false,
347
- parentIndexPath: tabHasName(activeTabConfig) ? "" : `${indexPath ? indexPath + "-" : ""}` + String(activeTabInfo.index),
348
- parentPath: activePathChildrenPath,
349
- parentSchemaPath: activePathSchemaChildrenPath,
350
- path: activeTabPath,
272
+ parentIndexPath: indexPath,
273
+ parentPath: path,
274
+ parentSchemaPath: schemaPath,
275
+ path,
351
276
  permissions: permissions && typeof permissions === "object" && "name" in activeTabConfig ? permissions[activeTabConfig.name] && typeof permissions[activeTabConfig.name] === "object" && "fields" in permissions[activeTabConfig.name] ? permissions[activeTabConfig.name].fields : permissions[activeTabConfig.name] : permissions,
352
- readOnly
277
+ readOnly,
278
+ tabIndex: activeTabIndex
353
279
  })
354
280
  })]
355
281
  })
@@ -360,7 +286,7 @@ function TabContent(t0) {
360
286
  const $ = _c(21);
361
287
  const {
362
288
  description,
363
- fields,
289
+ field,
364
290
  forceRender,
365
291
  hidden,
366
292
  label,
@@ -368,18 +294,18 @@ function TabContent(t0) {
368
294
  parentPath,
369
295
  parentSchemaPath,
370
296
  permissions,
371
- readOnly
297
+ readOnly,
298
+ tabIndex
372
299
  } = t0;
373
300
  const {
374
301
  i18n
375
302
  } = useTranslation();
376
303
  const {
377
- customComponents: t1,
378
- path
304
+ customComponents: t1
379
305
  } = useField();
380
306
  let t2;
381
307
  let t3;
382
- if ($[0] !== description || $[1] !== fields || $[2] !== forceRender || $[3] !== hidden || $[4] !== i18n || $[5] !== label || $[6] !== parentIndexPath || $[7] !== parentPath || $[8] !== parentSchemaPath || $[9] !== path || $[10] !== permissions || $[11] !== readOnly || $[12] !== t1) {
308
+ if ($[0] !== description || $[1] !== field || $[2] !== forceRender || $[3] !== hidden || $[4] !== i18n || $[5] !== label || $[6] !== parentIndexPath || $[7] !== parentPath || $[8] !== parentSchemaPath || $[9] !== permissions || $[10] !== readOnly || $[11] !== t1 || $[12] !== tabIndex) {
383
309
  t3 = Symbol.for("react.early_return_sentinel");
384
310
  bb0: {
385
311
  const {
@@ -392,6 +318,17 @@ function TabContent(t0) {
392
318
  t3 = Field;
393
319
  break bb0;
394
320
  }
321
+ const {
322
+ indexPath,
323
+ path,
324
+ schemaPath
325
+ } = getFieldPaths({
326
+ field,
327
+ index: tabIndex,
328
+ parentIndexPath,
329
+ parentPath,
330
+ parentSchemaPath
331
+ });
395
332
  const t4 = hidden && `${baseClass}__tab--hidden`;
396
333
  let t5;
397
334
  if ($[15] !== i18n || $[16] !== label) {
@@ -418,21 +355,21 @@ function TabContent(t0) {
418
355
  Fallback: _jsx(FieldDescription, {
419
356
  description,
420
357
  marginPlacement: "bottom",
421
- path
358
+ path: parentPath
422
359
  })
423
360
  }), BeforeInput, _jsx(RenderFields, {
424
- fields,
361
+ fields: field.fields,
425
362
  forceRender,
426
- parentIndexPath,
427
- parentPath,
428
- parentSchemaPath,
363
+ parentIndexPath: indexPath,
364
+ parentPath: path,
365
+ parentSchemaPath: schemaPath,
429
366
  permissions,
430
367
  readOnly
431
368
  }), AfterInput]
432
369
  });
433
370
  }
434
371
  $[0] = description;
435
- $[1] = fields;
372
+ $[1] = field;
436
373
  $[2] = forceRender;
437
374
  $[3] = hidden;
438
375
  $[4] = i18n;
@@ -440,10 +377,10 @@ function TabContent(t0) {
440
377
  $[6] = parentIndexPath;
441
378
  $[7] = parentPath;
442
379
  $[8] = parentSchemaPath;
443
- $[9] = path;
444
- $[10] = permissions;
445
- $[11] = readOnly;
446
- $[12] = t1;
380
+ $[9] = permissions;
381
+ $[10] = readOnly;
382
+ $[11] = t1;
383
+ $[12] = tabIndex;
447
384
  $[13] = t2;
448
385
  $[14] = t3;
449
386
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","useFormFields","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","generateTabPath","activeTabConfig","path","tabPath","name","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","t5","permissions","readOnly","admin","t6","tabs","t7","t8","undefined","className","t9","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","t10","t11","fields","map","tab","index","id","passesCondition","tabStates","filter","_temp","activeTabIndex","setActiveTabIndex","tabsPrefKey","t12","activeTabPath","setActiveTabPath","t13","activeTabSchemaPath","setActiveTabSchemaPath","t14","activePathChildrenPath","activeTabInfo","t15","activePathSchemaChildrenPath","activeTabDescription","description","activeTabStaticDescription","t","hasVisibleTabs","some","_temp2","t16","incomingTabIndex","existingPreferences","tabIndex","handleTabChange","t17","t18","getInitialPref","existingPreferences_0","initialIndex","newIndex","t19","nextTab","find","_temp3","t20","t21","t22","t23","Boolean","t24","t25","index_0","passesCondition_2","tab_0","_jsx","hidden","isActive","setIsActive","join","children","_jsxs","TabContent","parentIndexPath","String","TabsField","label","customComponents","Field","bb0","AfterInput","BeforeInput","Description","CustomComponent","Fallback","marginPlacement","passesCondition_0","passesCondition_1"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientComponentProps,\n ClientField,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { tabHasName, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useFormFields } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\nimport './index.scss'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nfunction generateTabPath({ activeTabConfig, path }: { activeTabConfig: ClientTab; path: string }) {\n let tabPath = path\n\n if (tabHasName(activeTabConfig) && activeTabConfig.name) {\n if (path) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else {\n tabPath = activeTabConfig.name\n }\n }\n\n return tabPath\n}\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n } = props\n\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n\n const tabStates = useFormFields(([fields]) => {\n return tabs.map((tab, index) => {\n const id = tab?.id\n\n return {\n index,\n passesCondition: fields?.[id]?.passesCondition ?? true,\n tab,\n }\n })\n })\n\n const [activeTabIndex, setActiveTabIndex] = useState<number>(\n () => tabStates.filter(({ passesCondition }) => passesCondition)?.[0]?.index ?? 0,\n )\n\n const tabsPrefKey = `tabs-${indexPath}`\n const [activeTabPath, setActiveTabPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[activeTabIndex], path: parentPath }),\n )\n\n const [activeTabSchemaPath, setActiveTabSchemaPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[0], path: parentSchemaPath }),\n )\n\n const activePathChildrenPath = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath\n const activeTabInfo = tabStates[activeTabIndex]\n const activeTabConfig = activeTabInfo?.tab\n const activePathSchemaChildrenPath = tabHasName(tabs[activeTabIndex])\n ? activeTabSchemaPath\n : parentSchemaPath\n\n const activeTabDescription = activeTabConfig.admin?.description ?? activeTabConfig.description\n\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ i18n, t: i18n.t })\n : activeTabDescription\n\n const hasVisibleTabs = tabStates.some(({ passesCondition }) => passesCondition)\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n\n setActiveTabPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentPath }),\n )\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentSchemaPath }),\n )\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [\n tabs,\n parentPath,\n parentSchemaPath,\n getPreference,\n preferencesKey,\n setPreference,\n path,\n tabsPrefKey,\n ],\n )\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n\n setActiveTabPath(generateTabPath({ activeTabConfig: tabs[newIndex], path: parentPath }))\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[newIndex], path: parentSchemaPath }),\n )\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n useEffect(() => {\n if (activeTabInfo?.passesCondition === false) {\n const nextTab = tabStates.find(({ passesCondition }) => passesCondition)\n if (nextTab) {\n void handleTabChange(nextTab.index)\n }\n }\n }, [activeTabInfo, tabStates, handleTabChange])\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n !hasVisibleTabs && `${baseClass}--hidden`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabStates.map(({ index, passesCondition, tab }) => (\n <TabComponent\n hidden={!passesCondition}\n isActive={activeTabIndex === index}\n key={index}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(index)\n }}\n tab={tab}\n />\n ))}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <TabContent\n description={activeTabStaticDescription}\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n hidden={false}\n parentIndexPath={\n tabHasName(activeTabConfig)\n ? ''\n : `${indexPath ? indexPath + '-' : ''}` + String(activeTabInfo.index)\n }\n parentPath={activePathChildrenPath}\n parentSchemaPath={activePathSchemaChildrenPath}\n path={activeTabPath}\n permissions={\n permissions && typeof permissions === 'object' && 'name' in activeTabConfig\n ? permissions[activeTabConfig.name] &&\n typeof permissions[activeTabConfig.name] === 'object' &&\n 'fields' in permissions[activeTabConfig.name]\n ? permissions[activeTabConfig.name].fields\n : permissions[activeTabConfig.name]\n : permissions\n }\n readOnly={readOnly}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n readonly description: StaticDescription\n readonly fields: ClientField[]\n readonly hidden: boolean\n readonly label?: string\n readonly parentIndexPath: string\n readonly parentPath: string\n readonly parentSchemaPath: string\n readonly path: string\n readonly permissions: SanitizedFieldPermissions\n readonly readOnly: boolean\n} & Pick<ClientComponentProps, 'forceRender'>\n\nfunction TabContent({\n description,\n fields,\n forceRender,\n hidden,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {}, path } =\n useField()\n\n if (Field) {\n return Field\n }\n\n return (\n <div\n className={[\n hidden && `${baseClass}__tab--hidden`,\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription description={description} marginPlacement=\"bottom\" path={path} />\n }\n />\n {BeforeInput}\n <RenderFields\n fields={fields}\n forceRender={forceRender}\n parentIndexPath={parentIndexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","getFieldPaths","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","useFormFields","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","path","t5","permissions","readOnly","schemaPath","t6","admin","t7","tabs","t8","t9","undefined","className","t10","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","t11","t12","fields","map","tab","index","id","passesCondition","tabStates","filter","_temp","activeTabIndex","setActiveTabIndex","tabsPrefKey","activeTabInfo","activeTabConfig","activeTabDescription","description","activeTabStaticDescription","t","hasVisibleTabs","some","_temp2","t13","incomingTabIndex","existingPreferences","tabIndex","handleTabChange","t14","getInitialPref","existingPreferences_0","initialIndex","newIndex","t15","t16","nextTab","find","_temp3","t17","t18","t19","t20","Boolean","t21","t22","index_0","passesCondition_2","tab_0","_jsx","hidden","isActive","setIsActive","join","children","_jsxs","TabContent","parentIndexPath","name","TabsField","label","customComponents","Field","bb0","AfterInput","BeforeInput","Description","CustomComponent","Fallback","marginPlacement","passesCondition_0","passesCondition_1"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientComponentProps,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getFieldPaths, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useFormFields } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\nimport './index.scss'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n schemaPath = '',\n } = props\n\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n\n const tabStates = useFormFields(([fields]) => {\n return tabs.map((tab, index) => {\n const id = tab?.id\n\n return {\n index,\n passesCondition: fields?.[id]?.passesCondition ?? true,\n tab,\n }\n })\n })\n\n const [activeTabIndex, setActiveTabIndex] = useState<number>(\n () => tabStates.filter(({ passesCondition }) => passesCondition)?.[0]?.index ?? 0,\n )\n\n const tabsPrefKey = `tabs-${indexPath}`\n\n const activeTabInfo = tabStates[activeTabIndex]\n const activeTabConfig = activeTabInfo?.tab\n const activeTabDescription = activeTabConfig.admin?.description ?? activeTabConfig.description\n\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ i18n, t: i18n.t })\n : activeTabDescription\n\n const hasVisibleTabs = tabStates.some(({ passesCondition }) => passesCondition)\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [getPreference, preferencesKey, setPreference, path, tabsPrefKey],\n )\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n useEffect(() => {\n if (activeTabInfo?.passesCondition === false) {\n const nextTab = tabStates.find(({ passesCondition }) => passesCondition)\n if (nextTab) {\n void handleTabChange(nextTab.index)\n }\n }\n }, [activeTabInfo, tabStates, handleTabChange])\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n !hasVisibleTabs && `${baseClass}--hidden`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabStates.map(({ index, passesCondition, tab }) => (\n <TabComponent\n hidden={!passesCondition}\n isActive={activeTabIndex === index}\n key={index}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(index)\n }}\n tab={tab}\n />\n ))}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <TabContent\n description={activeTabStaticDescription}\n field={activeTabConfig}\n forceRender={forceRender}\n hidden={false}\n parentIndexPath={indexPath}\n parentPath={path}\n parentSchemaPath={schemaPath}\n path={path}\n permissions={\n permissions && typeof permissions === 'object' && 'name' in activeTabConfig\n ? permissions[activeTabConfig.name] &&\n typeof permissions[activeTabConfig.name] === 'object' &&\n 'fields' in permissions[activeTabConfig.name]\n ? permissions[activeTabConfig.name].fields\n : permissions[activeTabConfig.name]\n : permissions\n }\n readOnly={readOnly}\n tabIndex={activeTabIndex}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n readonly description: StaticDescription\n readonly field: ClientTab\n readonly hidden: boolean\n readonly label?: string\n readonly parentIndexPath: string\n readonly parentPath: string\n readonly parentSchemaPath: string\n readonly path: string\n readonly permissions: SanitizedFieldPermissions\n readonly readOnly: boolean\n readonly tabIndex: number\n} & Pick<ClientComponentProps, 'forceRender'>\n\nfunction TabContent({\n description,\n field,\n forceRender,\n hidden,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly,\n tabIndex,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {} } = useField()\n\n if (Field) {\n return Field\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: tabIndex,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n return (\n <div\n className={[\n hidden && `${baseClass}__tab--hidden`,\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription description={description} marginPlacement=\"bottom\" path={parentPath} />\n }\n />\n {BeforeInput}\n <RenderFields\n fields={field.fields}\n forceRender={forceRender}\n parentIndexPath={indexPath}\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { BuildFormStateArgs, ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions, SelectMode, SelectType } from 'payload';
1
+ import type { BuildFormStateArgs, ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions, SelectMode, SelectType, TabAsField } from 'payload';
2
2
  import type { RenderFieldMethod } from './types.js';
3
3
  export type AddFieldStatePromiseArgs = {
4
4
  addErrorPathToParent: (fieldPath: string) => void;
@@ -13,7 +13,7 @@ export type AddFieldStatePromiseArgs = {
13
13
  clientFieldSchemaMap?: ClientFieldSchemaMap;
14
14
  collectionSlug?: string;
15
15
  data: Data;
16
- field: Field;
16
+ field: Field | TabAsField;
17
17
  fieldIndex: number;
18
18
  fieldSchemaMap: FieldSchemaMap;
19
19
  /**