@strapi/content-type-builder 5.48.1 → 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.
Files changed (115) hide show
  1. package/dist/admin/components/AIChat/components/Messages/Message.js +5 -1
  2. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  3. package/dist/admin/components/AIChat/components/SimpleMenu.js +3 -2
  4. package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
  5. package/dist/admin/components/AIChat/hooks/useCodeUpload.js +7 -2
  6. package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
  7. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +11 -5
  8. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  9. package/dist/admin/components/AllowedTypesSelect.js +5 -1
  10. package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
  11. package/dist/admin/components/AttributeOptions/EmptyAttributes.js +3 -2
  12. package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
  13. package/dist/admin/components/AttributeRow.js +10 -5
  14. package/dist/admin/components/AttributeRow.js.map +1 -1
  15. package/dist/admin/components/AutoReloadOverlayBlocker.js +3 -2
  16. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
  17. package/dist/admin/components/ComponentCard/ComponentCard.js +5 -1
  18. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  19. package/dist/admin/components/ComponentList.js +5 -1
  20. package/dist/admin/components/ComponentList.js.map +1 -1
  21. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +5 -1
  22. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  23. package/dist/admin/components/DataManager/DataManagerProvider.js +12 -6
  24. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  25. package/dist/admin/components/DataManager/reducer.js +7 -2
  26. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  27. package/dist/admin/components/DataManager/utils/cleanData.js +10 -4
  28. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
  29. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +5 -1
  30. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
  31. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +5 -1
  32. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
  33. package/dist/admin/components/FormModal/FormModal.js +30 -22
  34. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  35. package/dist/admin/components/FormModal/attributes/ConditionForm.js +3 -2
  36. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  37. package/dist/admin/components/FormModal/attributes/types.js +7 -3
  38. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  39. package/dist/admin/components/FormModal/attributes/validation/common.js +8 -4
  40. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  41. package/dist/admin/components/FormModal/component/createComponentSchema.js +3 -2
  42. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  43. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +3 -2
  44. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
  45. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +5 -1
  46. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
  47. package/dist/admin/components/FormModal/reducer.js +32 -26
  48. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  49. package/dist/admin/components/FormModalHeader.js +6 -2
  50. package/dist/admin/components/FormModalHeader.js.map +1 -1
  51. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +3 -2
  52. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
  53. package/dist/admin/components/FormModalSubHeader.js +6 -2
  54. package/dist/admin/components/FormModalSubHeader.js.map +1 -1
  55. package/dist/admin/components/GenericInputs.js +9 -4
  56. package/dist/admin/components/GenericInputs.js.map +1 -1
  57. package/dist/admin/components/IconPicker/constants.js +4 -3
  58. package/dist/admin/components/IconPicker/constants.js.map +1 -1
  59. package/dist/admin/components/PluralName.js +5 -1
  60. package/dist/admin/components/PluralName.js.map +1 -1
  61. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +13 -7
  62. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
  63. package/dist/admin/components/TabForm.js +7 -3
  64. package/dist/admin/components/TabForm.js.map +1 -1
  65. package/dist/admin/pages/ListView/ListView.js +5 -1
  66. package/dist/admin/pages/ListView/ListView.js.map +1 -1
  67. package/dist/admin/utils/formAPI.js +11 -6
  68. package/dist/admin/utils/formAPI.js.map +1 -1
  69. package/dist/admin/utils/getMaxDepth.js.map +1 -1
  70. package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
  71. package/dist/admin/utils/nameToSlug.js +5 -1
  72. package/dist/admin/utils/nameToSlug.js.map +1 -1
  73. package/dist/admin/utils/toRegressedEnumValue.js +5 -1
  74. package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
  75. package/dist/server/controllers/components.js +6 -2
  76. package/dist/server/controllers/components.js.map +1 -1
  77. package/dist/server/controllers/content-types.js +8 -4
  78. package/dist/server/controllers/content-types.js.map +1 -1
  79. package/dist/server/controllers/validation/common.js +5 -1
  80. package/dist/server/controllers/validation/common.js.map +1 -1
  81. package/dist/server/controllers/validation/component.js +9 -5
  82. package/dist/server/controllers/validation/component.js.map +1 -1
  83. package/dist/server/controllers/validation/data-transform.js +6 -2
  84. package/dist/server/controllers/validation/data-transform.js.map +1 -1
  85. package/dist/server/controllers/validation/model-schema.js +6 -2
  86. package/dist/server/controllers/validation/model-schema.js.map +1 -1
  87. package/dist/server/controllers/validation/types.js +8 -4
  88. package/dist/server/controllers/validation/types.js.map +1 -1
  89. package/dist/server/routes/content-api.js +3 -2
  90. package/dist/server/routes/content-api.js.map +1 -1
  91. package/dist/server/services/api-handler.js +4 -3
  92. package/dist/server/services/api-handler.js.map +1 -1
  93. package/dist/server/services/api-handler.mjs.map +1 -1
  94. package/dist/server/services/components.js.map +1 -1
  95. package/dist/server/services/components.mjs.map +1 -1
  96. package/dist/server/services/content-types.js +8 -4
  97. package/dist/server/services/content-types.js.map +1 -1
  98. package/dist/server/services/schema-builder/component-builder.js +11 -5
  99. package/dist/server/services/schema-builder/component-builder.js.map +1 -1
  100. package/dist/server/services/schema-builder/content-type-builder.js +13 -8
  101. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  102. package/dist/server/services/schema-builder/index.js +5 -1
  103. package/dist/server/services/schema-builder/index.js.map +1 -1
  104. package/dist/server/services/schema-builder/schema-handler.js +35 -29
  105. package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
  106. package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
  107. package/dist/server/services/schema.js +5 -1
  108. package/dist/server/services/schema.js.map +1 -1
  109. package/dist/server/src/services/components.d.ts +3 -26
  110. package/dist/server/src/services/components.d.ts.map +1 -1
  111. package/dist/server/src/services/schema-builder/schema-handler.d.ts +1 -0
  112. package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
  113. package/dist/server/utils/attributes.js +12 -7
  114. package/dist/server/utils/attributes.js.map +1 -1
  115. package/package.json +5 -5
@@ -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
- set(state, [
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
- set(state, [
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
- set(state, [
70
+ set__default.default(state, [
65
71
  'modifiedData',
66
72
  'relation'
67
73
  ], 'oneToOne');
68
74
  } else if (relationToSet === 'manyWay') {
69
- set(state, [
75
+ set__default.default(state, [
70
76
  'modifiedData',
71
77
  'relation'
72
78
  ], 'oneToMany');
73
79
  } else {
74
- set(state, [
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 = pluralize(snakeCase(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(changedRelationType));
89
+ nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(changedRelationType));
84
90
  } else {
85
- nameToSet = pluralize(snakeCase(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(modifiedData.relation));
91
+ nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(modifiedData.relation));
86
92
  }
87
- set(state, [
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
- set(state, [
107
+ set__default.default(state, [
102
108
  'modifiedData',
103
109
  'targetAttribute'
104
110
  ], null);
105
111
  return;
106
112
  }
107
- const targetAttributeToSet = pluralize(snakeCase(nameToSlug.nameToSlug(oneThatIsCreatingARelationWithAnother)), relations.shouldPluralizeTargetAttribute(modifiedData.relation));
108
- set(state, [
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
- set(state, [
127
+ set__default.default(state, [
122
128
  'modifiedData',
123
129
  'relation'
124
130
  ], value);
125
131
  const currentTargetAttribute = state.modifiedData.targetAttribute;
126
- set(state, [
132
+ set__default.default(state, [
127
133
  'modifiedData',
128
134
  'name'
129
- ], pluralize(snakeCase(nameToSlug.nameToSlug(currentName)), relations.shouldPluralizeName(value)));
130
- set(state, [
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
- ], pluralize(currentTargetAttribute || snakeCase(nameToSlug.nameToSlug(oneThatIsCreatingARelationWithAnother)), relations.shouldPluralizeTargetAttribute(value)));
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
- set(state, [
143
+ set__default.default(state, [
138
144
  'modifiedData',
139
145
  'relation'
140
146
  ], 'oneToOne');
141
- set(state, [
147
+ set__default.default(state, [
142
148
  'modifiedData',
143
149
  'targetAttribute'
144
150
  ], null);
145
- set(state, [
151
+ set__default.default(state, [
146
152
  'modifiedData',
147
153
  'name'
148
- ], pluralize(snakeCase(currentName), 1));
154
+ ], pluralize__default.default(snakeCase__default.default(currentName), 1));
149
155
  return;
150
156
  }
151
157
  // manyWay
152
- set(state, [
158
+ set__default.default(state, [
153
159
  'modifiedData',
154
160
  'relation'
155
161
  ], 'oneToMany');
156
- set(state, [
162
+ set__default.default(state, [
157
163
  'modifiedData',
158
164
  'targetAttribute'
159
165
  ], null);
160
- set(state, [
166
+ set__default.default(state, [
161
167
  'modifiedData',
162
168
  'name'
163
- ], pluralize(snakeCase(currentName), 2));
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: snakeCase(nameToSetForRelation),
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 })=>set(state.modifiedData, 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":";;;;;;;;;;;;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,GAAAA,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,GAAAA,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,GAAAA,CAAIb,KAAAA,EAAO;AAAC,4BAAA,cAAA;AAAgB,4BAAA;yBAAW,EAAE,UAAA,CAAA;oBAC3C,CAAA,MAAO,IAAI2B,kBAAkB,SAAA,EAAW;AACtCd,wBAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,4BAAA,cAAA;AAAgB,4BAAA;yBAAW,EAAE,WAAA,CAAA;oBAC3C,CAAA,MAAO;AACLa,wBAAAA,GAAAA,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,SAAAA,CACVC,SAAAA,CAAUC,qBAAAA,CAAWd,+BAAAA,CAAAA,CAAAA,EACrBe,6BAAAA,CAAoBZ,mBAAAA,CAAAA,CAAAA;YAExB,CAAA,MAAO;AACLQ,gBAAAA,SAAAA,GAAYC,UACVC,SAAAA,CAAUC,qBAAAA,CAAWd,+BAAAA,CAAAA,CAAAA,EAErBe,6BAAAA,CAAoBzC,aAAakC,QAAQ,CAAA,CAAA;AAE7C,YAAA;AAEAZ,YAAAA,GAAAA,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,GAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAkB,EAAE,IAAA,CAAA;AAEhD,gBAAA;AACF,YAAA;AAEA,YAAA,MAAMkC,uBAAuBL,SAAAA,CAC3BC,SAAAA,CAAUC,sBAAWf,qCAAAA,CAAAA,CAAAA,EACrBmB,wCAAAA,CAA+B5C,aAAakC,QAAQ,CAAA,CAAA;AAGtDZ,YAAAA,GAAAA,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,GAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAW,EAAEG,KAAAA,CAAAA;AACzC,gBAAA,MAAM8B,sBAAAA,GAAyBjC,KAAAA,CAAMT,YAAY,CAACmC,eAAe;AAEjEb,gBAAAA,GAAAA,CACEb,KAAAA,EACA;AAAC,oBAAA,cAAA;AAAgB,oBAAA;AAAO,iBAAA,EACxB6B,SAAAA,CAAUC,SAAAA,CAAUC,qBAAAA,CAAWM,WAAAA,CAAAA,CAAAA,EAAeL,6BAAAA,CAAoB7B,KAAAA,CAAAA,CAAAA,CAAAA;AAGpEU,gBAAAA,GAAAA,CACEb,KAAAA,EACA;AAAC,oBAAA,cAAA;AAAgB,oBAAA;AAAkB,iBAAA,EACnC6B,SAAAA,CACEI,sBAAAA,IAA0BH,SAAAA,CAAUC,qBAAAA,CAAWf,yCAC/CmB,wCAAAA,CAA+BhC,KAAAA,CAAAA,CAAAA,CAAAA;AAInC,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIA,UAAU,QAAA,EAAU;AACtBU,gBAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAW,EAAE,UAAA,CAAA;AACzCa,gBAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAkB,EAAE,IAAA,CAAA;AAChDa,gBAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,oBAAA,cAAA;AAAgB,oBAAA;iBAAO,EAAE6B,SAAAA,CAAUC,UAAUO,WAAAA,CAAAA,EAAc,CAAA,CAAA,CAAA;AAEvE,gBAAA;AACF,YAAA;;AAGAxB,YAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAW,EAAE,WAAA,CAAA;AACzCa,YAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAkB,EAAE,IAAA,CAAA;AAChDa,YAAAA,GAAAA,CAAIb,KAAAA,EAAO;AAAC,gBAAA,cAAA;AAAgB,gBAAA;aAAO,EAAE6B,SAAAA,CAAUC,UAAUO,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,SAAAA,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,GAAAA,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;;;;;;"}
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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"}
@@ -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 = upperFirst(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} (${upperFirst(info.category)} - ${upperFirst(info.name)})`;
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":";;;;;;;;;;;;AAwCO,MAAMA,eAAAA,GAAkB,CAAC,EAC9BC,UAAAA,GAAa,IAAI,EACjBC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,iBAAiB,EACjBC,SAAS,EACTC,SAAAA,GAAY,IAAI,EAChBC,SAAS,EACTC,cAAAA,GAAiB,IAAI,EACrBC,YAAAA,GAAe,KAAK,EACC,GAAA;IACrB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGC,6BAAAA,EAAAA;IACrC,MAAM,EAAEC,mBAAmB,EAAE,GAAGC,6CAAAA,EAAAA;AAEhC,IAAA,IAAIC,IAAAA,GAAmB,WAAA;AACvB,IAAA,IAAIC,UAAoB,EAAE;IAE1B,MAAMC,IAAAA,GAAOd,cAAc,WAAA,GAAcO,UAAU,CAACL,SAAAA,CAAU,GAAGM,YAAY,CAACN,SAAAA,CAAU;IAExF,MAAMa,WAAAA,GAAcD,MAAME,IAAAA,CAAKD,WAAAA;AAE/B,IAAA,IAAId,cAAc,aAAA,EAAe;QAC/BW,IAAAA,GAAOd,eAAAA;AACT,IAAA;IAEA,IAAI;AAAC,QAAA;KAAY,CAACmB,QAAQ,CAAChB,SAAAA,IAAa,EAAA,CAAA,EAAK;QAC3CW,IAAAA,GAAO,WAAA;AACT,IAAA;AAEA,IAAA,MAAMM,oBAAAA,GAAuB;AAAC,QAAA,WAAA;AAAa,QAAA;KAAc,CAACD,QAAQ,CAAChB,SAAAA,IAAa,EAAA,CAAA;AAEhF,IAAA,IAAIiB,oBAAAA,EAAsB;AACxB,QAAA,IAAIC,QAAAA,GAAWC,eAAAA,CAAQ,CAAC,2BAA2B,EAAEzB,UAAAA,CAAAA,CAAY,CAAA;AAEjE,QAAA,IAAIM,cAAc,aAAA,EAAe;AAC/BkB,YAAAA,QAAAA,GAAWC,gBAAQ,CAAC,UAAU,EAAEtB,eAAAA,CAAgB,cAAc,CAAC,CAAA;AACjE,QAAA;AAEA,QAAA,IAAIH,eAAe,MAAA,EAAQ;YACzBwB,QAAAA,GAAWC,eAAAA,CAAQ,CAAC,qBAAqB,CAAC,CAAA;AAC5C,QAAA;QAEA,qBACEC,cAAA,CAACC,mBAAMC,MAAM,EAAA;AACX,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;;kCACCJ,cAAA,CAACK,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAL,cAAA,CAACM,2BAAAA,EAAAA;4BAAcb,IAAAA,EAAMF;;;kCAEvBS,cAAA,CAACK,gBAAAA,EAAAA;wBAAIE,WAAAA,EAAa,CAAA;gDAChBP,cAAA,CAACC,mBAAMO,KAAK,EAAA;sCAAExB,aAAAA,CAAc;gCAAEyB,EAAAA,EAAIX;6BAAS,EAAG;gCAAEY,IAAAA,EAAMhB;AAAY,6BAAA;;;;;;AAK5E,IAAA;IAEAF,OAAAA,GAAU;AACR,QAAA;YACEmB,KAAAA,EAAOjB,WAAAA;YACPC,IAAAA,EAAM;AACJiB,gBAAAA,QAAAA,EAAU,UAAC,IAAcnB,IAAAA,IAAQA,IAAAA,EAAMmB,QAAAA,IAAa,EAAA;AACpDF,gBAAAA,IAAAA,EAAMjB,MAAME,IAAAA,EAAMD;AACpB;AACF;AACD,KAAA;AAED,IAAA,IAAId,cAAc,iBAAA,EAAmB;AACnCW,QAAAA,IAAAA,GAAOZ,cAAc,WAAA,GAAc,WAAA,GAAc,UAAUc,IAAAA,GAAOA,IAAAA,CAAKoB,IAAI,GAAG,EAAA;AAChF,IAAA;AAEA,IAAA,IAAIjC,cAAc,2BAAA,EAA6B;QAC7CW,IAAAA,GAAO,aAAA;AACPC,QAAAA,OAAAA,CAAQsB,IAAI,CAAC;YAAEH,KAAAA,EAAOjC;AAAkB,SAAA,CAAA;AAC1C,IAAA;IAEA,IAAIE,SAAAA,KAAc,WAAA,IAAeA,SAAAA,KAAc,aAAA,EAAe;QAC5DW,IAAAA,GAAOf,aAAAA;AACPgB,QAAAA,OAAAA,CAAQsB,IAAI,CAAC;YAAEH,KAAAA,EAAOpC;AAAc,SAAA,CAAA;AACtC,IAAA;IAEA,qBACEyB,cAAA,CAACC,mBAAMC,MAAM,EAAA;AACX,QAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;YAAKW,GAAAA,EAAK,CAAA;;AACRhC,gBAAAA,YAAAA;8BAECiB,cAAA,CAACgB,iBAAAA,EAAAA;AACCC,oBAAAA,YAAAA,EAAYjC,aAAAA,CAAc;AACxByB,wBAAAA,EAAAA,EAAIV,eAAAA,CAAQ,uBAAA,CAAA;wBACZmB,cAAAA,EAAgB;AAClB,qBAAA,CAAA;AACAC,oBAAAA,SAAAA,gBAAWnB,cAAA,CAACoB,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMhC,mBAAAA,CAAoB;AAAEV,4BAAAA,SAAAA;AAAWE,4BAAAA;AAAU,yBAAA,CAAA;oBAC1DyC,IAAAA,EAAK,OAAA;oBACLC,UAAAA,EAAY;;8BAGhBvB,cAAA,CAACM,2BAAAA,EAAAA;oBAAcb,IAAAA,EAAMF,IAAAA;oBAAMiC,WAAAA,EAAa1C;;8BAExCkB,cAAA,CAACyB,wBAAAA,EAAAA;oBAAYd,KAAAA,EAAOnB,OAAAA,CAAQkC,GAAG,CAAC,CAAC,EAAEf,KAAK,EAAE,GAAKA,KAAAA,CAAAA,CAAOgB,IAAI,CAAC,GAAA,CAAA;8BACxDnC,OAAAA,CAAQkC,GAAG,CAAC,CAAC,EAAEf,KAAK,EAAEhB,IAAI,EAAE,EAAEiC,KAAAA,EAAOC,GAAAA,GAAAA;AACpClB,wBAAAA,KAAAA,GAAQmB,UAAAA,CAAWnB,KAAAA,CAAAA;AAEnB,wBAAA,IAAI,CAACA,KAAAA,EAAO;4BACV,OAAO,IAAA;AACT,wBAAA;AAEA,wBAAA,MAAMoB,GAAAA,GAAM,CAAA,EAAGpB,KAAAA,CAAM,CAAC,EAAEiB,KAAAA,CAAAA,CAAO;AAE/B,wBAAA,IAAIjC,MAAMiB,QAAAA,EAAU;AAClBD,4BAAAA,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,CAAM,EAAE,EAAEmB,WAAWnC,IAAAA,CAAKiB,QAAQ,CAAA,CAAE,GAAG,EAAEkB,UAAAA,CAAWnC,IAAAA,CAAKe,IAAI,CAAA,CAAE,CAAC,CAAC;AAC9E,wBAAA;AAEA,wBAAA,qBACEV,cAAA,CAACgC,kBAAAA,EAAAA;4BAAMC,SAAAA,EAAWL,KAAAA,KAAUC,GAAAA,CAAIK,MAAM,GAAG,CAAA;AACtCvB,4BAAAA,QAAAA,EAAAA;AAD8CoB,yBAAAA,EAAAA,GAAAA,CAAAA;AAIrD,oBAAA,CAAA;;;;;AAKV;;;;"}
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":";;;;;;;;;;;;;;;;AAwCO,MAAMA,eAAAA,GAAkB,CAAC,EAC9BC,UAAAA,GAAa,IAAI,EACjBC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,iBAAiB,EACjBC,SAAS,EACTC,SAAAA,GAAY,IAAI,EAChBC,SAAS,EACTC,cAAAA,GAAiB,IAAI,EACrBC,YAAAA,GAAe,KAAK,EACC,GAAA;IACrB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGC,6BAAAA,EAAAA;IACrC,MAAM,EAAEC,mBAAmB,EAAE,GAAGC,6CAAAA,EAAAA;AAEhC,IAAA,IAAIC,IAAAA,GAAmB,WAAA;AACvB,IAAA,IAAIC,UAAoB,EAAE;IAE1B,MAAMC,IAAAA,GAAOd,cAAc,WAAA,GAAcO,UAAU,CAACL,SAAAA,CAAU,GAAGM,YAAY,CAACN,SAAAA,CAAU;IAExF,MAAMa,WAAAA,GAAcD,MAAME,IAAAA,CAAKD,WAAAA;AAE/B,IAAA,IAAId,cAAc,aAAA,EAAe;QAC/BW,IAAAA,GAAOd,eAAAA;AACT,IAAA;IAEA,IAAI;AAAC,QAAA;KAAY,CAACmB,QAAQ,CAAChB,SAAAA,IAAa,EAAA,CAAA,EAAK;QAC3CW,IAAAA,GAAO,WAAA;AACT,IAAA;AAEA,IAAA,MAAMM,oBAAAA,GAAuB;AAAC,QAAA,WAAA;AAAa,QAAA;KAAc,CAACD,QAAQ,CAAChB,SAAAA,IAAa,EAAA,CAAA;AAEhF,IAAA,IAAIiB,oBAAAA,EAAsB;AACxB,QAAA,IAAIC,QAAAA,GAAWC,eAAAA,CAAQ,CAAC,2BAA2B,EAAEzB,UAAAA,CAAAA,CAAY,CAAA;AAEjE,QAAA,IAAIM,cAAc,aAAA,EAAe;AAC/BkB,YAAAA,QAAAA,GAAWC,gBAAQ,CAAC,UAAU,EAAEtB,eAAAA,CAAgB,cAAc,CAAC,CAAA;AACjE,QAAA;AAEA,QAAA,IAAIH,eAAe,MAAA,EAAQ;YACzBwB,QAAAA,GAAWC,eAAAA,CAAQ,CAAC,qBAAqB,CAAC,CAAA;AAC5C,QAAA;QAEA,qBACEC,cAAA,CAACC,mBAAMC,MAAM,EAAA;AACX,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;;kCACCJ,cAAA,CAACK,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAL,cAAA,CAACM,2BAAAA,EAAAA;4BAAcb,IAAAA,EAAMF;;;kCAEvBS,cAAA,CAACK,gBAAAA,EAAAA;wBAAIE,WAAAA,EAAa,CAAA;gDAChBP,cAAA,CAACC,mBAAMO,KAAK,EAAA;sCAAExB,aAAAA,CAAc;gCAAEyB,EAAAA,EAAIX;6BAAS,EAAG;gCAAEY,IAAAA,EAAMhB;AAAY,6BAAA;;;;;;AAK5E,IAAA;IAEAF,OAAAA,GAAU;AACR,QAAA;YACEmB,KAAAA,EAAOjB,WAAAA;YACPC,IAAAA,EAAM;AACJiB,gBAAAA,QAAAA,EAAU,UAAC,IAAcnB,IAAAA,IAAQA,IAAAA,EAAMmB,QAAAA,IAAa,EAAA;AACpDF,gBAAAA,IAAAA,EAAMjB,MAAME,IAAAA,EAAMD;AACpB;AACF;AACD,KAAA;AAED,IAAA,IAAId,cAAc,iBAAA,EAAmB;AACnCW,QAAAA,IAAAA,GAAOZ,cAAc,WAAA,GAAc,WAAA,GAAc,UAAUc,IAAAA,GAAOA,IAAAA,CAAKoB,IAAI,GAAG,EAAA;AAChF,IAAA;AAEA,IAAA,IAAIjC,cAAc,2BAAA,EAA6B;QAC7CW,IAAAA,GAAO,aAAA;AACPC,QAAAA,OAAAA,CAAQsB,IAAI,CAAC;YAAEH,KAAAA,EAAOjC;AAAkB,SAAA,CAAA;AAC1C,IAAA;IAEA,IAAIE,SAAAA,KAAc,WAAA,IAAeA,SAAAA,KAAc,aAAA,EAAe;QAC5DW,IAAAA,GAAOf,aAAAA;AACPgB,QAAAA,OAAAA,CAAQsB,IAAI,CAAC;YAAEH,KAAAA,EAAOpC;AAAc,SAAA,CAAA;AACtC,IAAA;IAEA,qBACEyB,cAAA,CAACC,mBAAMC,MAAM,EAAA;AACX,QAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;YAAKW,GAAAA,EAAK,CAAA;;AACRhC,gBAAAA,YAAAA;8BAECiB,cAAA,CAACgB,iBAAAA,EAAAA;AACCC,oBAAAA,YAAAA,EAAYjC,aAAAA,CAAc;AACxByB,wBAAAA,EAAAA,EAAIV,eAAAA,CAAQ,uBAAA,CAAA;wBACZmB,cAAAA,EAAgB;AAClB,qBAAA,CAAA;AACAC,oBAAAA,SAAAA,gBAAWnB,cAAA,CAACoB,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMhC,mBAAAA,CAAoB;AAAEV,4BAAAA,SAAAA;AAAWE,4BAAAA;AAAU,yBAAA,CAAA;oBAC1DyC,IAAAA,EAAK,OAAA;oBACLC,UAAAA,EAAY;;8BAGhBvB,cAAA,CAACM,2BAAAA,EAAAA;oBAAcb,IAAAA,EAAMF,IAAAA;oBAAMiC,WAAAA,EAAa1C;;8BAExCkB,cAAA,CAACyB,wBAAAA,EAAAA;oBAAYd,KAAAA,EAAOnB,OAAAA,CAAQkC,GAAG,CAAC,CAAC,EAAEf,KAAK,EAAE,GAAKA,KAAAA,CAAAA,CAAOgB,IAAI,CAAC,GAAA,CAAA;8BACxDnC,OAAAA,CAAQkC,GAAG,CAAC,CAAC,EAAEf,KAAK,EAAEhB,IAAI,EAAE,EAAEiC,KAAAA,EAAOC,GAAAA,GAAAA;AACpClB,wBAAAA,KAAAA,GAAQmB,2BAAAA,CAAWnB,KAAAA,CAAAA;AAEnB,wBAAA,IAAI,CAACA,KAAAA,EAAO;4BACV,OAAO,IAAA;AACT,wBAAA;AAEA,wBAAA,MAAMoB,GAAAA,GAAM,CAAA,EAAGpB,KAAAA,CAAM,CAAC,EAAEiB,KAAAA,CAAAA,CAAO;AAE/B,wBAAA,IAAIjC,MAAMiB,QAAAA,EAAU;AAClBD,4BAAAA,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,CAAM,EAAE,EAAEmB,4BAAWnC,IAAAA,CAAKiB,QAAQ,CAAA,CAAE,GAAG,EAAEkB,2BAAAA,CAAWnC,IAAAA,CAAKe,IAAI,CAAA,CAAE,CAAC,CAAC;AAC9E,wBAAA;AAEA,wBAAA,qBACEV,cAAA,CAACgC,kBAAAA,EAAAA;4BAAMC,SAAAA,EAAWL,KAAAA,KAAUC,GAAAA,CAAIK,MAAM,GAAG,CAAA;AACtCvB,4BAAAA,QAAAA,EAAAA;AAD8CoB,yBAAAA,EAAAA,GAAAA,CAAAA;AAIrD,oBAAA,CAAA;;;;;AAKV;;;;"}
@@ -2,7 +2,8 @@
2
2
 
3
3
  var React = require('react');
4
4
 
5
- function _interopNamespaceDefault(e) {
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__*/_interopNamespaceDefault(React);
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":";;;;;;;;;;;;;;;;;;;;;;;AAiCA;AACO,MAAMA,0BAAAA,GAA6BC,gBAAAA,CAAMC,aAAa;;;;"}
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 ? upperFirst(formatMessage(intlLabel)) : '',
52
- name: upperFirst(attributeName),
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":";;;;;;;;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,UAAAA,CAAWhB,aAAAA,CAAcE,SAAAA,CAAAA,CAAAA,GAAc,EAAA;AACzDe,oBAAAA,IAAAA,EAAMD,UAAAA,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;;;;;"}
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 _interopNamespaceDefault(e) {
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__*/_interopNamespaceDefault(React);
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 ? formatISO(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, isEqual);
537
+ */ const MemoizedGenericInput = /*#__PURE__*/ React__namespace.memo(GenericInput, isEqual__default.default);
533
538
 
534
539
  exports.GenericInput = MemoizedGenericInput;
535
540
  //# sourceMappingURL=GenericInputs.js.map