@strapi/content-type-builder 5.15.0 → 5.16.0

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 (52) hide show
  1. package/dist/admin/components/CustomRadioGroup/Styles.js +2 -4
  2. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
  3. package/dist/admin/components/CustomRadioGroup/Styles.mjs +2 -4
  4. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
  5. package/dist/admin/components/DataManager/DataManagerProvider.js +10 -22
  6. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  7. package/dist/admin/components/DataManager/DataManagerProvider.mjs +10 -22
  8. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  9. package/dist/admin/components/DataManager/utils/cleanData.js +98 -16
  10. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
  11. package/dist/admin/components/DataManager/utils/cleanData.mjs +98 -16
  12. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
  13. package/dist/admin/components/DynamicZoneList.js +15 -28
  14. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  15. package/dist/admin/components/DynamicZoneList.mjs +15 -28
  16. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  17. package/dist/admin/components/FormModal/attributes/advancedForm.js +18 -3
  18. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
  19. package/dist/admin/components/FormModal/attributes/advancedForm.mjs +18 -3
  20. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
  21. package/dist/admin/components/Relation/RelationNaturePicker/Components.js +7 -0
  22. package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
  23. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +7 -0
  24. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
  25. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +287 -273
  26. package/dist/admin/translations/en.json.js +2 -0
  27. package/dist/admin/translations/en.json.js.map +1 -1
  28. package/dist/admin/translations/en.json.mjs +2 -0
  29. package/dist/admin/translations/en.json.mjs.map +1 -1
  30. package/dist/admin/translations/fr.json.js +4 -0
  31. package/dist/admin/translations/fr.json.js.map +1 -1
  32. package/dist/admin/translations/fr.json.mjs +4 -0
  33. package/dist/admin/translations/fr.json.mjs.map +1 -1
  34. package/dist/server/controllers/validation/common.js +0 -6
  35. package/dist/server/controllers/validation/common.js.map +1 -1
  36. package/dist/server/controllers/validation/common.mjs +1 -6
  37. package/dist/server/controllers/validation/common.mjs.map +1 -1
  38. package/dist/server/controllers/validation/schema.js +4 -1
  39. package/dist/server/controllers/validation/schema.js.map +1 -1
  40. package/dist/server/controllers/validation/schema.mjs +4 -1
  41. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  42. package/dist/server/controllers/validation/types.js +9 -2
  43. package/dist/server/controllers/validation/types.js.map +1 -1
  44. package/dist/server/controllers/validation/types.mjs +10 -3
  45. package/dist/server/controllers/validation/types.mjs.map +1 -1
  46. package/dist/server/src/controllers/validation/schema.d.ts +192 -0
  47. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  48. package/dist/server/src/services/schema.d.ts +6 -0
  49. package/dist/server/src/services/schema.d.ts.map +1 -1
  50. package/dist/server/src/utils/attributes.d.ts +1 -0
  51. package/dist/server/src/utils/attributes.d.ts.map +1 -1
  52. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"cleanData.js","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\nconst stateToRequestData = (state: { components: Components; contentTypes: ContentTypes }) => {\n const { components, contentTypes } = state;\n\n return {\n components: Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map(formatTypeForRequest),\n contentTypes: Object.values(contentTypes)\n .filter((ct) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(ct.status);\n })\n .map(formatTypeForRequest),\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","state","components","contentTypes","values","compo","includes","formatTypeForRequest","ct","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","action","Error","category","omit","options","attributes","properties"],"mappings":"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"}
1
+ {"version":3,"file":"cleanData.js","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\ntype TrackingEventProperties = {\n newContentTypes: number;\n editedContentTypes: number;\n deletedContentTypes: number;\n newComponents: number;\n editedComponents: number;\n deletedComponents: number;\n newFields: number;\n editedFields: number;\n deletedFields: number;\n};\n\nconst stateToRequestData = ({\n components,\n contentTypes,\n}: {\n components: Components;\n contentTypes: ContentTypes;\n}) => {\n const trackingEventProperties: TrackingEventProperties = {\n newContentTypes: 0,\n editedContentTypes: 0,\n deletedContentTypes: 0,\n newComponents: 0,\n editedComponents: 0,\n deletedComponents: 0,\n newFields: 0,\n editedFields: 0,\n deletedFields: 0,\n };\n\n const formattedComponents = Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map((component) => {\n const requestFormattedComponent = formatTypeForRequest(component);\n\n const eventAction = requestFormattedComponent.action as 'create' | 'update' | 'delete';\n updateEventCounts(\n { ...component, action: eventAction },\n trackingEventProperties,\n 'component'\n );\n\n return requestFormattedComponent;\n });\n\n const formattedContentTypes = Object.values(contentTypes)\n .filter((contentType) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(contentType.status);\n })\n .map((contentType) => {\n const requestFormattedContentType = formatTypeForRequest(contentType);\n\n const eventAction = requestFormattedContentType.action as 'create' | 'update' | 'delete';\n updateEventCounts(\n { ...contentType, action: eventAction },\n trackingEventProperties,\n 'contentType'\n );\n\n return requestFormattedContentType;\n });\n\n return {\n requestData: {\n components: formattedComponents,\n contentTypes: formattedContentTypes,\n },\n trackingEventProperties,\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nconst updateEventCounts = (\n type: (ContentType | Component) & { action?: 'create' | 'update' | 'delete' },\n counts: TrackingEventProperties,\n entityType: 'component' | 'contentType'\n) => {\n if (!type || typeof type.action !== 'string') {\n return;\n }\n\n const isContentType = entityType === 'contentType';\n\n switch (type.action) {\n case 'create':\n if (isContentType) {\n counts.newContentTypes++;\n } else {\n counts.newComponents++;\n }\n break;\n case 'update':\n if (isContentType) {\n counts.editedContentTypes++;\n } else {\n counts.editedComponents++;\n }\n break;\n case 'delete':\n if (isContentType) {\n counts.deletedContentTypes++;\n } else {\n counts.deletedComponents++;\n }\n break;\n default:\n break;\n }\n\n if (Array.isArray(type.attributes)) {\n if (type.action === 'delete') {\n counts.deletedFields += type.attributes.length;\n } else {\n type.attributes.forEach((attribute) => {\n if (!attribute || typeof attribute.status !== 'string') {\n return;\n }\n\n switch (attribute.status) {\n case 'NEW':\n counts.newFields++;\n break;\n case 'CHANGED':\n counts.editedFields++;\n break;\n case 'REMOVED':\n counts.deletedFields++;\n break;\n case 'UNCHANGED':\n default:\n break;\n }\n });\n }\n }\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","components","contentTypes","trackingEventProperties","newContentTypes","editedContentTypes","deletedContentTypes","newComponents","editedComponents","deletedComponents","newFields","editedFields","deletedFields","formattedComponents","values","compo","includes","component","requestFormattedComponent","formatTypeForRequest","eventAction","action","updateEventCounts","formattedContentTypes","contentType","requestFormattedContentType","requestData","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","Error","category","omit","options","attributes","properties","counts","entityType","isContentType","forEach","attribute"],"mappings":"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"}
@@ -16,23 +16,54 @@ const sortContentType = (types)=>{
16
16
  status: types[uid].status
17
17
  })).filter((obj)=>obj !== null), (obj)=>camelCase(obj.title));
18
18
  };
19
- const stateToRequestData = (state)=>{
20
- const { components, contentTypes } = state;
19
+ const stateToRequestData = ({ components, contentTypes })=>{
20
+ const trackingEventProperties = {
21
+ newContentTypes: 0,
22
+ editedContentTypes: 0,
23
+ deletedContentTypes: 0,
24
+ newComponents: 0,
25
+ editedComponents: 0,
26
+ deletedComponents: 0,
27
+ newFields: 0,
28
+ editedFields: 0,
29
+ deletedFields: 0
30
+ };
31
+ const formattedComponents = Object.values(components).filter((compo)=>{
32
+ return [
33
+ 'NEW',
34
+ 'CHANGED',
35
+ 'REMOVED'
36
+ ].includes(compo.status);
37
+ }).map((component)=>{
38
+ const requestFormattedComponent = formatTypeForRequest(component);
39
+ const eventAction = requestFormattedComponent.action;
40
+ updateEventCounts({
41
+ ...component,
42
+ action: eventAction
43
+ }, trackingEventProperties, 'component');
44
+ return requestFormattedComponent;
45
+ });
46
+ const formattedContentTypes = Object.values(contentTypes).filter((contentType)=>{
47
+ return [
48
+ 'NEW',
49
+ 'CHANGED',
50
+ 'REMOVED'
51
+ ].includes(contentType.status);
52
+ }).map((contentType)=>{
53
+ const requestFormattedContentType = formatTypeForRequest(contentType);
54
+ const eventAction = requestFormattedContentType.action;
55
+ updateEventCounts({
56
+ ...contentType,
57
+ action: eventAction
58
+ }, trackingEventProperties, 'contentType');
59
+ return requestFormattedContentType;
60
+ });
21
61
  return {
22
- components: Object.values(components).filter((compo)=>{
23
- return [
24
- 'NEW',
25
- 'CHANGED',
26
- 'REMOVED'
27
- ].includes(compo.status);
28
- }).map(formatTypeForRequest),
29
- contentTypes: Object.values(contentTypes).filter((ct)=>{
30
- return [
31
- 'NEW',
32
- 'CHANGED',
33
- 'REMOVED'
34
- ].includes(ct.status);
35
- }).map(formatTypeForRequest)
62
+ requestData: {
63
+ components: formattedComponents,
64
+ contentTypes: formattedContentTypes
65
+ },
66
+ trackingEventProperties
36
67
  };
37
68
  };
38
69
  const removeNullKeys = (obj)=>{
@@ -120,6 +151,57 @@ const formatTypeForRequest = (type)=>{
120
151
  })
121
152
  };
122
153
  };
154
+ const updateEventCounts = (type, counts, entityType)=>{
155
+ if (!type || typeof type.action !== 'string') {
156
+ return;
157
+ }
158
+ const isContentType = entityType === 'contentType';
159
+ switch(type.action){
160
+ case 'create':
161
+ if (isContentType) {
162
+ counts.newContentTypes++;
163
+ } else {
164
+ counts.newComponents++;
165
+ }
166
+ break;
167
+ case 'update':
168
+ if (isContentType) {
169
+ counts.editedContentTypes++;
170
+ } else {
171
+ counts.editedComponents++;
172
+ }
173
+ break;
174
+ case 'delete':
175
+ if (isContentType) {
176
+ counts.deletedContentTypes++;
177
+ } else {
178
+ counts.deletedComponents++;
179
+ }
180
+ break;
181
+ }
182
+ if (Array.isArray(type.attributes)) {
183
+ if (type.action === 'delete') {
184
+ counts.deletedFields += type.attributes.length;
185
+ } else {
186
+ type.attributes.forEach((attribute)=>{
187
+ if (!attribute || typeof attribute.status !== 'string') {
188
+ return;
189
+ }
190
+ switch(attribute.status){
191
+ case 'NEW':
192
+ counts.newFields++;
193
+ break;
194
+ case 'CHANGED':
195
+ counts.editedFields++;
196
+ break;
197
+ case 'REMOVED':
198
+ counts.deletedFields++;
199
+ break;
200
+ }
201
+ });
202
+ }
203
+ }
204
+ };
123
205
 
124
206
  export { sortContentType, stateToRequestData };
125
207
  //# sourceMappingURL=cleanData.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanData.mjs","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\nconst stateToRequestData = (state: { components: Components; contentTypes: ContentTypes }) => {\n const { components, contentTypes } = state;\n\n return {\n components: Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map(formatTypeForRequest),\n contentTypes: Object.values(contentTypes)\n .filter((ct) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(ct.status);\n })\n .map(formatTypeForRequest),\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","state","components","contentTypes","values","compo","includes","formatTypeForRequest","ct","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","action","Error","category","omit","options","attributes","properties"],"mappings":"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"}
1
+ {"version":3,"file":"cleanData.mjs","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\ntype TrackingEventProperties = {\n newContentTypes: number;\n editedContentTypes: number;\n deletedContentTypes: number;\n newComponents: number;\n editedComponents: number;\n deletedComponents: number;\n newFields: number;\n editedFields: number;\n deletedFields: number;\n};\n\nconst stateToRequestData = ({\n components,\n contentTypes,\n}: {\n components: Components;\n contentTypes: ContentTypes;\n}) => {\n const trackingEventProperties: TrackingEventProperties = {\n newContentTypes: 0,\n editedContentTypes: 0,\n deletedContentTypes: 0,\n newComponents: 0,\n editedComponents: 0,\n deletedComponents: 0,\n newFields: 0,\n editedFields: 0,\n deletedFields: 0,\n };\n\n const formattedComponents = Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map((component) => {\n const requestFormattedComponent = formatTypeForRequest(component);\n\n const eventAction = requestFormattedComponent.action as 'create' | 'update' | 'delete';\n updateEventCounts(\n { ...component, action: eventAction },\n trackingEventProperties,\n 'component'\n );\n\n return requestFormattedComponent;\n });\n\n const formattedContentTypes = Object.values(contentTypes)\n .filter((contentType) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(contentType.status);\n })\n .map((contentType) => {\n const requestFormattedContentType = formatTypeForRequest(contentType);\n\n const eventAction = requestFormattedContentType.action as 'create' | 'update' | 'delete';\n updateEventCounts(\n { ...contentType, action: eventAction },\n trackingEventProperties,\n 'contentType'\n );\n\n return requestFormattedContentType;\n });\n\n return {\n requestData: {\n components: formattedComponents,\n contentTypes: formattedContentTypes,\n },\n trackingEventProperties,\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nconst updateEventCounts = (\n type: (ContentType | Component) & { action?: 'create' | 'update' | 'delete' },\n counts: TrackingEventProperties,\n entityType: 'component' | 'contentType'\n) => {\n if (!type || typeof type.action !== 'string') {\n return;\n }\n\n const isContentType = entityType === 'contentType';\n\n switch (type.action) {\n case 'create':\n if (isContentType) {\n counts.newContentTypes++;\n } else {\n counts.newComponents++;\n }\n break;\n case 'update':\n if (isContentType) {\n counts.editedContentTypes++;\n } else {\n counts.editedComponents++;\n }\n break;\n case 'delete':\n if (isContentType) {\n counts.deletedContentTypes++;\n } else {\n counts.deletedComponents++;\n }\n break;\n default:\n break;\n }\n\n if (Array.isArray(type.attributes)) {\n if (type.action === 'delete') {\n counts.deletedFields += type.attributes.length;\n } else {\n type.attributes.forEach((attribute) => {\n if (!attribute || typeof attribute.status !== 'string') {\n return;\n }\n\n switch (attribute.status) {\n case 'NEW':\n counts.newFields++;\n break;\n case 'CHANGED':\n counts.editedFields++;\n break;\n case 'REMOVED':\n counts.deletedFields++;\n break;\n case 'UNCHANGED':\n default:\n break;\n }\n });\n }\n }\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","components","contentTypes","trackingEventProperties","newContentTypes","editedContentTypes","deletedContentTypes","newComponents","editedComponents","deletedComponents","newFields","editedFields","deletedFields","formattedComponents","values","compo","includes","component","requestFormattedComponent","formatTypeForRequest","eventAction","action","updateEventCounts","formattedContentTypes","contentType","requestFormattedContentType","requestData","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","Error","category","omit","options","attributes","properties","counts","entityType","isContentType","forEach","attribute"],"mappings":"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"}
@@ -22,17 +22,6 @@ const StyledAddIcon = styledComponents.styled(Icons.Plus)`
22
22
  fill: ${({ theme, disabled })=>disabled ? theme.colors.neutral600 : theme.colors.primary600};
23
23
  }
24
24
  `;
25
- const ScrollableStack = styledComponents.styled(designSystem.Flex)`
26
- width: 100%;
27
- overflow-x: auto;
28
-
29
- scrollbar-width: none;
30
- -ms-overflow-style: none;
31
-
32
- &::-webkit-scrollbar {
33
- display: none;
34
- }
35
- `;
36
25
  const ComponentStack = styledComponents.styled(designSystem.Flex)`
37
26
  flex-shrink: 0;
38
27
  width: 14rem;
@@ -60,8 +49,10 @@ const DynamicZoneList = ({ components = [], addComponent, name, forTarget, targe
60
49
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
61
50
  padding: 2,
62
51
  paddingLeft: "104px",
63
- children: /*#__PURE__*/ jsxRuntime.jsxs(ScrollableStack, {
52
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
53
+ role: "tablist",
64
54
  gap: 2,
55
+ wrap: "wrap",
65
56
  children: [
66
57
  isInDevelopmentMode && /*#__PURE__*/ jsxRuntime.jsx("button", {
67
58
  type: "button",
@@ -90,22 +81,18 @@ const DynamicZoneList = ({ components = [], addComponent, name, forTarget, targe
90
81
  ]
91
82
  })
92
83
  }),
93
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
94
- role: "tablist",
95
- gap: 2,
96
- children: components.map((component, index)=>{
97
- return /*#__PURE__*/ jsxRuntime.jsx(ComponentCard.ComponentCard, {
98
- dzName: name || '',
99
- index: index,
100
- component: component,
101
- isActive: activeTab === index,
102
- isInDevelopmentMode: isInDevelopmentMode,
103
- onClick: ()=>toggle(index),
104
- forTarget: forTarget,
105
- targetUid: targetUid,
106
- disabled: disabled
107
- }, component);
108
- })
84
+ components.map((component, index)=>{
85
+ return /*#__PURE__*/ jsxRuntime.jsx(ComponentCard.ComponentCard, {
86
+ dzName: name || '',
87
+ index: index,
88
+ component: component,
89
+ isActive: activeTab === index,
90
+ isInDevelopmentMode: isInDevelopmentMode,
91
+ onClick: ()=>toggle(index),
92
+ forTarget: forTarget,
93
+ targetUid: targetUid,
94
+ disabled: disabled
95
+ }, component);
109
96
  })
110
97
  ]
111
98
  })
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicZoneList.js","sources":["../../../admin/src/components/DynamicZoneList.tsx"],"sourcesContent":["import { ComponentType, useState } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { ComponentCard } from './ComponentCard';\nimport { ComponentList } from './ComponentList';\nimport { ComponentRow } from './ComponentRow';\nimport { useDataManager } from './DataManager/useDataManager';\n\nimport type { Internal, Struct } from '@strapi/types';\n\ninterface DynamicZoneListProps {\n addComponent: (name?: string) => void;\n components: Array<Internal.UID.Component>;\n customRowComponent?: ComponentType<any>;\n name?: string;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n disabled?: boolean;\n}\n\nconst StyledAddIcon = styled(Plus)<{ disabled?: boolean }>`\n width: 3.2rem;\n height: 3.2rem;\n padding: 0.9rem;\n border-radius: 6.4rem;\n background: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral100 : theme.colors.primary100};\n path {\n fill: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral600 : theme.colors.primary600};\n }\n`;\n\nconst ScrollableStack = styled(Flex)`\n width: 100%;\n overflow-x: auto;\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst ComponentStack = styled(Flex)`\n flex-shrink: 0;\n width: 14rem;\n height: 8rem;\n justify-content: center;\n align-items: center;\n`;\n\nexport const DynamicZoneList = ({\n components = [],\n addComponent,\n name,\n forTarget,\n targetUid,\n disabled = false,\n}: DynamicZoneListProps) => {\n const { isInDevelopmentMode } = useDataManager();\n const [activeTab, setActiveTab] = useState(0);\n const { formatMessage } = useIntl();\n\n const toggle = (tab: number) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n const handleClickAdd = () => {\n addComponent(name);\n };\n\n return (\n <ComponentRow className=\"dynamiczone-row\" $isFromDynamicZone>\n <Box>\n <Box padding={2} paddingLeft=\"104px\">\n <ScrollableStack gap={2}>\n {isInDevelopmentMode && (\n <button\n type=\"button\"\n onClick={handleClickAdd}\n disabled={disabled}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <ComponentStack direction=\"column\" alignItems=\"stretch\" gap={1}>\n <StyledAddIcon disabled={disabled} />\n <Typography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor={disabled ? 'neutral600' : 'primary600'}\n >\n {formatMessage({\n id: getTrad('button.component.add'),\n defaultMessage: 'Add a component',\n })}\n </Typography>\n </ComponentStack>\n </button>\n )}\n <Flex role=\"tablist\" gap={2}>\n {components.map((component, index) => {\n return (\n <ComponentCard\n key={component}\n dzName={name || ''}\n index={index}\n component={component}\n isActive={activeTab === index}\n isInDevelopmentMode={isInDevelopmentMode}\n onClick={() => toggle(index)}\n forTarget={forTarget}\n targetUid={targetUid}\n disabled={disabled}\n />\n );\n })}\n </Flex>\n </ScrollableStack>\n </Box>\n <Box>\n {components.map((component, index) => {\n return (\n <Box\n id={`dz-${name}-panel-${index}`}\n role=\"tabpanel\"\n aria-labelledby={`dz-${name}-tab-${index}`}\n key={component}\n style={{ display: activeTab === index ? 'block' : 'none' }}\n >\n <ComponentList isFromDynamicZone component={component} key={component} />\n </Box>\n );\n })}\n </Box>\n </Box>\n </ComponentRow>\n );\n};\n"],"names":["StyledAddIcon","styled","Plus","theme","disabled","colors","neutral100","primary100","neutral600","primary600","ScrollableStack","Flex","ComponentStack","DynamicZoneList","components","addComponent","name","forTarget","targetUid","isInDevelopmentMode","useDataManager","activeTab","setActiveTab","useState","formatMessage","useIntl","toggle","tab","handleClickAdd","_jsx","ComponentRow","className","$isFromDynamicZone","_jsxs","Box","padding","paddingLeft","gap","button","type","onClick","style","cursor","direction","alignItems","Typography","variant","fontWeight","textColor","id","getTrad","defaultMessage","role","map","component","index","ComponentCard","dzName","isActive","aria-labelledby","display","ComponentList","isFromDynamicZone"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicZoneList.js","sources":["../../../admin/src/components/DynamicZoneList.tsx"],"sourcesContent":["import { ComponentType, useState } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { ComponentCard } from './ComponentCard';\nimport { ComponentList } from './ComponentList';\nimport { ComponentRow } from './ComponentRow';\nimport { useDataManager } from './DataManager/useDataManager';\n\nimport type { Internal, Struct } from '@strapi/types';\n\ninterface DynamicZoneListProps {\n addComponent: (name?: string) => void;\n components: Array<Internal.UID.Component>;\n customRowComponent?: ComponentType<any>;\n name?: string;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n disabled?: boolean;\n}\n\nconst StyledAddIcon = styled(Plus)<{ disabled?: boolean }>`\n width: 3.2rem;\n height: 3.2rem;\n padding: 0.9rem;\n border-radius: 6.4rem;\n background: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral100 : theme.colors.primary100};\n path {\n fill: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral600 : theme.colors.primary600};\n }\n`;\n\nconst ComponentStack = styled(Flex)`\n flex-shrink: 0;\n width: 14rem;\n height: 8rem;\n justify-content: center;\n align-items: center;\n`;\n\nexport const DynamicZoneList = ({\n components = [],\n addComponent,\n name,\n forTarget,\n targetUid,\n disabled = false,\n}: DynamicZoneListProps) => {\n const { isInDevelopmentMode } = useDataManager();\n const [activeTab, setActiveTab] = useState(0);\n const { formatMessage } = useIntl();\n\n const toggle = (tab: number) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n const handleClickAdd = () => {\n addComponent(name);\n };\n\n return (\n <ComponentRow className=\"dynamiczone-row\" $isFromDynamicZone>\n <Box>\n <Box padding={2} paddingLeft=\"104px\">\n <Flex role=\"tablist\" gap={2} wrap=\"wrap\">\n {isInDevelopmentMode && (\n <button\n type=\"button\"\n onClick={handleClickAdd}\n disabled={disabled}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <ComponentStack direction=\"column\" alignItems=\"stretch\" gap={1}>\n <StyledAddIcon disabled={disabled} />\n <Typography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor={disabled ? 'neutral600' : 'primary600'}\n >\n {formatMessage({\n id: getTrad('button.component.add'),\n defaultMessage: 'Add a component',\n })}\n </Typography>\n </ComponentStack>\n </button>\n )}\n {components.map((component, index) => {\n return (\n <ComponentCard\n key={component}\n dzName={name || ''}\n index={index}\n component={component}\n isActive={activeTab === index}\n isInDevelopmentMode={isInDevelopmentMode}\n onClick={() => toggle(index)}\n forTarget={forTarget}\n targetUid={targetUid}\n disabled={disabled}\n />\n );\n })}\n </Flex>\n </Box>\n <Box>\n {components.map((component, index) => {\n return (\n <Box\n id={`dz-${name}-panel-${index}`}\n role=\"tabpanel\"\n aria-labelledby={`dz-${name}-tab-${index}`}\n key={component}\n style={{ display: activeTab === index ? 'block' : 'none' }}\n >\n <ComponentList isFromDynamicZone component={component} key={component} />\n </Box>\n );\n })}\n </Box>\n </Box>\n </ComponentRow>\n );\n};\n"],"names":["StyledAddIcon","styled","Plus","theme","disabled","colors","neutral100","primary100","neutral600","primary600","ComponentStack","Flex","DynamicZoneList","components","addComponent","name","forTarget","targetUid","isInDevelopmentMode","useDataManager","activeTab","setActiveTab","useState","formatMessage","useIntl","toggle","tab","handleClickAdd","_jsx","ComponentRow","className","$isFromDynamicZone","_jsxs","Box","padding","paddingLeft","role","gap","wrap","button","type","onClick","style","cursor","direction","alignItems","Typography","variant","fontWeight","textColor","id","getTrad","defaultMessage","map","component","index","ComponentCard","dzName","isActive","aria-labelledby","display","ComponentList","isFromDynamicZone"],"mappings":"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"}
@@ -20,17 +20,6 @@ const StyledAddIcon = styled(Plus)`
20
20
  fill: ${({ theme, disabled })=>disabled ? theme.colors.neutral600 : theme.colors.primary600};
21
21
  }
22
22
  `;
23
- const ScrollableStack = styled(Flex)`
24
- width: 100%;
25
- overflow-x: auto;
26
-
27
- scrollbar-width: none;
28
- -ms-overflow-style: none;
29
-
30
- &::-webkit-scrollbar {
31
- display: none;
32
- }
33
- `;
34
23
  const ComponentStack = styled(Flex)`
35
24
  flex-shrink: 0;
36
25
  width: 14rem;
@@ -58,8 +47,10 @@ const DynamicZoneList = ({ components = [], addComponent, name, forTarget, targe
58
47
  /*#__PURE__*/ jsx(Box, {
59
48
  padding: 2,
60
49
  paddingLeft: "104px",
61
- children: /*#__PURE__*/ jsxs(ScrollableStack, {
50
+ children: /*#__PURE__*/ jsxs(Flex, {
51
+ role: "tablist",
62
52
  gap: 2,
53
+ wrap: "wrap",
63
54
  children: [
64
55
  isInDevelopmentMode && /*#__PURE__*/ jsx("button", {
65
56
  type: "button",
@@ -88,22 +79,18 @@ const DynamicZoneList = ({ components = [], addComponent, name, forTarget, targe
88
79
  ]
89
80
  })
90
81
  }),
91
- /*#__PURE__*/ jsx(Flex, {
92
- role: "tablist",
93
- gap: 2,
94
- children: components.map((component, index)=>{
95
- return /*#__PURE__*/ jsx(ComponentCard, {
96
- dzName: name || '',
97
- index: index,
98
- component: component,
99
- isActive: activeTab === index,
100
- isInDevelopmentMode: isInDevelopmentMode,
101
- onClick: ()=>toggle(index),
102
- forTarget: forTarget,
103
- targetUid: targetUid,
104
- disabled: disabled
105
- }, component);
106
- })
82
+ components.map((component, index)=>{
83
+ return /*#__PURE__*/ jsx(ComponentCard, {
84
+ dzName: name || '',
85
+ index: index,
86
+ component: component,
87
+ isActive: activeTab === index,
88
+ isInDevelopmentMode: isInDevelopmentMode,
89
+ onClick: ()=>toggle(index),
90
+ forTarget: forTarget,
91
+ targetUid: targetUid,
92
+ disabled: disabled
93
+ }, component);
107
94
  })
108
95
  ]
109
96
  })
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicZoneList.mjs","sources":["../../../admin/src/components/DynamicZoneList.tsx"],"sourcesContent":["import { ComponentType, useState } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { ComponentCard } from './ComponentCard';\nimport { ComponentList } from './ComponentList';\nimport { ComponentRow } from './ComponentRow';\nimport { useDataManager } from './DataManager/useDataManager';\n\nimport type { Internal, Struct } from '@strapi/types';\n\ninterface DynamicZoneListProps {\n addComponent: (name?: string) => void;\n components: Array<Internal.UID.Component>;\n customRowComponent?: ComponentType<any>;\n name?: string;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n disabled?: boolean;\n}\n\nconst StyledAddIcon = styled(Plus)<{ disabled?: boolean }>`\n width: 3.2rem;\n height: 3.2rem;\n padding: 0.9rem;\n border-radius: 6.4rem;\n background: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral100 : theme.colors.primary100};\n path {\n fill: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral600 : theme.colors.primary600};\n }\n`;\n\nconst ScrollableStack = styled(Flex)`\n width: 100%;\n overflow-x: auto;\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst ComponentStack = styled(Flex)`\n flex-shrink: 0;\n width: 14rem;\n height: 8rem;\n justify-content: center;\n align-items: center;\n`;\n\nexport const DynamicZoneList = ({\n components = [],\n addComponent,\n name,\n forTarget,\n targetUid,\n disabled = false,\n}: DynamicZoneListProps) => {\n const { isInDevelopmentMode } = useDataManager();\n const [activeTab, setActiveTab] = useState(0);\n const { formatMessage } = useIntl();\n\n const toggle = (tab: number) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n const handleClickAdd = () => {\n addComponent(name);\n };\n\n return (\n <ComponentRow className=\"dynamiczone-row\" $isFromDynamicZone>\n <Box>\n <Box padding={2} paddingLeft=\"104px\">\n <ScrollableStack gap={2}>\n {isInDevelopmentMode && (\n <button\n type=\"button\"\n onClick={handleClickAdd}\n disabled={disabled}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <ComponentStack direction=\"column\" alignItems=\"stretch\" gap={1}>\n <StyledAddIcon disabled={disabled} />\n <Typography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor={disabled ? 'neutral600' : 'primary600'}\n >\n {formatMessage({\n id: getTrad('button.component.add'),\n defaultMessage: 'Add a component',\n })}\n </Typography>\n </ComponentStack>\n </button>\n )}\n <Flex role=\"tablist\" gap={2}>\n {components.map((component, index) => {\n return (\n <ComponentCard\n key={component}\n dzName={name || ''}\n index={index}\n component={component}\n isActive={activeTab === index}\n isInDevelopmentMode={isInDevelopmentMode}\n onClick={() => toggle(index)}\n forTarget={forTarget}\n targetUid={targetUid}\n disabled={disabled}\n />\n );\n })}\n </Flex>\n </ScrollableStack>\n </Box>\n <Box>\n {components.map((component, index) => {\n return (\n <Box\n id={`dz-${name}-panel-${index}`}\n role=\"tabpanel\"\n aria-labelledby={`dz-${name}-tab-${index}`}\n key={component}\n style={{ display: activeTab === index ? 'block' : 'none' }}\n >\n <ComponentList isFromDynamicZone component={component} key={component} />\n </Box>\n );\n })}\n </Box>\n </Box>\n </ComponentRow>\n );\n};\n"],"names":["StyledAddIcon","styled","Plus","theme","disabled","colors","neutral100","primary100","neutral600","primary600","ScrollableStack","Flex","ComponentStack","DynamicZoneList","components","addComponent","name","forTarget","targetUid","isInDevelopmentMode","useDataManager","activeTab","setActiveTab","useState","formatMessage","useIntl","toggle","tab","handleClickAdd","_jsx","ComponentRow","className","$isFromDynamicZone","_jsxs","Box","padding","paddingLeft","gap","button","type","onClick","style","cursor","direction","alignItems","Typography","variant","fontWeight","textColor","id","getTrad","defaultMessage","role","map","component","index","ComponentCard","dzName","isActive","aria-labelledby","display","ComponentList","isFromDynamicZone"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicZoneList.mjs","sources":["../../../admin/src/components/DynamicZoneList.tsx"],"sourcesContent":["import { ComponentType, useState } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../utils/getTrad';\n\nimport { ComponentCard } from './ComponentCard';\nimport { ComponentList } from './ComponentList';\nimport { ComponentRow } from './ComponentRow';\nimport { useDataManager } from './DataManager/useDataManager';\n\nimport type { Internal, Struct } from '@strapi/types';\n\ninterface DynamicZoneListProps {\n addComponent: (name?: string) => void;\n components: Array<Internal.UID.Component>;\n customRowComponent?: ComponentType<any>;\n name?: string;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n disabled?: boolean;\n}\n\nconst StyledAddIcon = styled(Plus)<{ disabled?: boolean }>`\n width: 3.2rem;\n height: 3.2rem;\n padding: 0.9rem;\n border-radius: 6.4rem;\n background: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral100 : theme.colors.primary100};\n path {\n fill: ${({ theme, disabled }) =>\n disabled ? theme.colors.neutral600 : theme.colors.primary600};\n }\n`;\n\nconst ComponentStack = styled(Flex)`\n flex-shrink: 0;\n width: 14rem;\n height: 8rem;\n justify-content: center;\n align-items: center;\n`;\n\nexport const DynamicZoneList = ({\n components = [],\n addComponent,\n name,\n forTarget,\n targetUid,\n disabled = false,\n}: DynamicZoneListProps) => {\n const { isInDevelopmentMode } = useDataManager();\n const [activeTab, setActiveTab] = useState(0);\n const { formatMessage } = useIntl();\n\n const toggle = (tab: number) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n const handleClickAdd = () => {\n addComponent(name);\n };\n\n return (\n <ComponentRow className=\"dynamiczone-row\" $isFromDynamicZone>\n <Box>\n <Box padding={2} paddingLeft=\"104px\">\n <Flex role=\"tablist\" gap={2} wrap=\"wrap\">\n {isInDevelopmentMode && (\n <button\n type=\"button\"\n onClick={handleClickAdd}\n disabled={disabled}\n style={{\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <ComponentStack direction=\"column\" alignItems=\"stretch\" gap={1}>\n <StyledAddIcon disabled={disabled} />\n <Typography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor={disabled ? 'neutral600' : 'primary600'}\n >\n {formatMessage({\n id: getTrad('button.component.add'),\n defaultMessage: 'Add a component',\n })}\n </Typography>\n </ComponentStack>\n </button>\n )}\n {components.map((component, index) => {\n return (\n <ComponentCard\n key={component}\n dzName={name || ''}\n index={index}\n component={component}\n isActive={activeTab === index}\n isInDevelopmentMode={isInDevelopmentMode}\n onClick={() => toggle(index)}\n forTarget={forTarget}\n targetUid={targetUid}\n disabled={disabled}\n />\n );\n })}\n </Flex>\n </Box>\n <Box>\n {components.map((component, index) => {\n return (\n <Box\n id={`dz-${name}-panel-${index}`}\n role=\"tabpanel\"\n aria-labelledby={`dz-${name}-tab-${index}`}\n key={component}\n style={{ display: activeTab === index ? 'block' : 'none' }}\n >\n <ComponentList isFromDynamicZone component={component} key={component} />\n </Box>\n );\n })}\n </Box>\n </Box>\n </ComponentRow>\n );\n};\n"],"names":["StyledAddIcon","styled","Plus","theme","disabled","colors","neutral100","primary100","neutral600","primary600","ComponentStack","Flex","DynamicZoneList","components","addComponent","name","forTarget","targetUid","isInDevelopmentMode","useDataManager","activeTab","setActiveTab","useState","formatMessage","useIntl","toggle","tab","handleClickAdd","_jsx","ComponentRow","className","$isFromDynamicZone","_jsxs","Box","padding","paddingLeft","role","gap","wrap","button","type","onClick","style","cursor","direction","alignItems","Typography","variant","fontWeight","textColor","id","getTrad","defaultMessage","map","component","index","ComponentCard","dzName","isActive","aria-labelledby","display","ComponentList","isFromDynamicZone"],"mappings":"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"}
@@ -90,6 +90,20 @@ const advancedForm = {
90
90
  };
91
91
  }
92
92
  if (repeatable) {
93
+ const minComponentsAttribute = {
94
+ ...attributeOptions.attributeOptions.min,
95
+ intlLabel: {
96
+ id: getTrad.getTrad('form.attribute.item.minimumComponents'),
97
+ defaultMessage: 'Minimum components'
98
+ }
99
+ };
100
+ const maxComponentsAttribute = {
101
+ ...attributeOptions.attributeOptions.max,
102
+ intlLabel: {
103
+ id: getTrad.getTrad('form.attribute.item.maximumComponents'),
104
+ defaultMessage: 'Maximum components'
105
+ }
106
+ };
93
107
  return {
94
108
  sections: [
95
109
  {
@@ -100,8 +114,8 @@ const advancedForm = {
100
114
  items: [
101
115
  attributeOptions.attributeOptions.required,
102
116
  attributeOptions.attributeOptions.private,
103
- attributeOptions.attributeOptions.max,
104
- attributeOptions.attributeOptions.min
117
+ minComponentsAttribute,
118
+ maxComponentsAttribute
105
119
  ]
106
120
  }
107
121
  ]
@@ -459,7 +473,8 @@ const advancedForm = {
459
473
  attributeOptions.attributeOptions.required,
460
474
  attributeOptions.attributeOptions.maxLength,
461
475
  attributeOptions.attributeOptions.minLength,
462
- attributeOptions.attributeOptions.private
476
+ attributeOptions.attributeOptions.private,
477
+ attributeOptions.attributeOptions.regex
463
478
  ]
464
479
  }
465
480
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"advancedForm.js","sources":["../../../../../admin/src/components/FormModal/attributes/advancedForm.ts"],"sourcesContent":["import { getTrad } from '../../../utils/getTrad';\nimport { componentForm } from '../component/componentForm';\n\nimport { attributeOptions } from './attributeOptions';\n\ntype DataType = 'biginteger' | 'string' | 'integer' | 'float' | 'decimal';\n\nexport const advancedForm = {\n blocks() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n boolean() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n type: 'select-default-boolean',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n name: 'default',\n options: [\n {\n value: 'true',\n key: 'true',\n metadatas: { intlLabel: { id: 'true', defaultMessage: 'true' } },\n },\n {\n value: '',\n key: 'null',\n metadatas: { intlLabel: { id: 'null', defaultMessage: 'null' } },\n },\n {\n value: 'false',\n key: 'false',\n metadatas: { intlLabel: { id: 'false', defaultMessage: 'false' } },\n },\n ],\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n component({ repeatable }: { repeatable: boolean }, step: string) {\n if (step === '1') {\n return { sections: componentForm.advanced() };\n }\n\n if (repeatable) {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.private,\n attributeOptions.max,\n attributeOptions.min,\n ],\n },\n ],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n date({ type }: { type: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: type || 'date',\n value: null,\n withDefaultValue: false,\n disabled: !type,\n autoFocus: false,\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.unique, attributeOptions.private],\n },\n ],\n };\n },\n dynamiczone() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.max, attributeOptions.min],\n },\n ],\n };\n },\n email() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: 'email',\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n enumeration(data: { enum: Array<string> }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n name: 'default',\n type: 'select',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n },\n },\n ...(data.enum || [])\n .filter((value, index) => data.enum.indexOf(value) === index && value)\n .map((value) => {\n return {\n key: value,\n value,\n metadatas: {\n intlLabel: { id: `${value}.no-override`, defaultMessage: value },\n },\n };\n }),\n ],\n },\n {\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.graphql'),\n defaultMessage: 'Name override for GraphQL',\n },\n name: 'enumName',\n type: 'text',\n validations: {},\n description: {\n id: getTrad('form.attribute.item.enumeration.graphql.description'),\n defaultMessage: 'Allows you to override the default generated name for GraphQL',\n },\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n json() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: getTrad('form.attribute.media.allowed-types'),\n defaultMessage: 'Select allowed types of media',\n },\n name: 'allowedTypes',\n type: 'allowed-types-select',\n size: 7,\n value: '',\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n number(data: { type: DataType }) {\n const inputStep = data.type === 'decimal' || data.type === 'float' ? 'any' : 1;\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'default',\n type: data.type === 'biginteger' ? 'text' : 'number',\n step: inputStep,\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.max,\n attributeOptions.min,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n password() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.private],\n },\n ],\n };\n },\n richtext() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default, attributeOptions.regex] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n uid(data: { targetField: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n { ...attributeOptions.default, disabled: Boolean(data.targetField), type: 'text' },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n};\n"],"names":["advancedForm","blocks","sections","sectionTitle","id","defaultMessage","items","attributeOptions","required","private","boolean","autoFocus","type","intlLabel","getTrad","name","options","value","key","metadatas","component","repeatable","step","componentForm","advanced","max","min","date","default","withDefaultValue","disabled","unique","dynamiczone","email","maxLength","minLength","enumeration","data","validations","enum","filter","index","indexOf","map","description","json","media","size","number","inputStep","password","relation","richtext","text","regex","uid","Boolean","targetField"],"mappings":"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"}
1
+ {"version":3,"file":"advancedForm.js","sources":["../../../../../admin/src/components/FormModal/attributes/advancedForm.ts"],"sourcesContent":["import { getTrad } from '../../../utils/getTrad';\nimport { componentForm } from '../component/componentForm';\n\nimport { attributeOptions } from './attributeOptions';\n\ntype DataType = 'biginteger' | 'string' | 'integer' | 'float' | 'decimal';\n\nexport const advancedForm = {\n blocks() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n boolean() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n type: 'select-default-boolean',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n name: 'default',\n options: [\n {\n value: 'true',\n key: 'true',\n metadatas: { intlLabel: { id: 'true', defaultMessage: 'true' } },\n },\n {\n value: '',\n key: 'null',\n metadatas: { intlLabel: { id: 'null', defaultMessage: 'null' } },\n },\n {\n value: 'false',\n key: 'false',\n metadatas: { intlLabel: { id: 'false', defaultMessage: 'false' } },\n },\n ],\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n component({ repeatable }: { repeatable: boolean }, step: string) {\n if (step === '1') {\n return { sections: componentForm.advanced() };\n }\n\n if (repeatable) {\n const minComponentsAttribute = {\n ...attributeOptions.min,\n intlLabel: {\n id: getTrad('form.attribute.item.minimumComponents'),\n defaultMessage: 'Minimum components',\n },\n };\n const maxComponentsAttribute = {\n ...attributeOptions.max,\n intlLabel: {\n id: getTrad('form.attribute.item.maximumComponents'),\n defaultMessage: 'Maximum components',\n },\n };\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.private,\n minComponentsAttribute,\n maxComponentsAttribute,\n ],\n },\n ],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n date({ type }: { type: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: type || 'date',\n value: null,\n withDefaultValue: false,\n disabled: !type,\n autoFocus: false,\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.unique, attributeOptions.private],\n },\n ],\n };\n },\n dynamiczone() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.max, attributeOptions.min],\n },\n ],\n };\n },\n email() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: 'email',\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n enumeration(data: { enum: Array<string> }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n name: 'default',\n type: 'select',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n },\n },\n ...(data.enum || [])\n .filter((value, index) => data.enum.indexOf(value) === index && value)\n .map((value) => {\n return {\n key: value,\n value,\n metadatas: {\n intlLabel: { id: `${value}.no-override`, defaultMessage: value },\n },\n };\n }),\n ],\n },\n {\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.graphql'),\n defaultMessage: 'Name override for GraphQL',\n },\n name: 'enumName',\n type: 'text',\n validations: {},\n description: {\n id: getTrad('form.attribute.item.enumeration.graphql.description'),\n defaultMessage: 'Allows you to override the default generated name for GraphQL',\n },\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n json() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: getTrad('form.attribute.media.allowed-types'),\n defaultMessage: 'Select allowed types of media',\n },\n name: 'allowedTypes',\n type: 'allowed-types-select',\n size: 7,\n value: '',\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n number(data: { type: DataType }) {\n const inputStep = data.type === 'decimal' || data.type === 'float' ? 'any' : 1;\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'default',\n type: data.type === 'biginteger' ? 'text' : 'number',\n step: inputStep,\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.max,\n attributeOptions.min,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n password() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.private],\n },\n ],\n };\n },\n richtext() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default, attributeOptions.regex] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n uid(data: { targetField: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n { ...attributeOptions.default, disabled: Boolean(data.targetField), type: 'text' },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n attributeOptions.regex,\n ],\n },\n ],\n };\n },\n};\n"],"names":["advancedForm","blocks","sections","sectionTitle","id","defaultMessage","items","attributeOptions","required","private","boolean","autoFocus","type","intlLabel","getTrad","name","options","value","key","metadatas","component","repeatable","step","componentForm","advanced","minComponentsAttribute","min","maxComponentsAttribute","max","date","default","withDefaultValue","disabled","unique","dynamiczone","email","maxLength","minLength","enumeration","data","validations","enum","filter","index","indexOf","map","description","json","media","size","number","inputStep","password","relation","richtext","text","regex","uid","Boolean","targetField"],"mappings":"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"}