@strapi/content-manager 5.58.0 → 5.60.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 (200) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +4 -3
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +4 -3
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/RelativeTime.js +2 -1
  6. package/dist/admin/components/RelativeTime.js.map +1 -1
  7. package/dist/admin/components/RelativeTime.mjs +2 -1
  8. package/dist/admin/components/RelativeTime.mjs.map +1 -1
  9. package/dist/admin/content-manager.js.map +1 -1
  10. package/dist/admin/content-manager.mjs.map +1 -1
  11. package/dist/admin/history/components/VersionContent.js +8 -8
  12. package/dist/admin/history/components/VersionContent.js.map +1 -1
  13. package/dist/admin/history/components/VersionContent.mjs +8 -8
  14. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  15. package/dist/admin/history/components/VersionInputRenderer.js +2 -1
  16. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  17. package/dist/admin/history/components/VersionInputRenderer.mjs +2 -1
  18. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  22. package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  26. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +3 -2
  28. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +3 -2
  30. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +8 -6
  32. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +8 -6
  34. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +2 -1
  36. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +2 -1
  38. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +2 -1
  40. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +2 -1
  42. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +6 -3
  44. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +6 -3
  46. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  48. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +4 -4
  50. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +4 -4
  52. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/UID.js +2 -1
  54. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +2 -1
  56. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  58. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormLayout.js +5 -4
  60. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormLayout.mjs +5 -4
  62. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -1
  64. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -1
  66. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
  68. package/dist/admin/pages/EditView/components/Panels.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/utils/data.js +3 -3
  70. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  71. package/dist/admin/pages/EditView/utils/data.mjs +3 -3
  72. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  73. package/dist/admin/pages/ListConfiguration/components/Settings.js +3 -3
  74. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  75. package/dist/admin/pages/ListConfiguration/components/Settings.mjs +3 -3
  76. package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
  77. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +2 -2
  78. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -1
  79. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs +2 -2
  80. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.mjs.map +1 -1
  81. package/dist/admin/pages/ListView/ListViewPage.js +73 -13
  82. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  83. package/dist/admin/pages/ListView/ListViewPage.mjs +74 -14
  84. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  85. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js +1 -1
  86. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  87. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs +1 -1
  88. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  89. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  90. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  91. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +4 -1
  92. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  93. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +4 -1
  94. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  95. package/dist/admin/pages/ListView/components/Filters.js +12 -10
  96. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  97. package/dist/admin/pages/ListView/components/Filters.mjs +12 -10
  98. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  99. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  100. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  101. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +2 -1
  102. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  103. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +2 -1
  104. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  105. package/dist/admin/pages/ListView/utils/applyAttributeRenames.js +68 -0
  106. package/dist/admin/pages/ListView/utils/applyAttributeRenames.js.map +1 -0
  107. package/dist/admin/pages/ListView/utils/applyAttributeRenames.mjs +64 -0
  108. package/dist/admin/pages/ListView/utils/applyAttributeRenames.mjs.map +1 -0
  109. package/dist/admin/preview/components/PreviewHeader.js +3 -1
  110. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  111. package/dist/admin/preview/components/PreviewHeader.mjs +3 -1
  112. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  113. package/dist/admin/preview/components/PreviewSidePanel.js +2 -1
  114. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  115. package/dist/admin/preview/components/PreviewSidePanel.mjs +2 -1
  116. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  117. package/dist/admin/preview/utils/getPreviewUrlStatus.js +17 -0
  118. package/dist/admin/preview/utils/getPreviewUrlStatus.js.map +1 -0
  119. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs +15 -0
  120. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs.map +1 -0
  121. package/dist/admin/services/relations.js +2 -2
  122. package/dist/admin/services/relations.js.map +1 -1
  123. package/dist/admin/services/relations.mjs +2 -2
  124. package/dist/admin/services/relations.mjs.map +1 -1
  125. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +1 -1
  126. package/dist/admin/src/history/components/VersionInputRenderer.d.ts +3 -1
  127. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -0
  128. package/dist/admin/src/pages/ListView/utils/applyAttributeRenames.d.ts +12 -0
  129. package/dist/admin/src/preview/utils/getPreviewUrlStatus.d.ts +6 -0
  130. package/dist/admin/translations/eu.json.js +3 -3
  131. package/dist/admin/translations/eu.json.mjs +3 -3
  132. package/dist/admin/translations/gu.json.js +4 -4
  133. package/dist/admin/translations/gu.json.mjs +4 -4
  134. package/dist/admin/translations/hi.json.js +9 -9
  135. package/dist/admin/translations/hi.json.mjs +9 -9
  136. package/dist/admin/translations/ml.json.js +6 -6
  137. package/dist/admin/translations/ml.json.mjs +6 -6
  138. package/dist/admin/translations/sa.json.js +10 -10
  139. package/dist/admin/translations/sa.json.mjs +10 -10
  140. package/dist/server/controllers/relations.js +48 -16
  141. package/dist/server/controllers/relations.js.map +1 -1
  142. package/dist/server/controllers/relations.mjs +49 -17
  143. package/dist/server/controllers/relations.mjs.map +1 -1
  144. package/dist/server/history/services/history.js +1 -1
  145. package/dist/server/history/services/history.js.map +1 -1
  146. package/dist/server/history/services/history.mjs +1 -1
  147. package/dist/server/history/services/history.mjs.map +1 -1
  148. package/dist/server/homepage/services/homepage.js.map +1 -1
  149. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  150. package/dist/server/mcp/schemas/filters-schema.js +10 -2
  151. package/dist/server/mcp/schemas/filters-schema.js.map +1 -1
  152. package/dist/server/mcp/schemas/filters-schema.mjs +10 -2
  153. package/dist/server/mcp/schemas/filters-schema.mjs.map +1 -1
  154. package/dist/server/preview/controllers/validation/preview.js +1 -1
  155. package/dist/server/preview/controllers/validation/preview.js.map +1 -1
  156. package/dist/server/preview/controllers/validation/preview.mjs +2 -2
  157. package/dist/server/preview/controllers/validation/preview.mjs.map +1 -1
  158. package/dist/server/preview/services/preview-config.js.map +1 -1
  159. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  160. package/dist/server/register.js +6 -0
  161. package/dist/server/register.js.map +1 -1
  162. package/dist/server/register.mjs +6 -0
  163. package/dist/server/register.mjs.map +1 -1
  164. package/dist/server/services/components.js.map +1 -1
  165. package/dist/server/services/components.mjs.map +1 -1
  166. package/dist/server/services/configuration/rename-fields.js +68 -0
  167. package/dist/server/services/configuration/rename-fields.js.map +1 -0
  168. package/dist/server/services/configuration/rename-fields.mjs +66 -0
  169. package/dist/server/services/configuration/rename-fields.mjs.map +1 -0
  170. package/dist/server/services/document-metadata.js +1 -1
  171. package/dist/server/services/document-metadata.js.map +1 -1
  172. package/dist/server/services/document-metadata.mjs +1 -1
  173. package/dist/server/services/document-metadata.mjs.map +1 -1
  174. package/dist/server/services/utils/configuration/attribute-renames.js +164 -0
  175. package/dist/server/services/utils/configuration/attribute-renames.js.map +1 -0
  176. package/dist/server/services/utils/configuration/attribute-renames.mjs +161 -0
  177. package/dist/server/services/utils/configuration/attribute-renames.mjs.map +1 -0
  178. package/dist/server/services/utils/configuration/attributes.js +12 -12
  179. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  180. package/dist/server/services/utils/configuration/attributes.mjs +12 -12
  181. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  182. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  183. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  184. package/dist/server/src/index.d.ts +2 -0
  185. package/dist/server/src/index.d.ts.map +1 -1
  186. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  187. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  188. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  189. package/dist/server/src/register.d.ts.map +1 -1
  190. package/dist/server/src/services/components.d.ts +2 -0
  191. package/dist/server/src/services/components.d.ts.map +1 -1
  192. package/dist/server/src/services/configuration/rename-fields.d.ts +15 -0
  193. package/dist/server/src/services/configuration/rename-fields.d.ts.map +1 -0
  194. package/dist/server/src/services/index.d.ts +2 -0
  195. package/dist/server/src/services/index.d.ts.map +1 -1
  196. package/dist/server/src/services/utils/configuration/attribute-renames.d.ts +57 -0
  197. package/dist/server/src/services/utils/configuration/attribute-renames.d.ts.map +1 -0
  198. package/dist/shared/contracts/content-types.d.ts +5 -0
  199. package/dist/shared/contracts/content-types.d.ts.map +1 -1
  200. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = currentCache.results.map((item) => item.documentId);\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.includes(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;\n\nexport { useGetRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","searchRelations","_q","idsToOmit","idsToInclude","existingIds","map","item","documentId","uniqueNewItems","filter","includes","push","relations","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazySearchRelationsQuery"],"mappings":";;;;;AAkCA,MAAMA,YAAAA,GAAeC,qBAAAA,CAAkBC,eAAe,CAAC;IACrDC,SAAAA,EAAW,CAACC,SAAW;YACrBC,YAAAA,EAAcD,KAAAA,CAAME,KAAK,CAKvB;gBACAA,KAAAA,EAAO,CAAC,EAAEC,KAAK,EAAEC,EAAE,EAAEC,WAAW,EAAEC,MAAM,EAAE,GAAA;oBACxC,OAAO;wBACLC,GAAAA,EAAK,CAAC,2BAA2B,EAAEJ,KAAAA,CAAM,CAAC,EAAEC,EAAAA,CAAG,CAAC,EAAEC,WAAAA,CAAAA,CAAa;wBAC/DG,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACNH,4BAAAA;AACF;AACF,qBAAA;AACF,gBAAA,CAAA;AACAI,gBAAAA,kBAAAA,EAAoB,CAACC,IAAAA,GAAAA;AACnB,oBAAA,MAAM,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGF,IAAAA;oBACpC,OAAO;AACLC,wBAAAA,YAAAA;AACAT,wBAAAA,KAAAA,EAAOU,UAAUV,KAAK;AACtBC,wBAAAA,EAAAA,EAAIS,UAAUT,EAAE;AAChBC,wBAAAA,WAAAA,EAAaQ,UAAUR,WAAW;wBAClCS,MAAAA,EAAQD,SAAAA,CAAUP,MAAM,EAAEQ,MAAAA;wBAC1BC,MAAAA,EAAQF,SAAAA,CAAUP,MAAM,EAAES;AAC5B,qBAAA;AACF,gBAAA,CAAA;AACAC,gBAAAA,KAAAA,EAAO,CAACC,YAAAA,EAAcC,QAAAA,GAAAA;AACpB,oBAAA,IAAID,YAAAA,CAAaE,UAAU,IAAID,QAAAA,CAASC,UAAU,EAAE;wBAClD,IAAIF,YAAAA,CAAaE,UAAU,CAACC,IAAI,GAAGF,QAAAA,CAASC,UAAU,CAACC,IAAI,EAAE;AAC3D;;;;;gBAMAH,YAAAA,CAAaI,OAAO,GAAG;AAClBC,gCAAAA,GAAAA,eAAAA,CAAgBJ,QAAAA,CAASG,OAAO,EAAEJ,YAAAA,CAAaI,OAAO,CAAA;AACtDJ,gCAAAA,GAAAA,YAAAA,CAAaI;AACjB,6BAAA;4BACDJ,YAAAA,CAAaE,UAAU,GAAGD,QAAAA,CAASC,UAAU;AAC/C,wBAAA,CAAA,MAAO,IAAID,QAAAA,CAASC,UAAU,CAACC,IAAI,KAAK,CAAA,EAAG;AACzC;;AAEC,gBACDH,YAAAA,CAAaI,OAAO,GAAGC,eAAAA,CAAgBJ,SAASG,OAAO,CAAA;4BACvDJ,YAAAA,CAAaE,UAAU,GAAGD,QAAAA,CAASC,UAAU;AAC/C,wBAAA;AACF,oBAAA;AACF,gBAAA,CAAA;AACAI,gBAAAA,YAAAA,CAAAA,CAAa,EAAEC,UAAU,EAAEC,WAAW,EAAE,EAAA;AACtC,oBAAA,IAAI,CAACD,UAAAA,EAAYlB,MAAAA,IAAU,CAACmB,aAAanB,MAAAA,EAAQ;wBAC/C,OAAO,KAAA;AACT,oBAAA;oBAEA,OACEkB,UAAAA,EAAYlB,MAAAA,EAAQc,IAAAA,KAASK,WAAAA,EAAanB,MAAAA,EAAQc,QAClDI,UAAAA,EAAYlB,MAAAA,EAAQoB,QAAAA,KAAaD,WAAAA,EAAanB,MAAAA,EAAQoB,QAAAA;AAE1D,gBAAA,CAAA;AACAC,gBAAAA,iBAAAA,EAAmB,CAACC,QAAAA,GAAAA;AAClB,oBAAA,IAAI,SAAA,IAAaA,QAAAA,IAAYA,QAAAA,CAASP,OAAO,EAAE;wBAC7C,OAAO;AACL,4BAAA,GAAGO,QAAQ;AACXP,4BAAAA,OAAAA,EAASC,eAAAA,CAAgBM,QAAAA,CAASP,OAAO,CAACQ,UAAU,EAAA;AACtD,yBAAA;oBACF,CAAA,MAAO;wBACL,OAAOD,QAAAA;AACT,oBAAA;AACF,gBAAA,CAAA;gBACAE,YAAAA,EAAc;AAAC,oBAAA;AAAY;AAC7B,aAAA,CAAA;YACAC,eAAAA,EAAiB/B,KAAAA,CAAME,KAAK,CAK1B;AACAA,gBAAAA,KAAAA,EAAO,CAAC,EAAEC,KAAK,EAAEE,WAAW,EAAEC,MAAM,EAAE,GAAA;oBACpC,OAAO;AACLC,wBAAAA,GAAAA,EAAK,CAAC,2BAA2B,EAAEJ,KAAAA,CAAM,CAAC,EAAEE,WAAAA,CAAAA,CAAa;wBACzDG,MAAAA,EAAQ,KAAA;wBACRC,MAAAA,EAAQ;AACNH,4BAAAA;AACF;AACF,qBAAA;AACF,gBAAA,CAAA;AACAI,gBAAAA,kBAAAA,EAAoB,CAACC,IAAAA,GAAAA;AACnB,oBAAA,MAAM,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGF,IAAAA;oBACpC,OAAO;AACLC,wBAAAA,YAAAA;AACAT,wBAAAA,KAAAA,EAAOU,UAAUV,KAAK;AACtBE,wBAAAA,WAAAA,EAAaQ,UAAUR,WAAW;wBAClCD,EAAAA,EAAIS,SAAAA,CAAUP,MAAM,EAAEF,EAAAA;wBACtBU,MAAAA,EAAQD,SAAAA,CAAUP,MAAM,EAAEQ,MAAAA;wBAC1BC,MAAAA,EAAQF,SAAAA,CAAUP,MAAM,EAAES,MAAAA;wBAC1BiB,EAAAA,EAAInB,SAAAA,CAAUP,MAAM,EAAE0B,EAAAA;wBACtBC,SAAAA,EAAWpB,SAAAA,CAAUP,MAAM,EAAE2B,SAAAA;wBAC7BC,YAAAA,EAAcrB,SAAAA,CAAUP,MAAM,EAAE4B;AAClC,qBAAA;AACF,gBAAA,CAAA;AACAlB,gBAAAA,KAAAA,EAAO,CAACC,YAAAA,EAAcC,QAAAA,GAAAA;AACpB,oBAAA,IAAID,YAAAA,CAAaE,UAAU,IAAID,QAAAA,CAASC,UAAU,EAAE;wBAClD,IAAIF,YAAAA,CAAaE,UAAU,CAACC,IAAI,GAAGF,QAAAA,CAASC,UAAU,CAACC,IAAI,EAAE;AAC3D;;;gBAIA,MAAMe,WAAAA,GAAclB,YAAAA,CAAaI,OAAO,CAACe,GAAG,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,UAAU,CAAA;AACtE,4BAAA,MAAMC,cAAAA,GAAiBrB,QAAAA,CAASG,OAAO,CAACmB,MAAM,CAC5C,CAACH,IAAAA,GAAS,CAACF,WAAAA,CAAYM,QAAQ,CAACJ,KAAKC,UAAU,CAAA,CAAA;4BAEjDrB,YAAAA,CAAaI,OAAO,CAACqB,IAAI,CAAA,GAAIH,cAAAA,CAAAA;4BAC7BtB,YAAAA,CAAaE,UAAU,GAAGD,QAAAA,CAASC,UAAU;AAC/C,wBAAA,CAAA,MAAO,IAAID,QAAAA,CAASC,UAAU,CAACC,IAAI,KAAK,CAAA,EAAG;AACzC;;AAEC,gBACDH,YAAAA,CAAaI,OAAO,GAAGH,QAAAA,CAASG,OAAO;4BACvCJ,YAAAA,CAAaE,UAAU,GAAGD,QAAAA,CAASC,UAAU;AAC/C,wBAAA;AACF,oBAAA;AACF,gBAAA,CAAA;AACAI,gBAAAA,YAAAA,CAAAA,CAAa,EAAEC,UAAU,EAAEC,WAAW,EAAE,EAAA;AACtC,oBAAA,IAAI,CAACD,UAAAA,EAAYlB,MAAAA,IAAU,CAACmB,aAAanB,MAAAA,EAAQ;wBAC/C,OAAO,KAAA;AACT,oBAAA;oBAEA,OACEkB,UAAAA,EAAYlB,MAAAA,EAAQc,IAAAA,KAASK,WAAAA,EAAanB,MAAAA,EAAQc,QAClDI,UAAAA,EAAYlB,MAAAA,EAAQoB,QAAAA,KAAaD,WAAAA,EAAanB,MAAAA,EAAQoB,QAAAA;AAE1D,gBAAA,CAAA;AACAC,gBAAAA,iBAAAA,EAAmB,CAACC,QAAAA,GAAAA;oBAClB,IAAIA,QAAAA,CAASP,OAAO,EAAE;wBACpB,OAAO;AACL,4BAAA,GAAGO,QAAQ;AACXP,4BAAAA,OAAAA,EAASO,SAASP;AACpB,yBAAA;oBACF,CAAA,MAAO;wBACL,OAAOO,QAAAA;AACT,oBAAA;AACF,gBAAA;AACF,aAAA;SACF;AACF,CAAA,CAAA;AAEA;;;;AAIC,IACD,MAAMN,eAAAA,GAAkB,CAACqB,SAAAA,EAAwBC,oBAAsC,EAAE,GAAA;AACvF,IAAA,MAAM,CAACC,SAAAA,CAAU,GAAGD,iBAAAA,CAAkBE,KAAK,CAAC,CAAA,CAAA;AAC5C,IAAA,MAAMC,OAAOC,uCAAAA,CAAqB,IAAA,EAAMH,WAAWI,YAAAA,IAAgB,IAAA,EAAMN,UAAUO,MAAM,CAAA;AAEzF,IAAA,OAAOP,UAAUP,GAAG,CAAC,CAACe,KAAAA,EAAOC,SAAW;AACtC,YAAA,GAAGD,KAAK;YACRF,YAAAA,EAAcF,IAAI,CAACK,KAAAA;SACrB,CAAA,CAAA;AACF,CAAA;AAEA,MAAM,EAAEC,oBAAoB,EAAEC,2BAA2B,EAAE,GAAG1D;;;;;"}
1
+ {"version":3,"file":"relations.js","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = new Set(currentCache.results.map((item) => item.documentId));\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.has(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;\n\nexport { useGetRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","searchRelations","_q","idsToOmit","idsToInclude","existingIds","Set","map","item","documentId","uniqueNewItems","filter","has","push","relations","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazySearchRelationsQuery"],"mappings":"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"}
@@ -95,8 +95,8 @@ const relationsApi = contentManagerApi.injectEndpoints({
95
95
  /**
96
96
  * Relations will always have unique IDs, so we can therefore assume
97
97
  * that we only need to push the new items to the cache.
98
- */ const existingIds = currentCache.results.map((item)=>item.documentId);
99
- const uniqueNewItems = newItems.results.filter((item)=>!existingIds.includes(item.documentId));
98
+ */ const existingIds = new Set(currentCache.results.map((item)=>item.documentId));
99
+ const uniqueNewItems = newItems.results.filter((item)=>!existingIds.has(item.documentId));
100
100
  currentCache.results.push(...uniqueNewItems);
101
101
  currentCache.pagination = newItems.pagination;
102
102
  } else if (newItems.pagination.page === 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"relations.mjs","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = currentCache.results.map((item) => item.documentId);\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.includes(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;\n\nexport { useGetRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","searchRelations","_q","idsToOmit","idsToInclude","existingIds","map","item","documentId","uniqueNewItems","filter","includes","push","relations","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazySearchRelationsQuery"],"mappings":"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"}
1
+ {"version":3,"file":"relations.mjs","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = new Set(currentCache.results.map((item) => item.documentId));\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.has(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;\n\nexport { useGetRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","searchRelations","_q","idsToOmit","idsToInclude","existingIds","Set","map","item","documentId","uniqueNewItems","filter","has","push","relations","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazySearchRelationsQuery"],"mappings":"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"}
@@ -12,7 +12,7 @@ interface FieldsProps extends Pick<EditLayout, 'metadatas'>, Pick<FieldProps, 'c
12
12
  fieldSizes: Record<string, number>;
13
13
  components: EditLayout['components'];
14
14
  }
15
- declare const Fields: ({ attributes, fieldSizes, components, metadatas }: FieldsProps) => import("react/jsx-runtime").JSX.Element;
15
+ declare const Fields: ({ attributes, fieldSizes, components, metadatas, }: FieldsProps) => import("react/jsx-runtime").JSX.Element;
16
16
  interface FieldProps extends Pick<EditFieldFormProps, 'name' | 'attribute'> {
17
17
  components: EditLayout['components'];
18
18
  dndId: string;
@@ -8,6 +8,8 @@ type VersionInputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {
8
8
  * @default false
9
9
  */
10
10
  shouldIgnoreRBAC?: boolean;
11
+ /** Passed down by component and dynamic zone layouts; not used here. */
12
+ size?: number;
11
13
  };
12
14
  /**
13
15
  * Resolve the layout, configuration metadata and schema attributes needed to
@@ -40,6 +42,6 @@ declare const resolveComponentRenderResources: (componentUID: string, components
40
42
  * to be used on the History page in the content-manager. It understands how to render specific
41
43
  * inputs within the context of a history version (i.e. relations, media, ignored RBAC, etc...)
42
44
  */
43
- declare const VersionInputRenderer: ({ visible, hint: providedHint, shouldIgnoreRBAC, labelAction, ...props }: VersionInputRendererProps) => import("react/jsx-runtime").JSX.Element | null;
45
+ declare const VersionInputRenderer: ({ visible, hint: providedHint, shouldIgnoreRBAC, labelAction, size: _size, ...props }: VersionInputRendererProps) => import("react/jsx-runtime").JSX.Element | null;
44
46
  export type { VersionInputRendererProps };
45
47
  export { VersionInputRenderer, CustomRelationInput, resolveComponentRenderResources };
@@ -5,6 +5,8 @@ import type { Schema } from '@strapi/types';
5
5
  import type { DistributiveOmit } from 'react-redux';
6
6
  type InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {
7
7
  document?: ReturnType<UseDocument>;
8
+ /** The field's width in the edit layout, out of 12. */
9
+ size?: number;
8
10
  };
9
11
  declare const useFieldHint: (hint: React.ReactNode, attribute: Schema.Attribute.AnyAttribute) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | (string | import("react/jsx-runtime").JSX.Element | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal)[] | null | undefined;
10
12
  /**
@@ -0,0 +1,12 @@
1
+ type Attributes = Record<string, unknown>;
2
+ type Renames = Record<string, string>;
3
+ /**
4
+ * The selected list columns live in the browser. A renamed field is no longer
5
+ * on the schema, so replace it with the name from the server map and drop a
6
+ * name that was deleted. A name that still exists is left alone, even when an
7
+ * older map mentions it.
8
+ */
9
+ declare const applyAttributeRenamesToHeaders: (headers: string[], attributes: Attributes, renames: Renames) => string[];
10
+ declare const applyAttributeRenamesToSort: (sort: string, attributes: Attributes, renames: Renames) => string;
11
+ declare const applyAttributeRenamesToFilters: <T>(filters: T, attributes: Attributes, renames: Renames, renameKeys?: boolean) => T;
12
+ export { applyAttributeRenamesToFilters, applyAttributeRenamesToHeaders, applyAttributeRenamesToSort, };
@@ -0,0 +1,6 @@
1
+ import type { GetPreviewUrl } from '../../../../shared/contracts/preview';
2
+ /**
3
+ * The preview URL endpoint only accepts the draft and published statuses.
4
+ * A modified document is a draft with changes that are not published yet, so its preview is the draft.
5
+ */
6
+ export declare function getPreviewUrlStatus(status: string | undefined): GetPreviewUrl.Request['query']['status'];
@@ -54,7 +54,7 @@ var eu = {
54
54
  "components.SettingsViewWrapper.pluginHeader.title": "Konfiguratu ikuspegia - {name}",
55
55
  "components.TableDelete.delete": "Ezabatu dena",
56
56
  "components.TableDelete.deleteSelected": "Ezabatu hautatutakoa",
57
- "components.TableDelete.label": "{{number, plural, bat {# entry} other {# entries}} hautatuta",
57
+ "components.TableDelete.label": "{number, plural, one {# sarrera} other {# sarrera}} hautatuta",
58
58
  "components.TableEmpty.withFilters": "Ez dago {contentType} aplikatutako iragazkiekin...",
59
59
  "components.TableEmpty.withSearch": "Ez dago {edukiTipo} bat ere bilaketarekin ({search})...",
60
60
  "components.TableEmpty.withoutFilter": "Ez dago {contentType}...",
@@ -97,7 +97,7 @@ var eu = {
97
97
  "containers.List.errorFetchRecords": "Errorea",
98
98
  "containers.List.published": "Argitaratuta",
99
99
  "containers.list.displayedFields": "Bistaratzen diren eremuak",
100
- "containers.list.items": "{{number, plural, =0 {items} bat {item} beste {items}}",
100
+ "containers.list.items": "{number} {number, plural, =0 {elementu} one {elementu} other {elementu}}",
101
101
  "containers.list.table-headers.publishedAt": "Egoera",
102
102
  "containers.ListSettingsView.modal-form.edit-label": "Editatu {fieldName}",
103
103
  "containers.SettingPage.add.field": "Sartu beste eremu bat",
@@ -177,7 +177,7 @@ var eu = {
177
177
  "notification.info.minimumFields": "Gutxienez eremu bat erakutsi behar da",
178
178
  "notification.upload.error": "Errorea gertatu da fitxategiak igotzean",
179
179
  pageNotFound: pageNotFound,
180
- "pages.ListView.header-subtitle": "{{number, plural, =0 {# entries} bat {# entry} beste {# entries}} aurkitu dira",
180
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# sarrera} one {# sarrera} other {# sarrera}} aurkitu dira",
181
181
  "pages.NoContentType.button": "Sortu zure lehen eduki-mota",
182
182
  "pages.NoContentType.text": "Oraindik ez duzu edukirik, zure lehen Eduki Mota sortzea gomendatzen dizugu",
183
183
  "permissions.not-allowed.create": "Ez duzu baimenik dokumentuak sortzeko",
@@ -50,7 +50,7 @@ var eu = {
50
50
  "components.SettingsViewWrapper.pluginHeader.title": "Konfiguratu ikuspegia - {name}",
51
51
  "components.TableDelete.delete": "Ezabatu dena",
52
52
  "components.TableDelete.deleteSelected": "Ezabatu hautatutakoa",
53
- "components.TableDelete.label": "{{number, plural, bat {# entry} other {# entries}} hautatuta",
53
+ "components.TableDelete.label": "{number, plural, one {# sarrera} other {# sarrera}} hautatuta",
54
54
  "components.TableEmpty.withFilters": "Ez dago {contentType} aplikatutako iragazkiekin...",
55
55
  "components.TableEmpty.withSearch": "Ez dago {edukiTipo} bat ere bilaketarekin ({search})...",
56
56
  "components.TableEmpty.withoutFilter": "Ez dago {contentType}...",
@@ -93,7 +93,7 @@ var eu = {
93
93
  "containers.List.errorFetchRecords": "Errorea",
94
94
  "containers.List.published": "Argitaratuta",
95
95
  "containers.list.displayedFields": "Bistaratzen diren eremuak",
96
- "containers.list.items": "{{number, plural, =0 {items} bat {item} beste {items}}",
96
+ "containers.list.items": "{number} {number, plural, =0 {elementu} one {elementu} other {elementu}}",
97
97
  "containers.list.table-headers.publishedAt": "Egoera",
98
98
  "containers.ListSettingsView.modal-form.edit-label": "Editatu {fieldName}",
99
99
  "containers.SettingPage.add.field": "Sartu beste eremu bat",
@@ -173,7 +173,7 @@ var eu = {
173
173
  "notification.info.minimumFields": "Gutxienez eremu bat erakutsi behar da",
174
174
  "notification.upload.error": "Errorea gertatu da fitxategiak igotzean",
175
175
  pageNotFound: pageNotFound,
176
- "pages.ListView.header-subtitle": "{{number, plural, =0 {# entries} bat {# entry} beste {# entries}} aurkitu dira",
176
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# sarrera} one {# sarrera} other {# sarrera}} aurkitu dira",
177
177
  "pages.NoContentType.button": "Sortu zure lehen eduki-mota",
178
178
  "pages.NoContentType.text": "Oraindik ez duzu edukirik, zure lehen Eduki Mota sortzea gomendatzen dizugu",
179
179
  "permissions.not-allowed.create": "Ez duzu baimenik dokumentuak sortzeko",
@@ -25,7 +25,7 @@ var gu = {
25
25
  "components.DynamicZone.add-component": "{componentName} માં એક ઘટક ઉમેરો",
26
26
  "components.DynamicZone.delete-label": "{name} કાઢી નાખો",
27
27
  "components.DynamicZone.error-message": "ઘટકમાં ભૂલ(ઓ) છે",
28
- "components.DynamicZone.missing-components": "ત્યાં {સંખ્યા, બહુવચન, =0 {are # ખૂટે છે} એક {છે # ખૂટે છે} અન્ય {છે # ખૂટે છે}}",
28
+ "components.DynamicZone.missing-components": "{number, plural, =0 {# ઘટકો ખૂટે છે} one {# ઘટક ખૂટે છે} other {# ઘટકો ખૂટે છે}}",
29
29
  "components.DynamicZone.move-down-label": "ઘટકને નીચે ખસેડો",
30
30
  "components.DynamicZone.move-up-label": "ઘટક ઉપર ખસેડો",
31
31
  "components.DynamicZone.pick-compo": "એક ઘટક પસંદ કરો",
@@ -54,7 +54,7 @@ var gu = {
54
54
  "components.SettingsViewWrapper.pluginHeader.title": "દૃશ્યને ગોઠવો - {name}",
55
55
  "components.TableDelete.delete": "બધુ કાઢી નાખો",
56
56
  "components.TableDelete.deleteSelected": "પસંદ કરેલ કાઢી નાખો",
57
- "components.TableDelete.label": "{સંખ્યા, બહુવચન, એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} પસંદ કરેલ",
57
+ "components.TableDelete.label": "{number, plural, one {# એન્ટ્રી} other {# એન્ટ્રી}} પસંદ કરેલ",
58
58
  "components.TableEmpty.withFilters": "લાગુ કરેલ ફિલ્ટર્સ સાથે કોઈ {contentType} નથી...",
59
59
  "components.TableEmpty.withSearch": "શોધને અનુરૂપ કોઈ {contentType} નથી ({search})...",
60
60
  "components.TableEmpty.withoutFilter": "ત્યાં કોઈ {contentType} નથી...",
@@ -97,7 +97,7 @@ var gu = {
97
97
  "containers.List.errorFetchRecords": "ભૂલ",
98
98
  "containers.List.published": "પ્રકાશિત",
99
99
  "containers.list.displayedFields": "પ્રદર્શિત ક્ષેત્રો",
100
- "containers.list.items": "{સંખ્યા, બહુવચન, =0 {items} એક {item} અન્ય {items}}",
100
+ "containers.list.items": "{number} {number, plural, =0 {આઇટમ} one {આઇટમ} other {આઇટમ}}",
101
101
  "containers.list.table-headers.publishedAt": "રાજ્ય",
102
102
  "containers.ListSettingsView.modal-form.edit-label": "{fieldName} સંપાદિત કરો",
103
103
  "containers.SettingPage.add.field": "બીજું ક્ષેત્ર દાખલ કરો",
@@ -177,7 +177,7 @@ var gu = {
177
177
  "notification.info.minimumFields": "તમારે ઓછામાં ઓછું એક ફીલ્ડ પ્રદર્શિત કરવું જરૂરી છે",
178
178
  "notification.upload.error": "તમારી ફાઇલો અપલોડ કરતી વખતે એક ભૂલ આવી છે",
179
179
  pageNotFound: pageNotFound,
180
- "pages.ListView.header-subtitle": "{સંખ્યા, બહુવચન, =0 {# એન્ટ્રી} એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} મળી",
180
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# એન્ટ્રી} one {# એન્ટ્રી} other {# એન્ટ્રી}} મળી",
181
181
  "pages.NoContentType.button": "તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવો",
182
182
  "pages.NoContentType.text": "તમારી પાસે હજી સુધી કોઈ સામગ્રી નથી, અમે તમને તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવવાની ભલામણ કરીએ છીએ.",
183
183
  "permissions.not-allowed.create": "તમને દસ્તાવેજ બનાવવાની મંજૂરી નથી",
@@ -21,7 +21,7 @@ var gu = {
21
21
  "components.DynamicZone.add-component": "{componentName} માં એક ઘટક ઉમેરો",
22
22
  "components.DynamicZone.delete-label": "{name} કાઢી નાખો",
23
23
  "components.DynamicZone.error-message": "ઘટકમાં ભૂલ(ઓ) છે",
24
- "components.DynamicZone.missing-components": "ત્યાં {સંખ્યા, બહુવચન, =0 {are # ખૂટે છે} એક {છે # ખૂટે છે} અન્ય {છે # ખૂટે છે}}",
24
+ "components.DynamicZone.missing-components": "{number, plural, =0 {# ઘટકો ખૂટે છે} one {# ઘટક ખૂટે છે} other {# ઘટકો ખૂટે છે}}",
25
25
  "components.DynamicZone.move-down-label": "ઘટકને નીચે ખસેડો",
26
26
  "components.DynamicZone.move-up-label": "ઘટક ઉપર ખસેડો",
27
27
  "components.DynamicZone.pick-compo": "એક ઘટક પસંદ કરો",
@@ -50,7 +50,7 @@ var gu = {
50
50
  "components.SettingsViewWrapper.pluginHeader.title": "દૃશ્યને ગોઠવો - {name}",
51
51
  "components.TableDelete.delete": "બધુ કાઢી નાખો",
52
52
  "components.TableDelete.deleteSelected": "પસંદ કરેલ કાઢી નાખો",
53
- "components.TableDelete.label": "{સંખ્યા, બહુવચન, એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} પસંદ કરેલ",
53
+ "components.TableDelete.label": "{number, plural, one {# એન્ટ્રી} other {# એન્ટ્રી}} પસંદ કરેલ",
54
54
  "components.TableEmpty.withFilters": "લાગુ કરેલ ફિલ્ટર્સ સાથે કોઈ {contentType} નથી...",
55
55
  "components.TableEmpty.withSearch": "શોધને અનુરૂપ કોઈ {contentType} નથી ({search})...",
56
56
  "components.TableEmpty.withoutFilter": "ત્યાં કોઈ {contentType} નથી...",
@@ -93,7 +93,7 @@ var gu = {
93
93
  "containers.List.errorFetchRecords": "ભૂલ",
94
94
  "containers.List.published": "પ્રકાશિત",
95
95
  "containers.list.displayedFields": "પ્રદર્શિત ક્ષેત્રો",
96
- "containers.list.items": "{સંખ્યા, બહુવચન, =0 {items} એક {item} અન્ય {items}}",
96
+ "containers.list.items": "{number} {number, plural, =0 {આઇટમ} one {આઇટમ} other {આઇટમ}}",
97
97
  "containers.list.table-headers.publishedAt": "રાજ્ય",
98
98
  "containers.ListSettingsView.modal-form.edit-label": "{fieldName} સંપાદિત કરો",
99
99
  "containers.SettingPage.add.field": "બીજું ક્ષેત્ર દાખલ કરો",
@@ -173,7 +173,7 @@ var gu = {
173
173
  "notification.info.minimumFields": "તમારે ઓછામાં ઓછું એક ફીલ્ડ પ્રદર્શિત કરવું જરૂરી છે",
174
174
  "notification.upload.error": "તમારી ફાઇલો અપલોડ કરતી વખતે એક ભૂલ આવી છે",
175
175
  pageNotFound: pageNotFound,
176
- "pages.ListView.header-subtitle": "{સંખ્યા, બહુવચન, =0 {# એન્ટ્રી} એક {# એન્ટ્રી} અન્ય {# એન્ટ્રી}} મળી",
176
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# એન્ટ્રી} one {# એન્ટ્રી} other {# એન્ટ્રી}} મળી",
177
177
  "pages.NoContentType.button": "તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવો",
178
178
  "pages.NoContentType.text": "તમારી પાસે હજી સુધી કોઈ સામગ્રી નથી, અમે તમને તમારો પ્રથમ સામગ્રી-પ્રકાર બનાવવાની ભલામણ કરીએ છીએ.",
179
179
  "permissions.not-allowed.create": "તમને દસ્તાવેજ બનાવવાની મંજૂરી નથી",
@@ -17,15 +17,15 @@ var hi = {
17
17
  "components.AddFilterCTA.hide": "फिल्टर",
18
18
  "components.DragHandle-label": "खींचें",
19
19
  "components.DraggableAttr.edit": "सम्पादन के लिए क्लिक करो",
20
- "components.DraggableCard.delete.field": "चीज़ें हटाएं}",
20
+ "components.DraggableCard.delete.field": "{item} हटाएं",
21
21
  "components.DraggableCard.edit.field": "संपादित {item}",
22
- "components.DraggableCard.move.field": "{आइटम} ले जाएँ",
22
+ "components.DraggableCard.move.field": "{item} ले जाएँ",
23
23
  "components.ListViewTable.row-line": "आइटम लाइन {नंबर}",
24
24
  "components.DynamicZone.ComponentPicker-label": "एक घटक चुनें",
25
- "components.DynamicZone.add-component": "{घटक नाम} में एक घटक जोड़ें",
26
- "components.DynamicZone.delete-label": "{नाम} हटाएं",
25
+ "components.DynamicZone.add-component": "{componentName} में एक घटक जोड़ें",
26
+ "components.DynamicZone.delete-label": "{name} हटाएं",
27
27
  "components.DynamicZone.error-message": "घटक में त्रुटि है",
28
- "components.DynamicZone.missing-components": "वहाँ {संख्या, बहुवचन, =0 {हैं # अनुपलब्ध घटक} एक {is # अनुपलब्ध घटक} अन्य {हैं # अनुपलब्ध घटक}}",
28
+ "components.DynamicZone.missing-components": "{number, plural, =0 {# घटक अनुपलब्ध हैं} one {# घटक अनुपलब्ध है} other {# घटक अनुपलब्ध हैं}}",
29
29
  "components.DynamicZone.move-down-label": "घटक नीचे ले जाएँ",
30
30
  "components.DynamicZone.move-up-label": "घटक ऊपर ले जाएँ",
31
31
  "components.DynamicZone.pick-compo": "एक घटक चुनें",
@@ -51,10 +51,10 @@ var hi = {
51
51
  "components.Select.publish-info-title": "राज्य: प्रकाशित",
52
52
  "components.SettingsViewWrapper.pluginHeader.description.edit-settings": "अनुकूलित करें कि संपादन दृश्य कैसा दिखेगा।",
53
53
  "components.SettingsViewWrapper.pluginHeader.description.list-settings": "सूची दृश्य की सेटिंग परिभाषित करें.",
54
- "components.SettingsViewWrapper.pluginHeader.title": "दृश्य कॉन्फ़िगर करें - {नाम}",
54
+ "components.SettingsViewWrapper.pluginHeader.title": "दृश्य कॉन्फ़िगर करें - {name}",
55
55
  "components.TableDelete.delete": "सभी हटा दो",
56
56
  "components.TableDelete.deleteSelected": "चयनित मिटाएं",
57
- "components.TableDelete.label": "{संख्या, बहुवचन, एक {# प्रविष्टि} अन्य {# प्रविष्टियां}} चयनित",
57
+ "components.TableDelete.label": "{number, plural, one {# प्रविष्टि} other {# प्रविष्टियां}} चयनित",
58
58
  "components.TableEmpty.withFilters": "लागू किए गए फ़िल्टर के साथ कोई {contentType} नहीं है...",
59
59
  "components.TableEmpty.withSearch": "खोज से संबंधित कोई {contentType} नहीं है ({search})...",
60
60
  "components.TableEmpty.withoutFilter": "कोई {contentType} नहीं है...",
@@ -97,7 +97,7 @@ var hi = {
97
97
  "containers.List.errorFetchRecords": "गलती",
98
98
  "containers.List.published": "प्रकाशित",
99
99
  "containers.list.displayedFields": "प्रदर्शित फ़ील्ड",
100
- "containers.list.items": "{संख्या, बहुवचन, =0 {आइटम} एक {आइटम} अन्य {आइटम}}",
100
+ "containers.list.items": "{number} {number, plural, =0 {आइटम} one {आइटम} other {आइटम}}",
101
101
  "containers.list.table-headers.publishedAt": "राज्य",
102
102
  "containers.ListSettingsView.modal-form.edit-label": "संपादित करें {फ़ील्डनाम}",
103
103
  "containers.SettingPage.add.field": "एक और फ़ील्ड डालें",
@@ -177,7 +177,7 @@ var hi = {
177
177
  "notification.info.minimumFields": "आपको कम से कम एक फ़ील्ड प्रदर्शित करने की आवश्यकता है",
178
178
  "notification.upload.error": "आपकी फ़ाइलें अपलोड करते समय एक त्रुटि हुई है",
179
179
  pageNotFound: pageNotFound,
180
- "pages.ListView.header-subtitle": "{संख्या, बहुवचन, =0 {# प्रविष्टियां} एक {# प्रविष्टि} अन्य {# प्रविष्टियां}} मिली",
180
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# प्रविष्टियां} one {# प्रविष्टि} other {# प्रविष्टियां}} मिली",
181
181
  "pages.NoContentType.button": "अपना पहला सामग्री-प्रकार बनाएं",
182
182
  "pages.NoContentType.text": "आपके पास अभी तक कोई सामग्री नहीं है, हम अनुशंसा करते हैं कि आप अपना पहला सामग्री-प्रकार बनाएं।",
183
183
  "permissions.not-allowed.create": "आपको दस्तावेज़ बनाने की अनुमति नहीं है",
@@ -13,15 +13,15 @@ var hi = {
13
13
  "components.AddFilterCTA.hide": "फिल्टर",
14
14
  "components.DragHandle-label": "खींचें",
15
15
  "components.DraggableAttr.edit": "सम्पादन के लिए क्लिक करो",
16
- "components.DraggableCard.delete.field": "चीज़ें हटाएं}",
16
+ "components.DraggableCard.delete.field": "{item} हटाएं",
17
17
  "components.DraggableCard.edit.field": "संपादित {item}",
18
- "components.DraggableCard.move.field": "{आइटम} ले जाएँ",
18
+ "components.DraggableCard.move.field": "{item} ले जाएँ",
19
19
  "components.ListViewTable.row-line": "आइटम लाइन {नंबर}",
20
20
  "components.DynamicZone.ComponentPicker-label": "एक घटक चुनें",
21
- "components.DynamicZone.add-component": "{घटक नाम} में एक घटक जोड़ें",
22
- "components.DynamicZone.delete-label": "{नाम} हटाएं",
21
+ "components.DynamicZone.add-component": "{componentName} में एक घटक जोड़ें",
22
+ "components.DynamicZone.delete-label": "{name} हटाएं",
23
23
  "components.DynamicZone.error-message": "घटक में त्रुटि है",
24
- "components.DynamicZone.missing-components": "वहाँ {संख्या, बहुवचन, =0 {हैं # अनुपलब्ध घटक} एक {is # अनुपलब्ध घटक} अन्य {हैं # अनुपलब्ध घटक}}",
24
+ "components.DynamicZone.missing-components": "{number, plural, =0 {# घटक अनुपलब्ध हैं} one {# घटक अनुपलब्ध है} other {# घटक अनुपलब्ध हैं}}",
25
25
  "components.DynamicZone.move-down-label": "घटक नीचे ले जाएँ",
26
26
  "components.DynamicZone.move-up-label": "घटक ऊपर ले जाएँ",
27
27
  "components.DynamicZone.pick-compo": "एक घटक चुनें",
@@ -47,10 +47,10 @@ var hi = {
47
47
  "components.Select.publish-info-title": "राज्य: प्रकाशित",
48
48
  "components.SettingsViewWrapper.pluginHeader.description.edit-settings": "अनुकूलित करें कि संपादन दृश्य कैसा दिखेगा।",
49
49
  "components.SettingsViewWrapper.pluginHeader.description.list-settings": "सूची दृश्य की सेटिंग परिभाषित करें.",
50
- "components.SettingsViewWrapper.pluginHeader.title": "दृश्य कॉन्फ़िगर करें - {नाम}",
50
+ "components.SettingsViewWrapper.pluginHeader.title": "दृश्य कॉन्फ़िगर करें - {name}",
51
51
  "components.TableDelete.delete": "सभी हटा दो",
52
52
  "components.TableDelete.deleteSelected": "चयनित मिटाएं",
53
- "components.TableDelete.label": "{संख्या, बहुवचन, एक {# प्रविष्टि} अन्य {# प्रविष्टियां}} चयनित",
53
+ "components.TableDelete.label": "{number, plural, one {# प्रविष्टि} other {# प्रविष्टियां}} चयनित",
54
54
  "components.TableEmpty.withFilters": "लागू किए गए फ़िल्टर के साथ कोई {contentType} नहीं है...",
55
55
  "components.TableEmpty.withSearch": "खोज से संबंधित कोई {contentType} नहीं है ({search})...",
56
56
  "components.TableEmpty.withoutFilter": "कोई {contentType} नहीं है...",
@@ -93,7 +93,7 @@ var hi = {
93
93
  "containers.List.errorFetchRecords": "गलती",
94
94
  "containers.List.published": "प्रकाशित",
95
95
  "containers.list.displayedFields": "प्रदर्शित फ़ील्ड",
96
- "containers.list.items": "{संख्या, बहुवचन, =0 {आइटम} एक {आइटम} अन्य {आइटम}}",
96
+ "containers.list.items": "{number} {number, plural, =0 {आइटम} one {आइटम} other {आइटम}}",
97
97
  "containers.list.table-headers.publishedAt": "राज्य",
98
98
  "containers.ListSettingsView.modal-form.edit-label": "संपादित करें {फ़ील्डनाम}",
99
99
  "containers.SettingPage.add.field": "एक और फ़ील्ड डालें",
@@ -173,7 +173,7 @@ var hi = {
173
173
  "notification.info.minimumFields": "आपको कम से कम एक फ़ील्ड प्रदर्शित करने की आवश्यकता है",
174
174
  "notification.upload.error": "आपकी फ़ाइलें अपलोड करते समय एक त्रुटि हुई है",
175
175
  pageNotFound: pageNotFound,
176
- "pages.ListView.header-subtitle": "{संख्या, बहुवचन, =0 {# प्रविष्टियां} एक {# प्रविष्टि} अन्य {# प्रविष्टियां}} मिली",
176
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# प्रविष्टियां} one {# प्रविष्टि} other {# प्रविष्टियां}} मिली",
177
177
  "pages.NoContentType.button": "अपना पहला सामग्री-प्रकार बनाएं",
178
178
  "pages.NoContentType.text": "आपके पास अभी तक कोई सामग्री नहीं है, हम अनुशंसा करते हैं कि आप अपना पहला सामग्री-प्रकार बनाएं।",
179
179
  "permissions.not-allowed.create": "आपको दस्तावेज़ बनाने की अनुमति नहीं है",
@@ -18,14 +18,14 @@ var ml = {
18
18
  "components.DragHandle-label": "ഡ്രാഗ്",
19
19
  "components.DraggableAttr.edit": "എഡിറ്റ് ചെയ്യാൻ ക്ലിക്ക് ചെയ്യുക",
20
20
  "components.DraggableCard.delete.field": "{item} ഇല്ലാതാക്കുക",
21
- "components.DraggableCard.edit.field": "എഡിറ്റ് {ഇനം}",
22
- "components.DraggableCard.move.field": "നീക്കുക {ഇനം}",
21
+ "components.DraggableCard.edit.field": "എഡിറ്റ് {item}",
22
+ "components.DraggableCard.move.field": "നീക്കുക {item}",
23
23
  "components.ListViewTable.row-line": "ഇനത്തിന്റെ വരി {number}",
24
24
  "components.DynamicZone.ComponentPicker-label": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
25
25
  "components.DynamicZone.add-component": "{componentName} എന്നതിലേക്ക് ഒരു ഘടകം ചേർക്കുക",
26
26
  "components.DynamicZone.delete-label": "{name} ഇല്ലാതാക്കുക",
27
27
  "components.DynamicZone.error-message": "ഘടകത്തിൽ പിശക്(കൾ) അടങ്ങിയിരിക്കുന്നു",
28
- "components.DynamicZone.missing-components": "അവിടെ {സംഖ്യ, ബഹുവചനം, =0 {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്} ഒന്ന് {# നഷ്‌ടമായ ഘടകമാണ്} മറ്റൊന്ന് {# നഷ്‌ടമായ ഘടകങ്ങളാണ്}}",
28
+ "components.DynamicZone.missing-components": "{number, plural, =0 {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്} one {നഷ്‌ടമായ # ഘടകമുണ്ട്} other {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്}}",
29
29
  "components.DynamicZone.move-down-label": "ഘടകം താഴേക്ക് നീക്കുക",
30
30
  "components.DynamicZone.move-up-label": "ഘടകം മുകളിലേക്ക് നീക്കുക",
31
31
  "components.DynamicZone.pick-compo": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
@@ -54,7 +54,7 @@ var ml = {
54
54
  "components.SettingsViewWrapper.pluginHeader.title": "കാഴ്ച കോൺഫിഗർ ചെയ്യുക - {name}",
55
55
  "components.TableDelete.delete": "എല്ലാം ഇല്ലാതാക്കുക",
56
56
  "components.TableDelete.deleteSelected": "തിരഞ്ഞെടുത്ത ഇല്ലാതാക്കുക",
57
- "components.TableDelete.label": "{സംഖ്യ, ബഹുവചനം, ഒരു {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} തിരഞ്ഞെടുത്തു",
57
+ "components.TableDelete.label": "{number, plural, one {# എൻട്രി} other {# എൻട്രികൾ}} തിരഞ്ഞെടുത്തു",
58
58
  "components.TableEmpty.withFilters": "പ്രയോഗിച്ച ഫിൽട്ടറുകൾക്കൊപ്പം {contentType} ഒന്നുമില്ല...",
59
59
  "components.TableEmpty.withSearch": "തിരയലുമായി ബന്ധപ്പെട്ട {contentType} ഒന്നുമില്ല ({തിരയൽ})...",
60
60
  "components.TableEmpty.withoutFilter": "{contentType} ഒന്നുമില്ല...",
@@ -97,7 +97,7 @@ var ml = {
97
97
  "containers.List.errorFetchRecords": "പിശക്",
98
98
  "containers.List.published": "പ്രസിദ്ധീകരിച്ചു",
99
99
  "containers.list.displayedFields": "പ്രദർശിപ്പിച്ച ഫീൽഡുകൾ",
100
- "containers.list.items": "{സംഖ്യ, ബഹുവചനം, =0 {ഇനങ്ങൾ} ഒന്ന് {ഇനം} മറ്റൊന്ന് {ഇനങ്ങൾ}}",
100
+ "containers.list.items": "{number} {number, plural, =0 {ഇനങ്ങൾ} one {ഇനം} other {ഇനങ്ങൾ}}",
101
101
  "containers.list.table-headers.publishedAt": "സ്റ്റേറ്റ്",
102
102
  "containers.ListSettingsView.modal-form.edit-label": "എഡിറ്റ് {fieldName}",
103
103
  "containers.SettingPage.add.field": "മറ്റൊരു ഫീൽഡ് ചേർക്കുക",
@@ -177,7 +177,7 @@ var ml = {
177
177
  "notification.info.minimumFields": "നിങ്ങൾക്ക് കുറഞ്ഞത് ഒരു ഫീൽഡെങ്കിലും പ്രദർശിപ്പിക്കേണ്ടതുണ്ട്",
178
178
  "notification.upload.error": "നിങ്ങളുടെ ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു",
179
179
  pageNotFound: pageNotFound,
180
- "pages.ListView.header-subtitle": "{സംഖ്യ, ബഹുവചനം, =0 {# എൻട്രികൾ} ഒന്ന് {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} കണ്ടെത്തി",
180
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# എൻട്രികൾ} one {# എൻട്രി} other {# എൻട്രികൾ}} കണ്ടെത്തി",
181
181
  "pages.NoContentType.button": "നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കുക",
182
182
  "pages.NoContentType.text": "നിങ്ങൾക്ക് ഇതുവരെ ഒരു ഉള്ളടക്കവും ഇല്ല, നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.",
183
183
  "permissions.not-allowed.create": "ഒരു പ്രമാണം സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് അനുവാദമില്ല",
@@ -14,14 +14,14 @@ var ml = {
14
14
  "components.DragHandle-label": "ഡ്രാഗ്",
15
15
  "components.DraggableAttr.edit": "എഡിറ്റ് ചെയ്യാൻ ക്ലിക്ക് ചെയ്യുക",
16
16
  "components.DraggableCard.delete.field": "{item} ഇല്ലാതാക്കുക",
17
- "components.DraggableCard.edit.field": "എഡിറ്റ് {ഇനം}",
18
- "components.DraggableCard.move.field": "നീക്കുക {ഇനം}",
17
+ "components.DraggableCard.edit.field": "എഡിറ്റ് {item}",
18
+ "components.DraggableCard.move.field": "നീക്കുക {item}",
19
19
  "components.ListViewTable.row-line": "ഇനത്തിന്റെ വരി {number}",
20
20
  "components.DynamicZone.ComponentPicker-label": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
21
21
  "components.DynamicZone.add-component": "{componentName} എന്നതിലേക്ക് ഒരു ഘടകം ചേർക്കുക",
22
22
  "components.DynamicZone.delete-label": "{name} ഇല്ലാതാക്കുക",
23
23
  "components.DynamicZone.error-message": "ഘടകത്തിൽ പിശക്(കൾ) അടങ്ങിയിരിക്കുന്നു",
24
- "components.DynamicZone.missing-components": "അവിടെ {സംഖ്യ, ബഹുവചനം, =0 {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്} ഒന്ന് {# നഷ്‌ടമായ ഘടകമാണ്} മറ്റൊന്ന് {# നഷ്‌ടമായ ഘടകങ്ങളാണ്}}",
24
+ "components.DynamicZone.missing-components": "{number, plural, =0 {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്} one {നഷ്‌ടമായ # ഘടകമുണ്ട്} other {നഷ്‌ടമായ # ഘടകങ്ങളുണ്ട്}}",
25
25
  "components.DynamicZone.move-down-label": "ഘടകം താഴേക്ക് നീക്കുക",
26
26
  "components.DynamicZone.move-up-label": "ഘടകം മുകളിലേക്ക് നീക്കുക",
27
27
  "components.DynamicZone.pick-compo": "ഒരു ഘടകം തിരഞ്ഞെടുക്കുക",
@@ -50,7 +50,7 @@ var ml = {
50
50
  "components.SettingsViewWrapper.pluginHeader.title": "കാഴ്ച കോൺഫിഗർ ചെയ്യുക - {name}",
51
51
  "components.TableDelete.delete": "എല്ലാം ഇല്ലാതാക്കുക",
52
52
  "components.TableDelete.deleteSelected": "തിരഞ്ഞെടുത്ത ഇല്ലാതാക്കുക",
53
- "components.TableDelete.label": "{സംഖ്യ, ബഹുവചനം, ഒരു {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} തിരഞ്ഞെടുത്തു",
53
+ "components.TableDelete.label": "{number, plural, one {# എൻട്രി} other {# എൻട്രികൾ}} തിരഞ്ഞെടുത്തു",
54
54
  "components.TableEmpty.withFilters": "പ്രയോഗിച്ച ഫിൽട്ടറുകൾക്കൊപ്പം {contentType} ഒന്നുമില്ല...",
55
55
  "components.TableEmpty.withSearch": "തിരയലുമായി ബന്ധപ്പെട്ട {contentType} ഒന്നുമില്ല ({തിരയൽ})...",
56
56
  "components.TableEmpty.withoutFilter": "{contentType} ഒന്നുമില്ല...",
@@ -93,7 +93,7 @@ var ml = {
93
93
  "containers.List.errorFetchRecords": "പിശക്",
94
94
  "containers.List.published": "പ്രസിദ്ധീകരിച്ചു",
95
95
  "containers.list.displayedFields": "പ്രദർശിപ്പിച്ച ഫീൽഡുകൾ",
96
- "containers.list.items": "{സംഖ്യ, ബഹുവചനം, =0 {ഇനങ്ങൾ} ഒന്ന് {ഇനം} മറ്റൊന്ന് {ഇനങ്ങൾ}}",
96
+ "containers.list.items": "{number} {number, plural, =0 {ഇനങ്ങൾ} one {ഇനം} other {ഇനങ്ങൾ}}",
97
97
  "containers.list.table-headers.publishedAt": "സ്റ്റേറ്റ്",
98
98
  "containers.ListSettingsView.modal-form.edit-label": "എഡിറ്റ് {fieldName}",
99
99
  "containers.SettingPage.add.field": "മറ്റൊരു ഫീൽഡ് ചേർക്കുക",
@@ -173,7 +173,7 @@ var ml = {
173
173
  "notification.info.minimumFields": "നിങ്ങൾക്ക് കുറഞ്ഞത് ഒരു ഫീൽഡെങ്കിലും പ്രദർശിപ്പിക്കേണ്ടതുണ്ട്",
174
174
  "notification.upload.error": "നിങ്ങളുടെ ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു",
175
175
  pageNotFound: pageNotFound,
176
- "pages.ListView.header-subtitle": "{സംഖ്യ, ബഹുവചനം, =0 {# എൻട്രികൾ} ഒന്ന് {# എൻട്രി} മറ്റ് {# എൻട്രികൾ}} കണ്ടെത്തി",
176
+ "pages.ListView.header-subtitle": "{number, plural, =0 {# എൻട്രികൾ} one {# എൻട്രി} other {# എൻട്രികൾ}} കണ്ടെത്തി",
177
177
  "pages.NoContentType.button": "നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കുക",
178
178
  "pages.NoContentType.text": "നിങ്ങൾക്ക് ഇതുവരെ ഒരു ഉള്ളടക്കവും ഇല്ല, നിങ്ങളുടെ ആദ്യ ഉള്ളടക്ക-തരം സൃഷ്ടിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.",
179
179
  "permissions.not-allowed.create": "ഒരു പ്രമാണം സൃഷ്ടിക്കാൻ നിങ്ങൾക്ക് അനുവാദമില്ല",