@strapi/content-type-builder 5.48.0 → 5.49.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/AIChat/components/Messages/Message.js +5 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.js +3 -2
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js +7 -2
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +11 -5
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js +5 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js +3 -2
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
- package/dist/admin/components/AttributeRow.js +10 -5
- package/dist/admin/components/AttributeRow.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.js +3 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js +5 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentList.js +5 -1
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +5 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +12 -6
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.js +7 -2
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js +10 -4
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +5 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +5 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js +30 -22
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js +3 -2
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js +7 -3
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js +8 -4
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js +3 -2
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +3 -2
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +5 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.js +32 -26
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModalHeader.js +6 -2
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +3 -2
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.js +6 -2
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/GenericInputs.js +9 -4
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/IconPicker/constants.js +4 -3
- package/dist/admin/components/IconPicker/constants.js.map +1 -1
- package/dist/admin/components/PluralName.js +5 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +13 -7
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/TabForm.js +7 -3
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.js +5 -1
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/utils/formAPI.js +11 -6
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/nameToSlug.js +5 -1
- package/dist/admin/utils/nameToSlug.js.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.js +5 -1
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
- package/dist/server/controllers/components.js +6 -2
- package/dist/server/controllers/components.js.map +1 -1
- package/dist/server/controllers/content-types.js +8 -4
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/validation/common.js +5 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/component.js +9 -5
- package/dist/server/controllers/validation/component.js.map +1 -1
- package/dist/server/controllers/validation/data-transform.js +6 -2
- package/dist/server/controllers/validation/data-transform.js.map +1 -1
- package/dist/server/controllers/validation/model-schema.js +6 -2
- package/dist/server/controllers/validation/model-schema.js.map +1 -1
- package/dist/server/controllers/validation/types.js +8 -4
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/routes/content-api.js +3 -2
- package/dist/server/routes/content-api.js.map +1 -1
- package/dist/server/services/api-handler.js +4 -3
- package/dist/server/services/api-handler.js.map +1 -1
- package/dist/server/services/api-handler.mjs.map +1 -1
- package/dist/server/services/components.js.map +1 -1
- package/dist/server/services/components.mjs.map +1 -1
- package/dist/server/services/content-types.js +8 -4
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js +11 -5
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js +13 -8
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/index.js +5 -1
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.js +35 -29
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
- package/dist/server/services/schema.js +5 -1
- package/dist/server/services/schema.js.map +1 -1
- package/dist/server/src/services/components.d.ts +3 -26
- package/dist/server/src/services/components.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/schema-handler.d.ts +1 -0
- package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
- package/dist/server/utils/attributes.js +12 -7
- package/dist/server/utils/attributes.js.map +1 -1
- package/package.json +6 -6
|
@@ -10,6 +10,12 @@ var createUid = require('./utils/createUid.js');
|
|
|
10
10
|
var customFieldDefaultOptionsReducer = require('./utils/customFieldDefaultOptionsReducer.js');
|
|
11
11
|
var relations = require('./utils/relations.js');
|
|
12
12
|
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var set__default = /*#__PURE__*/_interopDefault(set);
|
|
16
|
+
var snakeCase__default = /*#__PURE__*/_interopDefault(snakeCase);
|
|
17
|
+
var pluralize__default = /*#__PURE__*/_interopDefault(pluralize);
|
|
18
|
+
|
|
13
19
|
const initialState = {
|
|
14
20
|
formErrors: {},
|
|
15
21
|
modifiedData: {},
|
|
@@ -37,7 +43,7 @@ const slice = toolkit.createSlice({
|
|
|
37
43
|
delete state.modifiedData.default;
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
|
-
|
|
46
|
+
set__default.default(state, [
|
|
41
47
|
'modifiedData',
|
|
42
48
|
...keys
|
|
43
49
|
], value);
|
|
@@ -47,7 +53,7 @@ const slice = toolkit.createSlice({
|
|
|
47
53
|
// Special case for the admin user...
|
|
48
54
|
let didChangeRelationTypeBecauseOfRestrictedRelation = false;
|
|
49
55
|
let changedRelationType = null;
|
|
50
|
-
|
|
56
|
+
set__default.default(state, [
|
|
51
57
|
'modifiedData',
|
|
52
58
|
'target'
|
|
53
59
|
], value);
|
|
@@ -61,17 +67,17 @@ const slice = toolkit.createSlice({
|
|
|
61
67
|
didChangeRelationTypeBecauseOfRestrictedRelation = true;
|
|
62
68
|
changedRelationType = relationToSet;
|
|
63
69
|
if (relationToSet === 'oneWay') {
|
|
64
|
-
|
|
70
|
+
set__default.default(state, [
|
|
65
71
|
'modifiedData',
|
|
66
72
|
'relation'
|
|
67
73
|
], 'oneToOne');
|
|
68
74
|
} else if (relationToSet === 'manyWay') {
|
|
69
|
-
|
|
75
|
+
set__default.default(state, [
|
|
70
76
|
'modifiedData',
|
|
71
77
|
'relation'
|
|
72
78
|
], 'oneToMany');
|
|
73
79
|
} else {
|
|
74
|
-
|
|
80
|
+
set__default.default(state, [
|
|
75
81
|
'modifiedData',
|
|
76
82
|
'relation'
|
|
77
83
|
], relationToSet);
|
|
@@ -80,11 +86,11 @@ const slice = toolkit.createSlice({
|
|
|
80
86
|
}
|
|
81
87
|
let nameToSet;
|
|
82
88
|
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {
|
|
83
|
-
nameToSet =
|
|
89
|
+
nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(changedRelationType));
|
|
84
90
|
} else {
|
|
85
|
-
nameToSet =
|
|
91
|
+
nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(modifiedData.relation));
|
|
86
92
|
}
|
|
87
|
-
|
|
93
|
+
set__default.default(state, [
|
|
88
94
|
'modifiedData',
|
|
89
95
|
'name'
|
|
90
96
|
], nameToSet);
|
|
@@ -98,14 +104,14 @@ const slice = toolkit.createSlice({
|
|
|
98
104
|
'oneWay',
|
|
99
105
|
'manyWay'
|
|
100
106
|
].includes(changedRelationType)) {
|
|
101
|
-
|
|
107
|
+
set__default.default(state, [
|
|
102
108
|
'modifiedData',
|
|
103
109
|
'targetAttribute'
|
|
104
110
|
], null);
|
|
105
111
|
return;
|
|
106
112
|
}
|
|
107
|
-
const targetAttributeToSet =
|
|
108
|
-
|
|
113
|
+
const targetAttributeToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(oneThatIsCreatingARelationWithAnother)), relations.shouldPluralizeTargetAttribute(modifiedData.relation));
|
|
114
|
+
set__default.default(state, [
|
|
109
115
|
'modifiedData',
|
|
110
116
|
'targetAttribute'
|
|
111
117
|
], targetAttributeToSet);
|
|
@@ -118,49 +124,49 @@ const slice = toolkit.createSlice({
|
|
|
118
124
|
'oneWay',
|
|
119
125
|
'manyWay'
|
|
120
126
|
].includes(value)) {
|
|
121
|
-
|
|
127
|
+
set__default.default(state, [
|
|
122
128
|
'modifiedData',
|
|
123
129
|
'relation'
|
|
124
130
|
], value);
|
|
125
131
|
const currentTargetAttribute = state.modifiedData.targetAttribute;
|
|
126
|
-
|
|
132
|
+
set__default.default(state, [
|
|
127
133
|
'modifiedData',
|
|
128
134
|
'name'
|
|
129
|
-
],
|
|
130
|
-
|
|
135
|
+
], pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(currentName)), relations.shouldPluralizeName(value)));
|
|
136
|
+
set__default.default(state, [
|
|
131
137
|
'modifiedData',
|
|
132
138
|
'targetAttribute'
|
|
133
|
-
],
|
|
139
|
+
], pluralize__default.default(currentTargetAttribute || snakeCase__default.default(nameToSlug.nameToSlug(oneThatIsCreatingARelationWithAnother)), relations.shouldPluralizeTargetAttribute(value)));
|
|
134
140
|
return;
|
|
135
141
|
}
|
|
136
142
|
if (value === 'oneWay') {
|
|
137
|
-
|
|
143
|
+
set__default.default(state, [
|
|
138
144
|
'modifiedData',
|
|
139
145
|
'relation'
|
|
140
146
|
], 'oneToOne');
|
|
141
|
-
|
|
147
|
+
set__default.default(state, [
|
|
142
148
|
'modifiedData',
|
|
143
149
|
'targetAttribute'
|
|
144
150
|
], null);
|
|
145
|
-
|
|
151
|
+
set__default.default(state, [
|
|
146
152
|
'modifiedData',
|
|
147
153
|
'name'
|
|
148
|
-
],
|
|
154
|
+
], pluralize__default.default(snakeCase__default.default(currentName), 1));
|
|
149
155
|
return;
|
|
150
156
|
}
|
|
151
157
|
// manyWay
|
|
152
|
-
|
|
158
|
+
set__default.default(state, [
|
|
153
159
|
'modifiedData',
|
|
154
160
|
'relation'
|
|
155
161
|
], 'oneToMany');
|
|
156
|
-
|
|
162
|
+
set__default.default(state, [
|
|
157
163
|
'modifiedData',
|
|
158
164
|
'targetAttribute'
|
|
159
165
|
], null);
|
|
160
|
-
|
|
166
|
+
set__default.default(state, [
|
|
161
167
|
'modifiedData',
|
|
162
168
|
'name'
|
|
163
|
-
],
|
|
169
|
+
], pluralize__default.default(snakeCase__default.default(currentName), 2));
|
|
164
170
|
},
|
|
165
171
|
resetProps: ()=>{
|
|
166
172
|
return initialState;
|
|
@@ -272,7 +278,7 @@ const slice = toolkit.createSlice({
|
|
|
272
278
|
};
|
|
273
279
|
} else if (attributeType === 'relation') {
|
|
274
280
|
dataToSet = {
|
|
275
|
-
name:
|
|
281
|
+
name: snakeCase__default.default(nameToSetForRelation),
|
|
276
282
|
relation: 'oneToOne',
|
|
277
283
|
targetAttribute: null,
|
|
278
284
|
target: targetUid,
|
|
@@ -306,7 +312,7 @@ const slice = toolkit.createSlice({
|
|
|
306
312
|
];
|
|
307
313
|
const optionDefaults = allOptions.reduce(customFieldDefaultOptionsReducer.customFieldDefaultOptionsReducer, []);
|
|
308
314
|
if (optionDefaults.length) {
|
|
309
|
-
optionDefaults.forEach(({ name, defaultValue })=>
|
|
315
|
+
optionDefaults.forEach(({ name, defaultValue })=>set__default.default(state.modifiedData, name, defaultValue));
|
|
310
316
|
}
|
|
311
317
|
},
|
|
312
318
|
setDynamicZoneDataSchema: (state, action)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/FormModal/reducer.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport set from 'lodash/set';\nimport snakeCase from 'lodash/snakeCase';\nimport pluralize from 'pluralize';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { nameToSlug } from '../../utils/nameToSlug';\n\nimport { createComponentUid } from './utils/createUid';\nimport { customFieldDefaultOptionsReducer } from './utils/customFieldDefaultOptionsReducer';\nimport { shouldPluralizeName, shouldPluralizeTargetAttribute } from './utils/relations';\n\nimport type { Schema, UID } from '@strapi/types';\n\nexport type State = {\n formErrors: Record<string, any>;\n modifiedData: Record<string, any>;\n initialData: Record<string, any>;\n componentToCreate: Record<string, any>;\n isCreatingComponentWhileAddingAField: boolean;\n};\n\nconst initialState: State = {\n formErrors: {},\n modifiedData: {},\n initialData: {},\n componentToCreate: {},\n isCreatingComponentWhileAddingAField: false,\n};\n\ntype OnChangePayload = {\n keys: string[];\n value: any;\n};\n\ntype OnChangeRelationTargetPayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n selectedContentTypeFriendlyName: string;\n targetContentTypeAllowedRelations: Schema.Attribute.RelationKind.Any[] | null;\n value: string;\n };\n};\n\ntype OnChangeRelationTypePayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n value: Schema.Attribute.RelationKind.Any;\n };\n};\n\ntype ResetPropsAndSetFormForAddingAnExistingCompoPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype ResetPropsAndSaveCurrentDataPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype SetDataToEditPayload = {\n data: Record<string, any>;\n};\n\ntype SetAttributeDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n attributeType: string;\n nameToSetForRelation: string;\n targetUid: string;\n step: string | null;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetCustomFieldDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n customField: Record<string, any>;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetDynamicZoneDataSchemaPayload = {\n attributeToEdit: Record<string, any>;\n};\n\ntype SetErrorsPayload = {\n errors: Record<string, any>;\n};\n\nconst slice = createSlice({\n name: 'formModal',\n initialState,\n reducers: {\n onChange: (state, action: PayloadAction<OnChangePayload>) => {\n const { keys, value } = action.payload;\n const obj = state.modifiedData;\n const hasDefaultValue = Boolean(obj.default);\n\n // There is no need to remove the default key if the default value isn't defined\n if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {\n const previousType = obj.type;\n\n if (previousType && ['date', 'datetime', 'time'].includes(previousType)) {\n // return obj.updateIn(keys, () => value).remove('default');\n delete state.modifiedData.default;\n }\n }\n\n set(state, ['modifiedData', ...keys], value);\n },\n onChangeRelationTarget: (state, action: PayloadAction<OnChangeRelationTargetPayload>) => {\n const {\n target: {\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations,\n value,\n },\n } = action.payload;\n // Special case for the admin user...\n let didChangeRelationTypeBecauseOfRestrictedRelation = false;\n let changedRelationType: Schema.Attribute.RelationKind.Any | null = null;\n\n set(state, ['modifiedData', 'target'], value);\n\n const modifiedData = state.modifiedData;\n\n // Don't change the relation type if the allowed relations are not restricted\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false } when BE ready\n if (Array.isArray(targetContentTypeAllowedRelations)) {\n const currentRelationType = getRelationType(\n modifiedData.relation,\n modifiedData.targetAttribute\n );\n\n if (\n currentRelationType &&\n !targetContentTypeAllowedRelations.includes(currentRelationType)\n ) {\n const relationToSet = targetContentTypeAllowedRelations[0];\n didChangeRelationTypeBecauseOfRestrictedRelation = true;\n changedRelationType = relationToSet;\n\n if (relationToSet === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n } else if (relationToSet === 'manyWay') {\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n } else {\n set(state, ['modifiedData', 'relation'], relationToSet);\n }\n }\n }\n\n let nameToSet: string;\n\n if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n shouldPluralizeName(changedRelationType)\n );\n } else {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n\n shouldPluralizeName(modifiedData.relation)\n );\n }\n\n set(state, ['modifiedData', 'name'], nameToSet);\n\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n if (currentTargetAttribute === null) {\n return;\n }\n\n // Changing the target and the relation is either oneWay or manyWay\n // Case when we need to change the relation to oneWay (ex: admin user)\n if (\n didChangeRelationTypeBecauseOfRestrictedRelation &&\n changedRelationType &&\n ['oneWay', 'manyWay'].includes(changedRelationType)\n ) {\n set(state, ['modifiedData', 'targetAttribute'], null);\n\n return;\n }\n\n const targetAttributeToSet = pluralize(\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(modifiedData.relation)\n );\n\n set(state, ['modifiedData', 'targetAttribute'], targetAttributeToSet);\n },\n onChangeRelationType: (state, action: PayloadAction<OnChangeRelationTypePayload>) => {\n const {\n target: { oneThatIsCreatingARelationWithAnother, value },\n } = action.payload;\n\n const currentName = state.modifiedData.name;\n\n // Switching from oneWay\n if (!['oneWay', 'manyWay'].includes(value)) {\n set(state, ['modifiedData', 'relation'], value);\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n set(\n state,\n ['modifiedData', 'name'],\n pluralize(snakeCase(nameToSlug(currentName)), shouldPluralizeName(value))\n );\n\n set(\n state,\n ['modifiedData', 'targetAttribute'],\n pluralize(\n currentTargetAttribute || snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(value)\n )\n );\n\n return;\n }\n\n if (value === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 1));\n\n return;\n }\n\n // manyWay\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 2));\n },\n resetProps: () => {\n return initialState;\n },\n resetPropsAndSetFormForAddingAnExistingCompo: (\n state,\n action: PayloadAction<ResetPropsAndSetFormForAddingAnExistingCompoPayload>\n ) => {\n const { options = {} } = action.payload;\n\n return {\n ...initialState,\n modifiedData: {\n type: 'component',\n repeatable: true,\n ...options,\n },\n };\n },\n resetPropsAndSaveCurrentData: (\n state,\n action: PayloadAction<ResetPropsAndSaveCurrentDataPayload>\n ) => {\n const { options = {} } = action.payload;\n // This is run when the user has created a new component\n const componentToCreate = state.modifiedData.componentToCreate;\n const modifiedData = {\n displayName: componentToCreate.displayName,\n type: 'component',\n repeatable: false,\n ...options,\n component: createComponentUid(componentToCreate.displayName, componentToCreate.category),\n };\n\n return {\n ...initialState,\n componentToCreate,\n modifiedData,\n isCreatingComponentWhileAddingAField: state.modifiedData.createComponent,\n };\n },\n resetPropsAndSetTheFormForAddingACompoToADz: (state) => {\n const createdDZ = state.modifiedData;\n const dataToSet = {\n ...createdDZ,\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n\n return { ...initialState, modifiedData: dataToSet };\n },\n setDataToEdit: (state, action: PayloadAction<SetDataToEditPayload>) => {\n const { data } = action.payload;\n state.modifiedData = data;\n state.initialData = data;\n },\n setAttributeDataSchema: (state, action: PayloadAction<SetAttributeDataSchemaPayload>) => {\n const { isEditing } = action.payload;\n\n if (isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { attributeType, nameToSetForRelation, targetUid, step, options = {} } = action.payload;\n\n let dataToSet;\n\n if (attributeType === 'component') {\n if (step === '1') {\n dataToSet = {\n type: 'component',\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n } else {\n dataToSet = {\n ...options,\n type: 'component',\n repeatable: true,\n };\n }\n } else if (attributeType === 'dynamiczone') {\n dataToSet = {\n ...options,\n type: 'dynamiczone',\n components: [],\n };\n } else if (attributeType === 'text') {\n dataToSet = { ...options, type: 'string' };\n } else if (attributeType === 'number' || attributeType === 'date') {\n dataToSet = options;\n } else if (attributeType === 'media') {\n dataToSet = {\n allowedTypes: ['images', 'files', 'videos', 'audios'],\n type: 'media',\n multiple: true,\n ...options,\n };\n } else if (attributeType === 'enumeration') {\n dataToSet = { ...options, type: 'enumeration', enum: [] };\n } else if (attributeType === 'relation') {\n dataToSet = {\n name: snakeCase(nameToSetForRelation),\n relation: 'oneToOne',\n targetAttribute: null,\n target: targetUid,\n type: 'relation',\n };\n } else {\n dataToSet = { ...options, type: attributeType, default: null };\n }\n\n state.modifiedData = dataToSet;\n },\n setCustomFieldDataSchema: (state, action: PayloadAction<SetCustomFieldDataSchemaPayload>) => {\n const { payload } = action;\n\n if (payload.isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { customField, options = {} } = payload;\n\n state.modifiedData = { ...options, type: customField.type };\n\n const allOptions = [\n ...(customField?.options?.base || []),\n ...(customField?.options?.advanced || []),\n ];\n\n const optionDefaults = allOptions.reduce(customFieldDefaultOptionsReducer, []);\n\n if (optionDefaults.length) {\n optionDefaults.forEach(({ name, defaultValue }: { name: string; defaultValue: string }) =>\n set(state.modifiedData, name, defaultValue)\n );\n }\n },\n setDynamicZoneDataSchema: (state, action: PayloadAction<SetDynamicZoneDataSchemaPayload>) => {\n const { attributeToEdit } = action.payload;\n state.modifiedData = attributeToEdit;\n state.initialData = attributeToEdit;\n },\n setErrors: (state, action: PayloadAction<SetErrorsPayload>) => {\n state.formErrors = action.payload.errors;\n },\n },\n});\n\nexport { initialState };\nexport const { actions, reducer } = slice;\n"],"names":["initialState","formErrors","modifiedData","initialData","componentToCreate","isCreatingComponentWhileAddingAField","slice","createSlice","name","reducers","onChange","state","action","keys","value","payload","obj","hasDefaultValue","Boolean","default","length","includes","previousType","type","set","onChangeRelationTarget","target","oneThatIsCreatingARelationWithAnother","selectedContentTypeFriendlyName","targetContentTypeAllowedRelations","didChangeRelationTypeBecauseOfRestrictedRelation","changedRelationType","Array","isArray","currentRelationType","getRelationType","relation","targetAttribute","relationToSet","nameToSet","pluralize","snakeCase","nameToSlug","shouldPluralizeName","currentTargetAttribute","targetAttributeToSet","shouldPluralizeTargetAttribute","onChangeRelationType","currentName","resetProps","resetPropsAndSetFormForAddingAnExistingCompo","options","repeatable","resetPropsAndSaveCurrentData","displayName","component","createComponentUid","category","createComponent","resetPropsAndSetTheFormForAddingACompoToADz","createdDZ","dataToSet","setDataToEdit","data","setAttributeDataSchema","isEditing","modifiedDataToSetForEditing","attributeType","nameToSetForRelation","targetUid","step","components","allowedTypes","multiple","enum","setCustomFieldDataSchema","customField","allOptions","base","advanced","optionDefaults","reduce","customFieldDefaultOptionsReducer","forEach","defaultValue","setDynamicZoneDataSchema","attributeToEdit","setErrors","errors","actions","reducer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/FormModal/reducer.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport set from 'lodash/set';\nimport snakeCase from 'lodash/snakeCase';\nimport pluralize from 'pluralize';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { nameToSlug } from '../../utils/nameToSlug';\n\nimport { createComponentUid } from './utils/createUid';\nimport { customFieldDefaultOptionsReducer } from './utils/customFieldDefaultOptionsReducer';\nimport { shouldPluralizeName, shouldPluralizeTargetAttribute } from './utils/relations';\n\nimport type { Schema, UID } from '@strapi/types';\n\nexport type State = {\n formErrors: Record<string, any>;\n modifiedData: Record<string, any>;\n initialData: Record<string, any>;\n componentToCreate: Record<string, any>;\n isCreatingComponentWhileAddingAField: boolean;\n};\n\nconst initialState: State = {\n formErrors: {},\n modifiedData: {},\n initialData: {},\n componentToCreate: {},\n isCreatingComponentWhileAddingAField: false,\n};\n\ntype OnChangePayload = {\n keys: string[];\n value: any;\n};\n\ntype OnChangeRelationTargetPayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n selectedContentTypeFriendlyName: string;\n targetContentTypeAllowedRelations: Schema.Attribute.RelationKind.Any[] | null;\n value: string;\n };\n};\n\ntype OnChangeRelationTypePayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n value: Schema.Attribute.RelationKind.Any;\n };\n};\n\ntype ResetPropsAndSetFormForAddingAnExistingCompoPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype ResetPropsAndSaveCurrentDataPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype SetDataToEditPayload = {\n data: Record<string, any>;\n};\n\ntype SetAttributeDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n attributeType: string;\n nameToSetForRelation: string;\n targetUid: string;\n step: string | null;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetCustomFieldDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n customField: Record<string, any>;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetDynamicZoneDataSchemaPayload = {\n attributeToEdit: Record<string, any>;\n};\n\ntype SetErrorsPayload = {\n errors: Record<string, any>;\n};\n\nconst slice = createSlice({\n name: 'formModal',\n initialState,\n reducers: {\n onChange: (state, action: PayloadAction<OnChangePayload>) => {\n const { keys, value } = action.payload;\n const obj = state.modifiedData;\n const hasDefaultValue = Boolean(obj.default);\n\n // There is no need to remove the default key if the default value isn't defined\n if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {\n const previousType = obj.type;\n\n if (previousType && ['date', 'datetime', 'time'].includes(previousType)) {\n // return obj.updateIn(keys, () => value).remove('default');\n delete state.modifiedData.default;\n }\n }\n\n set(state, ['modifiedData', ...keys], value);\n },\n onChangeRelationTarget: (state, action: PayloadAction<OnChangeRelationTargetPayload>) => {\n const {\n target: {\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations,\n value,\n },\n } = action.payload;\n // Special case for the admin user...\n let didChangeRelationTypeBecauseOfRestrictedRelation = false;\n let changedRelationType: Schema.Attribute.RelationKind.Any | null = null;\n\n set(state, ['modifiedData', 'target'], value);\n\n const modifiedData = state.modifiedData;\n\n // Don't change the relation type if the allowed relations are not restricted\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false } when BE ready\n if (Array.isArray(targetContentTypeAllowedRelations)) {\n const currentRelationType = getRelationType(\n modifiedData.relation,\n modifiedData.targetAttribute\n );\n\n if (\n currentRelationType &&\n !targetContentTypeAllowedRelations.includes(currentRelationType)\n ) {\n const relationToSet = targetContentTypeAllowedRelations[0];\n didChangeRelationTypeBecauseOfRestrictedRelation = true;\n changedRelationType = relationToSet;\n\n if (relationToSet === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n } else if (relationToSet === 'manyWay') {\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n } else {\n set(state, ['modifiedData', 'relation'], relationToSet);\n }\n }\n }\n\n let nameToSet: string;\n\n if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n shouldPluralizeName(changedRelationType)\n );\n } else {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n\n shouldPluralizeName(modifiedData.relation)\n );\n }\n\n set(state, ['modifiedData', 'name'], nameToSet);\n\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n if (currentTargetAttribute === null) {\n return;\n }\n\n // Changing the target and the relation is either oneWay or manyWay\n // Case when we need to change the relation to oneWay (ex: admin user)\n if (\n didChangeRelationTypeBecauseOfRestrictedRelation &&\n changedRelationType &&\n ['oneWay', 'manyWay'].includes(changedRelationType)\n ) {\n set(state, ['modifiedData', 'targetAttribute'], null);\n\n return;\n }\n\n const targetAttributeToSet = pluralize(\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(modifiedData.relation)\n );\n\n set(state, ['modifiedData', 'targetAttribute'], targetAttributeToSet);\n },\n onChangeRelationType: (state, action: PayloadAction<OnChangeRelationTypePayload>) => {\n const {\n target: { oneThatIsCreatingARelationWithAnother, value },\n } = action.payload;\n\n const currentName = state.modifiedData.name;\n\n // Switching from oneWay\n if (!['oneWay', 'manyWay'].includes(value)) {\n set(state, ['modifiedData', 'relation'], value);\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n set(\n state,\n ['modifiedData', 'name'],\n pluralize(snakeCase(nameToSlug(currentName)), shouldPluralizeName(value))\n );\n\n set(\n state,\n ['modifiedData', 'targetAttribute'],\n pluralize(\n currentTargetAttribute || snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(value)\n )\n );\n\n return;\n }\n\n if (value === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 1));\n\n return;\n }\n\n // manyWay\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 2));\n },\n resetProps: () => {\n return initialState;\n },\n resetPropsAndSetFormForAddingAnExistingCompo: (\n state,\n action: PayloadAction<ResetPropsAndSetFormForAddingAnExistingCompoPayload>\n ) => {\n const { options = {} } = action.payload;\n\n return {\n ...initialState,\n modifiedData: {\n type: 'component',\n repeatable: true,\n ...options,\n },\n };\n },\n resetPropsAndSaveCurrentData: (\n state,\n action: PayloadAction<ResetPropsAndSaveCurrentDataPayload>\n ) => {\n const { options = {} } = action.payload;\n // This is run when the user has created a new component\n const componentToCreate = state.modifiedData.componentToCreate;\n const modifiedData = {\n displayName: componentToCreate.displayName,\n type: 'component',\n repeatable: false,\n ...options,\n component: createComponentUid(componentToCreate.displayName, componentToCreate.category),\n };\n\n return {\n ...initialState,\n componentToCreate,\n modifiedData,\n isCreatingComponentWhileAddingAField: state.modifiedData.createComponent,\n };\n },\n resetPropsAndSetTheFormForAddingACompoToADz: (state) => {\n const createdDZ = state.modifiedData;\n const dataToSet = {\n ...createdDZ,\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n\n return { ...initialState, modifiedData: dataToSet };\n },\n setDataToEdit: (state, action: PayloadAction<SetDataToEditPayload>) => {\n const { data } = action.payload;\n state.modifiedData = data;\n state.initialData = data;\n },\n setAttributeDataSchema: (state, action: PayloadAction<SetAttributeDataSchemaPayload>) => {\n const { isEditing } = action.payload;\n\n if (isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { attributeType, nameToSetForRelation, targetUid, step, options = {} } = action.payload;\n\n let dataToSet;\n\n if (attributeType === 'component') {\n if (step === '1') {\n dataToSet = {\n type: 'component',\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n } else {\n dataToSet = {\n ...options,\n type: 'component',\n repeatable: true,\n };\n }\n } else if (attributeType === 'dynamiczone') {\n dataToSet = {\n ...options,\n type: 'dynamiczone',\n components: [],\n };\n } else if (attributeType === 'text') {\n dataToSet = { ...options, type: 'string' };\n } else if (attributeType === 'number' || attributeType === 'date') {\n dataToSet = options;\n } else if (attributeType === 'media') {\n dataToSet = {\n allowedTypes: ['images', 'files', 'videos', 'audios'],\n type: 'media',\n multiple: true,\n ...options,\n };\n } else if (attributeType === 'enumeration') {\n dataToSet = { ...options, type: 'enumeration', enum: [] };\n } else if (attributeType === 'relation') {\n dataToSet = {\n name: snakeCase(nameToSetForRelation),\n relation: 'oneToOne',\n targetAttribute: null,\n target: targetUid,\n type: 'relation',\n };\n } else {\n dataToSet = { ...options, type: attributeType, default: null };\n }\n\n state.modifiedData = dataToSet;\n },\n setCustomFieldDataSchema: (state, action: PayloadAction<SetCustomFieldDataSchemaPayload>) => {\n const { payload } = action;\n\n if (payload.isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { customField, options = {} } = payload;\n\n state.modifiedData = { ...options, type: customField.type };\n\n const allOptions = [\n ...(customField?.options?.base || []),\n ...(customField?.options?.advanced || []),\n ];\n\n const optionDefaults = allOptions.reduce(customFieldDefaultOptionsReducer, []);\n\n if (optionDefaults.length) {\n optionDefaults.forEach(({ name, defaultValue }: { name: string; defaultValue: string }) =>\n set(state.modifiedData, name, defaultValue)\n );\n }\n },\n setDynamicZoneDataSchema: (state, action: PayloadAction<SetDynamicZoneDataSchemaPayload>) => {\n const { attributeToEdit } = action.payload;\n state.modifiedData = attributeToEdit;\n state.initialData = attributeToEdit;\n },\n setErrors: (state, action: PayloadAction<SetErrorsPayload>) => {\n state.formErrors = action.payload.errors;\n },\n },\n});\n\nexport { initialState };\nexport const { actions, reducer } = slice;\n"],"names":["initialState","formErrors","modifiedData","initialData","componentToCreate","isCreatingComponentWhileAddingAField","slice","createSlice","name","reducers","onChange","state","action","keys","value","payload","obj","hasDefaultValue","Boolean","default","length","includes","previousType","type","set","onChangeRelationTarget","target","oneThatIsCreatingARelationWithAnother","selectedContentTypeFriendlyName","targetContentTypeAllowedRelations","didChangeRelationTypeBecauseOfRestrictedRelation","changedRelationType","Array","isArray","currentRelationType","getRelationType","relation","targetAttribute","relationToSet","nameToSet","pluralize","snakeCase","nameToSlug","shouldPluralizeName","currentTargetAttribute","targetAttributeToSet","shouldPluralizeTargetAttribute","onChangeRelationType","currentName","resetProps","resetPropsAndSetFormForAddingAnExistingCompo","options","repeatable","resetPropsAndSaveCurrentData","displayName","component","createComponentUid","category","createComponent","resetPropsAndSetTheFormForAddingACompoToADz","createdDZ","dataToSet","setDataToEdit","data","setAttributeDataSchema","isEditing","modifiedDataToSetForEditing","attributeType","nameToSetForRelation","targetUid","step","components","allowedTypes","multiple","enum","setCustomFieldDataSchema","customField","allOptions","base","advanced","optionDefaults","reduce","customFieldDefaultOptionsReducer","forEach","defaultValue","setDynamicZoneDataSchema","attributeToEdit","setErrors","errors","actions","reducer"],"mappings":";;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAAAA,GAAsB;AAC1BC,IAAAA,UAAAA,EAAY,EAAC;AACbC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,WAAAA,EAAa,EAAC;AACdC,IAAAA,iBAAAA,EAAmB,EAAC;IACpBC,oCAAAA,EAAsC;AACxC;AA4EA,MAAMC,QAAQC,mBAAAA,CAAY;IACxBC,IAAAA,EAAM,WAAA;AACNR,IAAAA,YAAAA;IACAS,QAAAA,EAAU;AACRC,QAAAA,QAAAA,EAAU,CAACC,KAAAA,EAAOC,MAAAA,GAAAA;AAChB,YAAA,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGF,OAAOG,OAAO;YACtC,MAAMC,GAAAA,GAAML,MAAMT,YAAY;YAC9B,MAAMe,eAAAA,GAAkBC,OAAAA,CAAQF,GAAAA,CAAIG,OAAO,CAAA;;YAG3C,IAAIF,eAAAA,IAAmBJ,KAAKO,MAAM,KAAK,KAAKP,IAAAA,CAAKQ,QAAQ,CAAC,MAAA,CAAA,EAAS;gBACjE,MAAMC,YAAAA,GAAeN,IAAIO,IAAI;AAE7B,gBAAA,IAAID,YAAAA,IAAgB;AAAC,oBAAA,MAAA;AAAQ,oBAAA,UAAA;AAAY,oBAAA;iBAAO,CAACD,QAAQ,CAACC,YAAAA,CAAAA,EAAe;;oBAEvE,OAAOX,KAAAA,CAAMT,YAAY,CAACiB,OAAO;AACnC,gBAAA;AACF,YAAA;AAEAK,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAmBE,gBAAAA,GAAAA;aAAK,EAAEC,KAAAA,CAAAA;AACxC,QAAA,CAAA;AACAW,QAAAA,sBAAAA,EAAwB,CAACd,KAAAA,EAAOC,MAAAA,GAAAA;AAC9B,YAAA,MAAM,EACJc,MAAAA,EAAQ,EACNC,qCAAqC,EACrCC,+BAA+B,EAC/BC,iCAAiC,EACjCf,KAAK,EACN,EACF,GAAGF,OAAOG,OAAO;;AAElB,YAAA,IAAIe,gDAAAA,GAAmD,KAAA;AACvD,YAAA,IAAIC,mBAAAA,GAAgE,IAAA;AAEpEP,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAS,EAAEG,KAAAA,CAAAA;YAEvC,MAAMZ,YAAAA,GAAeS,MAAMT,YAAY;;;YAIvC,IAAI8B,KAAAA,CAAMC,OAAO,CAACJ,iCAAAA,CAAAA,EAAoC;AACpD,gBAAA,MAAMK,sBAAsBC,+BAAAA,CAC1BjC,YAAAA,CAAakC,QAAQ,EACrBlC,aAAamC,eAAe,CAAA;AAG9B,gBAAA,IACEH,mBAAAA,IACA,CAACL,iCAAAA,CAAkCR,QAAQ,CAACa,mBAAAA,CAAAA,EAC5C;oBACA,MAAMI,aAAAA,GAAgBT,iCAAiC,CAAC,CAAA,CAAE;oBAC1DC,gDAAAA,GAAmD,IAAA;oBACnDC,mBAAAA,GAAsBO,aAAAA;AAEtB,oBAAA,IAAIA,kBAAkB,QAAA,EAAU;AAC9Bd,wBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,4BAAA,cAAA;AAAgB,4BAAA;yBAAW,EAAE,UAAA,CAAA;oBAC3C,CAAA,MAAO,IAAI2B,kBAAkB,SAAA,EAAW;AACtCd,wBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,4BAAA,cAAA;AAAgB,4BAAA;yBAAW,EAAE,WAAA,CAAA;oBAC3C,CAAA,MAAO;AACLa,wBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,4BAAA,cAAA;AAAgB,4BAAA;yBAAW,EAAE2B,aAAAA,CAAAA;AAC3C,oBAAA;AACF,gBAAA;AACF,YAAA;YAEA,IAAIC,SAAAA;AAEJ,YAAA,IAAIT,oDAAoDC,mBAAAA,EAAqB;AAC3EQ,gBAAAA,SAAAA,GAAYC,0BAAAA,CACVC,0BAAAA,CAAUC,qBAAAA,CAAWd,+BAAAA,CAAAA,CAAAA,EACrBe,6BAAAA,CAAoBZ,mBAAAA,CAAAA,CAAAA;YAExB,CAAA,MAAO;AACLQ,gBAAAA,SAAAA,GAAYC,2BACVC,0BAAAA,CAAUC,qBAAAA,CAAWd,+BAAAA,CAAAA,CAAAA,EAErBe,6BAAAA,CAAoBzC,aAAakC,QAAQ,CAAA,CAAA;AAE7C,YAAA;AAEAZ,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAO,EAAE4B,SAAAA,CAAAA;AAErC,YAAA,MAAMK,sBAAAA,GAAyBjC,KAAAA,CAAMT,YAAY,CAACmC,eAAe;AAEjE,YAAA,IAAIO,2BAA2B,IAAA,EAAM;AACnC,gBAAA;AACF,YAAA;;;AAIA,YAAA,IACEd,oDACAC,mBAAAA,IACA;AAAC,gBAAA,QAAA;AAAU,gBAAA;aAAU,CAACV,QAAQ,CAACU,mBAAAA,CAAAA,EAC/B;AACAP,gBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAkB,EAAE,IAAA,CAAA;AAEhD,gBAAA;AACF,YAAA;AAEA,YAAA,MAAMkC,uBAAuBL,0BAAAA,CAC3BC,0BAAAA,CAAUC,sBAAWf,qCAAAA,CAAAA,CAAAA,EACrBmB,wCAAAA,CAA+B5C,aAAakC,QAAQ,CAAA,CAAA;AAGtDZ,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAkB,EAAEkC,oBAAAA,CAAAA;AAClD,QAAA,CAAA;AACAE,QAAAA,oBAAAA,EAAsB,CAACpC,KAAAA,EAAOC,MAAAA,GAAAA;YAC5B,MAAM,EACJc,MAAAA,EAAQ,EAAEC,qCAAqC,EAAEb,KAAK,EAAE,EACzD,GAAGF,MAAAA,CAAOG,OAAO;AAElB,YAAA,MAAMiC,WAAAA,GAAcrC,KAAAA,CAAMT,YAAY,CAACM,IAAI;;AAG3C,YAAA,IAAI,CAAC;AAAC,gBAAA,QAAA;AAAU,gBAAA;aAAU,CAACa,QAAQ,CAACP,KAAAA,CAAAA,EAAQ;AAC1CU,gBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAW,EAAEG,KAAAA,CAAAA;AACzC,gBAAA,MAAM8B,sBAAAA,GAAyBjC,KAAAA,CAAMT,YAAY,CAACmC,eAAe;AAEjEb,gBAAAA,oBAAAA,CACEb,KAAAA,EACA;AAAC,oBAAA,cAAA;AAAgB,oBAAA;AAAO,iBAAA,EACxB6B,0BAAAA,CAAUC,0BAAAA,CAAUC,qBAAAA,CAAWM,WAAAA,CAAAA,CAAAA,EAAeL,6BAAAA,CAAoB7B,KAAAA,CAAAA,CAAAA,CAAAA;AAGpEU,gBAAAA,oBAAAA,CACEb,KAAAA,EACA;AAAC,oBAAA,cAAA;AAAgB,oBAAA;AAAkB,iBAAA,EACnC6B,0BAAAA,CACEI,sBAAAA,IAA0BH,0BAAAA,CAAUC,qBAAAA,CAAWf,yCAC/CmB,wCAAAA,CAA+BhC,KAAAA,CAAAA,CAAAA,CAAAA;AAInC,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIA,UAAU,QAAA,EAAU;AACtBU,gBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAW,EAAE,UAAA,CAAA;AACzCa,gBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAkB,EAAE,IAAA,CAAA;AAChDa,gBAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAO,EAAE6B,0BAAAA,CAAUC,2BAAUO,WAAAA,CAAAA,EAAc,CAAA,CAAA,CAAA;AAEvE,gBAAA;AACF,YAAA;;AAGAxB,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAW,EAAE,WAAA,CAAA;AACzCa,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAkB,EAAE,IAAA,CAAA;AAChDa,YAAAA,oBAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAO,EAAE6B,0BAAAA,CAAUC,2BAAUO,WAAAA,CAAAA,EAAc,CAAA,CAAA,CAAA;AACzE,QAAA,CAAA;QACAC,UAAAA,EAAY,IAAA;YACV,OAAOjD,YAAAA;AACT,QAAA,CAAA;AACAkD,QAAAA,4CAAAA,EAA8C,CAC5CvC,KAAAA,EACAC,MAAAA,GAAAA;AAEA,YAAA,MAAM,EAAEuC,OAAAA,GAAU,EAAE,EAAE,GAAGvC,OAAOG,OAAO;YAEvC,OAAO;AACL,gBAAA,GAAGf,YAAY;gBACfE,YAAAA,EAAc;oBACZqB,IAAAA,EAAM,WAAA;oBACN6B,UAAAA,EAAY,IAAA;AACZ,oBAAA,GAAGD;AACL;AACF,aAAA;AACF,QAAA,CAAA;AACAE,QAAAA,4BAAAA,EAA8B,CAC5B1C,KAAAA,EACAC,MAAAA,GAAAA;AAEA,YAAA,MAAM,EAAEuC,OAAAA,GAAU,EAAE,EAAE,GAAGvC,OAAOG,OAAO;;AAEvC,YAAA,MAAMX,iBAAAA,GAAoBO,KAAAA,CAAMT,YAAY,CAACE,iBAAiB;AAC9D,YAAA,MAAMF,YAAAA,GAAe;AACnBoD,gBAAAA,WAAAA,EAAalD,kBAAkBkD,WAAW;gBAC1C/B,IAAAA,EAAM,WAAA;gBACN6B,UAAAA,EAAY,KAAA;AACZ,gBAAA,GAAGD,OAAO;AACVI,gBAAAA,SAAAA,EAAWC,4BAAAA,CAAmBpD,iBAAAA,CAAkBkD,WAAW,EAAElD,kBAAkBqD,QAAQ;AACzF,aAAA;YAEA,OAAO;AACL,gBAAA,GAAGzD,YAAY;AACfI,gBAAAA,iBAAAA;AACAF,gBAAAA,YAAAA;gBACAG,oCAAAA,EAAsCM,KAAAA,CAAMT,YAAY,CAACwD;AAC3D,aAAA;AACF,QAAA,CAAA;AACAC,QAAAA,2CAAAA,EAA6C,CAAChD,KAAAA,GAAAA;YAC5C,MAAMiD,SAAAA,GAAYjD,MAAMT,YAAY;AACpC,YAAA,MAAM2D,SAAAA,GAAY;AAChB,gBAAA,GAAGD,SAAS;gBACZF,eAAAA,EAAiB,IAAA;gBACjBtD,iBAAAA,EAAmB;oBAAEmB,IAAAA,EAAM;AAAY;AACzC,aAAA;YAEA,OAAO;AAAE,gBAAA,GAAGvB,YAAY;gBAAEE,YAAAA,EAAc2D;AAAU,aAAA;AACpD,QAAA,CAAA;AACAC,QAAAA,aAAAA,EAAe,CAACnD,KAAAA,EAAOC,MAAAA,GAAAA;AACrB,YAAA,MAAM,EAAEmD,IAAI,EAAE,GAAGnD,OAAOG,OAAO;AAC/BJ,YAAAA,KAAAA,CAAMT,YAAY,GAAG6D,IAAAA;AACrBpD,YAAAA,KAAAA,CAAMR,WAAW,GAAG4D,IAAAA;AACtB,QAAA,CAAA;AACAC,QAAAA,sBAAAA,EAAwB,CAACrD,KAAAA,EAAOC,MAAAA,GAAAA;AAC9B,YAAA,MAAM,EAAEqD,SAAS,EAAE,GAAGrD,OAAOG,OAAO;AAEpC,YAAA,IAAIkD,cAAc,IAAA,EAAM;AACtB,gBAAA,MAAM,EAAEC,2BAA2B,EAAE,GAAGtD,OAAOG,OAAO;AACtDJ,gBAAAA,KAAAA,CAAMT,YAAY,GAAGgE,2BAAAA;AACrBvD,gBAAAA,KAAAA,CAAMR,WAAW,GAAG+D,2BAAAA;AAEpB,gBAAA;AACF,YAAA;AAEA,YAAA,MAAM,EAAEC,aAAa,EAAEC,oBAAoB,EAAEC,SAAS,EAAEC,IAAI,EAAEnB,UAAU,EAAE,EAAE,GAAGvC,OAAOG,OAAO;YAE7F,IAAI8C,SAAAA;AAEJ,YAAA,IAAIM,kBAAkB,WAAA,EAAa;AACjC,gBAAA,IAAIG,SAAS,GAAA,EAAK;oBAChBT,SAAAA,GAAY;wBACVtC,IAAAA,EAAM,WAAA;wBACNmC,eAAAA,EAAiB,IAAA;wBACjBtD,iBAAAA,EAAmB;4BAAEmB,IAAAA,EAAM;AAAY;AACzC,qBAAA;gBACF,CAAA,MAAO;oBACLsC,SAAAA,GAAY;AACV,wBAAA,GAAGV,OAAO;wBACV5B,IAAAA,EAAM,WAAA;wBACN6B,UAAAA,EAAY;AACd,qBAAA;AACF,gBAAA;YACF,CAAA,MAAO,IAAIe,kBAAkB,aAAA,EAAe;gBAC1CN,SAAAA,GAAY;AACV,oBAAA,GAAGV,OAAO;oBACV5B,IAAAA,EAAM,aAAA;AACNgD,oBAAAA,UAAAA,EAAY;AACd,iBAAA;YACF,CAAA,MAAO,IAAIJ,kBAAkB,MAAA,EAAQ;gBACnCN,SAAAA,GAAY;AAAE,oBAAA,GAAGV,OAAO;oBAAE5B,IAAAA,EAAM;AAAS,iBAAA;AAC3C,YAAA,CAAA,MAAO,IAAI4C,aAAAA,KAAkB,QAAA,IAAYA,aAAAA,KAAkB,MAAA,EAAQ;gBACjEN,SAAAA,GAAYV,OAAAA;YACd,CAAA,MAAO,IAAIgB,kBAAkB,OAAA,EAAS;gBACpCN,SAAAA,GAAY;oBACVW,YAAAA,EAAc;AAAC,wBAAA,QAAA;AAAU,wBAAA,OAAA;AAAS,wBAAA,QAAA;AAAU,wBAAA;AAAS,qBAAA;oBACrDjD,IAAAA,EAAM,OAAA;oBACNkD,QAAAA,EAAU,IAAA;AACV,oBAAA,GAAGtB;AACL,iBAAA;YACF,CAAA,MAAO,IAAIgB,kBAAkB,aAAA,EAAe;gBAC1CN,SAAAA,GAAY;AAAE,oBAAA,GAAGV,OAAO;oBAAE5B,IAAAA,EAAM,aAAA;AAAemD,oBAAAA,IAAAA,EAAM;AAAG,iBAAA;YAC1D,CAAA,MAAO,IAAIP,kBAAkB,UAAA,EAAY;gBACvCN,SAAAA,GAAY;AACVrD,oBAAAA,IAAAA,EAAMiC,0BAAAA,CAAU2B,oBAAAA,CAAAA;oBAChBhC,QAAAA,EAAU,UAAA;oBACVC,eAAAA,EAAiB,IAAA;oBACjBX,MAAAA,EAAQ2C,SAAAA;oBACR9C,IAAAA,EAAM;AACR,iBAAA;YACF,CAAA,MAAO;gBACLsC,SAAAA,GAAY;AAAE,oBAAA,GAAGV,OAAO;oBAAE5B,IAAAA,EAAM4C,aAAAA;oBAAehD,OAAAA,EAAS;AAAK,iBAAA;AAC/D,YAAA;AAEAR,YAAAA,KAAAA,CAAMT,YAAY,GAAG2D,SAAAA;AACvB,QAAA,CAAA;AACAc,QAAAA,wBAAAA,EAA0B,CAAChE,KAAAA,EAAOC,MAAAA,GAAAA;YAChC,MAAM,EAAEG,OAAO,EAAE,GAAGH,MAAAA;YAEpB,IAAIG,OAAAA,CAAQkD,SAAS,KAAK,IAAA,EAAM;AAC9B,gBAAA,MAAM,EAAEC,2BAA2B,EAAE,GAAGtD,OAAOG,OAAO;AACtDJ,gBAAAA,KAAAA,CAAMT,YAAY,GAAGgE,2BAAAA;AACrBvD,gBAAAA,KAAAA,CAAMR,WAAW,GAAG+D,2BAAAA;AAEpB,gBAAA;AACF,YAAA;AAEA,YAAA,MAAM,EAAEU,WAAW,EAAEzB,UAAU,EAAE,EAAE,GAAGpC,OAAAA;AAEtCJ,YAAAA,KAAAA,CAAMT,YAAY,GAAG;AAAE,gBAAA,GAAGiD,OAAO;AAAE5B,gBAAAA,IAAAA,EAAMqD,YAAYrD;AAAK,aAAA;AAE1D,YAAA,MAAMsD,UAAAA,GAAa;mBACbD,WAAAA,EAAazB,OAAAA,EAAS2B,QAAQ,EAAE;mBAChCF,WAAAA,EAAazB,OAAAA,EAAS4B,YAAY;AACvC,aAAA;AAED,YAAA,MAAMC,cAAAA,GAAiBH,UAAAA,CAAWI,MAAM,CAACC,mEAAkC,EAAE,CAAA;YAE7E,IAAIF,cAAAA,CAAe5D,MAAM,EAAE;AACzB4D,gBAAAA,cAAAA,CAAeG,OAAO,CAAC,CAAC,EAAE3E,IAAI,EAAE4E,YAAY,EAA0C,GACpF5D,oBAAAA,CAAIb,KAAAA,CAAMT,YAAY,EAAEM,IAAAA,EAAM4E,YAAAA,CAAAA,CAAAA;AAElC,YAAA;AACF,QAAA,CAAA;AACAC,QAAAA,wBAAAA,EAA0B,CAAC1E,KAAAA,EAAOC,MAAAA,GAAAA;AAChC,YAAA,MAAM,EAAE0E,eAAe,EAAE,GAAG1E,OAAOG,OAAO;AAC1CJ,YAAAA,KAAAA,CAAMT,YAAY,GAAGoF,eAAAA;AACrB3E,YAAAA,KAAAA,CAAMR,WAAW,GAAGmF,eAAAA;AACtB,QAAA,CAAA;AACAC,QAAAA,SAAAA,EAAW,CAAC5E,KAAAA,EAAOC,MAAAA,GAAAA;AACjBD,YAAAA,KAAAA,CAAMV,UAAU,GAAGW,MAAAA,CAAOG,OAAO,CAACyE,MAAM;AAC1C,QAAA;AACF;AACF,CAAA,CAAA;MAGa,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGpF;;;;;;"}
|
|
@@ -10,6 +10,10 @@ var AttributeIcon = require('./AttributeIcon.js');
|
|
|
10
10
|
var useDataManager = require('./DataManager/useDataManager.js');
|
|
11
11
|
var useFormModalNavigation = require('./FormModalNavigation/useFormModalNavigation.js');
|
|
12
12
|
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
|
|
16
|
+
|
|
13
17
|
const FormModalHeader = ({ actionType = null, attributeName, attributeType, contentTypeKind, dynamicZoneTarget, forTarget, modalType = null, targetUid, customFieldUid = null, showBackLink = false })=>{
|
|
14
18
|
const { formatMessage } = reactIntl.useIntl();
|
|
15
19
|
const { components, contentTypes } = useDataManager.useDataManager();
|
|
@@ -109,13 +113,13 @@ const FormModalHeader = ({ actionType = null, attributeName, attributeType, cont
|
|
|
109
113
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Breadcrumbs, {
|
|
110
114
|
label: headers.map(({ label })=>label).join(','),
|
|
111
115
|
children: headers.map(({ label, info }, index, arr)=>{
|
|
112
|
-
label =
|
|
116
|
+
label = upperFirst__default.default(label);
|
|
113
117
|
if (!label) {
|
|
114
118
|
return null;
|
|
115
119
|
}
|
|
116
120
|
const key = `${label}.${index}`;
|
|
117
121
|
if (info?.category) {
|
|
118
|
-
label = `${label} (${
|
|
122
|
+
label = `${label} (${upperFirst__default.default(info.category)} - ${upperFirst__default.default(info.name)})`;
|
|
119
123
|
}
|
|
120
124
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Crumb, {
|
|
121
125
|
isCurrent: index === arr.length - 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModalHeader.js","sources":["../../../admin/src/components/FormModalHeader.tsx"],"sourcesContent":["/**\n *\n * FormModalHeader\n *\n */\nimport { Box, Flex, Breadcrumbs, Crumb, Link, Modal } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport { AttributeIcon, IconByType } from './AttributeIcon';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Internal } from '@strapi/types';\n\ninterface Header {\n label: string;\n info?: { category: string; name: string };\n}\n\ntype BaseProps = {\n actionType?: string | null;\n attributeName: string;\n attributeType: IconByType;\n contentTypeKind: IconByType;\n dynamicZoneTarget: string;\n modalType: string | null;\n customFieldUid?: string | null;\n showBackLink?: boolean;\n};\n\ntype FormModalHeaderProps = BaseProps &\n (\n | { forTarget: 'component'; targetUid: Internal.UID.Component }\n | { forTarget: 'contentType'; targetUid: Internal.UID.ContentType }\n );\n\nexport const FormModalHeader = ({\n actionType = null,\n attributeName,\n attributeType,\n contentTypeKind,\n dynamicZoneTarget,\n forTarget,\n modalType = null,\n targetUid,\n customFieldUid = null,\n showBackLink = false,\n}: FormModalHeaderProps) => {\n const { formatMessage } = useIntl();\n const { components, contentTypes } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n let icon: IconByType = 'component';\n let headers: Header[] = [];\n\n const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];\n\n const displayName = type?.info.displayName;\n\n if (modalType === 'contentType') {\n icon = contentTypeKind;\n }\n\n if (['component'].includes(modalType || '')) {\n icon = 'component';\n }\n\n const isCreatingMainSchema = ['component', 'contentType'].includes(modalType || '');\n\n if (isCreatingMainSchema) {\n let headerId = getTrad(`modalForm.component.header-${actionType}`);\n\n if (modalType === 'contentType') {\n headerId = getTrad(`modalForm.${contentTypeKind}.header-create`);\n }\n\n if (actionType === 'edit') {\n headerId = getTrad(`modalForm.header-edit`);\n }\n\n return (\n <Modal.Header>\n <Flex>\n <Box>\n <AttributeIcon type={icon} />\n </Box>\n <Box paddingLeft={3}>\n <Modal.Title>{formatMessage({ id: headerId }, { name: displayName })}</Modal.Title>\n </Box>\n </Flex>\n </Modal.Header>\n );\n }\n\n headers = [\n {\n label: displayName,\n info: {\n category: ('category' in type && type?.category) || '',\n name: type?.info?.displayName,\n },\n },\n ];\n\n if (modalType === 'chooseAttribute') {\n icon = forTarget === 'component' ? 'component' : 'kind' in type ? type.kind : '';\n }\n\n if (modalType === 'addComponentToDynamicZone') {\n icon = 'dynamiczone';\n headers.push({ label: dynamicZoneTarget });\n }\n\n if (modalType === 'attribute' || modalType === 'customField') {\n icon = attributeType;\n headers.push({ label: attributeName });\n }\n\n return (\n <Modal.Header>\n <Flex gap={3}>\n {showBackLink && (\n // This is a workaround and should use the LinkButton with a variant that currently doesn't exist\n <Link\n aria-label={formatMessage({\n id: getTrad('modalForm.header.back'),\n defaultMessage: 'Back',\n })}\n startIcon={<ArrowLeft />}\n onClick={() => onOpenModalAddField({ forTarget, targetUid })}\n href=\"#back\"\n isExternal={false}\n />\n )}\n <AttributeIcon type={icon} customField={customFieldUid} />\n\n <Breadcrumbs label={headers.map(({ label }) => label).join(',')}>\n {headers.map(({ label, info }, index, arr) => {\n label = upperFirst(label);\n\n if (!label) {\n return null;\n }\n\n const key = `${label}.${index}`;\n\n if (info?.category) {\n label = `${label} (${upperFirst(info.category)} - ${upperFirst(info.name)})`;\n }\n\n return (\n <Crumb isCurrent={index === arr.length - 1} key={key}>\n {label}\n </Crumb>\n );\n })}\n </Breadcrumbs>\n </Flex>\n </Modal.Header>\n );\n};\n"],"names":["FormModalHeader","actionType","attributeName","attributeType","contentTypeKind","dynamicZoneTarget","forTarget","modalType","targetUid","customFieldUid","showBackLink","formatMessage","useIntl","components","contentTypes","useDataManager","onOpenModalAddField","useFormModalNavigation","icon","headers","type","displayName","info","includes","isCreatingMainSchema","headerId","getTrad","_jsx","Modal","Header","_jsxs","Flex","Box","AttributeIcon","paddingLeft","Title","id","name","label","category","kind","push","gap","Link","aria-label","defaultMessage","startIcon","ArrowLeft","onClick","href","isExternal","customField","Breadcrumbs","map","join","index","arr","upperFirst","key","Crumb","isCurrent","length"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormModalHeader.js","sources":["../../../admin/src/components/FormModalHeader.tsx"],"sourcesContent":["/**\n *\n * FormModalHeader\n *\n */\nimport { Box, Flex, Breadcrumbs, Crumb, Link, Modal } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport { AttributeIcon, IconByType } from './AttributeIcon';\nimport { useDataManager } from './DataManager/useDataManager';\nimport { useFormModalNavigation } from './FormModalNavigation/useFormModalNavigation';\n\nimport type { Internal } from '@strapi/types';\n\ninterface Header {\n label: string;\n info?: { category: string; name: string };\n}\n\ntype BaseProps = {\n actionType?: string | null;\n attributeName: string;\n attributeType: IconByType;\n contentTypeKind: IconByType;\n dynamicZoneTarget: string;\n modalType: string | null;\n customFieldUid?: string | null;\n showBackLink?: boolean;\n};\n\ntype FormModalHeaderProps = BaseProps &\n (\n | { forTarget: 'component'; targetUid: Internal.UID.Component }\n | { forTarget: 'contentType'; targetUid: Internal.UID.ContentType }\n );\n\nexport const FormModalHeader = ({\n actionType = null,\n attributeName,\n attributeType,\n contentTypeKind,\n dynamicZoneTarget,\n forTarget,\n modalType = null,\n targetUid,\n customFieldUid = null,\n showBackLink = false,\n}: FormModalHeaderProps) => {\n const { formatMessage } = useIntl();\n const { components, contentTypes } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n let icon: IconByType = 'component';\n let headers: Header[] = [];\n\n const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];\n\n const displayName = type?.info.displayName;\n\n if (modalType === 'contentType') {\n icon = contentTypeKind;\n }\n\n if (['component'].includes(modalType || '')) {\n icon = 'component';\n }\n\n const isCreatingMainSchema = ['component', 'contentType'].includes(modalType || '');\n\n if (isCreatingMainSchema) {\n let headerId = getTrad(`modalForm.component.header-${actionType}`);\n\n if (modalType === 'contentType') {\n headerId = getTrad(`modalForm.${contentTypeKind}.header-create`);\n }\n\n if (actionType === 'edit') {\n headerId = getTrad(`modalForm.header-edit`);\n }\n\n return (\n <Modal.Header>\n <Flex>\n <Box>\n <AttributeIcon type={icon} />\n </Box>\n <Box paddingLeft={3}>\n <Modal.Title>{formatMessage({ id: headerId }, { name: displayName })}</Modal.Title>\n </Box>\n </Flex>\n </Modal.Header>\n );\n }\n\n headers = [\n {\n label: displayName,\n info: {\n category: ('category' in type && type?.category) || '',\n name: type?.info?.displayName,\n },\n },\n ];\n\n if (modalType === 'chooseAttribute') {\n icon = forTarget === 'component' ? 'component' : 'kind' in type ? type.kind : '';\n }\n\n if (modalType === 'addComponentToDynamicZone') {\n icon = 'dynamiczone';\n headers.push({ label: dynamicZoneTarget });\n }\n\n if (modalType === 'attribute' || modalType === 'customField') {\n icon = attributeType;\n headers.push({ label: attributeName });\n }\n\n return (\n <Modal.Header>\n <Flex gap={3}>\n {showBackLink && (\n // This is a workaround and should use the LinkButton with a variant that currently doesn't exist\n <Link\n aria-label={formatMessage({\n id: getTrad('modalForm.header.back'),\n defaultMessage: 'Back',\n })}\n startIcon={<ArrowLeft />}\n onClick={() => onOpenModalAddField({ forTarget, targetUid })}\n href=\"#back\"\n isExternal={false}\n />\n )}\n <AttributeIcon type={icon} customField={customFieldUid} />\n\n <Breadcrumbs label={headers.map(({ label }) => label).join(',')}>\n {headers.map(({ label, info }, index, arr) => {\n label = upperFirst(label);\n\n if (!label) {\n return null;\n }\n\n const key = `${label}.${index}`;\n\n if (info?.category) {\n label = `${label} (${upperFirst(info.category)} - ${upperFirst(info.name)})`;\n }\n\n return (\n <Crumb isCurrent={index === arr.length - 1} key={key}>\n {label}\n </Crumb>\n );\n })}\n </Breadcrumbs>\n </Flex>\n </Modal.Header>\n );\n};\n"],"names":["FormModalHeader","actionType","attributeName","attributeType","contentTypeKind","dynamicZoneTarget","forTarget","modalType","targetUid","customFieldUid","showBackLink","formatMessage","useIntl","components","contentTypes","useDataManager","onOpenModalAddField","useFormModalNavigation","icon","headers","type","displayName","info","includes","isCreatingMainSchema","headerId","getTrad","_jsx","Modal","Header","_jsxs","Flex","Box","AttributeIcon","paddingLeft","Title","id","name","label","category","kind","push","gap","Link","aria-label","defaultMessage","startIcon","ArrowLeft","onClick","href","isExternal","customField","Breadcrumbs","map","join","index","arr","upperFirst","key","Crumb","isCurrent","length"],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
|
|
5
|
-
function
|
|
5
|
+
function _interopNamespace(e) {
|
|
6
|
+
if (e && e.__esModule) return e;
|
|
6
7
|
var n = Object.create(null);
|
|
7
8
|
if (e) {
|
|
8
9
|
Object.keys(e).forEach(function (k) {
|
|
@@ -19,7 +20,7 @@ function _interopNamespaceDefault(e) {
|
|
|
19
20
|
return Object.freeze(n);
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
var React__namespace = /*#__PURE__*/
|
|
23
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
23
24
|
|
|
24
25
|
// @ts-expect-error need to pass initial value to params
|
|
25
26
|
const FormModalNavigationContext = React__namespace.createContext();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModalNavigationContext.js","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport type {\n State,\n SelectFieldPayload,\n SelectCustomFieldPayload,\n NavigateToChooseAttributeModalPayload,\n NavigateToAddCompoToDZModalPayload,\n OpenModalAddComponentsToDZPayload,\n OpenModalEditFieldPayload,\n OpenModalEditCustomFieldPayload,\n OpenModalEditSchemaPayload,\n OpenModalAddFieldPayload,\n} from './FormModalNavigationProvider';\n\nexport type FormModalNavigationContextValue = State & {\n onCloseModal: () => void;\n onOpenModalAddField: (options: OpenModalAddFieldPayload) => void;\n onClickSelectField: (option: SelectFieldPayload) => void;\n onClickSelectCustomField: (option: SelectCustomFieldPayload) => void;\n onNavigateToChooseAttributeModal: (options: NavigateToChooseAttributeModalPayload) => void;\n onNavigateToAddCompoToDZModal: (options: NavigateToAddCompoToDZModalPayload) => void;\n onOpenModalAddComponentsToDZ: (options: OpenModalAddComponentsToDZPayload) => void;\n onNavigateToCreateComponentStep2: () => void;\n onOpenModalCreateSchema: (options: State) => void;\n onOpenModalEditField: (options: OpenModalEditFieldPayload) => void;\n onOpenModalEditCustomField: (options: OpenModalEditCustomFieldPayload) => void;\n onOpenModalEditSchema: (options: OpenModalEditSchemaPayload) => void;\n setFormModalNavigationState: (value: React.SetStateAction<State>) => void;\n setActiveTab: (value: State['activeTab']) => void;\n};\n\n// @ts-expect-error need to pass initial value to params\nexport const FormModalNavigationContext = React.createContext<FormModalNavigationContextValue>();\n"],"names":["FormModalNavigationContext","React","createContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormModalNavigationContext.js","sources":["../../../../admin/src/components/FormModalNavigation/FormModalNavigationContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport type {\n State,\n SelectFieldPayload,\n SelectCustomFieldPayload,\n NavigateToChooseAttributeModalPayload,\n NavigateToAddCompoToDZModalPayload,\n OpenModalAddComponentsToDZPayload,\n OpenModalEditFieldPayload,\n OpenModalEditCustomFieldPayload,\n OpenModalEditSchemaPayload,\n OpenModalAddFieldPayload,\n} from './FormModalNavigationProvider';\n\nexport type FormModalNavigationContextValue = State & {\n onCloseModal: () => void;\n onOpenModalAddField: (options: OpenModalAddFieldPayload) => void;\n onClickSelectField: (option: SelectFieldPayload) => void;\n onClickSelectCustomField: (option: SelectCustomFieldPayload) => void;\n onNavigateToChooseAttributeModal: (options: NavigateToChooseAttributeModalPayload) => void;\n onNavigateToAddCompoToDZModal: (options: NavigateToAddCompoToDZModalPayload) => void;\n onOpenModalAddComponentsToDZ: (options: OpenModalAddComponentsToDZPayload) => void;\n onNavigateToCreateComponentStep2: () => void;\n onOpenModalCreateSchema: (options: State) => void;\n onOpenModalEditField: (options: OpenModalEditFieldPayload) => void;\n onOpenModalEditCustomField: (options: OpenModalEditCustomFieldPayload) => void;\n onOpenModalEditSchema: (options: OpenModalEditSchemaPayload) => void;\n setFormModalNavigationState: (value: React.SetStateAction<State>) => void;\n setActiveTab: (value: State['activeTab']) => void;\n};\n\n// @ts-expect-error need to pass initial value to params\nexport const FormModalNavigationContext = React.createContext<FormModalNavigationContextValue>();\n"],"names":["FormModalNavigationContext","React","createContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiCA;AACO,MAAMA,0BAAAA,GAA6BC,gBAAAA,CAAMC,aAAa;;;;"}
|
|
@@ -6,6 +6,10 @@ var upperFirst = require('lodash/upperFirst');
|
|
|
6
6
|
var reactIntl = require('react-intl');
|
|
7
7
|
var getTrad = require('../utils/getTrad.js');
|
|
8
8
|
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
|
|
12
|
+
|
|
9
13
|
const getModalTitleSubHeader = ({ modalType, forTarget, kind, actionType, step })=>{
|
|
10
14
|
switch(modalType){
|
|
11
15
|
case 'chooseAttribute':
|
|
@@ -48,8 +52,8 @@ const FormModalSubHeader = ({ actionType, modalType, forTarget, kind, step, attr
|
|
|
48
52
|
}),
|
|
49
53
|
defaultMessage: 'Add new field'
|
|
50
54
|
}, {
|
|
51
|
-
type: intlLabel ?
|
|
52
|
-
name:
|
|
55
|
+
type: intlLabel ? upperFirst__default.default(formatMessage(intlLabel)) : '',
|
|
56
|
+
name: upperFirst__default.default(attributeName),
|
|
53
57
|
step
|
|
54
58
|
})
|
|
55
59
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModalSubHeader.js","sources":["../../../admin/src/components/FormModalSubHeader.tsx"],"sourcesContent":["import { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { Struct } from '@strapi/types';\n\ntype ModalTitleProps = {\n forTarget?: Struct.ModelType;\n step?: string;\n kind?: string;\n modalType?: string;\n actionType?: string;\n};\n\nexport const getModalTitleSubHeader = ({\n modalType,\n forTarget,\n kind,\n actionType,\n step,\n}: ModalTitleProps) => {\n switch (modalType) {\n case 'chooseAttribute':\n return getTrad(\n `modalForm.sub-header.chooseAttribute.${\n forTarget?.includes('component') ? 'component' : kind || 'collectionType'\n }`\n );\n case 'attribute': {\n return getTrad(\n `modalForm.sub-header.attribute.${actionType}${\n step !== 'null' && step !== null && actionType !== 'edit' ? '.step' : ''\n }`\n );\n }\n case 'customField': {\n return getTrad(`modalForm.sub-header.attribute.${actionType}`);\n }\n case 'addComponentToDynamicZone':\n return getTrad('modalForm.sub-header.addComponentToDynamicZone');\n default:\n return getTrad('configurations');\n }\n};\n\ntype FormModalSubHeaderProps = {\n actionType: string;\n modalType: string;\n forTarget: Struct.ModelType;\n kind?: string;\n step?: string;\n attributeType: string;\n attributeName: string;\n customField?: ReturnType<StrapiAppContextValue['customFields']['get']>;\n};\n\nexport const FormModalSubHeader = ({\n actionType,\n modalType,\n forTarget,\n kind,\n step,\n attributeType,\n attributeName,\n customField,\n}: FormModalSubHeaderProps) => {\n const { formatMessage } = useIntl();\n const intlLabel =\n modalType === 'customField'\n ? customField?.intlLabel\n : { id: getTrad(`attribute.${attributeType}`) };\n\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={1} gap={1}>\n <Typography tag=\"h2\" variant=\"beta\">\n {formatMessage(\n {\n id: getModalTitleSubHeader({\n actionType,\n forTarget,\n kind,\n step,\n modalType,\n }),\n defaultMessage: 'Add new field',\n },\n {\n type: intlLabel ? upperFirst(formatMessage(intlLabel)) : '',\n name: upperFirst(attributeName),\n step,\n }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${attributeType}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n );\n};\n"],"names":["getModalTitleSubHeader","modalType","forTarget","kind","actionType","step","getTrad","includes","FormModalSubHeader","attributeType","attributeName","customField","formatMessage","useIntl","intlLabel","id","_jsxs","Flex","direction","alignItems","paddingBottom","gap","_jsx","Typography","tag","variant","defaultMessage","type","upperFirst","name","textColor"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormModalSubHeader.js","sources":["../../../admin/src/components/FormModalSubHeader.tsx"],"sourcesContent":["import { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { Struct } from '@strapi/types';\n\ntype ModalTitleProps = {\n forTarget?: Struct.ModelType;\n step?: string;\n kind?: string;\n modalType?: string;\n actionType?: string;\n};\n\nexport const getModalTitleSubHeader = ({\n modalType,\n forTarget,\n kind,\n actionType,\n step,\n}: ModalTitleProps) => {\n switch (modalType) {\n case 'chooseAttribute':\n return getTrad(\n `modalForm.sub-header.chooseAttribute.${\n forTarget?.includes('component') ? 'component' : kind || 'collectionType'\n }`\n );\n case 'attribute': {\n return getTrad(\n `modalForm.sub-header.attribute.${actionType}${\n step !== 'null' && step !== null && actionType !== 'edit' ? '.step' : ''\n }`\n );\n }\n case 'customField': {\n return getTrad(`modalForm.sub-header.attribute.${actionType}`);\n }\n case 'addComponentToDynamicZone':\n return getTrad('modalForm.sub-header.addComponentToDynamicZone');\n default:\n return getTrad('configurations');\n }\n};\n\ntype FormModalSubHeaderProps = {\n actionType: string;\n modalType: string;\n forTarget: Struct.ModelType;\n kind?: string;\n step?: string;\n attributeType: string;\n attributeName: string;\n customField?: ReturnType<StrapiAppContextValue['customFields']['get']>;\n};\n\nexport const FormModalSubHeader = ({\n actionType,\n modalType,\n forTarget,\n kind,\n step,\n attributeType,\n attributeName,\n customField,\n}: FormModalSubHeaderProps) => {\n const { formatMessage } = useIntl();\n const intlLabel =\n modalType === 'customField'\n ? customField?.intlLabel\n : { id: getTrad(`attribute.${attributeType}`) };\n\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={1} gap={1}>\n <Typography tag=\"h2\" variant=\"beta\">\n {formatMessage(\n {\n id: getModalTitleSubHeader({\n actionType,\n forTarget,\n kind,\n step,\n modalType,\n }),\n defaultMessage: 'Add new field',\n },\n {\n type: intlLabel ? upperFirst(formatMessage(intlLabel)) : '',\n name: upperFirst(attributeName),\n step,\n }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${attributeType}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n );\n};\n"],"names":["getModalTitleSubHeader","modalType","forTarget","kind","actionType","step","getTrad","includes","FormModalSubHeader","attributeType","attributeName","customField","formatMessage","useIntl","intlLabel","id","_jsxs","Flex","direction","alignItems","paddingBottom","gap","_jsx","Typography","tag","variant","defaultMessage","type","upperFirst","name","textColor"],"mappings":";;;;;;;;;;;;AAiBO,MAAMA,sBAAAA,GAAyB,CAAC,EACrCC,SAAS,EACTC,SAAS,EACTC,IAAI,EACJC,UAAU,EACVC,IAAI,EACY,GAAA;IAChB,OAAQJ,SAAAA;QACN,KAAK,iBAAA;YACH,OAAOK,eAAAA,CACL,CAAC,qCAAqC,EACpCJ,WAAWK,QAAAA,CAAS,WAAA,CAAA,GAAe,WAAA,GAAcJ,IAAAA,IAAQ,gBAAA,CAAA,CACzD,CAAA;QAEN,KAAK,WAAA;AAAa,YAAA;AAChB,gBAAA,OAAOG,eAAAA,CACL,CAAC,+BAA+B,EAAEF,UAAAA,CAAAA,EAChCC,IAAAA,KAAS,MAAA,IAAUA,IAAAA,KAAS,IAAA,IAAQD,UAAAA,KAAe,MAAA,GAAS,OAAA,GAAU,EAAA,CAAA,CACtE,CAAA;AAEN,YAAA;QACA,KAAK,aAAA;AAAe,YAAA;AAClB,gBAAA,OAAOE,eAAAA,CAAQ,CAAC,+BAA+B,EAAEF,UAAAA,CAAAA,CAAY,CAAA;AAC/D,YAAA;QACA,KAAK,2BAAA;AACH,YAAA,OAAOE,eAAAA,CAAQ,gDAAA,CAAA;AACjB,QAAA;AACE,YAAA,OAAOA,eAAAA,CAAQ,gBAAA,CAAA;AACnB;AACF;MAaaE,kBAAAA,GAAqB,CAAC,EACjCJ,UAAU,EACVH,SAAS,EACTC,SAAS,EACTC,IAAI,EACJE,IAAI,EACJI,aAAa,EACbC,aAAa,EACbC,WAAW,EACa,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,SAAAA,GACJb,SAAAA,KAAc,aAAA,GACVU,WAAAA,EAAaG,SAAAA,GACb;AAAEC,QAAAA,EAAAA,EAAIT,eAAAA,CAAQ,CAAC,UAAU,EAAEG,aAAAA,CAAAA,CAAe;AAAE,KAAA;AAElD,IAAA,qBACEO,eAAA,CAACC,iBAAAA,EAAAA;QAAKC,SAAAA,EAAU,QAAA;QAASC,UAAAA,EAAW,YAAA;QAAaC,aAAAA,EAAe,CAAA;QAAGC,GAAAA,EAAK,CAAA;;0BACtEC,cAAA,CAACC,uBAAAA,EAAAA;gBAAWC,GAAAA,EAAI,IAAA;gBAAKC,OAAAA,EAAQ,MAAA;0BAC1Bb,aAAAA,CACC;AACEG,oBAAAA,EAAAA,EAAIf,sBAAAA,CAAuB;AACzBI,wBAAAA,UAAAA;AACAF,wBAAAA,SAAAA;AACAC,wBAAAA,IAAAA;AACAE,wBAAAA,IAAAA;AACAJ,wBAAAA;AACF,qBAAA,CAAA;oBACAyB,cAAAA,EAAgB;iBAClB,EACA;oBACEC,IAAAA,EAAMb,SAAAA,GAAYc,2BAAAA,CAAWhB,aAAAA,CAAcE,SAAAA,CAAAA,CAAAA,GAAc,EAAA;AACzDe,oBAAAA,IAAAA,EAAMD,2BAAAA,CAAWlB,aAAAA,CAAAA;AACjBL,oBAAAA;AACF,iBAAA;;0BAGJiB,cAAA,CAACC,uBAAAA,EAAAA;gBAAWE,OAAAA,EAAQ,IAAA;gBAAKK,SAAAA,EAAU,YAAA;0BAChClB,aAAAA,CAAc;AACbG,oBAAAA,EAAAA,EAAIT,gBAAQ,CAAC,UAAU,EAAEG,aAAAA,CAAc,YAAY,CAAC,CAAA;oBACpDiB,cAAAA,EAAgB;AAClB,iBAAA;;;;AAIR;;;;;"}
|
|
@@ -10,7 +10,10 @@ var reactIntl = require('react-intl');
|
|
|
10
10
|
var parseDateValue = require('../utils/parseDateValue.js');
|
|
11
11
|
var timeFormat = require('../utils/timeFormat.js');
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
function _interopNamespace(e) {
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
14
17
|
var n = Object.create(null);
|
|
15
18
|
if (e) {
|
|
16
19
|
Object.keys(e).forEach(function (k) {
|
|
@@ -27,7 +30,9 @@ function _interopNamespaceDefault(e) {
|
|
|
27
30
|
return Object.freeze(n);
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
var React__namespace = /*#__PURE__*/
|
|
33
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
34
|
+
var formatISO__default = /*#__PURE__*/_interopDefault(formatISO);
|
|
35
|
+
var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
|
|
31
36
|
|
|
32
37
|
const GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, onDelete, options = [], placeholder, required, step, type, value: defaultValue, isNullable, autoFocus, attribute, attributeName, conditionFields, ...rest })=>{
|
|
33
38
|
const { formatMessage } = reactIntl.useIntl();
|
|
@@ -227,7 +232,7 @@ const GenericInput = ({ autoComplete, customInputs, description, disabled, intlL
|
|
|
227
232
|
onChange({
|
|
228
233
|
target: {
|
|
229
234
|
name,
|
|
230
|
-
value: date ?
|
|
235
|
+
value: date ? formatISO__default.default(date, {
|
|
231
236
|
representation: 'date'
|
|
232
237
|
}) : null,
|
|
233
238
|
type
|
|
@@ -529,7 +534,7 @@ const getMinMax = (fieldSchema)=>{
|
|
|
529
534
|
* we've memoized this component because we use a context to store all the data in our form in the content-manager.
|
|
530
535
|
* This then causes _every_ component to re-render because there are no selects incurring performance issues
|
|
531
536
|
* in content-types as the content-type gets more complicated.
|
|
532
|
-
*/ const MemoizedGenericInput = /*#__PURE__*/ React__namespace.memo(GenericInput,
|
|
537
|
+
*/ const MemoizedGenericInput = /*#__PURE__*/ React__namespace.memo(GenericInput, isEqual__default.default);
|
|
533
538
|
|
|
534
539
|
exports.GenericInput = MemoizedGenericInput;
|
|
535
540
|
//# sourceMappingURL=GenericInputs.js.map
|