@strapi/content-type-builder 5.15.1 → 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.
- package/dist/admin/components/CustomRadioGroup/Styles.js +2 -4
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +2 -4
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +10 -22
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +10 -22
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js +98 -16
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.mjs +98 -16
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js +15 -28
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +15 -28
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.js +18 -3
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs +18 -3
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js +7 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +7 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +287 -273
- package/dist/admin/translations/en.json.js +2 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +2 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +4 -0
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +4 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/server/controllers/validation/common.js +0 -6
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +1 -6
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js +4 -1
- package/dist/server/controllers/validation/schema.js.map +1 -1
- package/dist/server/controllers/validation/schema.mjs +4 -1
- package/dist/server/controllers/validation/schema.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +9 -2
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +10 -3
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +192 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +6 -0
- package/dist/server/src/services/schema.d.ts.map +1 -1
- package/dist/server/src/utils/attributes.d.ts +1 -0
- package/dist/server/src/utils/attributes.d.ts.map +1 -1
- 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 = (
|
|
20
|
-
const
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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(
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|
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":";;;;;;;;;;;;;;AA0BA,MAAMA,aAAAA,GAAgBC,uBAAOC,CAAAA,UAAAA,CAA6B;;;;;AAK5C,cAAA,EAAE,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAChCA,QAAAA,GAAWD,KAAME,CAAAA,MAAM,CAACC,UAAU,GAAGH,MAAME,MAAM,CAACE,UAAU,CAAC;;AAEvD,UAAA,EAAE,CAAC,EAAEJ,KAAK,EAAEC,QAAQ,EAAE,GAC1BA,QAAAA,GAAWD,KAAME,CAAAA,MAAM,CAACG,UAAU,GAAGL,MAAME,MAAM,CAACI,UAAU,CAAC;;AAEnE,CAAC;AAED,MAAMC,cAAAA,GAAiBT,uBAAOU,CAAAA,iBAAAA,CAAK;;;;;;AAMnC,CAAC;MAEYC,eAAkB,GAAA,CAAC,EAC9BC,UAAAA,GAAa,EAAE,EACfC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,SAAS,EACTb,QAAAA,GAAW,KAAK,EACK,GAAA;IACrB,MAAM,EAAEc,mBAAmB,EAAE,GAAGC,6BAAAA,EAAAA;AAChC,IAAA,MAAM,CAACC,SAAAA,EAAWC,YAAa,CAAA,GAAGC,cAAS,CAAA,CAAA,CAAA;IAC3C,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,SAAS,CAACC,GAAAA,GAAAA;AACd,QAAA,IAAIN,cAAcM,GAAK,EAAA;YACrBL,YAAaK,CAAAA,GAAAA,CAAAA;AACf;AACF,KAAA;AAEA,IAAA,MAAMC,cAAiB,GAAA,IAAA;QACrBb,YAAaC,CAAAA,IAAAA,CAAAA;AACf,KAAA;AAEA,IAAA,qBACEa,cAACC,CAAAA,yBAAAA,EAAAA;QAAaC,SAAU,EAAA,iBAAA;QAAkBC,kBAAkB,EAAA,IAAA;AAC1D,QAAA,QAAA,gBAAAC,eAACC,CAAAA,gBAAAA,EAAAA;;8BACCL,cAACK,CAAAA,gBAAAA,EAAAA;oBAAIC,OAAS,EAAA,CAAA;oBAAGC,WAAY,EAAA,OAAA;AAC3B,oBAAA,QAAA,gBAAAH,eAACrB,CAAAA,iBAAAA,EAAAA;wBAAKyB,IAAK,EAAA,SAAA;wBAAUC,GAAK,EAAA,CAAA;wBAAGC,IAAK,EAAA,MAAA;;AAC/BpB,4BAAAA,mBAAAA,kBACCU,cAACW,CAAAA,QAAAA,EAAAA;gCACCC,IAAK,EAAA,QAAA;gCACLC,OAASd,EAAAA,cAAAA;gCACTvB,QAAUA,EAAAA,QAAAA;gCACVsC,KAAO,EAAA;AACLC,oCAAAA,MAAAA,EAAQvC,WAAW,aAAgB,GAAA;AACrC,iCAAA;AAEA,gCAAA,QAAA,gBAAA4B,eAACtB,CAAAA,cAAAA,EAAAA;oCAAekC,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;oCAAUR,GAAK,EAAA,CAAA;;sDAC3DT,cAAC5B,CAAAA,aAAAA,EAAAA;4CAAcI,QAAUA,EAAAA;;sDACzBwB,cAACkB,CAAAA,uBAAAA,EAAAA;4CACCC,OAAQ,EAAA,IAAA;4CACRC,UAAW,EAAA,MAAA;AACXC,4CAAAA,SAAAA,EAAW7C,WAAW,YAAe,GAAA,YAAA;sDAEpCmB,aAAc,CAAA;AACb2B,gDAAAA,EAAAA,EAAIC,eAAQ,CAAA,sBAAA,CAAA;gDACZC,cAAgB,EAAA;AAClB,6CAAA;;;;;4BAKPvC,UAAWwC,CAAAA,GAAG,CAAC,CAACC,SAAWC,EAAAA,KAAAA,GAAAA;AAC1B,gCAAA,qBACE3B,cAAC4B,CAAAA,2BAAAA,EAAAA;AAECC,oCAAAA,MAAAA,EAAQ1C,IAAQ,IAAA,EAAA;oCAChBwC,KAAOA,EAAAA,KAAAA;oCACPD,SAAWA,EAAAA,SAAAA;AACXI,oCAAAA,QAAAA,EAAUtC,SAAcmC,KAAAA,KAAAA;oCACxBrC,mBAAqBA,EAAAA,mBAAAA;AACrBuB,oCAAAA,OAAAA,EAAS,IAAMhB,MAAO8B,CAAAA,KAAAA,CAAAA;oCACtBvC,SAAWA,EAAAA,SAAAA;oCACXC,SAAWA,EAAAA,SAAAA;oCACXb,QAAUA,EAAAA;AATLkD,iCAAAA,EAAAA,SAAAA,CAAAA;AAYX,6BAAA;;;;8BAGJ1B,cAACK,CAAAA,gBAAAA,EAAAA;8BACEpB,UAAWwC,CAAAA,GAAG,CAAC,CAACC,SAAWC,EAAAA,KAAAA,GAAAA;AAC1B,wBAAA,qBACE3B,cAACK,CAAAA,gBAAAA,EAAAA;AACCiB,4BAAAA,EAAAA,EAAI,CAAC,GAAG,EAAEnC,KAAK,OAAO,EAAEwC,MAAM,CAAC;4BAC/BnB,IAAK,EAAA,UAAA;AACLuB,4BAAAA,iBAAAA,EAAiB,CAAC,GAAG,EAAE5C,KAAK,KAAK,EAAEwC,MAAM,CAAC;4BAE1Cb,KAAO,EAAA;gCAAEkB,OAASxC,EAAAA,SAAAA,KAAcmC,QAAQ,OAAU,GAAA;AAAO,6BAAA;AAEzD,4BAAA,QAAA,gBAAA3B,cAACiC,CAAAA,2BAAAA,EAAAA;gCAAcC,iBAAiB,EAAA,IAAA;gCAACR,SAAWA,EAAAA;AAAgBA,6BAAAA,EAAAA,SAAAA;AAHvDA,yBAAAA,EAAAA,SAAAA,CAAAA;AAMX,qBAAA;;;;;AAKV;;;;"}
|
|
@@ -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(
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
|
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":";;;;;;;;;;;;AA0BA,MAAMA,aAAAA,GAAgBC,MAAOC,CAAAA,IAAAA,CAA6B;;;;;AAK5C,cAAA,EAAE,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAChCA,QAAAA,GAAWD,KAAME,CAAAA,MAAM,CAACC,UAAU,GAAGH,MAAME,MAAM,CAACE,UAAU,CAAC;;AAEvD,UAAA,EAAE,CAAC,EAAEJ,KAAK,EAAEC,QAAQ,EAAE,GAC1BA,QAAAA,GAAWD,KAAME,CAAAA,MAAM,CAACG,UAAU,GAAGL,MAAME,MAAM,CAACI,UAAU,CAAC;;AAEnE,CAAC;AAED,MAAMC,cAAAA,GAAiBT,MAAOU,CAAAA,IAAAA,CAAK;;;;;;AAMnC,CAAC;MAEYC,eAAkB,GAAA,CAAC,EAC9BC,UAAAA,GAAa,EAAE,EACfC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,SAAS,EACTb,QAAAA,GAAW,KAAK,EACK,GAAA;IACrB,MAAM,EAAEc,mBAAmB,EAAE,GAAGC,cAAAA,EAAAA;AAChC,IAAA,MAAM,CAACC,SAAAA,EAAWC,YAAa,CAAA,GAAGC,QAAS,CAAA,CAAA,CAAA;IAC3C,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,SAAS,CAACC,GAAAA,GAAAA;AACd,QAAA,IAAIN,cAAcM,GAAK,EAAA;YACrBL,YAAaK,CAAAA,GAAAA,CAAAA;AACf;AACF,KAAA;AAEA,IAAA,MAAMC,cAAiB,GAAA,IAAA;QACrBb,YAAaC,CAAAA,IAAAA,CAAAA;AACf,KAAA;AAEA,IAAA,qBACEa,GAACC,CAAAA,YAAAA,EAAAA;QAAaC,SAAU,EAAA,iBAAA;QAAkBC,kBAAkB,EAAA,IAAA;AAC1D,QAAA,QAAA,gBAAAC,IAACC,CAAAA,GAAAA,EAAAA;;8BACCL,GAACK,CAAAA,GAAAA,EAAAA;oBAAIC,OAAS,EAAA,CAAA;oBAAGC,WAAY,EAAA,OAAA;AAC3B,oBAAA,QAAA,gBAAAH,IAACrB,CAAAA,IAAAA,EAAAA;wBAAKyB,IAAK,EAAA,SAAA;wBAAUC,GAAK,EAAA,CAAA;wBAAGC,IAAK,EAAA,MAAA;;AAC/BpB,4BAAAA,mBAAAA,kBACCU,GAACW,CAAAA,QAAAA,EAAAA;gCACCC,IAAK,EAAA,QAAA;gCACLC,OAASd,EAAAA,cAAAA;gCACTvB,QAAUA,EAAAA,QAAAA;gCACVsC,KAAO,EAAA;AACLC,oCAAAA,MAAAA,EAAQvC,WAAW,aAAgB,GAAA;AACrC,iCAAA;AAEA,gCAAA,QAAA,gBAAA4B,IAACtB,CAAAA,cAAAA,EAAAA;oCAAekC,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;oCAAUR,GAAK,EAAA,CAAA;;sDAC3DT,GAAC5B,CAAAA,aAAAA,EAAAA;4CAAcI,QAAUA,EAAAA;;sDACzBwB,GAACkB,CAAAA,UAAAA,EAAAA;4CACCC,OAAQ,EAAA,IAAA;4CACRC,UAAW,EAAA,MAAA;AACXC,4CAAAA,SAAAA,EAAW7C,WAAW,YAAe,GAAA,YAAA;sDAEpCmB,aAAc,CAAA;AACb2B,gDAAAA,EAAAA,EAAIC,OAAQ,CAAA,sBAAA,CAAA;gDACZC,cAAgB,EAAA;AAClB,6CAAA;;;;;4BAKPvC,UAAWwC,CAAAA,GAAG,CAAC,CAACC,SAAWC,EAAAA,KAAAA,GAAAA;AAC1B,gCAAA,qBACE3B,GAAC4B,CAAAA,aAAAA,EAAAA;AAECC,oCAAAA,MAAAA,EAAQ1C,IAAQ,IAAA,EAAA;oCAChBwC,KAAOA,EAAAA,KAAAA;oCACPD,SAAWA,EAAAA,SAAAA;AACXI,oCAAAA,QAAAA,EAAUtC,SAAcmC,KAAAA,KAAAA;oCACxBrC,mBAAqBA,EAAAA,mBAAAA;AACrBuB,oCAAAA,OAAAA,EAAS,IAAMhB,MAAO8B,CAAAA,KAAAA,CAAAA;oCACtBvC,SAAWA,EAAAA,SAAAA;oCACXC,SAAWA,EAAAA,SAAAA;oCACXb,QAAUA,EAAAA;AATLkD,iCAAAA,EAAAA,SAAAA,CAAAA;AAYX,6BAAA;;;;8BAGJ1B,GAACK,CAAAA,GAAAA,EAAAA;8BACEpB,UAAWwC,CAAAA,GAAG,CAAC,CAACC,SAAWC,EAAAA,KAAAA,GAAAA;AAC1B,wBAAA,qBACE3B,GAACK,CAAAA,GAAAA,EAAAA;AACCiB,4BAAAA,EAAAA,EAAI,CAAC,GAAG,EAAEnC,KAAK,OAAO,EAAEwC,MAAM,CAAC;4BAC/BnB,IAAK,EAAA,UAAA;AACLuB,4BAAAA,iBAAAA,EAAiB,CAAC,GAAG,EAAE5C,KAAK,KAAK,EAAEwC,MAAM,CAAC;4BAE1Cb,KAAO,EAAA;gCAAEkB,OAASxC,EAAAA,SAAAA,KAAcmC,QAAQ,OAAU,GAAA;AAAO,6BAAA;AAEzD,4BAAA,QAAA,gBAAA3B,GAACiC,CAAAA,aAAAA,EAAAA;gCAAcC,iBAAiB,EAAA,IAAA;gCAACR,SAAWA,EAAAA;AAAgBA,6BAAAA,EAAAA,SAAAA;AAHvDA,yBAAAA,EAAAA,SAAAA,CAAAA;AAMX,qBAAA;;;;;AAKV;;;;"}
|
|
@@ -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
|
-
|
|
104
|
-
|
|
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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"}
|