@payloadcms/translations 3.91.0-internal.6e3dc85 → 4.0.0-beta.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/LICENSE.md +1 -1
  2. package/dist/clientKeys.d.ts +1 -1
  3. package/dist/clientKeys.d.ts.map +1 -1
  4. package/dist/clientKeys.js +142 -22
  5. package/dist/clientKeys.js.map +1 -1
  6. package/dist/dateFNS/ar.js +1 -0
  7. package/dist/dateFNS/az.js +1 -0
  8. package/dist/dateFNS/bg.js +1 -0
  9. package/dist/dateFNS/bn.js +1 -0
  10. package/dist/dateFNS/ca.js +1 -0
  11. package/dist/dateFNS/chunk-YT6ULX4E.js +1 -0
  12. package/dist/dateFNS/cs.js +1 -0
  13. package/dist/dateFNS/da.js +1 -0
  14. package/dist/dateFNS/de.js +1 -0
  15. package/dist/dateFNS/es.js +1 -0
  16. package/dist/dateFNS/et.js +1 -0
  17. package/dist/dateFNS/fa-IR.js +1 -0
  18. package/dist/dateFNS/fr.js +1 -0
  19. package/dist/dateFNS/he.js +1 -0
  20. package/dist/dateFNS/hr.js +1 -0
  21. package/dist/dateFNS/hu.js +1 -0
  22. package/dist/dateFNS/id.js +1 -0
  23. package/dist/dateFNS/is.js +1 -0
  24. package/dist/dateFNS/it.js +1 -0
  25. package/dist/dateFNS/ja.js +1 -0
  26. package/dist/dateFNS/ko.js +1 -0
  27. package/dist/dateFNS/lt.js +1 -0
  28. package/dist/dateFNS/lv.js +1 -0
  29. package/dist/dateFNS/nb.js +1 -0
  30. package/dist/dateFNS/nl.js +1 -0
  31. package/dist/dateFNS/pl.js +1 -0
  32. package/dist/dateFNS/pt.js +1 -0
  33. package/dist/dateFNS/ro.js +1 -0
  34. package/dist/dateFNS/ru.js +1 -0
  35. package/dist/dateFNS/sk.js +1 -0
  36. package/dist/dateFNS/sl.js +1 -0
  37. package/dist/dateFNS/sr-Latn.js +1 -0
  38. package/dist/dateFNS/sr.js +1 -0
  39. package/dist/dateFNS/sv.js +1 -0
  40. package/dist/dateFNS/ta.js +1 -0
  41. package/dist/dateFNS/th.js +1 -0
  42. package/dist/dateFNS/tr.js +1 -0
  43. package/dist/dateFNS/uk.js +1 -0
  44. package/dist/dateFNS/vi.js +1 -0
  45. package/dist/dateFNS/zh-CN.js +1 -0
  46. package/dist/dateFNS/zh-TW.js +1 -0
  47. package/dist/importDateFNSLocale.js +41 -41
  48. package/dist/languages/ar.d.ts.map +1 -1
  49. package/dist/languages/ar.js +156 -26
  50. package/dist/languages/ar.js.map +1 -1
  51. package/dist/languages/az.d.ts.map +1 -1
  52. package/dist/languages/az.js +155 -25
  53. package/dist/languages/az.js.map +1 -1
  54. package/dist/languages/bg.d.ts.map +1 -1
  55. package/dist/languages/bg.js +156 -26
  56. package/dist/languages/bg.js.map +1 -1
  57. package/dist/languages/bnBd.d.ts.map +1 -1
  58. package/dist/languages/bnBd.js +156 -26
  59. package/dist/languages/bnBd.js.map +1 -1
  60. package/dist/languages/bnIn.d.ts.map +1 -1
  61. package/dist/languages/bnIn.js +156 -26
  62. package/dist/languages/bnIn.js.map +1 -1
  63. package/dist/languages/ca.d.ts.map +1 -1
  64. package/dist/languages/ca.js +156 -26
  65. package/dist/languages/ca.js.map +1 -1
  66. package/dist/languages/cs.d.ts.map +1 -1
  67. package/dist/languages/cs.js +156 -26
  68. package/dist/languages/cs.js.map +1 -1
  69. package/dist/languages/da.d.ts.map +1 -1
  70. package/dist/languages/da.js +156 -26
  71. package/dist/languages/da.js.map +1 -1
  72. package/dist/languages/de.d.ts.map +1 -1
  73. package/dist/languages/de.js +156 -26
  74. package/dist/languages/de.js.map +1 -1
  75. package/dist/languages/en.d.ts +153 -23
  76. package/dist/languages/en.d.ts.map +1 -1
  77. package/dist/languages/en.js +156 -26
  78. package/dist/languages/en.js.map +1 -1
  79. package/dist/languages/es.d.ts.map +1 -1
  80. package/dist/languages/es.js +156 -26
  81. package/dist/languages/es.js.map +1 -1
  82. package/dist/languages/et.d.ts.map +1 -1
  83. package/dist/languages/et.js +156 -26
  84. package/dist/languages/et.js.map +1 -1
  85. package/dist/languages/fa.d.ts.map +1 -1
  86. package/dist/languages/fa.js +156 -26
  87. package/dist/languages/fa.js.map +1 -1
  88. package/dist/languages/fr.d.ts.map +1 -1
  89. package/dist/languages/fr.js +156 -26
  90. package/dist/languages/fr.js.map +1 -1
  91. package/dist/languages/he.d.ts.map +1 -1
  92. package/dist/languages/he.js +156 -26
  93. package/dist/languages/he.js.map +1 -1
  94. package/dist/languages/hr.d.ts.map +1 -1
  95. package/dist/languages/hr.js +156 -26
  96. package/dist/languages/hr.js.map +1 -1
  97. package/dist/languages/hu.d.ts.map +1 -1
  98. package/dist/languages/hu.js +156 -26
  99. package/dist/languages/hu.js.map +1 -1
  100. package/dist/languages/hy.d.ts.map +1 -1
  101. package/dist/languages/hy.js +156 -26
  102. package/dist/languages/hy.js.map +1 -1
  103. package/dist/languages/id.d.ts.map +1 -1
  104. package/dist/languages/id.js +156 -26
  105. package/dist/languages/id.js.map +1 -1
  106. package/dist/languages/is.d.ts.map +1 -1
  107. package/dist/languages/is.js +156 -26
  108. package/dist/languages/is.js.map +1 -1
  109. package/dist/languages/it.d.ts.map +1 -1
  110. package/dist/languages/it.js +156 -26
  111. package/dist/languages/it.js.map +1 -1
  112. package/dist/languages/ja.d.ts.map +1 -1
  113. package/dist/languages/ja.js +168 -38
  114. package/dist/languages/ja.js.map +1 -1
  115. package/dist/languages/ko.d.ts.map +1 -1
  116. package/dist/languages/ko.js +156 -26
  117. package/dist/languages/ko.js.map +1 -1
  118. package/dist/languages/lt.d.ts.map +1 -1
  119. package/dist/languages/lt.js +156 -26
  120. package/dist/languages/lt.js.map +1 -1
  121. package/dist/languages/lv.d.ts.map +1 -1
  122. package/dist/languages/lv.js +156 -26
  123. package/dist/languages/lv.js.map +1 -1
  124. package/dist/languages/my.d.ts.map +1 -1
  125. package/dist/languages/my.js +156 -26
  126. package/dist/languages/my.js.map +1 -1
  127. package/dist/languages/nb.d.ts.map +1 -1
  128. package/dist/languages/nb.js +156 -26
  129. package/dist/languages/nb.js.map +1 -1
  130. package/dist/languages/nl.d.ts.map +1 -1
  131. package/dist/languages/nl.js +156 -26
  132. package/dist/languages/nl.js.map +1 -1
  133. package/dist/languages/pl.d.ts.map +1 -1
  134. package/dist/languages/pl.js +156 -26
  135. package/dist/languages/pl.js.map +1 -1
  136. package/dist/languages/pt.d.ts.map +1 -1
  137. package/dist/languages/pt.js +156 -26
  138. package/dist/languages/pt.js.map +1 -1
  139. package/dist/languages/ro.d.ts.map +1 -1
  140. package/dist/languages/ro.js +156 -26
  141. package/dist/languages/ro.js.map +1 -1
  142. package/dist/languages/rs.d.ts.map +1 -1
  143. package/dist/languages/rs.js +156 -26
  144. package/dist/languages/rs.js.map +1 -1
  145. package/dist/languages/rsLatin.d.ts.map +1 -1
  146. package/dist/languages/rsLatin.js +156 -26
  147. package/dist/languages/rsLatin.js.map +1 -1
  148. package/dist/languages/ru.d.ts.map +1 -1
  149. package/dist/languages/ru.js +156 -26
  150. package/dist/languages/ru.js.map +1 -1
  151. package/dist/languages/sk.d.ts.map +1 -1
  152. package/dist/languages/sk.js +156 -26
  153. package/dist/languages/sk.js.map +1 -1
  154. package/dist/languages/sl.d.ts.map +1 -1
  155. package/dist/languages/sl.js +156 -26
  156. package/dist/languages/sl.js.map +1 -1
  157. package/dist/languages/sv.d.ts.map +1 -1
  158. package/dist/languages/sv.js +156 -26
  159. package/dist/languages/sv.js.map +1 -1
  160. package/dist/languages/ta.d.ts.map +1 -1
  161. package/dist/languages/ta.js +156 -26
  162. package/dist/languages/ta.js.map +1 -1
  163. package/dist/languages/th.d.ts.map +1 -1
  164. package/dist/languages/th.js +156 -26
  165. package/dist/languages/th.js.map +1 -1
  166. package/dist/languages/tr.d.ts.map +1 -1
  167. package/dist/languages/tr.js +156 -26
  168. package/dist/languages/tr.js.map +1 -1
  169. package/dist/languages/uk.d.ts.map +1 -1
  170. package/dist/languages/uk.js +156 -26
  171. package/dist/languages/uk.js.map +1 -1
  172. package/dist/languages/vi.d.ts.map +1 -1
  173. package/dist/languages/vi.js +156 -26
  174. package/dist/languages/vi.js.map +1 -1
  175. package/dist/languages/zh.d.ts.map +1 -1
  176. package/dist/languages/zh.js +156 -26
  177. package/dist/languages/zh.js.map +1 -1
  178. package/dist/languages/zhTw.d.ts.map +1 -1
  179. package/dist/languages/zhTw.js +173 -43
  180. package/dist/languages/zhTw.js.map +1 -1
  181. package/dist/types.d.ts +5 -2
  182. package/dist/types.d.ts.map +1 -1
  183. package/dist/types.js.map +1 -1
  184. package/dist/utilities/getTranslation.d.ts +3 -3
  185. package/dist/utilities/getTranslation.d.ts.map +1 -1
  186. package/dist/utilities/getTranslation.js +2 -4
  187. package/dist/utilities/getTranslation.js.map +1 -1
  188. package/dist/utilities/getTranslationsByContext.d.ts +155 -25
  189. package/dist/utilities/getTranslationsByContext.d.ts.map +1 -1
  190. package/dist/utilities/getTranslationsByContext.js +41 -33
  191. package/dist/utilities/getTranslationsByContext.js.map +1 -1
  192. package/dist/utilities/init.d.ts +4 -614
  193. package/dist/utilities/init.d.ts.map +1 -1
  194. package/dist/utilities/languages.d.ts +2 -2
  195. package/dist/utilities/languages.d.ts.map +1 -1
  196. package/package.json +8 -6
  197. package/dist/utilities/deepMergeSimple.spec.js +0 -81
  198. package/dist/utilities/deepMergeSimple.spec.js.map +0 -1
  199. package/dist/utilities/languages.spec.js +0 -42
  200. package/dist/utilities/languages.spec.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { Language } from '../types.js';
2
- export declare const getTranslationsByContext: (selectedLanguage: Language, context: "api" | "client") => {
2
+ export declare const getTranslationsByContext: (selectedLanguage: Language, context: 'api' | 'client') => Record<string, unknown> | {
3
3
  authentication: {
4
4
  account: string;
5
5
  accountOfCurrentUser: string;
@@ -15,10 +15,12 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
15
15
  confirmGeneration: string;
16
16
  confirmPassword: string;
17
17
  createFirstUser: string;
18
+ createUser: string;
18
19
  emailNotValid: string;
19
20
  emailOrUsername: string;
20
21
  emailSent: string;
21
22
  emailVerified: string;
23
+ emailVerifiedRedirecting: string;
22
24
  enableAPIKey: string;
23
25
  failedToUnlock: string;
24
26
  forceUnlock: string;
@@ -48,6 +50,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
48
50
  newAccountCreated: string;
49
51
  newAPIKeyGenerated: string;
50
52
  newPassword: string;
53
+ notRedirected: string;
51
54
  passed: string;
52
55
  passwordResetSuccessfully: string;
53
56
  resend: string;
@@ -61,6 +64,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
61
64
  tokenRefreshSuccessful: string;
62
65
  unableToVerify: string;
63
66
  username: string;
67
+ verificationFailedRequestNew: string;
64
68
  verified: string;
65
69
  verifiedSuccessfully: string;
66
70
  verify: string;
@@ -70,6 +74,22 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
70
74
  youAreReceivingResetPassword: string;
71
75
  youDidNotRequestPassword: string;
72
76
  };
77
+ commandPalette: {
78
+ actions: string;
79
+ createNew: string;
80
+ favorites: string;
81
+ hintActions: string;
82
+ hintClose: string;
83
+ hintCreate: string;
84
+ hintNavigate: string;
85
+ hintSelect: string;
86
+ noResults: string;
87
+ pinToFavorites: string;
88
+ placeholder: string;
89
+ recentlyVisited: string;
90
+ removeFromFavorites: string;
91
+ title: string;
92
+ };
73
93
  dashboard: {
74
94
  addButton: string;
75
95
  addWidget: string;
@@ -81,7 +101,38 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
81
101
  editingDashboard: string;
82
102
  noItems: string;
83
103
  resetLayout: string;
104
+ resizeWidget: string;
84
105
  searchWidgets: string;
106
+ widgetAddPin: string;
107
+ widgetCollectionRequired: string;
108
+ widgetConfigurationError: string;
109
+ widgetDropFilesToUpload: string;
110
+ widgetInvalidCollection: string;
111
+ widgetInvalidFilterField: string;
112
+ widgetInvalidSortField: string;
113
+ widgetLimitLabel: string;
114
+ widgetNonSortableSortField: string;
115
+ widgetPageCount: string;
116
+ widgetPagination: string;
117
+ widgetPinned: string;
118
+ widgetPinnedEmpty: string;
119
+ widgetPinnedEmptyDescription: string;
120
+ widgetPinnedSaveError: string;
121
+ widgetQueryError: string;
122
+ widgetRecentlyViewedEmpty: string;
123
+ widgetRecentlyViewedEmptyDescription: string;
124
+ widgetRecentlyViewedFilterDescription: string;
125
+ widgetRecentlyViewedTitle: string;
126
+ widgetRecentsAndPinned: string;
127
+ widgetRemovePin: string;
128
+ widgetSelectCollectionFirst: string;
129
+ widgetSelectSortField: string;
130
+ widgetSortDirectionLabel: string;
131
+ widgetSortFieldLabel: string;
132
+ widgetTitleFallback: string;
133
+ widgetTitleLabel: string;
134
+ widgetUploadDropzoneDescription: string;
135
+ widgetUploadFiles: string;
85
136
  };
86
137
  error: {
87
138
  accountAlreadyActivated: string;
@@ -93,6 +144,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
93
144
  emailOrPasswordIncorrect: string;
94
145
  failedToResetLayout: string;
95
146
  failedToSaveLayout: string;
147
+ fileFetchFailed: string;
96
148
  followingFieldsInvalid_one: string;
97
149
  followingFieldsInvalid_other: string;
98
150
  incorrectCollection: string;
@@ -109,6 +161,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
109
161
  missingIDOfDocument: string;
110
162
  missingIDOfVersion: string;
111
163
  missingRequiredData: string;
164
+ noFileFoundInClipboard: string;
112
165
  noFilesUploaded: string;
113
166
  noMatchedField: string;
114
167
  notAllowedToAccessPage: string;
@@ -123,6 +176,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
123
176
  tokenNotProvided: string;
124
177
  unableToCopy: string;
125
178
  unableToDeleteCount: string;
179
+ unableToReadClipboard: string;
126
180
  unableToReindexCollection: string;
127
181
  unableToUpdateCount: string;
128
182
  unauthorized: string;
@@ -131,6 +185,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
131
185
  unPublishingDocument: string;
132
186
  unspecific: string;
133
187
  unverifiedEmail: string;
188
+ urlNotAllowed: string;
134
189
  userEmailAlreadyRegistered: string;
135
190
  userLocked: string;
136
191
  usernameAlreadyRegistered: string;
@@ -146,6 +201,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
146
201
  addRelationship: string;
147
202
  addUpload: string;
148
203
  block: string;
204
+ blockName: string;
149
205
  blocks: string;
150
206
  blockType: string;
151
207
  chooseBetweenCustomTextOrDocument: string;
@@ -158,6 +214,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
158
214
  editLink: string;
159
215
  editRelationship: string;
160
216
  enterURL: string;
217
+ hidePassword: string;
161
218
  internalLink: string;
162
219
  itemsAndMore: string;
163
220
  labelRelationship: string;
@@ -178,35 +235,13 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
178
235
  selectExistingLabel: string;
179
236
  selectFieldsToEdit: string;
180
237
  showAll: string;
238
+ showPassword: string;
181
239
  swapRelationship: string;
182
240
  swapUpload: string;
183
241
  textToDisplay: string;
184
242
  toggleBlock: string;
185
243
  uploadNewLabel: string;
186
244
  };
187
- folder: {
188
- browseByFolder: string;
189
- byFolder: string;
190
- deleteFolder: string;
191
- folderName: string;
192
- folders: string;
193
- folderTypeDescription: string;
194
- itemHasBeenMoved: string;
195
- itemHasBeenMovedToRoot: string;
196
- itemsMovedToFolder: string;
197
- itemsMovedToRoot: string;
198
- moveFolder: string;
199
- moveItemsToFolderConfirmation: string;
200
- moveItemsToRootConfirmation: string;
201
- moveItemToFolderConfirmation: string;
202
- moveItemToRootConfirmation: string;
203
- movingFromFolder: string;
204
- newFolder: string;
205
- noFolder: string;
206
- renameFolder: string;
207
- searchByNameInFolder: string;
208
- selectFolderForItem: string;
209
- };
210
245
  general: {
211
246
  name: string;
212
247
  aboutToDelete: string;
@@ -221,25 +256,34 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
221
256
  aboutToRestoreCount: string;
222
257
  aboutToTrash: string;
223
258
  aboutToTrashCount: string;
259
+ accepts: string;
260
+ access: string;
224
261
  addBelow: string;
225
262
  addFilter: string;
226
263
  adminTheme: string;
227
264
  all: string;
228
265
  allCollections: string;
229
266
  allLocales: string;
267
+ allowedTypes: string;
230
268
  and: string;
231
269
  anotherUser: string;
232
270
  anotherUserTakenOver: string;
233
271
  applyChanges: string;
234
272
  ascending: string;
273
+ auto: string;
235
274
  automatic: string;
236
275
  backToDashboard: string;
276
+ breadcrumb: string;
277
+ by: string;
237
278
  cancel: string;
238
279
  changesNotSaved: string;
280
+ checked: string;
239
281
  clear: string;
240
282
  clearAll: string;
283
+ clearSearch: string;
241
284
  close: string;
242
285
  collapse: string;
286
+ collection: string;
243
287
  collections: string;
244
288
  columns: string;
245
289
  columnToSort: string;
@@ -262,6 +306,7 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
262
306
  create: string;
263
307
  created: string;
264
308
  createdAt: string;
309
+ createdBy: string;
265
310
  createNew: string;
266
311
  createNewLabel: string;
267
312
  creating: string;
@@ -270,8 +315,10 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
270
315
  custom: string;
271
316
  dark: string;
272
317
  dashboard: string;
318
+ decrement: string;
273
319
  delete: string;
274
320
  deleted: string;
321
+ deletedAgo: string;
275
322
  deletedAt: string;
276
323
  deletedCountSuccessfully: string;
277
324
  deletedSuccessfully: string;
@@ -287,10 +334,12 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
287
334
  documentModified: string;
288
335
  documentOutOfDate: string;
289
336
  documents: string;
337
+ dragToReorder: string;
290
338
  duplicate: string;
291
339
  duplicateWithoutSaving: string;
292
340
  edit: string;
293
341
  editAll: string;
342
+ editColumns: string;
294
343
  editedSince: string;
295
344
  editing: string;
296
345
  editingLabel_many: string;
@@ -302,20 +351,28 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
302
351
  emailAddress: string;
303
352
  emptyTrash: string;
304
353
  emptyTrashLabel: string;
354
+ enhancedContrastMode: string;
355
+ enterANumber: string;
305
356
  enterAValue: string;
306
357
  error: string;
307
358
  errors: string;
308
359
  exitLivePreview: string;
360
+ expand: string;
309
361
  export: string;
310
362
  fallbackToDefaultLocale: string;
311
363
  false: string;
364
+ field: string;
312
365
  filter: string;
313
366
  filters: string;
314
367
  filterWhere: string;
315
368
  globals: string;
316
369
  goBack: string;
370
+ goToPage: string;
371
+ gridLayout: string;
317
372
  groupByLabel: string;
373
+ hideSidebar: string;
318
374
  import: string;
375
+ increment: string;
319
376
  isEditing: string;
320
377
  item: string;
321
378
  items: string;
@@ -327,9 +384,11 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
327
384
  light: string;
328
385
  livePreview: string;
329
386
  loading: string;
387
+ loadMore: string;
330
388
  locale: string;
331
389
  locales: string;
332
390
  lock: string;
391
+ manageLabel: string;
333
392
  menu: string;
334
393
  moreOptions: string;
335
394
  move: string;
@@ -342,10 +401,12 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
342
401
  newLabel: string;
343
402
  newPassword: string;
344
403
  next: string;
404
+ nextPage: string;
345
405
  no: string;
346
406
  noDateSelected: string;
347
407
  noFiltersSet: string;
348
408
  noLabel: string;
409
+ noMatchesFound: string;
349
410
  none: string;
350
411
  noOptions: string;
351
412
  noResults: string;
@@ -354,6 +415,8 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
354
415
  notFound: string;
355
416
  nothingFound: string;
356
417
  noTrashResults: string;
418
+ notSelectedDocument: string;
419
+ notShownInTable: string;
357
420
  noUpcomingEventsScheduled: string;
358
421
  noValue: string;
359
422
  of: string;
@@ -362,21 +425,29 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
362
425
  openInNewWindow: string;
363
426
  or: string;
364
427
  order: string;
428
+ original: string;
365
429
  overwriteExistingData: string;
366
430
  pageNotFound: string;
431
+ pageNumberRange: string;
367
432
  password: string;
433
+ pasteBelow: string;
368
434
  pasteField: string;
369
435
  pasteRow: string;
370
436
  payloadSettings: string;
371
437
  permanentlyDelete: string;
372
438
  permanentlyDeletedCountSuccessfully: string;
373
439
  perPage: string;
440
+ perPageLabel: string;
441
+ presets: string;
374
442
  previous: string;
443
+ previousPage: string;
375
444
  reindex: string;
376
445
  reindexingAll: string;
377
446
  reloadDocument: string;
378
447
  remove: string;
379
448
  rename: string;
449
+ replaceRow: string;
450
+ requiredFields: string;
380
451
  reset: string;
381
452
  resetPreferences: string;
382
453
  resetPreferencesDescription: string;
@@ -385,23 +456,35 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
385
456
  restoreAsPublished: string;
386
457
  restoredCountSuccessfully: string;
387
458
  restoring: string;
459
+ retry: string;
388
460
  row: string;
389
461
  rows: string;
390
462
  save: string;
391
463
  saveChanges: string;
392
464
  saving: string;
393
465
  schedulePublishFor: string;
466
+ searchAutomatically: string;
394
467
  searchBy: string;
468
+ searchCleared: string;
469
+ searchColumns: string;
470
+ searchGroups: string;
471
+ searchResults: string;
395
472
  select: string;
396
473
  selectAll: string;
397
474
  selectAllRows: string;
398
475
  selectedCount: string;
476
+ selectedDocument: string;
399
477
  selectLabel: string;
400
478
  selectValue: string;
479
+ settings: string;
401
480
  showAllLabel: string;
481
+ shownInTable: string;
482
+ showSidebar: string;
483
+ skipToContent: string;
402
484
  sorryNotFound: string;
403
485
  sort: string;
404
486
  sortByLabelDirection: string;
487
+ sortByOrderToReorder: string;
405
488
  stayOnThisPage: string;
406
489
  submissionSuccessful: string;
407
490
  submit: string;
@@ -410,23 +493,29 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
410
493
  successfullyCreated: string;
411
494
  successfullyDuplicated: string;
412
495
  successfullyReindexed: string;
496
+ tableLayout: string;
413
497
  takeOver: string;
498
+ theme: string;
414
499
  thisLanguage: string;
415
500
  time: string;
416
501
  timezone: string;
417
502
  titleDeleted: string;
418
503
  titleRestored: string;
419
504
  titleTrashed: string;
505
+ toggle: string;
420
506
  trash: string;
421
507
  trashedCountSuccessfully: string;
422
508
  true: string;
423
509
  unauthorized: string;
510
+ unchecked: string;
424
511
  unlock: string;
425
512
  unsavedChanges: string;
426
513
  unsavedChangesDuplicate: string;
427
514
  untitled: string;
428
515
  upcomingEvents: string;
516
+ updatedAgo: string;
429
517
  updatedAt: string;
518
+ updatedBy: string;
430
519
  updatedCountSuccessfully: string;
431
520
  updatedLabelSuccessfully: string;
432
521
  updatedSuccessfully: string;
@@ -441,8 +530,34 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
441
530
  viewing: string;
442
531
  viewReadOnly: string;
443
532
  welcome: string;
533
+ where: string;
444
534
  yes: string;
445
535
  };
536
+ hierarchy: {
537
+ goTo: string;
538
+ itemsMovedTo: string;
539
+ itemsMovedToRoot: string;
540
+ moveTo: string;
541
+ moveToRoot: string;
542
+ noParent: string;
543
+ noResults: string;
544
+ removeFrom: string;
545
+ searchLabel: string;
546
+ searchResults: string;
547
+ };
548
+ llmInstructions: {
549
+ additionalInstructions: string;
550
+ collectionDescription: string;
551
+ collectionSystemDescription: string;
552
+ editInstructions: string;
553
+ global: string;
554
+ globalDescription: string;
555
+ globalSystemDescription: string;
556
+ instructions: string;
557
+ systemInstructions: string;
558
+ targetCannotBeChanged: string;
559
+ title: string;
560
+ };
446
561
  localization: {
447
562
  cannotCopySameLocale: string;
448
563
  copyFrom: string;
@@ -475,8 +590,18 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
475
590
  addFile: string;
476
591
  addFiles: string;
477
592
  bulkUpload: string;
593
+ copyLinkToFile: string;
594
+ copyURL: string;
478
595
  crop: string;
596
+ cropBottom: string;
597
+ cropBottomLeft: string;
598
+ cropBottomRight: string;
599
+ cropLeft: string;
600
+ cropRight: string;
479
601
  cropToolDescription: string;
602
+ cropTop: string;
603
+ cropTopLeft: string;
604
+ cropTopRight: string;
480
605
  download: string;
481
606
  dragAndDrop: string;
482
607
  dragAndDropHere: string;
@@ -487,12 +612,17 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
487
612
  fileToUpload: string;
488
613
  focalPoint: string;
489
614
  focalPointDescription: string;
615
+ fromURL: string;
490
616
  height: string;
491
617
  lessInfo: string;
618
+ linkToFile: string;
492
619
  moreInfo: string;
493
620
  noFile: string;
621
+ pasteFromClipboard: string;
494
622
  pasteURL: string;
495
623
  previewSizes: string;
624
+ renameFile: string;
625
+ replaceFile: string;
496
626
  selectCollectionToBrowse: string;
497
627
  selectFile: string;
498
628
  setCropArea: string;
@@ -609,5 +739,5 @@ export declare const getTranslationsByContext: (selectedLanguage: Language, cont
609
739
  viewingVersions: string;
610
740
  viewingVersionsGlobal: string;
611
741
  };
612
- } | Record<string, unknown>;
742
+ };
613
743
  //# sourceMappingURL=getTranslationsByContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAwD3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAM7F,CAAA"}
1
+ {"version":3,"file":"getTranslationsByContext.d.ts","sourceRoot":"","sources":["../../src/utilities/getTranslationsByContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA6E3C,eAAO,MAAM,wBAAwB,qBAAsB,QAAQ,WAAW,KAAK,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7F,CAAA"}
@@ -1,41 +1,49 @@
1
1
  import { clientTranslationKeys } from '../clientKeys.js';
2
- function filterKeys(obj, parentGroupKey = '', keys) {
2
+ /**
3
+ * The client translation keys, grouped by namespace. For example, the keys `general:cancel`,
4
+ * `general:item` and `authentication:account` are stored as:
5
+ *
6
+ * `Map { 'general' => Set { 'cancel', 'item' }, 'authentication' => Set { 'account' } }`
7
+ */ const clientKeysByNamespace = new Map();
8
+ for (const clientKey of clientTranslationKeys){
9
+ const separatorIndex = clientKey.indexOf(':');
10
+ const namespace = clientKey.slice(0, separatorIndex);
11
+ const key = clientKey.slice(separatorIndex + 1);
12
+ const keys = clientKeysByNamespace.get(namespace) ?? new Set();
13
+ clientKeysByNamespace.set(namespace, keys.add(key));
14
+ }
15
+ /** Plural forms of a key, for example `item_one` and `item_other` for `item` */ const pluralSuffix = /_(?:zero|one|two|few|many|other)$/;
16
+ /**
17
+ * Keeps only the translations the admin needs in the browser: the keys listed in
18
+ * `clientTranslationKeys`, plus their plural forms. Namespaces that end up empty are left out.
19
+ *
20
+ * @example
21
+ * // With the client keys `general:cancel` and `general:item`:
22
+ * filterClientKeys({
23
+ * general: { cancel: 'Cancel', item: 'Item', item_other: 'Items', save: 'Save' },
24
+ * error: { notFound: 'Not found' },
25
+ * })
26
+ * // => { general: { cancel: 'Cancel', item: 'Item', item_other: 'Items' } }
27
+ */ function filterClientKeys(translations) {
3
28
  const result = {};
4
- for (const [namespaceKey, value] of Object.entries(obj)){
5
- // Skip $schema key
6
- if (namespaceKey === '$schema') {
7
- result[namespaceKey] = value;
29
+ for (const [namespace, value] of Object.entries(translations)){
30
+ if (namespace === '$schema') {
31
+ result[namespace] = value;
8
32
  continue;
9
33
  }
10
- if (typeof value === 'object') {
11
- const filteredObject = filterKeys(value, namespaceKey, keys);
12
- if (Object.keys(filteredObject).length > 0) {
13
- result[namespaceKey] = filteredObject;
14
- }
15
- } else {
16
- for (const key of keys){
17
- const [groupKey, selector] = key.split(':');
18
- if (parentGroupKey === groupKey) {
19
- if (namespaceKey === selector) {
20
- result[selector] = value;
21
- } else {
22
- const pluralKeys = [
23
- 'zero',
24
- 'one',
25
- 'two',
26
- 'few',
27
- 'many',
28
- 'other'
29
- ];
30
- pluralKeys.forEach((pluralKey)=>{
31
- if (namespaceKey === `${selector}_${pluralKey}`) {
32
- result[`${selector}_${pluralKey}`] = value;
33
- }
34
- });
35
- }
36
- }
34
+ const clientKeys = clientKeysByNamespace.get(namespace);
35
+ if (!clientKeys || typeof value !== 'object' || value === null) {
36
+ continue;
37
+ }
38
+ const clientTranslations = {};
39
+ for (const [key, translation] of Object.entries(value)){
40
+ if (clientKeys.has(key) || clientKeys.has(key.replace(pluralSuffix, ''))) {
41
+ clientTranslations[key] = translation;
37
42
  }
38
43
  }
44
+ if (Object.keys(clientTranslations).length > 0) {
45
+ result[namespace] = clientTranslations;
46
+ }
39
47
  }
40
48
  return result;
41
49
  }
@@ -52,7 +60,7 @@ function sortObject(obj) {
52
60
  }
53
61
  export const getTranslationsByContext = (selectedLanguage, context)=>{
54
62
  if (context === 'client') {
55
- return sortObject(filterKeys(selectedLanguage.translations, '', clientTranslationKeys));
63
+ return sortObject(filterClientKeys(selectedLanguage.translations));
56
64
  } else {
57
65
  return selectedLanguage.translations;
58
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\nfunction filterKeys(obj: Record<string, unknown>, parentGroupKey = '', keys: string[]) {\n const result: Record<string, unknown> = {}\n\n for (const [namespaceKey, value] of Object.entries(obj)) {\n // Skip $schema key\n if (namespaceKey === '$schema') {\n result[namespaceKey] = value\n continue\n }\n\n if (typeof value === 'object') {\n const filteredObject = filterKeys(value as Record<string, unknown>, namespaceKey, keys)\n if (Object.keys(filteredObject).length > 0) {\n result[namespaceKey] = filteredObject\n }\n } else {\n for (const key of keys) {\n const [groupKey, selector] = key.split(':')\n\n if (parentGroupKey === groupKey) {\n if (namespaceKey === selector) {\n result[selector] = value\n } else {\n const pluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other']\n pluralKeys.forEach((pluralKey) => {\n if (namespaceKey === `${selector}_${pluralKey}`) {\n result[`${selector}_${pluralKey}`] = value\n }\n })\n }\n }\n }\n }\n }\n\n return result\n}\n\nfunction sortObject(obj: Record<string, unknown>) {\n const sortedObject: Record<string, unknown> = {}\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n if (typeof obj[key] === 'object') {\n sortedObject[key] = sortObject(obj[key] as Record<string, unknown>)\n } else {\n sortedObject[key] = obj[key]\n }\n })\n return sortedObject\n}\n\nexport const getTranslationsByContext = (selectedLanguage: Language, context: 'api' | 'client') => {\n if (context === 'client') {\n return sortObject(filterKeys(selectedLanguage.translations, '', clientTranslationKeys))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","filterKeys","obj","parentGroupKey","keys","result","namespaceKey","value","Object","entries","filteredObject","length","key","groupKey","selector","split","pluralKeys","forEach","pluralKey","sortObject","sortedObject","sort","getTranslationsByContext","selectedLanguage","context","translations"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD,SAASC,WAAWC,GAA4B,EAAEC,iBAAiB,EAAE,EAAEC,IAAc;IACnF,MAAMC,SAAkC,CAAC;IAEzC,KAAK,MAAM,CAACC,cAAcC,MAAM,IAAIC,OAAOC,OAAO,CAACP,KAAM;QACvD,mBAAmB;QACnB,IAAII,iBAAiB,WAAW;YAC9BD,MAAM,CAACC,aAAa,GAAGC;YACvB;QACF;QAEA,IAAI,OAAOA,UAAU,UAAU;YAC7B,MAAMG,iBAAiBT,WAAWM,OAAkCD,cAAcF;YAClF,IAAII,OAAOJ,IAAI,CAACM,gBAAgBC,MAAM,GAAG,GAAG;gBAC1CN,MAAM,CAACC,aAAa,GAAGI;YACzB;QACF,OAAO;YACL,KAAK,MAAME,OAAOR,KAAM;gBACtB,MAAM,CAACS,UAAUC,SAAS,GAAGF,IAAIG,KAAK,CAAC;gBAEvC,IAAIZ,mBAAmBU,UAAU;oBAC/B,IAAIP,iBAAiBQ,UAAU;wBAC7BT,MAAM,CAACS,SAAS,GAAGP;oBACrB,OAAO;wBACL,MAAMS,aAAa;4BAAC;4BAAQ;4BAAO;4BAAO;4BAAO;4BAAQ;yBAAQ;wBACjEA,WAAWC,OAAO,CAAC,CAACC;4BAClB,IAAIZ,iBAAiB,GAAGQ,SAAS,CAAC,EAAEI,WAAW,EAAE;gCAC/Cb,MAAM,CAAC,GAAGS,SAAS,CAAC,EAAEI,WAAW,CAAC,GAAGX;4BACvC;wBACF;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAOF;AACT;AAEA,SAASc,WAAWjB,GAA4B;IAC9C,MAAMkB,eAAwC,CAAC;IAC/CZ,OAAOJ,IAAI,CAACF,KACTmB,IAAI,GACJJ,OAAO,CAAC,CAACL;QACR,IAAI,OAAOV,GAAG,CAACU,IAAI,KAAK,UAAU;YAChCQ,YAAY,CAACR,IAAI,GAAGO,WAAWjB,GAAG,CAACU,IAAI;QACzC,OAAO;YACLQ,YAAY,CAACR,IAAI,GAAGV,GAAG,CAACU,IAAI;QAC9B;IACF;IACF,OAAOQ;AACT;AAEA,OAAO,MAAME,2BAA2B,CAACC,kBAA4BC;IACnE,IAAIA,YAAY,UAAU;QACxB,OAAOL,WAAWlB,WAAWsB,iBAAiBE,YAAY,EAAE,IAAIzB;IAClE,OAAO;QACL,OAAOuB,iBAAiBE,YAAY;IACtC;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getTranslationsByContext.ts"],"sourcesContent":["import type { Language } from '../types.js'\n\nimport { clientTranslationKeys } from '../clientKeys.js'\n\n/**\n * The client translation keys, grouped by namespace. For example, the keys `general:cancel`,\n * `general:item` and `authentication:account` are stored as:\n *\n * `Map { 'general' => Set { 'cancel', 'item' }, 'authentication' => Set { 'account' } }`\n */\nconst clientKeysByNamespace = new Map<string, Set<string>>()\nfor (const clientKey of clientTranslationKeys) {\n const separatorIndex = clientKey.indexOf(':')\n const namespace = clientKey.slice(0, separatorIndex)\n const key = clientKey.slice(separatorIndex + 1)\n const keys = clientKeysByNamespace.get(namespace) ?? new Set<string>()\n clientKeysByNamespace.set(namespace, keys.add(key))\n}\n\n/** Plural forms of a key, for example `item_one` and `item_other` for `item` */\nconst pluralSuffix = /_(?:zero|one|two|few|many|other)$/\n\n/**\n * Keeps only the translations the admin needs in the browser: the keys listed in\n * `clientTranslationKeys`, plus their plural forms. Namespaces that end up empty are left out.\n *\n * @example\n * // With the client keys `general:cancel` and `general:item`:\n * filterClientKeys({\n * general: { cancel: 'Cancel', item: 'Item', item_other: 'Items', save: 'Save' },\n * error: { notFound: 'Not found' },\n * })\n * // => { general: { cancel: 'Cancel', item: 'Item', item_other: 'Items' } }\n */\nfunction filterClientKeys(translations: Record<string, unknown>) {\n const result: Record<string, unknown> = {}\n\n for (const [namespace, value] of Object.entries(translations)) {\n if (namespace === '$schema') {\n result[namespace] = value\n continue\n }\n\n const clientKeys = clientKeysByNamespace.get(namespace)\n if (!clientKeys || typeof value !== 'object' || value === null) {\n continue\n }\n\n const clientTranslations: Record<string, unknown> = {}\n for (const [key, translation] of Object.entries(value)) {\n if (clientKeys.has(key) || clientKeys.has(key.replace(pluralSuffix, ''))) {\n clientTranslations[key] = translation\n }\n }\n\n if (Object.keys(clientTranslations).length > 0) {\n result[namespace] = clientTranslations\n }\n }\n\n return result\n}\n\nfunction sortObject(obj: Record<string, unknown>) {\n const sortedObject: Record<string, unknown> = {}\n Object.keys(obj)\n .sort()\n .forEach((key) => {\n if (typeof obj[key] === 'object') {\n sortedObject[key] = sortObject(obj[key] as Record<string, unknown>)\n } else {\n sortedObject[key] = obj[key]\n }\n })\n return sortedObject\n}\n\nexport const getTranslationsByContext = (selectedLanguage: Language, context: 'api' | 'client') => {\n if (context === 'client') {\n return sortObject(filterClientKeys(selectedLanguage.translations))\n } else {\n return selectedLanguage.translations\n }\n}\n"],"names":["clientTranslationKeys","clientKeysByNamespace","Map","clientKey","separatorIndex","indexOf","namespace","slice","key","keys","get","Set","set","add","pluralSuffix","filterClientKeys","translations","result","value","Object","entries","clientKeys","clientTranslations","translation","has","replace","length","sortObject","obj","sortedObject","sort","forEach","getTranslationsByContext","selectedLanguage","context"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,mBAAkB;AAExD;;;;;CAKC,GACD,MAAMC,wBAAwB,IAAIC;AAClC,KAAK,MAAMC,aAAaH,sBAAuB;IAC7C,MAAMI,iBAAiBD,UAAUE,OAAO,CAAC;IACzC,MAAMC,YAAYH,UAAUI,KAAK,CAAC,GAAGH;IACrC,MAAMI,MAAML,UAAUI,KAAK,CAACH,iBAAiB;IAC7C,MAAMK,OAAOR,sBAAsBS,GAAG,CAACJ,cAAc,IAAIK;IACzDV,sBAAsBW,GAAG,CAACN,WAAWG,KAAKI,GAAG,CAACL;AAChD;AAEA,8EAA8E,GAC9E,MAAMM,eAAe;AAErB;;;;;;;;;;;CAWC,GACD,SAASC,iBAAiBC,YAAqC;IAC7D,MAAMC,SAAkC,CAAC;IAEzC,KAAK,MAAM,CAACX,WAAWY,MAAM,IAAIC,OAAOC,OAAO,CAACJ,cAAe;QAC7D,IAAIV,cAAc,WAAW;YAC3BW,MAAM,CAACX,UAAU,GAAGY;YACpB;QACF;QAEA,MAAMG,aAAapB,sBAAsBS,GAAG,CAACJ;QAC7C,IAAI,CAACe,cAAc,OAAOH,UAAU,YAAYA,UAAU,MAAM;YAC9D;QACF;QAEA,MAAMI,qBAA8C,CAAC;QACrD,KAAK,MAAM,CAACd,KAAKe,YAAY,IAAIJ,OAAOC,OAAO,CAACF,OAAQ;YACtD,IAAIG,WAAWG,GAAG,CAAChB,QAAQa,WAAWG,GAAG,CAAChB,IAAIiB,OAAO,CAACX,cAAc,MAAM;gBACxEQ,kBAAkB,CAACd,IAAI,GAAGe;YAC5B;QACF;QAEA,IAAIJ,OAAOV,IAAI,CAACa,oBAAoBI,MAAM,GAAG,GAAG;YAC9CT,MAAM,CAACX,UAAU,GAAGgB;QACtB;IACF;IAEA,OAAOL;AACT;AAEA,SAASU,WAAWC,GAA4B;IAC9C,MAAMC,eAAwC,CAAC;IAC/CV,OAAOV,IAAI,CAACmB,KACTE,IAAI,GACJC,OAAO,CAAC,CAACvB;QACR,IAAI,OAAOoB,GAAG,CAACpB,IAAI,KAAK,UAAU;YAChCqB,YAAY,CAACrB,IAAI,GAAGmB,WAAWC,GAAG,CAACpB,IAAI;QACzC,OAAO;YACLqB,YAAY,CAACrB,IAAI,GAAGoB,GAAG,CAACpB,IAAI;QAC9B;IACF;IACF,OAAOqB;AACT;AAEA,OAAO,MAAMG,2BAA2B,CAACC,kBAA4BC;IACnE,IAAIA,YAAY,UAAU;QACxB,OAAOP,WAAWZ,iBAAiBkB,iBAAiBjB,YAAY;IAClE,OAAO;QACL,OAAOiB,iBAAiBjB,YAAY;IACtC;AACF,EAAC"}