@strapi/content-type-builder 5.9.0 → 5.10.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 (210) hide show
  1. package/dist/admin/chunks/ListView-CDnrvVrV.mjs +1184 -0
  2. package/dist/admin/chunks/ListView-CDnrvVrV.mjs.map +1 -0
  3. package/dist/admin/chunks/ListView-CQwvSbZH.js +1186 -0
  4. package/dist/admin/chunks/ListView-CQwvSbZH.js.map +1 -0
  5. package/dist/admin/chunks/ar-Df0f0-PT.js +52 -0
  6. package/dist/admin/chunks/ar-Df0f0-PT.js.map +1 -0
  7. package/dist/admin/chunks/ar-sRW9VFC-.mjs +49 -0
  8. package/dist/admin/chunks/ar-sRW9VFC-.mjs.map +1 -0
  9. package/dist/admin/chunks/cs-BpQ26jiq.mjs +136 -0
  10. package/dist/{_chunks/cs-ChL4LaFY.mjs.map → admin/chunks/cs-BpQ26jiq.mjs.map} +1 -1
  11. package/dist/admin/chunks/cs-DeTwqc7p.js +140 -0
  12. package/dist/{_chunks/cs-Ci3js5EC.js.map → admin/chunks/cs-DeTwqc7p.js.map} +1 -1
  13. package/dist/admin/chunks/de-BJkS06jF.js +194 -0
  14. package/dist/{_chunks/de-DnlblIOh.js.map → admin/chunks/de-BJkS06jF.js.map} +1 -1
  15. package/dist/admin/chunks/de-DSxx5_x-.mjs +190 -0
  16. package/dist/{_chunks/de-DsHQNzp2.mjs.map → admin/chunks/de-DSxx5_x-.mjs.map} +1 -1
  17. package/dist/admin/chunks/dk-BnjVZ7A_.mjs +180 -0
  18. package/dist/{_chunks/es-BE_zx2_w.mjs.map → admin/chunks/dk-BnjVZ7A_.mjs.map} +1 -1
  19. package/dist/admin/chunks/dk-CGm-qVH7.js +184 -0
  20. package/dist/{_chunks/dk-D3XnOjYz.js.map → admin/chunks/dk-CGm-qVH7.js.map} +1 -1
  21. package/dist/admin/chunks/en-BJUu34b0.js +217 -0
  22. package/dist/{_chunks/en-CXG5y_vo.js.map → admin/chunks/en-BJUu34b0.js.map} +1 -1
  23. package/dist/admin/chunks/en-Bhut8Yay.mjs +213 -0
  24. package/dist/{_chunks/en-jBwb53yg.mjs.map → admin/chunks/en-Bhut8Yay.mjs.map} +1 -1
  25. package/dist/admin/chunks/es-DG8g9igJ.mjs +180 -0
  26. package/dist/admin/chunks/es-DG8g9igJ.mjs.map +1 -0
  27. package/dist/admin/chunks/es-J8kvHlNy.js +184 -0
  28. package/dist/{_chunks/es-DL8lez9W.js.map → admin/chunks/es-J8kvHlNy.js.map} +1 -1
  29. package/dist/admin/chunks/fr-C6y35iY7.js +76 -0
  30. package/dist/admin/chunks/fr-C6y35iY7.js.map +1 -0
  31. package/dist/admin/chunks/fr-UpV34MHY.mjs +73 -0
  32. package/dist/admin/chunks/fr-UpV34MHY.mjs.map +1 -0
  33. package/dist/admin/chunks/id-BWM18ljw.mjs +163 -0
  34. package/dist/{_chunks/ru-DGSjru5m.mjs.map → admin/chunks/id-BWM18ljw.mjs.map} +1 -1
  35. package/dist/admin/chunks/id-BvxV6wLP.js +167 -0
  36. package/dist/{_chunks/ru-C8A_4j0w.js.map → admin/chunks/id-BvxV6wLP.js.map} +1 -1
  37. package/dist/admin/chunks/index-BQ2VO38W.js +7781 -0
  38. package/dist/admin/chunks/index-BQ2VO38W.js.map +1 -0
  39. package/dist/admin/chunks/index-BZeN5KRn.js +1421 -0
  40. package/dist/admin/chunks/index-BZeN5KRn.js.map +1 -0
  41. package/dist/admin/chunks/index-BhX2euW0.mjs +1384 -0
  42. package/dist/admin/chunks/index-BhX2euW0.mjs.map +1 -0
  43. package/dist/admin/chunks/index-Cr5tfW7U.mjs +7754 -0
  44. package/dist/admin/chunks/index-Cr5tfW7U.mjs.map +1 -0
  45. package/dist/admin/chunks/it-1_vd9gV4.mjs +164 -0
  46. package/dist/{_chunks/tr-DsUerr-c.mjs.map → admin/chunks/it-1_vd9gV4.mjs.map} +1 -1
  47. package/dist/admin/chunks/it-C_IgFU-G.js +168 -0
  48. package/dist/{_chunks/sk-raWRcmPT.js.map → admin/chunks/it-C_IgFU-G.js.map} +1 -1
  49. package/dist/admin/chunks/ja-CWo4Qqq6.js +51 -0
  50. package/dist/admin/chunks/ja-CWo4Qqq6.js.map +1 -0
  51. package/dist/admin/chunks/ja-Cx23a2Ui.mjs +48 -0
  52. package/dist/admin/chunks/ja-Cx23a2Ui.mjs.map +1 -0
  53. package/dist/admin/chunks/ko-BsByJNEl.js +184 -0
  54. package/dist/admin/chunks/ko-BsByJNEl.js.map +1 -0
  55. package/dist/admin/chunks/ko-DC7paEx5.mjs +180 -0
  56. package/dist/admin/chunks/ko-DC7paEx5.mjs.map +1 -0
  57. package/dist/admin/chunks/ms-C3s4kxq6.mjs +160 -0
  58. package/dist/{_chunks/id-W1sKBFEw.mjs.map → admin/chunks/ms-C3s4kxq6.mjs.map} +1 -1
  59. package/dist/admin/chunks/ms-DPTzS7SH.js +164 -0
  60. package/dist/{_chunks/th-C83Bb_kR.js.map → admin/chunks/ms-DPTzS7SH.js.map} +1 -1
  61. package/dist/admin/chunks/nl-TzvfktV_.mjs +153 -0
  62. package/dist/{_chunks/nl-BaTAuelQ.mjs.map → admin/chunks/nl-TzvfktV_.mjs.map} +1 -1
  63. package/dist/admin/chunks/nl-db29QMOx.js +157 -0
  64. package/dist/{_chunks/nl-DQjrDEw0.js.map → admin/chunks/nl-db29QMOx.js.map} +1 -1
  65. package/dist/admin/chunks/pl-BdvupIN_.mjs +190 -0
  66. package/dist/admin/chunks/pl-BdvupIN_.mjs.map +1 -0
  67. package/dist/admin/chunks/pl-pYy1djj3.js +194 -0
  68. package/dist/admin/chunks/pl-pYy1djj3.js.map +1 -0
  69. package/dist/admin/chunks/pt-BQmWcdeG.js +52 -0
  70. package/dist/admin/chunks/pt-BQmWcdeG.js.map +1 -0
  71. package/dist/admin/chunks/pt-BR-CTPuXGWF.js +194 -0
  72. package/dist/{_chunks/pt-BR-DPd5nRnl.js.map → admin/chunks/pt-BR-CTPuXGWF.js.map} +1 -1
  73. package/dist/admin/chunks/pt-BR-DPrVmKeZ.mjs +190 -0
  74. package/dist/{_chunks/pt-BR-CCQGwXs0.mjs.map → admin/chunks/pt-BR-DPrVmKeZ.mjs.map} +1 -1
  75. package/dist/admin/chunks/pt-BTLIwmCv.mjs +49 -0
  76. package/dist/admin/chunks/pt-BTLIwmCv.mjs.map +1 -0
  77. package/dist/admin/chunks/ru-D46no502.mjs +165 -0
  78. package/dist/{_chunks/dk-BC7NAQR2.mjs.map → admin/chunks/ru-D46no502.mjs.map} +1 -1
  79. package/dist/admin/chunks/ru-DQiDXgUV.js +169 -0
  80. package/dist/admin/chunks/ru-DQiDXgUV.js.map +1 -0
  81. package/dist/admin/chunks/sk-Byr_l4Jc.mjs +164 -0
  82. package/dist/{_chunks/ko-DoNsXHXA.mjs.map → admin/chunks/sk-Byr_l4Jc.mjs.map} +1 -1
  83. package/dist/admin/chunks/sk-DrnebmXb.js +168 -0
  84. package/dist/{_chunks/it-DS4sM3km.js.map → admin/chunks/sk-DrnebmXb.js.map} +1 -1
  85. package/dist/admin/chunks/sv-Bbam7IDm.mjs +199 -0
  86. package/dist/admin/chunks/sv-Bbam7IDm.mjs.map +1 -0
  87. package/dist/admin/chunks/sv-CrWlNosi.js +203 -0
  88. package/dist/admin/chunks/sv-CrWlNosi.js.map +1 -0
  89. package/dist/admin/chunks/th-BbrCkfgX.js +165 -0
  90. package/dist/{_chunks/id-DYuTgqcc.js.map → admin/chunks/th-BbrCkfgX.js.map} +1 -1
  91. package/dist/admin/chunks/th-hfS0Wmk_.mjs +161 -0
  92. package/dist/{_chunks/it-D04lb2Wc.mjs.map → admin/chunks/th-hfS0Wmk_.mjs.map} +1 -1
  93. package/dist/admin/chunks/tr-CHdMj8m6.js +180 -0
  94. package/dist/admin/chunks/tr-CHdMj8m6.js.map +1 -0
  95. package/dist/admin/chunks/tr-DS7DBOhC.mjs +176 -0
  96. package/dist/admin/chunks/tr-DS7DBOhC.mjs.map +1 -0
  97. package/dist/admin/chunks/uk-BQEQ3weH.js +165 -0
  98. package/dist/{_chunks/uk-VwB0oiuV.js.map → admin/chunks/uk-BQEQ3weH.js.map} +1 -1
  99. package/dist/admin/chunks/uk-Cj8-BKeu.mjs +161 -0
  100. package/dist/{_chunks/sk-DVK4HfSC.mjs.map → admin/chunks/uk-Cj8-BKeu.mjs.map} +1 -1
  101. package/dist/admin/chunks/zh-BUVXH75-.mjs +199 -0
  102. package/dist/admin/chunks/zh-BUVXH75-.mjs.map +1 -0
  103. package/dist/admin/chunks/zh-CWj4avQA.js +203 -0
  104. package/dist/admin/chunks/zh-CWj4avQA.js.map +1 -0
  105. package/dist/admin/chunks/zh-Hans-BElOnuRb.mjs +144 -0
  106. package/dist/{_chunks/zh-Hans-Cc0M5PXr.mjs.map → admin/chunks/zh-Hans-BElOnuRb.mjs.map} +1 -1
  107. package/dist/admin/chunks/zh-Hans-lXbNiMp9.js +148 -0
  108. package/dist/{_chunks/zh-Hans-CLTLm_nt.js.map → admin/chunks/zh-Hans-lXbNiMp9.js.map} +1 -1
  109. package/dist/admin/index.js +24 -4
  110. package/dist/admin/index.js.map +1 -1
  111. package/dist/admin/index.mjs +17 -7
  112. package/dist/admin/index.mjs.map +1 -1
  113. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +5 -2
  114. package/dist/admin/src/components/DataManagerProvider/reducer.d.ts +97 -6
  115. package/dist/admin/src/components/FormModal/reducer.d.ts +110 -4
  116. package/dist/admin/src/components/ListRow.d.ts +2 -1
  117. package/dist/admin/src/contexts/DataManagerContext.d.ts +4 -4
  118. package/dist/admin/src/index.d.ts +2 -1
  119. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +1 -2
  120. package/dist/admin/src/pluginId.d.ts +1 -1
  121. package/dist/admin/src/reducers.d.ts +8 -1
  122. package/dist/admin/src/types.d.ts +2 -5
  123. package/dist/server/index.js +2504 -2151
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/index.mjs +2500 -2147
  126. package/dist/server/index.mjs.map +1 -1
  127. package/package.json +13 -10
  128. package/dist/_chunks/ListView-B7k6NgwS.mjs +0 -959
  129. package/dist/_chunks/ListView-B7k6NgwS.mjs.map +0 -1
  130. package/dist/_chunks/ListView-CsRxS9zZ.js +0 -964
  131. package/dist/_chunks/ListView-CsRxS9zZ.js.map +0 -1
  132. package/dist/_chunks/ar-BYDB75EB.mjs +0 -51
  133. package/dist/_chunks/ar-BYDB75EB.mjs.map +0 -1
  134. package/dist/_chunks/ar-OCxhAFUy.js +0 -51
  135. package/dist/_chunks/ar-OCxhAFUy.js.map +0 -1
  136. package/dist/_chunks/cs-ChL4LaFY.mjs +0 -139
  137. package/dist/_chunks/cs-Ci3js5EC.js +0 -139
  138. package/dist/_chunks/de-DnlblIOh.js +0 -193
  139. package/dist/_chunks/de-DsHQNzp2.mjs +0 -193
  140. package/dist/_chunks/dk-BC7NAQR2.mjs +0 -183
  141. package/dist/_chunks/dk-D3XnOjYz.js +0 -183
  142. package/dist/_chunks/en-CXG5y_vo.js +0 -216
  143. package/dist/_chunks/en-jBwb53yg.mjs +0 -216
  144. package/dist/_chunks/es-BE_zx2_w.mjs +0 -183
  145. package/dist/_chunks/es-DL8lez9W.js +0 -183
  146. package/dist/_chunks/fr-DnTxugIo.js +0 -75
  147. package/dist/_chunks/fr-DnTxugIo.js.map +0 -1
  148. package/dist/_chunks/fr-lU_OMJma.mjs +0 -75
  149. package/dist/_chunks/fr-lU_OMJma.mjs.map +0 -1
  150. package/dist/_chunks/id-DYuTgqcc.js +0 -166
  151. package/dist/_chunks/id-W1sKBFEw.mjs +0 -166
  152. package/dist/_chunks/index-97hm9i_H.mjs +0 -1331
  153. package/dist/_chunks/index-97hm9i_H.mjs.map +0 -1
  154. package/dist/_chunks/index-B5tHY87r.mjs +0 -6694
  155. package/dist/_chunks/index-B5tHY87r.mjs.map +0 -1
  156. package/dist/_chunks/index-BgMd59JL.js +0 -6730
  157. package/dist/_chunks/index-BgMd59JL.js.map +0 -1
  158. package/dist/_chunks/index-Cr85ijm8.js +0 -1357
  159. package/dist/_chunks/index-Cr85ijm8.js.map +0 -1
  160. package/dist/_chunks/it-D04lb2Wc.mjs +0 -167
  161. package/dist/_chunks/it-DS4sM3km.js +0 -167
  162. package/dist/_chunks/ja-BHLK_2_g.mjs +0 -50
  163. package/dist/_chunks/ja-BHLK_2_g.mjs.map +0 -1
  164. package/dist/_chunks/ja-BjouJgZf.js +0 -50
  165. package/dist/_chunks/ja-BjouJgZf.js.map +0 -1
  166. package/dist/_chunks/ko-D_71Pdfn.js +0 -183
  167. package/dist/_chunks/ko-D_71Pdfn.js.map +0 -1
  168. package/dist/_chunks/ko-DoNsXHXA.mjs +0 -183
  169. package/dist/_chunks/ms-BtGFDB9t.mjs +0 -163
  170. package/dist/_chunks/ms-BtGFDB9t.mjs.map +0 -1
  171. package/dist/_chunks/ms-Re1pSHmx.js +0 -163
  172. package/dist/_chunks/ms-Re1pSHmx.js.map +0 -1
  173. package/dist/_chunks/nl-BaTAuelQ.mjs +0 -156
  174. package/dist/_chunks/nl-DQjrDEw0.js +0 -156
  175. package/dist/_chunks/pl-BGwXgwH7.js +0 -193
  176. package/dist/_chunks/pl-BGwXgwH7.js.map +0 -1
  177. package/dist/_chunks/pl-CP2Zgp01.mjs +0 -193
  178. package/dist/_chunks/pl-CP2Zgp01.mjs.map +0 -1
  179. package/dist/_chunks/pt-BR-CCQGwXs0.mjs +0 -193
  180. package/dist/_chunks/pt-BR-DPd5nRnl.js +0 -193
  181. package/dist/_chunks/pt-CJoUDTHQ.js +0 -51
  182. package/dist/_chunks/pt-CJoUDTHQ.js.map +0 -1
  183. package/dist/_chunks/pt-DMeTMW2x.mjs +0 -51
  184. package/dist/_chunks/pt-DMeTMW2x.mjs.map +0 -1
  185. package/dist/_chunks/ru-C8A_4j0w.js +0 -168
  186. package/dist/_chunks/ru-DGSjru5m.mjs +0 -168
  187. package/dist/_chunks/sk-DVK4HfSC.mjs +0 -167
  188. package/dist/_chunks/sk-raWRcmPT.js +0 -167
  189. package/dist/_chunks/sv-BGb12eW3.mjs +0 -202
  190. package/dist/_chunks/sv-BGb12eW3.mjs.map +0 -1
  191. package/dist/_chunks/sv-BNN71SFE.js +0 -202
  192. package/dist/_chunks/sv-BNN71SFE.js.map +0 -1
  193. package/dist/_chunks/th--u3VqsON.mjs +0 -164
  194. package/dist/_chunks/th--u3VqsON.mjs.map +0 -1
  195. package/dist/_chunks/th-C83Bb_kR.js +0 -164
  196. package/dist/_chunks/tr-BW20CfcO.js +0 -179
  197. package/dist/_chunks/tr-BW20CfcO.js.map +0 -1
  198. package/dist/_chunks/tr-DsUerr-c.mjs +0 -179
  199. package/dist/_chunks/uk-Bx5IlOKX.mjs +0 -164
  200. package/dist/_chunks/uk-Bx5IlOKX.mjs.map +0 -1
  201. package/dist/_chunks/uk-VwB0oiuV.js +0 -164
  202. package/dist/_chunks/zh-BiOCwPJu.js +0 -202
  203. package/dist/_chunks/zh-BiOCwPJu.js.map +0 -1
  204. package/dist/_chunks/zh-CsUDN13W.mjs +0 -202
  205. package/dist/_chunks/zh-CsUDN13W.mjs.map +0 -1
  206. package/dist/_chunks/zh-Hans-CLTLm_nt.js +0 -147
  207. package/dist/_chunks/zh-Hans-Cc0M5PXr.mjs +0 -147
  208. package/dist/admin/src/components/DataManagerProvider/constants.d.ts +0 -17
  209. package/dist/admin/src/components/FormModal/constants.d.ts +0 -12
  210. package/dist/admin/src/pages/RecursivePath/RecursivePath.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cr85ijm8.js","sources":["../../admin/src/constants.ts","../../admin/src/pluginId.ts","../../admin/src/utils/getRelationType.ts","../../admin/src/utils/makeUnique.ts","../../admin/src/components/DataManagerProvider/constants.ts","../../admin/src/components/DataManagerProvider/utils/retrieveComponentsFromSchema.ts","../../admin/src/components/DataManagerProvider/reducer.ts","../../admin/src/utils/nameToSlug.ts","../../admin/src/components/FormModal/constants.ts","../../admin/src/components/FormModal/utils/createUid.ts","../../admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.ts","../../admin/src/components/FormModal/utils/relations.ts","../../admin/src/components/FormModal/reducer.ts","../../admin/src/reducers.ts","../../admin/src/utils/formAPI.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/components/AutoReloadOverlayBlocker.tsx","../../admin/src/index.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [{ action: 'plugin::content-type-builder.read', subject: null }],\n};\n\nexport const MAX_COMPONENT_DEPTH = 6;\n","import pluginPkg from '../../package.json';\n\nexport const pluginId = pluginPkg.name.replace(/^@strapi\\//i, '');\n","import type { Schema } from '@strapi/types';\n\n/**\n *\n * Retrieves the relation type\n */\nexport const getRelationType = (\n relation: Schema.Attribute.RelationKind.WithTarget | undefined,\n targetAttribute?: string | null\n) => {\n const hasNotTargetAttribute = targetAttribute === undefined || targetAttribute === null;\n\n if (relation === 'oneToOne' && hasNotTargetAttribute) {\n return 'oneWay';\n }\n\n if (relation === 'oneToMany' && hasNotTargetAttribute) {\n return 'manyWay';\n }\n\n return relation;\n};\n","const makeUnique = <T extends string>(array: T[]): T[] => [...new Set(array)];\n\nexport { makeUnique };\n","export const ADD_ATTRIBUTE = 'ContentTypeBuilder/DataManagerProvider/ADD_ATTRIBUTE';\nexport const ADD_CUSTOM_FIELD_ATTRIBUTE =\n 'ContentTypeBuilder/DataManagerProvider/ADD_CUSTOM_FIELD_ATTRIBUTE';\nexport const ADD_CREATED_COMPONENT_TO_DYNAMIC_ZONE =\n 'ContentTypeBuilder/DataManagerProvider/ADD_CREATED_COMPONENT_TO_DYNAMIC_ZONE';\nexport const CHANGE_DYNAMIC_ZONE_COMPONENTS =\n 'ContentTypeBuilder/DataManagerProvider/CHANGE_DYNAMIC_ZONE_COMPONENTS';\nexport const CREATE_SCHEMA = 'ContentTypeBuilder/DataManagerProvider/CREATE_SCHEMA';\nexport const CREATE_COMPONENT_SCHEMA =\n 'ContentTypeBuilder/DataManagerProvider/CREATE_COMPONENT_SCHEMA';\nexport const DELETE_NOT_SAVED_TYPE = 'ContentTypeBuilder/DataManagerProvider/DELETE_NOT_SAVED_TYPE';\nexport const EDIT_ATTRIBUTE = 'ContentTypeBuilder/DataManagerProvider/EDIT_ATTRIBUTE';\nexport const EDIT_CUSTOM_FIELD_ATTRIBUTE =\n 'ContentTypeBuilder/DataManagerProvider/EDIT_CUSTOM_FIELD_ATTRIBUTE';\nexport const GET_DATA_SUCCEEDED = 'ContentTypeBuilder/DataManagerProvider/GET_DATA_SUCCEEDED';\nexport const RELOAD_PLUGIN = 'ContentTypeBuilder/DataManagerProvider/RELOAD_PLUGIN';\nexport const REMOVE_FIELD_FROM_DISPLAYED_COMPONENT =\n 'ContentTypeBuilder/DataManagerProvider/REMOVE_FIELD_FROM_DISPLAYED_COMPONENT';\nexport const REMOVE_COMPONENT_FROM_DYNAMIC_ZONE =\n 'ContentTypeBuilder/DataManagerProvider/REMOVE_COMPONENT_FROM_DYNAMIC_ZONE';\nexport const REMOVE_FIELD = 'ContentTypeBuilder/DataManagerProvider/REMOVE_FIELD';\nexport const SET_MODIFIED_DATA = 'ContentTypeBuilder/DataManagerProvider/SET_MODIFIED_DATA';\nexport const UPDATE_SCHEMA = 'ContentTypeBuilder/DataManagerProvider/UPDATE_SCHEMA';\nexport const UPDATE_INITIAL_STATE = 'ContentTypeBuilder/DataManagerProvider/UPDATE_INITIAL_STATE';\n","import get from 'lodash/get';\n\nimport { makeUnique } from '../../../utils/makeUnique';\n\nimport type { AttributeType, Components } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nconst retrieveComponentsFromSchema = (\n attributes: AttributeType[],\n allComponentsData: Components\n): Internal.UID.Component[] => {\n const allComponents: Internal.UID.Component[] = attributes.reduce((acc: any, current) => {\n const type = current.type;\n if (type === 'component') {\n const currentComponentName = current.component;\n // Push the existing compo\n acc.push(currentComponentName);\n\n const currentComponentAttributes = get(\n allComponentsData,\n [currentComponentName, 'schema', 'attributes'],\n []\n );\n\n // Retrieve the nested ones\n acc.push(...retrieveComponentsFromSchema(currentComponentAttributes, allComponentsData));\n }\n\n if (type === 'dynamiczone') {\n const dynamicZoneComponents = current.components;\n const componentsFromDZComponents = dynamicZoneComponents.reduce((acc2: any, currentUid) => {\n const compoAttrs = get(allComponentsData, [currentUid, 'schema', 'attributes'], []);\n\n return [...acc2, ...retrieveComponentsFromSchema(compoAttrs, allComponentsData)];\n }, []);\n\n return [...acc, ...dynamicZoneComponents, ...componentsFromDZComponents];\n }\n\n return acc;\n }, []);\n\n return makeUnique<Internal.UID.Component>(allComponents);\n};\n\nexport { retrieveComponentsFromSchema };\n","import produce, { current } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport * as actions from './constants';\nimport { retrieveComponentsFromSchema } from './utils/retrieveComponentsFromSchema';\n\nimport type { DataManagerStateType, ContentType, AttributeType, Component } from '../../types';\nimport type { Internal, Schema } from '@strapi/types';\n\n// TODO: Define all possible actions based on type\nexport type Action = {\n type: string;\n uid?: string;\n mainDataKey: 'component' | 'components' | 'contentTypes' | 'contentType';\n schemaType: 'component' | 'contentType';\n attributeToRemoveName?: string;\n [key: string]: any;\n};\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n initialData: {},\n modifiedData: {\n components: {},\n contentTypes: {},\n },\n reservedNames: {},\n isLoading: true,\n isLoadingForDataToBeSet: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.WithTarget) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (schema: any, attributeToFind?: string) => {\n return schema.schema.attributes.findIndex(\n ({ name }: { name: string }) => name === attributeToFind\n );\n};\n\nconst reducer = (state = initialState, action: Action) =>\n produce(state, (draftState: any) => {\n switch (action.type) {\n case actions.ADD_ATTRIBUTE: {\n const {\n attributeToSet: { name, ...rest },\n forTarget,\n targetUid,\n } = action;\n delete rest.createComponent;\n\n const pathToDataToEdit = ['component', 'contentType'].includes(forTarget)\n ? [forTarget]\n : [forTarget, targetUid];\n\n const currentAttributes = get(\n state,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n []\n ).slice();\n\n // Add the createdAttribute\n const updatedAttributes = [...currentAttributes, { ...rest, name }];\n\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n updatedAttributes\n );\n\n if (action.shouldAddComponentToData) {\n const componentToAddUID = rest.component;\n const componentToAdd = state.components[componentToAddUID];\n const isTemporaryComponent = componentToAdd?.isTemporary;\n const hasComponentAlreadyBeenAdded =\n state.modifiedData.components?.[componentToAddUID] !== undefined;\n\n if (isTemporaryComponent || hasComponentAlreadyBeenAdded) {\n break;\n }\n\n // Initialize modifiedData.components if it is undefined\n if (!draftState.modifiedData.components) {\n draftState.modifiedData.components = {};\n }\n\n // Add the added component to the modifiedData.components\n draftState.modifiedData.components[componentToAddUID] = componentToAdd;\n\n const nestedComponents = retrieveComponentsFromSchema(\n componentToAdd.schema.attributes as AttributeType[],\n state.components\n );\n\n // We dont' need to set the already added components otherwise all modifications will be lost so we need to only add the not modified ones\n const nestedComponentsToAddInModifiedData = nestedComponents.filter(\n (compoUID: Internal.UID.Component) => {\n return get(state, ['modifiedData', 'components', compoUID]) === undefined;\n }\n );\n\n nestedComponentsToAddInModifiedData.forEach((compoUID: Internal.UID.Component) => {\n const compoSchema = get(state, ['components', compoUID], {}) as Component;\n const isTemporary = compoSchema.isTemporary || false;\n\n // If the nested component has not been saved we don't need to add them as they are already in the state\n if (!isTemporary) {\n if (!draftState.modifiedData.components) {\n draftState.modifiedData.components = {};\n }\n draftState.modifiedData.components[compoUID] = compoSchema;\n }\n });\n\n break;\n }\n\n const isCreatingRelationAttribute = rest.type === 'relation';\n\n if (isCreatingRelationAttribute) {\n const target = rest.target;\n const targetAttribute = rest.targetAttribute || null;\n const relation = rest.relation;\n const relationType = getRelationType(relation, targetAttribute);\n const currentUid = get(state, ['modifiedData', ...pathToDataToEdit, 'uid']);\n\n // When the user in creating a relation with the same content type we need to create another attribute\n // that is the opposite of the created one\n if (\n rest.type === 'relation' &&\n relationType !== 'oneWay' &&\n relationType !== 'manyWay' &&\n target === currentUid\n ) {\n const oppositeAttribute = {\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target,\n targetAttribute: name,\n type: 'relation',\n } as AttributeType;\n\n if (rest.private) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n oppositeAttribute.private = rest.private;\n }\n\n const attributesToSet = [...updatedAttributes, oppositeAttribute];\n\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n attributesToSet\n );\n }\n }\n\n break;\n }\n case actions.ADD_CREATED_COMPONENT_TO_DYNAMIC_ZONE: {\n const { dynamicZoneTarget, componentsToAdd } = action;\n\n const dzAttributeIndex = findAttributeIndex(\n state.modifiedData.contentType,\n dynamicZoneTarget\n );\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n if (\n !draftState.modifiedData.contentType?.schema.attributes[dzAttributeIndex].components\n ) {\n draftState.modifiedData.contentType.schema.attributes[dzAttributeIndex].components = [];\n }\n draftState.modifiedData.contentType.schema.attributes[dzAttributeIndex].components.push(\n componentUid\n );\n });\n\n break;\n }\n case actions.ADD_CUSTOM_FIELD_ATTRIBUTE: {\n const {\n attributeToSet: { name, ...rest },\n forTarget,\n targetUid,\n } = action;\n\n const pathToDataToEdit = ['component', 'contentType'].includes(forTarget)\n ? [forTarget]\n : [forTarget, targetUid];\n\n const currentAttributes = get(\n state,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n []\n ).slice();\n\n // Add the createdAttribute\n const updatedAttributes = [...currentAttributes, { ...rest, name }];\n\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n updatedAttributes\n );\n\n break;\n }\n case actions.CHANGE_DYNAMIC_ZONE_COMPONENTS: {\n const { dynamicZoneTarget, newComponents } = action;\n\n const dzAttributeIndex = findAttributeIndex(\n state.modifiedData.contentType,\n dynamicZoneTarget\n );\n\n const currentDZComponents =\n (state.modifiedData.contentType?.schema.attributes[dzAttributeIndex]).components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n (draftState.modifiedData.contentType?.schema.attributes[dzAttributeIndex]).components =\n updatedComponents;\n\n // Retrieve all the components that needs to be added to the modifiedData.components\n const nestedComponents = retrieveComponentsFromSchema(\n current(draftState.modifiedData.contentType.schema.attributes),\n state.components\n );\n\n // We dont' need to set the already added components otherwise all modifications will be lost so we need to only add the not modified ones\n const nestedComponentsToAddInModifiedData = nestedComponents.filter((compoUID) => {\n return get(state, ['modifiedData', 'components', compoUID]) === undefined;\n });\n\n nestedComponentsToAddInModifiedData.forEach((compoUID: Internal.UID.Component) => {\n const compoSchema = get(state, ['components', compoUID], {}) as Component;\n const isTemporary = compoSchema.isTemporary || false;\n\n // If the nested component has not been saved we don't need to add them as they are already in the state\n if (!isTemporary) {\n if (!draftState.modifiedData.components) {\n draftState.modifiedData.components = {};\n }\n draftState.modifiedData.components[compoUID] = compoSchema;\n }\n });\n\n break;\n }\n case actions.CREATE_COMPONENT_SCHEMA: {\n const newSchema: Component = {\n uid: action.uid as Internal.UID.Component,\n isTemporary: true,\n category: action.componentCategory,\n schema: {\n ...action.data,\n attributes: [],\n },\n };\n draftState.components[action.uid as string] = newSchema;\n\n if (action.shouldAddComponentToData) {\n draftState.modifiedData.components[action.uid as string] = newSchema;\n }\n\n break;\n }\n case actions.CREATE_SCHEMA: {\n const newSchema: ContentType = {\n uid: action.uid as Internal.UID.ContentType,\n isTemporary: true,\n schema: {\n ...action.data,\n attributes: [],\n },\n };\n\n draftState.contentTypes[action.uid as string] = newSchema;\n\n break;\n }\n case actions.EDIT_ATTRIBUTE: {\n const {\n attributeToSet: { name, ...rest },\n forTarget,\n targetUid,\n initialAttribute,\n } = action;\n\n const initialAttributeName = initialAttribute.name;\n const pathToDataToEdit = ['component', 'contentType'].includes(forTarget)\n ? [forTarget]\n : [forTarget, targetUid];\n\n const initialAttributeIndex = findAttributeIndex(\n get(state, ['modifiedData', ...pathToDataToEdit]),\n initialAttributeName\n );\n\n const isEditingRelation = rest.type === 'relation';\n\n if (!isEditingRelation) {\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes', initialAttributeIndex],\n action.attributeToSet\n );\n\n break;\n }\n\n const updatedAttributes: AttributeType[] = get(state, [\n 'modifiedData',\n ...pathToDataToEdit,\n 'schema',\n 'attributes',\n ]).slice();\n\n // First create the current relation attribute updated\n const toSet = {\n name,\n relation: rest.relation,\n target: rest.target,\n targetAttribute: rest.targetAttribute,\n type: 'relation',\n } as AttributeType;\n\n if (rest.private) {\n toSet.private = rest.private;\n }\n\n if (rest.pluginOptions) {\n toSet.pluginOptions = rest.pluginOptions;\n }\n\n const currentAttributeIndex = updatedAttributes.findIndex((value: AttributeType) => {\n return value.name !== undefined && value.name === initialAttribute.name;\n });\n\n // First set it in the updatedAttributes\n if (currentAttributeIndex !== -1) {\n updatedAttributes.splice(currentAttributeIndex, 1, toSet);\n }\n\n let oppositeAttributeNameToRemove: string | null = null;\n let oppositeAttributeNameToUpdate: string | null = null;\n let oppositeAttributeToCreate: AttributeType | null = null;\n let initialOppositeAttribute = null;\n\n const currentUid = get(state, ['modifiedData', ...pathToDataToEdit, 'uid']);\n const didChangeTargetRelation = initialAttribute.target !== rest.target;\n const didCreateInternalRelation = rest.target === currentUid;\n const relationType = getRelationType(rest.relation, rest.targetAttribute);\n const initialRelationType = getRelationType(\n initialAttribute.relation,\n initialAttribute.targetAttribute\n );\n const hadInternalRelation = initialAttribute.target === currentUid;\n const didChangeRelationType = initialRelationType !== relationType;\n const shouldRemoveOppositeAttributeBecauseOfTargetChange =\n didChangeTargetRelation &&\n !didCreateInternalRelation &&\n hadInternalRelation &&\n isEditingRelation;\n const shouldRemoveOppositeAttributeBecauseOfRelationTypeChange =\n didChangeRelationType &&\n hadInternalRelation &&\n ['oneWay', 'manyWay'].includes(relationType!) &&\n isEditingRelation;\n const shouldUpdateOppositeAttributeBecauseOfRelationTypeChange =\n !ONE_SIDE_RELATIONS.includes(initialRelationType!) &&\n !ONE_SIDE_RELATIONS.includes(relationType!) &&\n hadInternalRelation &&\n didCreateInternalRelation &&\n isEditingRelation;\n const shouldCreateOppositeAttributeBecauseOfRelationTypeChange =\n ONE_SIDE_RELATIONS.includes(initialRelationType!) &&\n !ONE_SIDE_RELATIONS.includes(relationType!) &&\n hadInternalRelation &&\n didCreateInternalRelation &&\n isEditingRelation;\n const shouldCreateOppositeAttributeBecauseOfTargetChange =\n didChangeTargetRelation &&\n didCreateInternalRelation &&\n !ONE_SIDE_RELATIONS.includes(relationType!);\n\n // Store opposite attribute name to remove at the end of the loop\n if (\n shouldRemoveOppositeAttributeBecauseOfTargetChange ||\n shouldRemoveOppositeAttributeBecauseOfRelationTypeChange\n ) {\n oppositeAttributeNameToRemove = initialAttribute.targetAttribute;\n }\n\n // In case of oneWay or manyWay relation there isn't an opposite attribute\n if (oppositeAttributeNameToRemove) {\n const indexToRemove = updatedAttributes.findIndex(\n (value) => value.name === oppositeAttributeNameToRemove\n );\n\n updatedAttributes.splice(indexToRemove, 1);\n }\n\n // In order to preserve plugin options need to get the initial opposite attribute settings\n if (!shouldRemoveOppositeAttributeBecauseOfTargetChange) {\n const initialTargetContentType = get(state, [\n 'initialContentTypes',\n initialAttribute.target,\n ]);\n\n if (initialTargetContentType) {\n const oppositeAttributeIndex = findAttributeIndex(\n initialTargetContentType,\n initialAttribute.targetAttribute\n );\n\n initialOppositeAttribute = get(state, [\n 'initialContentTypes',\n initialAttribute.target,\n 'schema',\n 'attributes',\n oppositeAttributeIndex,\n ]);\n }\n }\n\n // Create the opposite attribute\n if (\n shouldCreateOppositeAttributeBecauseOfRelationTypeChange ||\n shouldCreateOppositeAttributeBecauseOfTargetChange\n ) {\n oppositeAttributeToCreate = {\n name: rest.targetAttribute,\n relation: getOppositeRelation(relationType),\n target: rest.target,\n targetAttribute: name,\n type: 'relation',\n } as AttributeType;\n\n if (rest.private) {\n oppositeAttributeToCreate.private = rest.private;\n }\n\n if (initialOppositeAttribute && initialOppositeAttribute.pluginOptions) {\n oppositeAttributeToCreate.pluginOptions = initialOppositeAttribute.pluginOptions;\n }\n\n const indexOfInitialAttribute = updatedAttributes.findIndex(\n ({ name }) => name === initialAttribute.name\n );\n const indexOfUpdatedAttribute = updatedAttributes.findIndex(\n ({ name: attrName }) => name === attrName\n );\n\n const indexToInsert =\n (indexOfInitialAttribute === -1 ? indexOfUpdatedAttribute : indexOfInitialAttribute) +\n 1;\n\n updatedAttributes.splice(indexToInsert, 0, oppositeAttributeToCreate);\n }\n\n if (shouldUpdateOppositeAttributeBecauseOfRelationTypeChange) {\n oppositeAttributeNameToUpdate = initialAttribute.targetAttribute;\n\n oppositeAttributeToCreate = {\n name: rest.targetAttribute,\n relation: getOppositeRelation(relationType),\n target: rest.target,\n targetAttribute: name,\n type: 'relation',\n } as AttributeType;\n\n if (rest.private) {\n oppositeAttributeToCreate.private = rest.private;\n }\n\n if (initialOppositeAttribute && initialOppositeAttribute.pluginOptions) {\n oppositeAttributeToCreate.pluginOptions = initialOppositeAttribute.pluginOptions;\n }\n\n if (oppositeAttributeNameToUpdate) {\n const indexToUpdate = updatedAttributes.findIndex(\n ({ name }) => name === oppositeAttributeNameToUpdate\n );\n\n updatedAttributes.splice(indexToUpdate, 1, oppositeAttributeToCreate);\n }\n }\n\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes'],\n updatedAttributes\n );\n\n break;\n }\n case actions.EDIT_CUSTOM_FIELD_ATTRIBUTE: {\n const { forTarget, targetUid, initialAttribute, attributeToSet } = action;\n\n const initialAttributeName = initialAttribute.name;\n const pathToDataToEdit = ['component', 'contentType'].includes(forTarget)\n ? [forTarget]\n : [forTarget, targetUid];\n\n const initialAttributeIndex = findAttributeIndex(\n get(state, ['modifiedData', ...pathToDataToEdit]),\n initialAttributeName\n );\n\n set(\n draftState,\n ['modifiedData', ...pathToDataToEdit, 'schema', 'attributes', initialAttributeIndex],\n attributeToSet\n );\n\n break;\n }\n case actions.GET_DATA_SUCCEEDED: {\n draftState.components = action.components;\n draftState.initialComponents = action.components;\n draftState.initialContentTypes = action.contentTypes;\n draftState.contentTypes = action.contentTypes;\n draftState.reservedNames = action.reservedNames;\n draftState.isLoading = false;\n break;\n }\n case actions.UPDATE_INITIAL_STATE: {\n draftState.initialData = draftState.modifiedData;\n\n break;\n }\n case actions.DELETE_NOT_SAVED_TYPE: {\n // Doing so will also reset the modified and the initial data\n draftState.contentTypes = state.initialContentTypes;\n draftState.components = state.initialComponents;\n\n break;\n }\n case actions.RELOAD_PLUGIN: {\n return initialState;\n }\n case actions.REMOVE_COMPONENT_FROM_DYNAMIC_ZONE: {\n const dzAttributeIndex = findAttributeIndex(state.modifiedData.contentType, action.dzName);\n draftState.modifiedData.contentType.schema.attributes[dzAttributeIndex].components.splice(\n action.componentToRemoveIndex,\n 1\n );\n\n break;\n }\n case actions.REMOVE_FIELD: {\n const { mainDataKey, attributeToRemoveName } = action;\n const pathToAttributes = ['modifiedData', mainDataKey, 'schema', 'attributes'];\n const attributeToRemoveIndex = findAttributeIndex(\n state.modifiedData[mainDataKey],\n attributeToRemoveName\n );\n\n const pathToAttributeToRemove = [...pathToAttributes, attributeToRemoveIndex];\n const attributeToRemoveData = get(state, pathToAttributeToRemove);\n const isRemovingRelationAttribute = attributeToRemoveData.type === 'relation';\n // Only content types can have relations with themselves since\n // components can only have oneWay or manyWay relations\n const canTheAttributeToRemoveHaveARelationWithItself = mainDataKey === 'contentType';\n\n if (isRemovingRelationAttribute && canTheAttributeToRemoveHaveARelationWithItself) {\n const { target, relation, targetAttribute } = attributeToRemoveData;\n const relationType = getRelationType(relation, targetAttribute);\n\n const uid = state.modifiedData.contentType?.uid;\n const shouldRemoveOppositeAttribute =\n target === uid && !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (shouldRemoveOppositeAttribute) {\n const attributes: AttributeType[] =\n state.modifiedData[mainDataKey]?.schema.attributes.slice();\n const nextAttributes = attributes.filter((attribute) => {\n if (attribute.name === attributeToRemoveName) {\n return false;\n }\n\n if (attribute.target === uid && attribute.targetAttribute === attributeToRemoveName) {\n return false;\n }\n\n return true;\n });\n\n draftState.modifiedData[mainDataKey].schema.attributes = nextAttributes;\n\n break;\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n\n const uidFieldsToUpdate: string[] = state.modifiedData[\n mainDataKey\n ]!.schema.attributes.slice().reduce((acc: string[], current: AttributeType) => {\n if (current.type !== 'uid') {\n return acc;\n }\n\n if (current.targetField !== attributeToRemoveName) {\n return acc;\n }\n\n acc.push(current.name as string);\n\n return acc;\n }, []);\n\n uidFieldsToUpdate.forEach((fieldName) => {\n const fieldIndex = findAttributeIndex(state.modifiedData[mainDataKey], fieldName);\n\n delete draftState.modifiedData[mainDataKey]?.schema.attributes[fieldIndex].targetField;\n });\n\n draftState.modifiedData[mainDataKey]?.schema.attributes.splice(attributeToRemoveIndex, 1);\n\n break;\n }\n case actions.REMOVE_FIELD_FROM_DISPLAYED_COMPONENT: {\n const { attributeToRemoveName, componentUid } = action;\n\n const attributeToRemoveIndex = findAttributeIndex(\n state.modifiedData.components?.[componentUid],\n attributeToRemoveName\n );\n\n draftState.modifiedData.components?.[componentUid]?.schema?.attributes?.splice(\n attributeToRemoveIndex,\n 1\n );\n\n break;\n }\n case actions.SET_MODIFIED_DATA: {\n draftState.isLoadingForDataToBeSet = false;\n draftState.initialData = action.schemaToSet;\n draftState.modifiedData = action.schemaToSet;\n\n // Reset the state with the initial data\n // All created components and content types will be lost\n if (!action.hasJustCreatedSchema) {\n draftState.components = state.initialComponents;\n draftState.contentTypes = state.initialContentTypes;\n }\n\n break;\n }\n case actions.UPDATE_SCHEMA: {\n const {\n data: { displayName, category, icon, kind },\n schemaType,\n uid,\n } = action;\n\n draftState.modifiedData[schemaType].schema.displayName = displayName;\n\n if (action.schemaType === 'component') {\n draftState.modifiedData.component.category = category;\n draftState.modifiedData.component.schema.icon = icon;\n const addedComponent = current(draftState.modifiedData.component);\n draftState.components[uid as string] = addedComponent;\n\n break;\n }\n\n draftState.modifiedData.contentType.schema.kind = kind;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import slugify from '@sindresorhus/slugify';\n\nexport const nameToSlug = (name: string) => slugify(name, { separator: '-' });\n","export const ON_CHANGE = 'ContentTypeBuilder/FormModal/ON_CHANGE';\nexport const ON_CHANGE_RELATION_TARGET = 'ContentTypeBuilder/FormModal/ON_CHANGE_RELATION_TARGET';\nexport const ON_CHANGE_RELATION_TYPE = 'ContentTypeBuilder/FormModal/ON_CHANGE_RELATION_TYPE';\nexport const RESET_PROPS = 'ContentTypeBuilder/FormModal/RESET_PROPS';\nexport const RESET_PROPS_AND_SET_FORM_FOR_ADDING_AN_EXISTING_COMPO =\n 'ContentTypeBuilder/FormModal/RESET_PROPS_AND_SET_FORM_FOR_ADDING_AN_EXISTING_COMPO';\nexport const RESET_PROPS_AND_SAVE_CURRENT_DATA =\n 'ContentTypeBuilder/FormModal/RESET_PROPS_AND_SAVE_CURRENT_DATA';\nexport const RESET_PROPS_AND_SET_THE_FORM_FOR_ADDING_A_COMPO_TO_A_DZ =\n 'ContentTypeBuilder/FormModal/RESET_PROPS_AND_SET_THE_FORM_FOR_ADDING_A_COMPO_TO_A_DZ';\nexport const SET_DATA_TO_EDIT = 'ContentTypeBuilder/FormModal/SET_DATA_TO_EDIT';\nexport const SET_ATTRIBUTE_DATA_SCHEMA = 'ContentTypeBuilder/FormModal/SET_ATTRIBUTE_DATA_SCHEMA';\nexport const SET_CUSTOM_FIELD_DATA_SCHEMA =\n 'ContentTypeBuilder/FormModal/SET_CUSTOM_FIELD_DATA_SCHEMA';\nexport const SET_DYNAMIC_ZONE_DATA_SCHEMA =\n 'ContentTypeBuilder/FormModal/SET_DYNAMIC_ZONE_DATA_SCHEMA';\nexport const SET_ERRORS = 'ContentTypeBuilder/FormModal/SET_ERRORS';\n","import { nameToSlug } from '../../../utils/nameToSlug';\n\nimport type { Internal } from '@strapi/types';\n\nconst createUid = (name: string): Internal.UID.ContentType => {\n const modelName = nameToSlug(name);\n return `api::${modelName}.${modelName}`;\n};\n\n// From `content-type-builder/services/Components/createComponentUid`\nconst createComponentUid = (name: string, category: string): Internal.UID.Component => {\n return `${nameToSlug(category)}.${nameToSlug(name)}`;\n};\n\nexport { createComponentUid, createUid };\n","export const customFieldDefaultOptionsReducer = (acc: any, option: any) => {\n if (option.items) {\n return option.items.reduce(customFieldDefaultOptionsReducer, acc);\n }\n\n if ('defaultValue' in option) {\n const { name, defaultValue } = option;\n acc.push({ name, defaultValue });\n }\n\n return acc;\n};\n","/* eslint-disable no-confusing-arrow */\n\nimport type { Schema } from '@strapi/types';\n\nconst shouldPluralizeName = (nature: Schema.Attribute.RelationKind.Any) =>\n ['manyToMany', 'oneToMany', 'manyWay'].includes(nature) ? 2 : 1;\n\nconst shouldPluralizeTargetAttribute = (nature: Schema.Attribute.RelationKind.Any) =>\n ['manyToMany', 'manyToOne'].includes(nature) ? 2 : 1;\n\nexport { shouldPluralizeName, shouldPluralizeTargetAttribute };\n","import { produce } from 'immer';\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 * as actions from './constants';\nimport { createComponentUid } from './utils/createUid';\nimport { customFieldDefaultOptionsReducer } from './utils/customFieldDefaultOptionsReducer';\nimport { shouldPluralizeName, shouldPluralizeTargetAttribute } from './utils/relations';\n\nimport type { AnyAction } from '@reduxjs/toolkit';\n\nconst initialState: any = {\n formErrors: {},\n modifiedData: {},\n initialData: {},\n componentToCreate: {},\n isCreatingComponentWhileAddingAField: false,\n};\n\nconst reducer = (state = initialState, action: AnyAction) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState: any) => {\n switch (action.type) {\n case actions.ON_CHANGE: {\n const { keys, value } = action;\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 draftState.modifiedData.default;\n }\n }\n\n set(draftState, ['modifiedData', ...keys], value);\n\n break;\n }\n case actions.ON_CHANGE_RELATION_TARGET: {\n const {\n target: {\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations,\n value,\n },\n } = action;\n // Special case for the admin user...\n let didChangeRelationTypeBecauseOfRestrictedRelation = false;\n let changedRelationType = null;\n\n set(draftState, ['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 (!targetContentTypeAllowedRelations.includes(currentRelationType)) {\n const relationToSet = targetContentTypeAllowedRelations[0];\n didChangeRelationTypeBecauseOfRestrictedRelation = true;\n changedRelationType = relationToSet;\n\n if (relationToSet === 'oneWay') {\n set(draftState, ['modifiedData', 'relation'], 'oneToOne');\n } else if (relationToSet === 'manyWay') {\n set(draftState, ['modifiedData', 'relation'], 'oneToMany');\n } else {\n set(draftState, ['modifiedData', 'relation'], relationToSet);\n }\n }\n }\n\n let nameToSet;\n\n if (didChangeRelationTypeBecauseOfRestrictedRelation) {\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(draftState, ['modifiedData', 'name'], nameToSet);\n\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n if (currentTargetAttribute === null) {\n break;\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 ['oneWay', 'manyWay'].includes(changedRelationType)\n ) {\n set(draftState, ['modifiedData', 'targetAttribute'], null);\n\n break;\n }\n\n const targetAttributeToSet = pluralize(\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(modifiedData.relation)\n );\n\n set(draftState, ['modifiedData', 'targetAttribute'], targetAttributeToSet);\n\n break;\n }\n case actions.ON_CHANGE_RELATION_TYPE: {\n const {\n target: { oneThatIsCreatingARelationWithAnother, value },\n } = action;\n\n const currentName = state.modifiedData.name;\n\n // Switching from oneWay\n if (!['oneWay', 'manyWay'].includes(value)) {\n set(draftState, ['modifiedData', 'relation'], value);\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n set(\n draftState,\n ['modifiedData', 'name'],\n pluralize(snakeCase(nameToSlug(currentName)), shouldPluralizeName(value))\n );\n\n set(\n draftState,\n ['modifiedData', 'targetAttribute'],\n pluralize(\n currentTargetAttribute ||\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(value)\n )\n );\n\n break;\n }\n\n if (value === 'oneWay') {\n set(draftState, ['modifiedData', 'relation'], 'oneToOne');\n set(draftState, ['modifiedData', 'targetAttribute'], null);\n set(draftState, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 1));\n\n break;\n }\n\n // manyWay\n set(draftState, ['modifiedData', 'relation'], 'oneToMany');\n set(draftState, ['modifiedData', 'targetAttribute'], null);\n set(draftState, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 2));\n\n break;\n }\n\n case actions.RESET_PROPS:\n return initialState;\n case actions.RESET_PROPS_AND_SET_FORM_FOR_ADDING_AN_EXISTING_COMPO: {\n // This is run when the user doesn't want to create a new component\n\n const nextState = {\n ...initialState,\n modifiedData: {\n type: 'component',\n repeatable: true,\n ...action.options,\n },\n };\n\n return nextState;\n }\n case actions.RESET_PROPS_AND_SAVE_CURRENT_DATA: {\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 ...action.options,\n component: createComponentUid(componentToCreate.displayName, componentToCreate.category),\n };\n\n const nextState = {\n ...initialState,\n componentToCreate,\n modifiedData,\n isCreatingComponentWhileAddingAField: state.modifiedData.createComponent,\n };\n\n return nextState;\n }\n case actions.RESET_PROPS_AND_SET_THE_FORM_FOR_ADDING_A_COMPO_TO_A_DZ: {\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 case actions.SET_DATA_TO_EDIT: {\n draftState.modifiedData = action.data;\n draftState.initialData = action.data;\n break;\n }\n case actions.SET_ATTRIBUTE_DATA_SCHEMA: {\n const {\n attributeType,\n isEditing,\n modifiedDataToSetForEditing,\n nameToSetForRelation,\n targetUid,\n step,\n options = {},\n } = action;\n\n if (isEditing) {\n draftState.modifiedData = modifiedDataToSetForEditing;\n draftState.initialData = modifiedDataToSetForEditing;\n\n break;\n }\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 draftState.modifiedData = dataToSet;\n\n break;\n }\n case actions.SET_CUSTOM_FIELD_DATA_SCHEMA: {\n const { customField, isEditing, modifiedDataToSetForEditing, options = {} } = action;\n\n if (isEditing) {\n draftState.modifiedData = modifiedDataToSetForEditing;\n draftState.initialData = modifiedDataToSetForEditing;\n\n break;\n }\n\n draftState.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(draftState.modifiedData, name, defaultValue)\n );\n }\n\n break;\n }\n case actions.SET_DYNAMIC_ZONE_DATA_SCHEMA: {\n draftState.modifiedData = action.attributeToEdit;\n draftState.initialData = action.attributeToEdit;\n break;\n }\n case actions.SET_ERRORS: {\n draftState.formErrors = action.errors;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import { reducer } from './components/DataManagerProvider/reducer';\nimport { reducer as formModalReducer } from './components/FormModal/reducer';\nimport { pluginId } from './pluginId';\n\nexport const reducers = {\n [`${pluginId}_formModal`]: formModalReducer,\n [`${pluginId}_dataManagerProvider`]: reducer,\n};\n","import cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport * as yup from 'yup';\n// TODO V5 Convert any into real types\nexport const formsAPI: any = {\n components: {\n inputs: {} as Record<string, any>,\n add({ id, component }: { id: string; component: any }) {\n if (!this.inputs[id]) {\n this.inputs[id] = component;\n }\n },\n },\n types: {\n attribute: {\n // test: {\n // validators: [],\n // form: {\n // advanced: [\n // /* cb */\n // ],\n // base: [\n // /* cb */\n // ],\n // },\n // },\n },\n contentType: {\n validators: [],\n form: {\n advanced: [],\n base: [],\n },\n },\n component: {\n validators: [],\n form: {\n advanced: [],\n base: [],\n },\n },\n },\n contentTypeSchemaMutations: [],\n addContentTypeSchemaMutation(cb: any) {\n this.contentTypeSchemaMutations.push(cb);\n },\n extendContentType({ validator, form: { advanced, base } }: any) {\n const { contentType } = this.types;\n\n contentType.validators.push(validator);\n contentType.form.advanced.push(advanced);\n contentType.form.base.push(base);\n },\n extendFields(fields: any, { validator, form: { advanced, base } }: any) {\n const formType = this.types.attribute;\n\n fields.forEach((field: any) => {\n if (!formType[field]) {\n formType[field] = {\n validators: [],\n form: {\n advanced: [\n /* cb */\n ],\n base: [\n /* cb */\n ],\n },\n };\n }\n\n formType[field].validators.push(validator);\n formType[field].form.advanced.push(advanced);\n formType[field].form.base.push(base);\n });\n },\n\n getAdvancedForm(target: any, props = null) {\n const sectionsToAdd = get(this.types, [...target, 'form', 'advanced'], []).reduce(\n (acc: any, current: any) => {\n const sections = current(props);\n\n return [...acc, ...sections];\n },\n []\n );\n\n return sectionsToAdd;\n },\n\n makeCustomFieldValidator(attributeShape: any, validator: any, ...validatorArgs: any) {\n // When no validator, return the attribute shape\n if (!validator) return attributeShape;\n\n // Otherwise extend the shape with the provided validator\n return attributeShape.shape({ options: yup.object().shape(validator(validatorArgs)) });\n },\n\n makeValidator(target: any, initShape: any, ...args: any) {\n const validators = get(this.types, [...target, 'validators'], []);\n\n const pluginOptionsShape = validators.reduce((acc: any, current: any) => {\n const pluginOptionShape = current(args);\n\n return { ...acc, ...pluginOptionShape };\n }, {});\n\n return initShape.shape({ pluginOptions: yup.object().shape(pluginOptionsShape) });\n },\n mutateContentTypeSchema(data: Record<string, unknown>, initialData: Record<string, unknown>) {\n let enhancedData: any = cloneDeep(data);\n\n const refData: any = cloneDeep(initialData);\n\n this.contentTypeSchemaMutations.forEach((cb: any) => {\n enhancedData = cb(enhancedData, refData);\n });\n\n return enhancedData;\n },\n};\n","type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography, Link } from '@strapi/design-system';\nimport { Clock, ArrowClockwise } from '@strapi/icons';\nimport { createPortal } from 'react-dom';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\n/**\n * TODO: realistically a lot of this logic is isolated to the `core/admin` package.\n * However, we want to expose the `useAutoReloadOverlayBlocker` hook to the plugins.\n *\n * Therefore, in V5 we should move this logic back to the `core/admin` package & export\n * the hook from that package and re-export here. For now, let's keep it all together\n * because it's easier to diagnose and we're not using a million refs because we don't\n * understand what's going on.\n */\nexport interface AutoReloadOverlayBlockerConfig {\n title?: string;\n description?: string;\n icon?: 'reload' | 'time';\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface AutoReloadOverlayBlockerContextValue {\n lockAppWithAutoreload?: (config?: AutoReloadOverlayBlockerConfig) => void;\n unlockAppWithAutoreload?: () => void;\n}\n\nconst AutoReloadOverlayBlockerContext = React.createContext<AutoReloadOverlayBlockerContextValue>(\n {}\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Provider\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface AutoReloadOverlayBlockerProviderProps {\n children: React.ReactNode;\n}\n\nconst MAX_ELAPSED_TIME = 30 * 1000;\n\nconst AutoReloadOverlayBlockerProvider = ({ children }: AutoReloadOverlayBlockerProviderProps) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const [config, setConfig] = React.useState<AutoReloadOverlayBlockerConfig>({});\n const [failed, setFailed] = React.useState(false);\n\n const lockAppWithAutoreload = React.useCallback((config: AutoReloadOverlayBlockerConfig = {}) => {\n setIsOpen(true);\n setConfig(config);\n }, []);\n\n const unlockAppWithAutoreload = React.useCallback(() => {\n setIsOpen(false);\n setConfig({});\n }, []);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(() => {\n if (isOpen) {\n const timeout = setTimeout(() => {\n setFailed(true);\n }, MAX_ELAPSED_TIME);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [isOpen]);\n\n let displayedIcon = config?.icon || 'reload';\n\n let description = {\n id: config?.description || 'components.OverlayBlocker.description',\n defaultMessage:\n \"You're using a feature that needs the server to restart. The page will reload automatically.\",\n };\n\n let title = {\n id: config?.title || 'components.OverlayBlocker.title',\n defaultMessage: 'Waiting for restart',\n };\n\n if (failed) {\n displayedIcon = 'time';\n\n description = {\n id: 'components.OverlayBlocker.description.serverError',\n defaultMessage: 'The server should have restarted, please check your logs in the terminal.',\n };\n\n title = {\n id: 'components.OverlayBlocker.title.serverError',\n defaultMessage: 'The restart is taking longer than expected',\n };\n }\n\n const autoReloadValue = React.useMemo(\n () => ({\n lockAppWithAutoreload,\n unlockAppWithAutoreload,\n }),\n [lockAppWithAutoreload, unlockAppWithAutoreload]\n );\n\n return (\n <AutoReloadOverlayBlockerContext.Provider value={autoReloadValue}>\n <Blocker\n displayedIcon={displayedIcon}\n isOpen={isOpen}\n description={description}\n title={title}\n />\n {children}\n </AutoReloadOverlayBlockerContext.Provider>\n );\n};\n\ninterface BlockerProps {\n displayedIcon: string;\n description: MessageDescriptor;\n isOpen: boolean;\n title: MessageDescriptor;\n}\n\nconst Blocker = ({ displayedIcon, description, title, isOpen }: BlockerProps) => {\n const { formatMessage } = useIntl();\n\n // eslint-disable-next-line no-undef\n return isOpen && globalThis?.document?.body\n ? createPortal(\n <Overlay id=\"autoReloadOverlayBlocker\" direction=\"column\" alignItems=\"center\" gap={6}>\n <Flex direction=\"column\" alignItems=\"center\" gap={2}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage(title)}\n </Typography>\n <Typography tag=\"h2\" textColor=\"neutral600\" fontSize={4} fontWeight=\"regular\">\n {formatMessage(description)}\n </Typography>\n </Flex>\n {displayedIcon === 'reload' && (\n <IconBox padding={6} background=\"primary100\" borderColor=\"primary200\">\n <LoaderReload width=\"4rem\" height=\"4rem\" />\n </IconBox>\n )}\n {displayedIcon === 'time' && (\n <IconBox padding={6} background=\"primary100\" borderColor=\"primary200\">\n <Clock width=\"4rem\" height=\"4rem\" />\n </IconBox>\n )}\n <Box marginTop={2}>\n <Link href=\"https://docs.strapi.io\" isExternal>\n {formatMessage({\n id: 'global.documentation',\n defaultMessage: 'Read the documentation',\n })}\n </Link>\n </Box>\n </Overlay>,\n // eslint-disable-next-line no-undef\n globalThis.document.body\n )\n : null;\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n `;\n\nconst LoaderReload = styled(ArrowClockwise)`\n animation: ${rotation} 1s infinite linear;\n`;\n\nconst Overlay = styled(Flex)`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n /* TODO: set this up in the theme for consistence z-index values */\n z-index: 1140;\n padding-top: 16rem;\n\n & > * {\n position: relative;\n z-index: 1;\n }\n\n &:before {\n content: '';\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: ${({ theme }) => theme.colors.neutral0};\n opacity: 0.9;\n }\n`;\n\nconst IconBox = styled(Box)`\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n svg {\n > path {\n fill: ${({ theme }) => theme.colors.primary600} !important;\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Hook\n * -----------------------------------------------------------------------------------------------*/\n\nconst useAutoReloadOverlayBlocker = () => React.useContext(AutoReloadOverlayBlockerContext);\n\nexport { AutoReloadOverlayBlockerProvider, useAutoReloadOverlayBlocker };\n","import { Layout } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { reducers } from './reducers';\nimport { formsAPI } from './utils/formAPI';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addReducers(reducers);\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Layout,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n },\n permissions: PERMISSIONS.main,\n Component: () => import('./pages/App'),\n position: 5,\n });\n\n app.registerPlugin({\n id: pluginId,\n name,\n // Internal APIs exposed by the CTB for the other plugins to use\n apis: {\n forms: formsAPI,\n },\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\nexport * from './exports';\n"],"names":["get","initialState","name","reducer","produce","actions.ADD_ATTRIBUTE","set","actions.ADD_CREATED_COMPONENT_TO_DYNAMIC_ZONE","actions.ADD_CUSTOM_FIELD_ATTRIBUTE","actions.CHANGE_DYNAMIC_ZONE_COMPONENTS","current","actions.CREATE_COMPONENT_SCHEMA","actions.CREATE_SCHEMA","actions.EDIT_ATTRIBUTE","actions.EDIT_CUSTOM_FIELD_ATTRIBUTE","actions.GET_DATA_SUCCEEDED","actions.UPDATE_INITIAL_STATE","actions.DELETE_NOT_SAVED_TYPE","actions.RELOAD_PLUGIN","actions.REMOVE_COMPONENT_FROM_DYNAMIC_ZONE","actions.REMOVE_FIELD","actions.REMOVE_FIELD_FROM_DISPLAYED_COMPONENT","actions.SET_MODIFIED_DATA","actions.UPDATE_SCHEMA","slugify","actions.ON_CHANGE","actions.ON_CHANGE_RELATION_TARGET","pluralize","snakeCase","actions.ON_CHANGE_RELATION_TYPE","actions.RESET_PROPS","actions.RESET_PROPS_AND_SET_FORM_FOR_ADDING_AN_EXISTING_COMPO","actions.RESET_PROPS_AND_SAVE_CURRENT_DATA","actions.RESET_PROPS_AND_SET_THE_FORM_FOR_ADDING_A_COMPO_TO_A_DZ","actions.SET_DATA_TO_EDIT","actions.SET_ATTRIBUTE_DATA_SCHEMA","actions.SET_CUSTOM_FIELD_DATA_SCHEMA","actions.SET_DYNAMIC_ZONE_DATA_SCHEMA","actions.SET_ERRORS","formModalReducer","yup","cloneDeep","pluginId","React","config","description","jsxs","jsx","useIntl","createPortal","Flex","Typography","Clock","Box","Link","keyframes","styled","ArrowClockwise","Layout"],"mappings":"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"}
@@ -1,167 +0,0 @@
1
- const configurations = "configurazioni";
2
- const from = "da";
3
- const it = {
4
- "attribute.boolean": "Booleano",
5
- "attribute.boolean.description": "Sì o no, 1 o 0, vero o falso",
6
- "attribute.component": "Componente",
7
- "attribute.component.description": "Gruppo di campi che puoi ripetere o riutilizzare",
8
- "attribute.date": "Data",
9
- "attribute.date.description": "Un selettore di date con ore, minuti e secondi",
10
- "attribute.datetime": "Data e Ora",
11
- "attribute.dynamiczone": "Zona dinamica",
12
- "attribute.dynamiczone.description": "Scegli un componente dinamicamente durante la modifica del contenuto ",
13
- "attribute.email": "Email",
14
- "attribute.email.description": "Un campo Email con validazione del formato",
15
- "attribute.enumeration": "Enumerazione",
16
- "attribute.enumeration.description": "Scegli il valore da una lista precompilata",
17
- "attribute.json": "JSON",
18
- "attribute.json.description": "Dati in formato JSON",
19
- "attribute.media": "Media",
20
- "attribute.media.description": "File come immagini, video, ecc.",
21
- "attribute.null": " ",
22
- "attribute.number": "Numero",
23
- "attribute.number.description": "Numeri (interi, float, decimali)",
24
- "attribute.password": "Password",
25
- "attribute.password.description": "Campo Password crittografato",
26
- "attribute.relation": "Relazione",
27
- "attribute.relation.description": "Per collegare una Collezione",
28
- "attribute.richtext": "Testo formattato",
29
- "attribute.richtext.description": "Un editor di testo con comandi per la formattazione",
30
- "attribute.text": "Testo",
31
- "attribute.text.description": "Testo semplice come titolo o descrizione",
32
- "attribute.time": "Orario",
33
- "attribute.timestamp": "Timestamp",
34
- "attribute.uid": "UID",
35
- "attribute.uid.description": "Identificatore univoco",
36
- "button.attributes.add.another": "Aggiungi altro campo",
37
- "button.component.add": "Aggiungi componente",
38
- "button.component.create": "Crea nuovo componente",
39
- "button.model.create": "Crea nuova Collezione",
40
- "button.single-types.create": "Crea nuova Entità singola",
41
- "component.repeatable": "(ripetibile)",
42
- "components.componentSelect.no-component-available": "Hai già aggiunto tutti i componenti",
43
- "components.componentSelect.no-component-available.with-search": "Nessun componente con questa chiave di ricerca",
44
- "components.componentSelect.value-component": "{number} componenti selezionati (digita per cercare un componente)",
45
- "components.componentSelect.value-components": "{number} componenti selezionati",
46
- configurations,
47
- "contentType.collectionName.description": "Utile quando il nome della Collezione differisce dal nome della tabella del DB",
48
- "contentType.collectionName.label": "Nome della Collezione",
49
- "contentType.displayName.label": "Nome visualizzato",
50
- "contentType.kind.change.warning": "Hai cambiato il genere di questo Tipo di Contenuto. Le API verranno ripristinate (route, controller e services verranno sovrascritti).",
51
- "error.attributeName.reserved-name": "Questo nome non può essere utilizzato nel tuo Tipo di Contenuto perché potrebbe danneggiare altre funzionalità",
52
- "error.contentTypeName.reserved-name": "Questo nome non può essere utilizzato nel tuo progetto perché potrebbe danneggiare altre funzionalità",
53
- "error.validation.enum-duplicate": "Valori duplicati non ammessi",
54
- "error.validation.minSupMax": "Non può essere maggiore",
55
- "error.validation.regex": "Regex non valida",
56
- "error.validation.relation.targetAttribute-taken": "Questo nome già esiste nella destinazione",
57
- "form.attribute.component.option.add": "Aggiungi componente",
58
- "form.attribute.component.option.create": "Crea nuovo componente",
59
- "form.attribute.component.option.create.description": "I componenti sono condivisi tra Tipi e componenti, sono disponibili e accessibili da ovunque.",
60
- "form.attribute.component.option.repeatable": "Componente ripetibile",
61
- "form.attribute.component.option.repeatable.description": "Utile per istanze multiple (liste) come ingredienti, meta tag, ecc...",
62
- "form.attribute.component.option.reuse-existing": "Usa componente esistente",
63
- "form.attribute.component.option.reuse-existing.description": "Riutilizza un componente già creato per mantenere i dati consistenti tra i vari Tipi di Contenuto",
64
- "form.attribute.component.option.single": "Componente singolo",
65
- "form.attribute.component.option.single.description": "Utile per raggruppare campi correlati come quelli di un indirizzo",
66
- "form.attribute.item.customColumnName": "Nome della colonna personalizzato",
67
- "form.attribute.item.customColumnName.description": "Utile per rinominare le colonne del database e mantenere consistente il formato delle risposte API",
68
- "form.attribute.item.defineRelation.fieldName": "Nome del campo",
69
- "form.attribute.item.enumeration.graphql": "Override del nome GraphQL",
70
- "form.attribute.item.enumeration.graphql.description": "Consente di ignorare l'impostazione predefinita del nome generato per GraphQL",
71
- "form.attribute.item.enumeration.placeholder": "Es:\nmattina\nmezzogiorno\nsera",
72
- "form.attribute.item.enumeration.rules": "Valori (un valore per riga)",
73
- "form.attribute.item.maximum": "Valore massimo",
74
- "form.attribute.item.maximumLength": "Lunghezza massima",
75
- "form.attribute.item.minimum": "Valore minimo",
76
- "form.attribute.item.minimumLength": "Lunghezza minima",
77
- "form.attribute.item.number.type": "Formato del numero",
78
- "form.attribute.item.number.type.biginteger": "intero grande (es: 123456789)",
79
- "form.attribute.item.number.type.decimal": "decimale (es: 2.22)",
80
- "form.attribute.item.number.type.float": "float (es: 3.33333333)",
81
- "form.attribute.item.number.type.integer": "intero (es: 10)",
82
- "form.attribute.item.privateField": "Campo privato",
83
- "form.attribute.item.privateField.description": "Questo campo non sarà presente nelle risposte API",
84
- "form.attribute.item.requiredField": "Campo obbligatorio",
85
- "form.attribute.item.requiredField.description": "Non sarai in grado di creare una voce se questo campo è vuoto",
86
- "form.attribute.item.text.regex": "Schema RegExp",
87
- "form.attribute.item.text.regex.description": "Il testo di una Espressione Regolare",
88
- "form.attribute.item.uniqueField": "Campo univoco",
89
- "form.attribute.item.uniqueField.description": "Non sarai in grado di creare una voce, se c'è una voce esistente con valore identico",
90
- "form.attribute.media.allowed-types": "Seleziona i tipi di media permessi",
91
- "form.attribute.media.allowed-types.option-files": "File",
92
- "form.attribute.media.allowed-types.option-images": "Immagini",
93
- "form.attribute.media.allowed-types.option-videos": "Video",
94
- "form.attribute.media.option.multiple": "Media multipli",
95
- "form.attribute.media.option.multiple.description": "Utile per slider, caroselli o download multipli",
96
- "form.attribute.media.option.single": "Media singolo",
97
- "form.attribute.media.option.single.description": "Utile per avatar, foto profilo o copertina",
98
- "form.attribute.settings.default": "Valore di Default",
99
- "form.attribute.text.option.long-text": "Testo lungo",
100
- "form.attribute.text.option.long-text.description": "Utile per descrizioni o biografie. La ricerca esatta è disabilitata.",
101
- "form.attribute.text.option.short-text": "Testo breve",
102
- "form.attribute.text.option.short-text.description": "Utile per titoli, nomi, link (URL). Potrai eseguire una ricerca esatta sul campo.",
103
- "form.button.add-components-to-dynamiczone": "Aggiungi componenti alla zona",
104
- "form.button.add-field": "Aggiungi altro campo",
105
- "form.button.add-first-field-to-created-component": "Aggiungi un primo campo al componente",
106
- "form.button.add.field.to.collectionType": "Aggiungi un altro campo a questa Collezione",
107
- "form.button.add.field.to.component": "Aggiungi un altro campo a questo componente",
108
- "form.button.add.field.to.contentType": "Aggiungi un altro campo a questo Tipo di Contenuto",
109
- "form.button.add.field.to.singleType": "Aggiungi un altro campo a questa Entità singola",
110
- "form.button.cancel": "Annulla",
111
- "form.button.collection-type.description": "Utile per istanze multiple come articoli, prodotti, commenti, ecc...",
112
- "form.button.configure-component": "Configura componente",
113
- "form.button.configure-view": "Configura vista",
114
- "form.button.select-component": "Seleziona un componente",
115
- "form.button.single-type.description": "Indicato per entità uniche come home page, chi siamo, ecc...",
116
- from,
117
- "modalForm.attribute.form.base.name.description": "Spazi non ammessi per il nome dell'attributo",
118
- "modalForm.attribute.form.base.name.placeholder": "Es: slug, urlSeo, urlCanonico",
119
- "modalForm.attribute.target-field": "Campo collegato",
120
- "modalForm.attributes.select-component": "Seleziona un componente",
121
- "modalForm.attributes.select-components": "Seleziona i componenti",
122
- "modalForm.component.header-create": "Crea un componente",
123
- "modalForm.components.create-component.category.label": "Seleziona una categoria o inserisci un nome per crearne una nuova",
124
- "modalForm.components.icon.label": "Icona",
125
- "modalForm.editCategory.base.name.description": "Spazi non ammessi per il nome della categoria",
126
- "modalForm.header-edit": "Modifica {name}",
127
- "modalForm.header.categories": "Categorie",
128
- "modalForm.header.back": "Indietro",
129
- "modalForm.singleType.header-create": "Crea una Entità singola",
130
- "modalForm.sub-header.addComponentToDynamicZone": "Aggiungi nuovo componente alla zona dinamica",
131
- "modalForm.sub-header.attribute.create": "Aggiungi nuovo campo {type}",
132
- "modalForm.sub-header.attribute.create.step": "Aggiungi nuovo componente ({step}/2)",
133
- "modalForm.sub-header.attribute.edit": "Modifica {name}",
134
- "modalForm.sub-header.chooseAttribute.collectionType": "Seleziona un campo per la tua Collezione",
135
- "modalForm.sub-header.chooseAttribute.component": "Seleziona un campo per il tuo componente",
136
- "modalForm.sub-header.chooseAttribute.singleType": "Seleziona un campo per la tua Entità singola",
137
- "modelPage.attribute.relation-polymorphic": "Relazione (polimorfica)",
138
- "modelPage.attribute.relationWith": "Relazione con",
139
- "notification.info.autoreaload-disable": "La funzionalità autoReload è richiesta per usare questo plugin. Avvia il tuo server con `strapi develop`",
140
- "notification.info.creating.notSaved": "Per favore, salva il tuo lavoro prima di creare nuovi Tipi di Contenuto o componenti",
141
- "plugin.description.long": "Modella la struttura dei dati delle tue API. Crea nuovi campi e relazioni in maniera visuale. I file vengono automaticamente creati e aggiornati nel tuo progetto.",
142
- "plugin.description.short": "Modella la struttura dei dati delle tue API.",
143
- "popUpForm.navContainer.advanced": "Impostazioni avanzate",
144
- "popUpForm.navContainer.base": "Impostazioni di base",
145
- "popUpWarning.bodyMessage.cancel-modifications": "Sei sicuro di voler annullare le tue modifiche?",
146
- "popUpWarning.bodyMessage.cancel-modifications.with-components": "Sei sicuro di voler annullare le tue modifiche? Alcuni componenti sono stati creati o modificati...",
147
- "popUpWarning.bodyMessage.category.delete": "Sei sicuro di voler eliminare questa categoria? Verranno cancellati anche tutti i suoi componenti.",
148
- "popUpWarning.bodyMessage.component.delete": "Sei sicuro di voler eliminare questo componente?",
149
- "popUpWarning.bodyMessage.contentType.delete": "Sei sicuro di voler eliminare questa Collezione?",
150
- "popUpWarning.draft-publish.button.confirm": "Sì, disabilita",
151
- "popUpWarning.draft-publish.message": "Se disabiliti il sistema Bozza/pubblicato, le tue bozze verranno eliminate.",
152
- "popUpWarning.draft-publish.second-message": "Sei sicuro di volerlo disabilitare?",
153
- "prompt.unsaved": "Sei sicuro di voler uscire? Tutte le modifiche verranno perdute.",
154
- "relation.attributeName.placeholder": "Es: autore, categoria, tag",
155
- "relation.manyToMany": "ha e appartiene a molti",
156
- "relation.manyToOne": "ha molti",
157
- "relation.manyWay": "ha molti",
158
- "relation.oneToMany": "appartiene a molti",
159
- "relation.oneToOne": "ha e appartiene a un",
160
- "relation.oneWay": "ha un"
161
- };
162
- export {
163
- configurations,
164
- it as default,
165
- from
166
- };
167
- //# sourceMappingURL=it-D04lb2Wc.mjs.map
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const configurations = "configurazioni";
4
- const from = "da";
5
- const it = {
6
- "attribute.boolean": "Booleano",
7
- "attribute.boolean.description": "Sì o no, 1 o 0, vero o falso",
8
- "attribute.component": "Componente",
9
- "attribute.component.description": "Gruppo di campi che puoi ripetere o riutilizzare",
10
- "attribute.date": "Data",
11
- "attribute.date.description": "Un selettore di date con ore, minuti e secondi",
12
- "attribute.datetime": "Data e Ora",
13
- "attribute.dynamiczone": "Zona dinamica",
14
- "attribute.dynamiczone.description": "Scegli un componente dinamicamente durante la modifica del contenuto ",
15
- "attribute.email": "Email",
16
- "attribute.email.description": "Un campo Email con validazione del formato",
17
- "attribute.enumeration": "Enumerazione",
18
- "attribute.enumeration.description": "Scegli il valore da una lista precompilata",
19
- "attribute.json": "JSON",
20
- "attribute.json.description": "Dati in formato JSON",
21
- "attribute.media": "Media",
22
- "attribute.media.description": "File come immagini, video, ecc.",
23
- "attribute.null": " ",
24
- "attribute.number": "Numero",
25
- "attribute.number.description": "Numeri (interi, float, decimali)",
26
- "attribute.password": "Password",
27
- "attribute.password.description": "Campo Password crittografato",
28
- "attribute.relation": "Relazione",
29
- "attribute.relation.description": "Per collegare una Collezione",
30
- "attribute.richtext": "Testo formattato",
31
- "attribute.richtext.description": "Un editor di testo con comandi per la formattazione",
32
- "attribute.text": "Testo",
33
- "attribute.text.description": "Testo semplice come titolo o descrizione",
34
- "attribute.time": "Orario",
35
- "attribute.timestamp": "Timestamp",
36
- "attribute.uid": "UID",
37
- "attribute.uid.description": "Identificatore univoco",
38
- "button.attributes.add.another": "Aggiungi altro campo",
39
- "button.component.add": "Aggiungi componente",
40
- "button.component.create": "Crea nuovo componente",
41
- "button.model.create": "Crea nuova Collezione",
42
- "button.single-types.create": "Crea nuova Entità singola",
43
- "component.repeatable": "(ripetibile)",
44
- "components.componentSelect.no-component-available": "Hai già aggiunto tutti i componenti",
45
- "components.componentSelect.no-component-available.with-search": "Nessun componente con questa chiave di ricerca",
46
- "components.componentSelect.value-component": "{number} componenti selezionati (digita per cercare un componente)",
47
- "components.componentSelect.value-components": "{number} componenti selezionati",
48
- configurations,
49
- "contentType.collectionName.description": "Utile quando il nome della Collezione differisce dal nome della tabella del DB",
50
- "contentType.collectionName.label": "Nome della Collezione",
51
- "contentType.displayName.label": "Nome visualizzato",
52
- "contentType.kind.change.warning": "Hai cambiato il genere di questo Tipo di Contenuto. Le API verranno ripristinate (route, controller e services verranno sovrascritti).",
53
- "error.attributeName.reserved-name": "Questo nome non può essere utilizzato nel tuo Tipo di Contenuto perché potrebbe danneggiare altre funzionalità",
54
- "error.contentTypeName.reserved-name": "Questo nome non può essere utilizzato nel tuo progetto perché potrebbe danneggiare altre funzionalità",
55
- "error.validation.enum-duplicate": "Valori duplicati non ammessi",
56
- "error.validation.minSupMax": "Non può essere maggiore",
57
- "error.validation.regex": "Regex non valida",
58
- "error.validation.relation.targetAttribute-taken": "Questo nome già esiste nella destinazione",
59
- "form.attribute.component.option.add": "Aggiungi componente",
60
- "form.attribute.component.option.create": "Crea nuovo componente",
61
- "form.attribute.component.option.create.description": "I componenti sono condivisi tra Tipi e componenti, sono disponibili e accessibili da ovunque.",
62
- "form.attribute.component.option.repeatable": "Componente ripetibile",
63
- "form.attribute.component.option.repeatable.description": "Utile per istanze multiple (liste) come ingredienti, meta tag, ecc...",
64
- "form.attribute.component.option.reuse-existing": "Usa componente esistente",
65
- "form.attribute.component.option.reuse-existing.description": "Riutilizza un componente già creato per mantenere i dati consistenti tra i vari Tipi di Contenuto",
66
- "form.attribute.component.option.single": "Componente singolo",
67
- "form.attribute.component.option.single.description": "Utile per raggruppare campi correlati come quelli di un indirizzo",
68
- "form.attribute.item.customColumnName": "Nome della colonna personalizzato",
69
- "form.attribute.item.customColumnName.description": "Utile per rinominare le colonne del database e mantenere consistente il formato delle risposte API",
70
- "form.attribute.item.defineRelation.fieldName": "Nome del campo",
71
- "form.attribute.item.enumeration.graphql": "Override del nome GraphQL",
72
- "form.attribute.item.enumeration.graphql.description": "Consente di ignorare l'impostazione predefinita del nome generato per GraphQL",
73
- "form.attribute.item.enumeration.placeholder": "Es:\nmattina\nmezzogiorno\nsera",
74
- "form.attribute.item.enumeration.rules": "Valori (un valore per riga)",
75
- "form.attribute.item.maximum": "Valore massimo",
76
- "form.attribute.item.maximumLength": "Lunghezza massima",
77
- "form.attribute.item.minimum": "Valore minimo",
78
- "form.attribute.item.minimumLength": "Lunghezza minima",
79
- "form.attribute.item.number.type": "Formato del numero",
80
- "form.attribute.item.number.type.biginteger": "intero grande (es: 123456789)",
81
- "form.attribute.item.number.type.decimal": "decimale (es: 2.22)",
82
- "form.attribute.item.number.type.float": "float (es: 3.33333333)",
83
- "form.attribute.item.number.type.integer": "intero (es: 10)",
84
- "form.attribute.item.privateField": "Campo privato",
85
- "form.attribute.item.privateField.description": "Questo campo non sarà presente nelle risposte API",
86
- "form.attribute.item.requiredField": "Campo obbligatorio",
87
- "form.attribute.item.requiredField.description": "Non sarai in grado di creare una voce se questo campo è vuoto",
88
- "form.attribute.item.text.regex": "Schema RegExp",
89
- "form.attribute.item.text.regex.description": "Il testo di una Espressione Regolare",
90
- "form.attribute.item.uniqueField": "Campo univoco",
91
- "form.attribute.item.uniqueField.description": "Non sarai in grado di creare una voce, se c'è una voce esistente con valore identico",
92
- "form.attribute.media.allowed-types": "Seleziona i tipi di media permessi",
93
- "form.attribute.media.allowed-types.option-files": "File",
94
- "form.attribute.media.allowed-types.option-images": "Immagini",
95
- "form.attribute.media.allowed-types.option-videos": "Video",
96
- "form.attribute.media.option.multiple": "Media multipli",
97
- "form.attribute.media.option.multiple.description": "Utile per slider, caroselli o download multipli",
98
- "form.attribute.media.option.single": "Media singolo",
99
- "form.attribute.media.option.single.description": "Utile per avatar, foto profilo o copertina",
100
- "form.attribute.settings.default": "Valore di Default",
101
- "form.attribute.text.option.long-text": "Testo lungo",
102
- "form.attribute.text.option.long-text.description": "Utile per descrizioni o biografie. La ricerca esatta è disabilitata.",
103
- "form.attribute.text.option.short-text": "Testo breve",
104
- "form.attribute.text.option.short-text.description": "Utile per titoli, nomi, link (URL). Potrai eseguire una ricerca esatta sul campo.",
105
- "form.button.add-components-to-dynamiczone": "Aggiungi componenti alla zona",
106
- "form.button.add-field": "Aggiungi altro campo",
107
- "form.button.add-first-field-to-created-component": "Aggiungi un primo campo al componente",
108
- "form.button.add.field.to.collectionType": "Aggiungi un altro campo a questa Collezione",
109
- "form.button.add.field.to.component": "Aggiungi un altro campo a questo componente",
110
- "form.button.add.field.to.contentType": "Aggiungi un altro campo a questo Tipo di Contenuto",
111
- "form.button.add.field.to.singleType": "Aggiungi un altro campo a questa Entità singola",
112
- "form.button.cancel": "Annulla",
113
- "form.button.collection-type.description": "Utile per istanze multiple come articoli, prodotti, commenti, ecc...",
114
- "form.button.configure-component": "Configura componente",
115
- "form.button.configure-view": "Configura vista",
116
- "form.button.select-component": "Seleziona un componente",
117
- "form.button.single-type.description": "Indicato per entità uniche come home page, chi siamo, ecc...",
118
- from,
119
- "modalForm.attribute.form.base.name.description": "Spazi non ammessi per il nome dell'attributo",
120
- "modalForm.attribute.form.base.name.placeholder": "Es: slug, urlSeo, urlCanonico",
121
- "modalForm.attribute.target-field": "Campo collegato",
122
- "modalForm.attributes.select-component": "Seleziona un componente",
123
- "modalForm.attributes.select-components": "Seleziona i componenti",
124
- "modalForm.component.header-create": "Crea un componente",
125
- "modalForm.components.create-component.category.label": "Seleziona una categoria o inserisci un nome per crearne una nuova",
126
- "modalForm.components.icon.label": "Icona",
127
- "modalForm.editCategory.base.name.description": "Spazi non ammessi per il nome della categoria",
128
- "modalForm.header-edit": "Modifica {name}",
129
- "modalForm.header.categories": "Categorie",
130
- "modalForm.header.back": "Indietro",
131
- "modalForm.singleType.header-create": "Crea una Entità singola",
132
- "modalForm.sub-header.addComponentToDynamicZone": "Aggiungi nuovo componente alla zona dinamica",
133
- "modalForm.sub-header.attribute.create": "Aggiungi nuovo campo {type}",
134
- "modalForm.sub-header.attribute.create.step": "Aggiungi nuovo componente ({step}/2)",
135
- "modalForm.sub-header.attribute.edit": "Modifica {name}",
136
- "modalForm.sub-header.chooseAttribute.collectionType": "Seleziona un campo per la tua Collezione",
137
- "modalForm.sub-header.chooseAttribute.component": "Seleziona un campo per il tuo componente",
138
- "modalForm.sub-header.chooseAttribute.singleType": "Seleziona un campo per la tua Entità singola",
139
- "modelPage.attribute.relation-polymorphic": "Relazione (polimorfica)",
140
- "modelPage.attribute.relationWith": "Relazione con",
141
- "notification.info.autoreaload-disable": "La funzionalità autoReload è richiesta per usare questo plugin. Avvia il tuo server con `strapi develop`",
142
- "notification.info.creating.notSaved": "Per favore, salva il tuo lavoro prima di creare nuovi Tipi di Contenuto o componenti",
143
- "plugin.description.long": "Modella la struttura dei dati delle tue API. Crea nuovi campi e relazioni in maniera visuale. I file vengono automaticamente creati e aggiornati nel tuo progetto.",
144
- "plugin.description.short": "Modella la struttura dei dati delle tue API.",
145
- "popUpForm.navContainer.advanced": "Impostazioni avanzate",
146
- "popUpForm.navContainer.base": "Impostazioni di base",
147
- "popUpWarning.bodyMessage.cancel-modifications": "Sei sicuro di voler annullare le tue modifiche?",
148
- "popUpWarning.bodyMessage.cancel-modifications.with-components": "Sei sicuro di voler annullare le tue modifiche? Alcuni componenti sono stati creati o modificati...",
149
- "popUpWarning.bodyMessage.category.delete": "Sei sicuro di voler eliminare questa categoria? Verranno cancellati anche tutti i suoi componenti.",
150
- "popUpWarning.bodyMessage.component.delete": "Sei sicuro di voler eliminare questo componente?",
151
- "popUpWarning.bodyMessage.contentType.delete": "Sei sicuro di voler eliminare questa Collezione?",
152
- "popUpWarning.draft-publish.button.confirm": "Sì, disabilita",
153
- "popUpWarning.draft-publish.message": "Se disabiliti il sistema Bozza/pubblicato, le tue bozze verranno eliminate.",
154
- "popUpWarning.draft-publish.second-message": "Sei sicuro di volerlo disabilitare?",
155
- "prompt.unsaved": "Sei sicuro di voler uscire? Tutte le modifiche verranno perdute.",
156
- "relation.attributeName.placeholder": "Es: autore, categoria, tag",
157
- "relation.manyToMany": "ha e appartiene a molti",
158
- "relation.manyToOne": "ha molti",
159
- "relation.manyWay": "ha molti",
160
- "relation.oneToMany": "appartiene a molti",
161
- "relation.oneToOne": "ha e appartiene a un",
162
- "relation.oneWay": "ha un"
163
- };
164
- exports.configurations = configurations;
165
- exports.default = it;
166
- exports.from = from;
167
- //# sourceMappingURL=it-DS4sM3km.js.map
@@ -1,50 +0,0 @@
1
- const from = "from";
2
- const ja = {
3
- "attribute.boolean": "Boolean",
4
- "attribute.date": "Date",
5
- "attribute.email": "Email",
6
- "attribute.enumeration": "Enumeration",
7
- "attribute.json": "JSON",
8
- "attribute.media": "Media",
9
- "attribute.password": "Password",
10
- "attribute.relation": "Relation",
11
- "attribute.text": "Text",
12
- "form.attribute.item.customColumnName": "カスタム列名",
13
- "form.attribute.item.customColumnName.description": "これは、データベースのカラム名をAPIのレスポンスのより包括的なフォーマットに変更する場合に便利です",
14
- "form.attribute.item.defineRelation.fieldName": "フィールド名",
15
- "form.attribute.item.enumeration.graphql": "GraphQLの名前の上書き",
16
- "form.attribute.item.enumeration.graphql.description": "GraphQLの既定の生成名をオーバーライドできます",
17
- "form.attribute.item.enumeration.rules": "Values (one line per value)",
18
- "form.attribute.item.maximum": "最大値",
19
- "form.attribute.item.maximumLength": "最大長",
20
- "form.attribute.item.minimum": "最小値",
21
- "form.attribute.item.minimumLength": "最小長",
22
- "form.attribute.item.number.type": "数値形式",
23
- "form.attribute.item.number.type.decimal": "decimal (ex: 2.22)",
24
- "form.attribute.item.number.type.float": "float (ex: 3.33333333)",
25
- "form.attribute.item.number.type.integer": "integer (ex: 10)",
26
- "form.attribute.item.requiredField": "必須フィールド",
27
- "form.attribute.item.requiredField.description": "このフィールドが空の場合、エントリを作成することはできません",
28
- "form.attribute.item.uniqueField": "一意のフィールド",
29
- "form.attribute.item.uniqueField.description": "同じ内容の既存のエントリがある場合、エントリを作成することはできません",
30
- "form.attribute.settings.default": "デフォルト値",
31
- "form.button.cancel": "キャンセル",
32
- from,
33
- "modelPage.attribute.relationWith": "関係",
34
- "plugin.description.long": "APIのデータ構造をモデル化します。数分で新しいフィールドと関係を作成します。ファイルはプロジェクトで自動的に作成され、更新されます。",
35
- "plugin.description.short": "APIのデータ構造をモデル化します。",
36
- "popUpForm.navContainer.advanced": "高度な設定",
37
- "popUpForm.navContainer.base": "基本設定",
38
- "popUpWarning.bodyMessage.contentType.delete": "このコンテンツタイプを削除してもよろしいですか?",
39
- "relation.attributeName.placeholder": "例:author、category、tag",
40
- "relation.manyToMany": "has and belongs to many",
41
- "relation.manyToOne": "has many",
42
- "relation.oneToMany": "belongs to many",
43
- "relation.oneToOne": "has and belongs to one",
44
- "relation.oneWay": "has one"
45
- };
46
- export {
47
- ja as default,
48
- from
49
- };
50
- //# sourceMappingURL=ja-BHLK_2_g.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ja-BHLK_2_g.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}