@payloadcms/plugin-import-export 3.39.0-canary.3 → 3.39.0-canary.4

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 (192) hide show
  1. package/dist/components/ExportListMenuItem/index.d.ts.map +1 -1
  2. package/dist/components/ExportListMenuItem/index.js +12 -7
  3. package/dist/components/ExportListMenuItem/index.js.map +1 -1
  4. package/dist/components/ExportSaveButton/index.d.ts.map +1 -1
  5. package/dist/components/ExportSaveButton/index.js +5 -2
  6. package/dist/components/ExportSaveButton/index.js.map +1 -1
  7. package/dist/components/FieldsToExport/index.d.ts.map +1 -1
  8. package/dist/components/FieldsToExport/index.js +3 -1
  9. package/dist/components/FieldsToExport/index.js.map +1 -1
  10. package/dist/components/Preview/index.d.ts.map +1 -1
  11. package/dist/components/Preview/index.js +15 -9
  12. package/dist/components/Preview/index.js.map +1 -1
  13. package/dist/components/SortBy/index.d.ts.map +1 -1
  14. package/dist/components/SortBy/index.js +3 -1
  15. package/dist/components/SortBy/index.js.map +1 -1
  16. package/dist/export/getFields.d.ts.map +1 -1
  17. package/dist/export/getFields.js +30 -14
  18. package/dist/export/getFields.js.map +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +11 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/translations/index.d.ts +3 -4
  23. package/dist/translations/index.d.ts.map +1 -1
  24. package/dist/translations/index.js +76 -2
  25. package/dist/translations/index.js.map +1 -1
  26. package/dist/translations/languages/ar.d.ts +4 -0
  27. package/dist/translations/languages/ar.d.ts.map +1 -0
  28. package/dist/translations/languages/ar.js +26 -0
  29. package/dist/translations/languages/ar.js.map +1 -0
  30. package/dist/translations/languages/az.d.ts +4 -0
  31. package/dist/translations/languages/az.d.ts.map +1 -0
  32. package/dist/translations/languages/az.js +26 -0
  33. package/dist/translations/languages/az.js.map +1 -0
  34. package/dist/translations/languages/bg.d.ts +4 -0
  35. package/dist/translations/languages/bg.d.ts.map +1 -0
  36. package/dist/translations/languages/bg.js +26 -0
  37. package/dist/translations/languages/bg.js.map +1 -0
  38. package/dist/translations/languages/ca.d.ts +4 -0
  39. package/dist/translations/languages/ca.d.ts.map +1 -0
  40. package/dist/translations/languages/ca.js +26 -0
  41. package/dist/translations/languages/ca.js.map +1 -0
  42. package/dist/translations/languages/cs.d.ts +4 -0
  43. package/dist/translations/languages/cs.d.ts.map +1 -0
  44. package/dist/translations/languages/cs.js +26 -0
  45. package/dist/translations/languages/cs.js.map +1 -0
  46. package/dist/translations/languages/da.d.ts +4 -0
  47. package/dist/translations/languages/da.d.ts.map +1 -0
  48. package/dist/translations/languages/da.js +26 -0
  49. package/dist/translations/languages/da.js.map +1 -0
  50. package/dist/translations/languages/de.d.ts +4 -0
  51. package/dist/translations/languages/de.d.ts.map +1 -0
  52. package/dist/translations/languages/de.js +26 -0
  53. package/dist/translations/languages/de.js.map +1 -0
  54. package/dist/translations/languages/en.d.ts +23 -0
  55. package/dist/translations/languages/en.d.ts.map +1 -0
  56. package/dist/translations/languages/en.js +26 -0
  57. package/dist/translations/languages/en.js.map +1 -0
  58. package/dist/translations/languages/es.d.ts +4 -0
  59. package/dist/translations/languages/es.d.ts.map +1 -0
  60. package/dist/translations/languages/es.js +26 -0
  61. package/dist/translations/languages/es.js.map +1 -0
  62. package/dist/translations/languages/et.d.ts +4 -0
  63. package/dist/translations/languages/et.d.ts.map +1 -0
  64. package/dist/translations/languages/et.js +26 -0
  65. package/dist/translations/languages/et.js.map +1 -0
  66. package/dist/translations/languages/fa.d.ts +4 -0
  67. package/dist/translations/languages/fa.d.ts.map +1 -0
  68. package/dist/translations/languages/fa.js +26 -0
  69. package/dist/translations/languages/fa.js.map +1 -0
  70. package/dist/translations/languages/fr.d.ts +4 -0
  71. package/dist/translations/languages/fr.d.ts.map +1 -0
  72. package/dist/translations/languages/fr.js +26 -0
  73. package/dist/translations/languages/fr.js.map +1 -0
  74. package/dist/translations/languages/he.d.ts +4 -0
  75. package/dist/translations/languages/he.d.ts.map +1 -0
  76. package/dist/translations/languages/he.js +26 -0
  77. package/dist/translations/languages/he.js.map +1 -0
  78. package/dist/translations/languages/hr.d.ts +4 -0
  79. package/dist/translations/languages/hr.d.ts.map +1 -0
  80. package/dist/translations/languages/hr.js +26 -0
  81. package/dist/translations/languages/hr.js.map +1 -0
  82. package/dist/translations/languages/hu.d.ts +4 -0
  83. package/dist/translations/languages/hu.d.ts.map +1 -0
  84. package/dist/translations/languages/hu.js +26 -0
  85. package/dist/translations/languages/hu.js.map +1 -0
  86. package/dist/translations/languages/hy.d.ts +4 -0
  87. package/dist/translations/languages/hy.d.ts.map +1 -0
  88. package/dist/translations/languages/hy.js +26 -0
  89. package/dist/translations/languages/hy.js.map +1 -0
  90. package/dist/translations/languages/it.d.ts +4 -0
  91. package/dist/translations/languages/it.d.ts.map +1 -0
  92. package/dist/translations/languages/it.js +26 -0
  93. package/dist/translations/languages/it.js.map +1 -0
  94. package/dist/translations/languages/ja.d.ts +4 -0
  95. package/dist/translations/languages/ja.d.ts.map +1 -0
  96. package/dist/translations/languages/ja.js +26 -0
  97. package/dist/translations/languages/ja.js.map +1 -0
  98. package/dist/translations/languages/ko.d.ts +4 -0
  99. package/dist/translations/languages/ko.d.ts.map +1 -0
  100. package/dist/translations/languages/ko.js +26 -0
  101. package/dist/translations/languages/ko.js.map +1 -0
  102. package/dist/translations/languages/lt.d.ts +4 -0
  103. package/dist/translations/languages/lt.d.ts.map +1 -0
  104. package/dist/translations/languages/lt.js +26 -0
  105. package/dist/translations/languages/lt.js.map +1 -0
  106. package/dist/translations/languages/lv.d.ts +4 -0
  107. package/dist/translations/languages/lv.d.ts.map +1 -0
  108. package/dist/translations/languages/lv.js +26 -0
  109. package/dist/translations/languages/lv.js.map +1 -0
  110. package/dist/translations/languages/my.d.ts +4 -0
  111. package/dist/translations/languages/my.d.ts.map +1 -0
  112. package/dist/translations/languages/my.js +26 -0
  113. package/dist/translations/languages/my.js.map +1 -0
  114. package/dist/translations/languages/nb.d.ts +4 -0
  115. package/dist/translations/languages/nb.d.ts.map +1 -0
  116. package/dist/translations/languages/nb.js +26 -0
  117. package/dist/translations/languages/nb.js.map +1 -0
  118. package/dist/translations/languages/nl.d.ts +4 -0
  119. package/dist/translations/languages/nl.d.ts.map +1 -0
  120. package/dist/translations/languages/nl.js +26 -0
  121. package/dist/translations/languages/nl.js.map +1 -0
  122. package/dist/translations/languages/pl.d.ts +4 -0
  123. package/dist/translations/languages/pl.d.ts.map +1 -0
  124. package/dist/translations/languages/pl.js +26 -0
  125. package/dist/translations/languages/pl.js.map +1 -0
  126. package/dist/translations/languages/pt.d.ts +4 -0
  127. package/dist/translations/languages/pt.d.ts.map +1 -0
  128. package/dist/translations/languages/pt.js +26 -0
  129. package/dist/translations/languages/pt.js.map +1 -0
  130. package/dist/translations/languages/ro.d.ts +4 -0
  131. package/dist/translations/languages/ro.d.ts.map +1 -0
  132. package/dist/translations/languages/ro.js +26 -0
  133. package/dist/translations/languages/ro.js.map +1 -0
  134. package/dist/translations/languages/rs.d.ts +4 -0
  135. package/dist/translations/languages/rs.d.ts.map +1 -0
  136. package/dist/translations/languages/rs.js +26 -0
  137. package/dist/translations/languages/rs.js.map +1 -0
  138. package/dist/translations/languages/rsLatin.d.ts +4 -0
  139. package/dist/translations/languages/rsLatin.d.ts.map +1 -0
  140. package/dist/translations/languages/rsLatin.js +26 -0
  141. package/dist/translations/languages/rsLatin.js.map +1 -0
  142. package/dist/translations/languages/ru.d.ts +4 -0
  143. package/dist/translations/languages/ru.d.ts.map +1 -0
  144. package/dist/translations/languages/ru.js +26 -0
  145. package/dist/translations/languages/ru.js.map +1 -0
  146. package/dist/translations/languages/sk.d.ts +4 -0
  147. package/dist/translations/languages/sk.d.ts.map +1 -0
  148. package/dist/translations/languages/sk.js +26 -0
  149. package/dist/translations/languages/sk.js.map +1 -0
  150. package/dist/translations/languages/sl.d.ts +4 -0
  151. package/dist/translations/languages/sl.d.ts.map +1 -0
  152. package/dist/translations/languages/sl.js +26 -0
  153. package/dist/translations/languages/sl.js.map +1 -0
  154. package/dist/translations/languages/sv.d.ts +4 -0
  155. package/dist/translations/languages/sv.d.ts.map +1 -0
  156. package/dist/translations/languages/sv.js +26 -0
  157. package/dist/translations/languages/sv.js.map +1 -0
  158. package/dist/translations/languages/th.d.ts +4 -0
  159. package/dist/translations/languages/th.d.ts.map +1 -0
  160. package/dist/translations/languages/th.js +26 -0
  161. package/dist/translations/languages/th.js.map +1 -0
  162. package/dist/translations/languages/tr.d.ts +4 -0
  163. package/dist/translations/languages/tr.d.ts.map +1 -0
  164. package/dist/translations/languages/tr.js +26 -0
  165. package/dist/translations/languages/tr.js.map +1 -0
  166. package/dist/translations/languages/translation-schema.json +107 -0
  167. package/dist/translations/languages/uk.d.ts +4 -0
  168. package/dist/translations/languages/uk.d.ts.map +1 -0
  169. package/dist/translations/languages/uk.js +26 -0
  170. package/dist/translations/languages/uk.js.map +1 -0
  171. package/dist/translations/languages/vi.d.ts +4 -0
  172. package/dist/translations/languages/vi.d.ts.map +1 -0
  173. package/dist/translations/languages/vi.js +26 -0
  174. package/dist/translations/languages/vi.js.map +1 -0
  175. package/dist/translations/languages/zh.d.ts +4 -0
  176. package/dist/translations/languages/zh.d.ts.map +1 -0
  177. package/dist/translations/languages/zh.js +26 -0
  178. package/dist/translations/languages/zh.js.map +1 -0
  179. package/dist/translations/languages/zhTw.d.ts +4 -0
  180. package/dist/translations/languages/zhTw.d.ts.map +1 -0
  181. package/dist/translations/languages/zhTw.js +26 -0
  182. package/dist/translations/languages/zhTw.js.map +1 -0
  183. package/dist/translations/types.d.ts +23 -0
  184. package/dist/translations/types.d.ts.map +1 -0
  185. package/dist/translations/types.js +3 -0
  186. package/dist/translations/types.js.map +1 -0
  187. package/package.json +17 -7
  188. package/dist/translations/en.d.ts +0 -3
  189. package/dist/translations/en.d.ts.map +0 -1
  190. package/dist/translations/en.js +0 -9
  191. package/dist/translations/en.js.map +0 -1
  192. package/dist/translations/translation-schema.json +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportListMenuItem/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAuBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportListMenuItem/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAQxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAkCA,CAAA"}
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
- import { PopupList, useConfig, useDocumentDrawer, useTranslation } from '@payloadcms/ui';
4
+ import { PopupList, Translation, useConfig, useDocumentDrawer, useTranslation } from '@payloadcms/ui';
5
5
  import React, { useEffect } from 'react';
6
6
  import { useImportExport } from '../ImportExportProvider/index.js';
7
7
  import './index.scss';
8
8
  const baseClass = 'export-list-menu-item';
9
9
  export const ExportListMenuItem = ({ collectionSlug, exportCollectionSlug })=>{
10
10
  const { getEntityConfig } = useConfig();
11
- const { i18n } = useTranslation();
11
+ const { i18n, t } = useTranslation();
12
12
  const currentCollectionConfig = getEntityConfig({
13
13
  collectionSlug
14
14
  });
@@ -26,11 +26,16 @@ export const ExportListMenuItem = ({ collectionSlug, exportCollectionSlug })=>{
26
26
  return /*#__PURE__*/ _jsxs(PopupList.Button, {
27
27
  className: baseClass,
28
28
  children: [
29
- /*#__PURE__*/ _jsxs(DocumentDrawerToggler, {
30
- children: [
31
- "Export ",
32
- getTranslation(currentCollectionConfig.labels.plural, i18n)
33
- ]
29
+ /*#__PURE__*/ _jsx(DocumentDrawerToggler, {
30
+ children: /*#__PURE__*/ _jsx(Translation, {
31
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
32
+ // @ts-expect-error
33
+ i18nKey: "plugin-import-export:exportDocumentLabel",
34
+ t: t,
35
+ variables: {
36
+ label: getTranslation(currentCollectionConfig.labels.plural, i18n)
37
+ }
38
+ })
34
39
  }),
35
40
  /*#__PURE__*/ _jsx(DocumentDrawer, {})
36
41
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExportListMenuItem/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { PopupList, useConfig, useDocumentDrawer, useTranslation } from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'export-list-menu-item'\n\nexport const ExportListMenuItem: React.FC<{\n collectionSlug: string\n exportCollectionSlug: string\n}> = ({ collectionSlug, exportCollectionSlug }) => {\n const { getEntityConfig } = useConfig()\n const { i18n } = useTranslation()\n const currentCollectionConfig = getEntityConfig({ collectionSlug })\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n collectionSlug: exportCollectionSlug,\n })\n const { setCollection } = useImportExport()\n\n // Set collection and selected items on mount or when selection changes\n useEffect(() => {\n setCollection(currentCollectionConfig.slug ?? '')\n }, [currentCollectionConfig, setCollection])\n\n return (\n <PopupList.Button className={baseClass}>\n <DocumentDrawerToggler>\n Export {getTranslation(currentCollectionConfig.labels.plural, i18n)}\n </DocumentDrawerToggler>\n <DocumentDrawer />\n </PopupList.Button>\n )\n}\n"],"names":["getTranslation","PopupList","useConfig","useDocumentDrawer","useTranslation","React","useEffect","useImportExport","baseClass","ExportListMenuItem","collectionSlug","exportCollectionSlug","getEntityConfig","i18n","currentCollectionConfig","DocumentDrawer","DocumentDrawerToggler","setCollection","slug","Button","className","labels","plural"],"mappings":"AAAA;;AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,EAAEC,SAAS,EAAEC,iBAAiB,EAAEC,cAAc,QAAQ,iBAAgB;AACxF,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,qBAGR,CAAC,EAAEC,cAAc,EAAEC,oBAAoB,EAAE;IAC5C,MAAM,EAAEC,eAAe,EAAE,GAAGV;IAC5B,MAAM,EAAEW,IAAI,EAAE,GAAGT;IACjB,MAAMU,0BAA0BF,gBAAgB;QAAEF;IAAe;IAEjE,MAAM,CAACK,gBAAgBC,sBAAsB,GAAGb,kBAAkB;QAChEO,gBAAgBC;IAClB;IACA,MAAM,EAAEM,aAAa,EAAE,GAAGV;IAE1B,uEAAuE;IACvED,UAAU;QACRW,cAAcH,wBAAwBI,IAAI,IAAI;IAChD,GAAG;QAACJ;QAAyBG;KAAc;IAE3C,qBACE,MAAChB,UAAUkB,MAAM;QAACC,WAAWZ;;0BAC3B,MAACQ;;oBAAsB;oBACbhB,eAAec,wBAAwBO,MAAM,CAACC,MAAM,EAAET;;;0BAEhE,KAACE;;;AAGP,EAAC"}
1
+ {"version":3,"sources":["../../../src/components/ExportListMenuItem/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n PopupList,\n Translation,\n useConfig,\n useDocumentDrawer,\n useTranslation,\n} from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport type {\n PluginImportExportTranslationKeys,\n PluginImportExportTranslations,\n} from '../../translations/index.js'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'export-list-menu-item'\n\nexport const ExportListMenuItem: React.FC<{\n collectionSlug: string\n exportCollectionSlug: string\n}> = ({ collectionSlug, exportCollectionSlug }) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation<\n PluginImportExportTranslations,\n PluginImportExportTranslationKeys\n >()\n const currentCollectionConfig = getEntityConfig({ collectionSlug })\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n collectionSlug: exportCollectionSlug,\n })\n const { setCollection } = useImportExport()\n\n // Set collection and selected items on mount or when selection changes\n useEffect(() => {\n setCollection(currentCollectionConfig.slug ?? '')\n }, [currentCollectionConfig, setCollection])\n\n return (\n <PopupList.Button className={baseClass}>\n <DocumentDrawerToggler>\n <Translation\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n i18nKey=\"plugin-import-export:exportDocumentLabel\"\n t={t}\n variables={{\n label: getTranslation(currentCollectionConfig.labels.plural, i18n),\n }}\n />\n </DocumentDrawerToggler>\n <DocumentDrawer />\n </PopupList.Button>\n )\n}\n"],"names":["getTranslation","PopupList","Translation","useConfig","useDocumentDrawer","useTranslation","React","useEffect","useImportExport","baseClass","ExportListMenuItem","collectionSlug","exportCollectionSlug","getEntityConfig","i18n","t","currentCollectionConfig","DocumentDrawer","DocumentDrawerToggler","setCollection","slug","Button","className","i18nKey","variables","label","labels","plural"],"mappings":"AAAA;;AAEA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SACEC,SAAS,EACTC,WAAW,EACXC,SAAS,EACTC,iBAAiB,EACjBC,cAAc,QACT,iBAAgB;AACvB,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAOxC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,qBAGR,CAAC,EAAEC,cAAc,EAAEC,oBAAoB,EAAE;IAC5C,MAAM,EAAEC,eAAe,EAAE,GAAGV;IAC5B,MAAM,EAAEW,IAAI,EAAEC,CAAC,EAAE,GAAGV;IAIpB,MAAMW,0BAA0BH,gBAAgB;QAAEF;IAAe;IAEjE,MAAM,CAACM,gBAAgBC,sBAAsB,GAAGd,kBAAkB;QAChEO,gBAAgBC;IAClB;IACA,MAAM,EAAEO,aAAa,EAAE,GAAGX;IAE1B,uEAAuE;IACvED,UAAU;QACRY,cAAcH,wBAAwBI,IAAI,IAAI;IAChD,GAAG;QAACJ;QAAyBG;KAAc;IAE3C,qBACE,MAAClB,UAAUoB,MAAM;QAACC,WAAWb;;0BAC3B,KAACS;0BACC,cAAA,KAAChB;oBACC,6DAA6D;oBAC7D,mBAAmB;oBACnBqB,SAAQ;oBACRR,GAAGA;oBACHS,WAAW;wBACTC,OAAOzB,eAAegB,wBAAwBU,MAAM,CAACC,MAAM,EAAEb;oBAC/D;;;0BAGJ,KAACG;;;AAGP,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportSaveButton/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAkEpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ExportSaveButton/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAkEpC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Button, SaveButton, useConfig, useForm, useTranslation } from '@payloadcms/ui';
3
+ import { Button, SaveButton, Translation, useConfig, useForm, useTranslation } from '@payloadcms/ui';
4
4
  import React from 'react';
5
5
  export const ExportSaveButton = ()=>{
6
6
  const { t } = useTranslation();
@@ -62,7 +62,10 @@ export const ExportSaveButton = ()=>{
62
62
  onClick: handleDownload,
63
63
  size: "medium",
64
64
  type: "button",
65
- children: "Download"
65
+ children: /*#__PURE__*/ _jsx(Translation, {
66
+ i18nKey: "upload:download",
67
+ t: t
68
+ })
66
69
  })
67
70
  ]
68
71
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExportSaveButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button, SaveButton, useConfig, useForm, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nexport const ExportSaveButton: React.FC = () => {\n const { t } = useTranslation()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { getData } = useForm()\n\n const label = t('general:save')\n\n const handleDownload = async () => {\n try {\n const data = getData()\n const response = await fetch(`${serverURL}${api}/exports/download`, {\n body: JSON.stringify({\n data,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error('Failed to download file')\n }\n\n const fileStream = response.body\n const reader = fileStream?.getReader()\n const decoder = new TextDecoder()\n let result = ''\n\n while (reader) {\n const { done, value } = await reader.read()\n if (done) {\n break\n }\n result += decoder.decode(value, { stream: true })\n }\n\n const blob = new Blob([result], { type: 'text/plain' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n a.download = `${data.name}.${data.format}`\n document.body.appendChild(a)\n a.click()\n document.body.removeChild(a)\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Error downloading file:', error)\n }\n }\n\n return (\n <React.Fragment>\n <SaveButton label={label}></SaveButton>\n <Button onClick={handleDownload} size=\"medium\" type=\"button\">\n Download\n </Button>\n </React.Fragment>\n )\n}\n"],"names":["Button","SaveButton","useConfig","useForm","useTranslation","React","ExportSaveButton","t","config","routes","api","serverURL","getData","label","handleDownload","data","response","fetch","body","JSON","stringify","credentials","headers","method","ok","Error","fileStream","reader","getReader","decoder","TextDecoder","result","done","value","read","decode","stream","blob","Blob","type","url","URL","createObjectURL","a","document","createElement","href","download","name","format","appendChild","click","removeChild","revokeObjectURL","error","console","Fragment","onClick","size"],"mappings":"AAAA;;AAEA,SAASA,MAAM,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,cAAc,QAAQ,iBAAgB;AACvF,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,mBAA6B;IACxC,MAAM,EAAEC,CAAC,EAAE,GAAGH;IACd,MAAM,EACJI,QAAQ,EACNC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,EACF,GAAGT;IAEJ,MAAM,EAAEU,OAAO,EAAE,GAAGT;IAEpB,MAAMU,QAAQN,EAAE;IAEhB,MAAMO,iBAAiB;QACrB,IAAI;YACF,MAAMC,OAAOH;YACb,MAAMI,WAAW,MAAMC,MAAM,GAAGN,YAAYD,IAAI,iBAAiB,CAAC,EAAE;gBAClEQ,MAAMC,KAAKC,SAAS,CAAC;oBACnBL;gBACF;gBACAM,aAAa;gBACbC,SAAS;oBACP,gBAAgB;gBAClB;gBACAC,QAAQ;YACV;YAEA,IAAI,CAACP,SAASQ,EAAE,EAAE;gBAChB,MAAM,IAAIC,MAAM;YAClB;YAEA,MAAMC,aAAaV,SAASE,IAAI;YAChC,MAAMS,SAASD,YAAYE;YAC3B,MAAMC,UAAU,IAAIC;YACpB,IAAIC,SAAS;YAEb,MAAOJ,OAAQ;gBACb,MAAM,EAAEK,IAAI,EAAEC,KAAK,EAAE,GAAG,MAAMN,OAAOO,IAAI;gBACzC,IAAIF,MAAM;oBACR;gBACF;gBACAD,UAAUF,QAAQM,MAAM,CAACF,OAAO;oBAAEG,QAAQ;gBAAK;YACjD;YAEA,MAAMC,OAAO,IAAIC,KAAK;gBAACP;aAAO,EAAE;gBAAEQ,MAAM;YAAa;YACrD,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,IAAIC,SAASC,aAAa,CAAC;YACjCF,EAAEG,IAAI,GAAGN;YACTG,EAAEI,QAAQ,GAAG,GAAGhC,KAAKiC,IAAI,CAAC,CAAC,EAAEjC,KAAKkC,MAAM,EAAE;YAC1CL,SAAS1B,IAAI,CAACgC,WAAW,CAACP;YAC1BA,EAAEQ,KAAK;YACPP,SAAS1B,IAAI,CAACkC,WAAW,CAACT;YAC1BF,IAAIY,eAAe,CAACb;QACtB,EAAE,OAAOc,OAAO;YACdC,QAAQD,KAAK,CAAC,2BAA2BA;QAC3C;IACF;IAEA,qBACE,MAACjD,MAAMmD,QAAQ;;0BACb,KAACvD;gBAAWY,OAAOA;;0BACnB,KAACb;gBAAOyD,SAAS3C;gBAAgB4C,MAAK;gBAASnB,MAAK;0BAAS;;;;AAKnE,EAAC"}
1
+ {"version":3,"sources":["../../../src/components/ExportSaveButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { Button, SaveButton, Translation, useConfig, useForm, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport type {\n PluginImportExportTranslationKeys,\n PluginImportExportTranslations,\n} from '../../translations/index.js'\n\nexport const ExportSaveButton: React.FC = () => {\n const { t } = useTranslation<PluginImportExportTranslations, PluginImportExportTranslationKeys>()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { getData } = useForm()\n\n const label = t('general:save')\n\n const handleDownload = async () => {\n try {\n const data = getData()\n const response = await fetch(`${serverURL}${api}/exports/download`, {\n body: JSON.stringify({\n data,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error('Failed to download file')\n }\n\n const fileStream = response.body\n const reader = fileStream?.getReader()\n const decoder = new TextDecoder()\n let result = ''\n\n while (reader) {\n const { done, value } = await reader.read()\n if (done) {\n break\n }\n result += decoder.decode(value, { stream: true })\n }\n\n const blob = new Blob([result], { type: 'text/plain' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n a.download = `${data.name}.${data.format}`\n document.body.appendChild(a)\n a.click()\n document.body.removeChild(a)\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Error downloading file:', error)\n }\n }\n\n return (\n <React.Fragment>\n <SaveButton label={label}></SaveButton>\n <Button onClick={handleDownload} size=\"medium\" type=\"button\">\n <Translation i18nKey=\"upload:download\" t={t} />\n </Button>\n </React.Fragment>\n )\n}\n"],"names":["Button","SaveButton","Translation","useConfig","useForm","useTranslation","React","ExportSaveButton","t","config","routes","api","serverURL","getData","label","handleDownload","data","response","fetch","body","JSON","stringify","credentials","headers","method","ok","Error","fileStream","reader","getReader","decoder","TextDecoder","result","done","value","read","decode","stream","blob","Blob","type","url","URL","createObjectURL","a","document","createElement","href","download","name","format","appendChild","click","removeChild","revokeObjectURL","error","console","Fragment","onClick","size","i18nKey"],"mappings":"AAAA;;AAEA,SAASA,MAAM,EAAEC,UAAU,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,cAAc,QAAQ,iBAAgB;AACpG,OAAOC,WAAW,QAAO;AAOzB,OAAO,MAAMC,mBAA6B;IACxC,MAAM,EAAEC,CAAC,EAAE,GAAGH;IACd,MAAM,EACJI,QAAQ,EACNC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,EACF,GAAGT;IAEJ,MAAM,EAAEU,OAAO,EAAE,GAAGT;IAEpB,MAAMU,QAAQN,EAAE;IAEhB,MAAMO,iBAAiB;QACrB,IAAI;YACF,MAAMC,OAAOH;YACb,MAAMI,WAAW,MAAMC,MAAM,GAAGN,YAAYD,IAAI,iBAAiB,CAAC,EAAE;gBAClEQ,MAAMC,KAAKC,SAAS,CAAC;oBACnBL;gBACF;gBACAM,aAAa;gBACbC,SAAS;oBACP,gBAAgB;gBAClB;gBACAC,QAAQ;YACV;YAEA,IAAI,CAACP,SAASQ,EAAE,EAAE;gBAChB,MAAM,IAAIC,MAAM;YAClB;YAEA,MAAMC,aAAaV,SAASE,IAAI;YAChC,MAAMS,SAASD,YAAYE;YAC3B,MAAMC,UAAU,IAAIC;YACpB,IAAIC,SAAS;YAEb,MAAOJ,OAAQ;gBACb,MAAM,EAAEK,IAAI,EAAEC,KAAK,EAAE,GAAG,MAAMN,OAAOO,IAAI;gBACzC,IAAIF,MAAM;oBACR;gBACF;gBACAD,UAAUF,QAAQM,MAAM,CAACF,OAAO;oBAAEG,QAAQ;gBAAK;YACjD;YAEA,MAAMC,OAAO,IAAIC,KAAK;gBAACP;aAAO,EAAE;gBAAEQ,MAAM;YAAa;YACrD,MAAMC,MAAMC,IAAIC,eAAe,CAACL;YAChC,MAAMM,IAAIC,SAASC,aAAa,CAAC;YACjCF,EAAEG,IAAI,GAAGN;YACTG,EAAEI,QAAQ,GAAG,GAAGhC,KAAKiC,IAAI,CAAC,CAAC,EAAEjC,KAAKkC,MAAM,EAAE;YAC1CL,SAAS1B,IAAI,CAACgC,WAAW,CAACP;YAC1BA,EAAEQ,KAAK;YACPP,SAAS1B,IAAI,CAACkC,WAAW,CAACT;YAC1BF,IAAIY,eAAe,CAACb;QACtB,EAAE,OAAOc,OAAO;YACdC,QAAQD,KAAK,CAAC,2BAA2BA;QAC3C;IACF;IAEA,qBACE,MAACjD,MAAMmD,QAAQ;;0BACb,KAACxD;gBAAWa,OAAOA;;0BACnB,KAACd;gBAAO0D,SAAS3C;gBAAgB4C,MAAK;gBAASnB,MAAK;0BAClD,cAAA,KAACtC;oBAAY0D,SAAQ;oBAAkBpD,GAAGA;;;;;AAIlD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FieldsToExport/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAkB1E,eAAO,MAAM,cAAc,EAAE,0BAgF5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FieldsToExport/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAkB1E,eAAO,MAAM,cAAc,EAAE,0BAiF5B,CAAA"}
@@ -75,12 +75,14 @@ export const FieldsToExport = (props)=>{
75
75
  className: baseClass,
76
76
  children: [
77
77
  /*#__PURE__*/ _jsx(FieldLabel, {
78
- label: "Columns to Export"
78
+ label: props.field.label,
79
+ path: props.path
79
80
  }),
80
81
  /*#__PURE__*/ _jsx(ReactSelect, {
81
82
  className: baseClass,
82
83
  disabled: props.readOnly,
83
84
  getOptionValue: (option)=>String(option.value),
85
+ inputId: `field-${props.path.replace(/\./g, '__')}`,
84
86
  isClearable: true,
85
87
  isMulti: true,
86
88
  isSortable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FieldsToExport/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListPreferences, SelectFieldClientComponent } from 'payload'\nimport type { ReactNode } from 'react'\n\nimport {\n FieldLabel,\n ReactSelect,\n useConfig,\n useDocumentInfo,\n useField,\n usePreferences,\n} from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport { reduceFields } from './reduceFields.js'\n\nconst baseClass = 'fields-to-export'\n\nexport const FieldsToExport: SelectFieldClientComponent = (props) => {\n const { id } = useDocumentInfo()\n const { setValue, value } = useField<string[]>()\n const { value: collectionSlug } = useField<string>({ path: 'collectionSlug' })\n const { getEntityConfig } = useConfig()\n const { collection } = useImportExport()\n const { getPreference } = usePreferences()\n const [displayedValue, setDisplayedValue] = useState<\n { id: string; label: ReactNode; value: string }[]\n >([])\n\n const collectionConfig = getEntityConfig({ collectionSlug: collectionSlug ?? collection })\n const fieldOptions = reduceFields({ fields: collectionConfig?.fields })\n\n useEffect(() => {\n if (value && value.length > 0) {\n setDisplayedValue((prevDisplayedValue) => {\n if (prevDisplayedValue.length > 0) {\n return prevDisplayedValue\n } // Prevent unnecessary updates\n\n return value.map((field) => {\n const match = fieldOptions.find((option) => option.value === field)\n return match ? { ...match, id: field } : { id: field, label: field, value: field }\n })\n })\n }\n }, [value, fieldOptions])\n\n useEffect(() => {\n if (id || !collectionSlug) {\n return\n }\n const doAsync = async () => {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(`${collectionSlug}-list`)\n\n const columns = currentPreferences?.columns?.filter((a) => a.active).map((b) => b.accessor)\n setValue(columns ?? collectionConfig?.admin?.defaultColumns ?? [])\n }\n\n void doAsync()\n }, [\n getPreference,\n collection,\n setValue,\n collectionSlug,\n id,\n collectionConfig?.admin?.defaultColumns,\n ])\n const onChange = (options: { id: string; label: ReactNode; value: string }[]) => {\n if (!options) {\n setValue([])\n return\n }\n const updatedValue = options?.map((option) =>\n typeof option === 'object' ? option.value : option,\n )\n setValue(updatedValue)\n setDisplayedValue(options)\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label=\"Columns to Export\" />\n <ReactSelect\n className={baseClass}\n disabled={props.readOnly}\n getOptionValue={(option) => String(option.value)}\n isClearable={true}\n isMulti={true}\n isSortable={true}\n // @ts-expect-error react select option\n onChange={onChange}\n options={fieldOptions}\n value={displayedValue}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","ReactSelect","useConfig","useDocumentInfo","useField","usePreferences","React","useEffect","useState","useImportExport","reduceFields","baseClass","FieldsToExport","props","id","setValue","value","collectionSlug","path","getEntityConfig","collection","getPreference","displayedValue","setDisplayedValue","collectionConfig","fieldOptions","fields","length","prevDisplayedValue","map","field","match","find","option","label","doAsync","currentPreferences","columns","filter","a","active","b","accessor","admin","defaultColumns","onChange","options","updatedValue","div","className","disabled","readOnly","getOptionValue","String","isClearable","isMulti","isSortable"],"mappings":"AAAA;;AAKA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,cAAc,QACT,iBAAgB;AACvB,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,YAAY,QAAQ,oBAAmB;AAEhD,MAAMC,YAAY;AAElB,OAAO,MAAMC,iBAA6C,CAACC;IACzD,MAAM,EAAEC,EAAE,EAAE,GAAGX;IACf,MAAM,EAAEY,QAAQ,EAAEC,KAAK,EAAE,GAAGZ;IAC5B,MAAM,EAAEY,OAAOC,cAAc,EAAE,GAAGb,SAAiB;QAAEc,MAAM;IAAiB;IAC5E,MAAM,EAAEC,eAAe,EAAE,GAAGjB;IAC5B,MAAM,EAAEkB,UAAU,EAAE,GAAGX;IACvB,MAAM,EAAEY,aAAa,EAAE,GAAGhB;IAC1B,MAAM,CAACiB,gBAAgBC,kBAAkB,GAAGf,SAE1C,EAAE;IAEJ,MAAMgB,mBAAmBL,gBAAgB;QAAEF,gBAAgBA,kBAAkBG;IAAW;IACxF,MAAMK,eAAef,aAAa;QAAEgB,QAAQF,kBAAkBE;IAAO;IAErEnB,UAAU;QACR,IAAIS,SAASA,MAAMW,MAAM,GAAG,GAAG;YAC7BJ,kBAAkB,CAACK;gBACjB,IAAIA,mBAAmBD,MAAM,GAAG,GAAG;oBACjC,OAAOC;gBACT,EAAE,8BAA8B;gBAEhC,OAAOZ,MAAMa,GAAG,CAAC,CAACC;oBAChB,MAAMC,QAAQN,aAAaO,IAAI,CAAC,CAACC,SAAWA,OAAOjB,KAAK,KAAKc;oBAC7D,OAAOC,QAAQ;wBAAE,GAAGA,KAAK;wBAAEjB,IAAIgB;oBAAM,IAAI;wBAAEhB,IAAIgB;wBAAOI,OAAOJ;wBAAOd,OAAOc;oBAAM;gBACnF;YACF;QACF;IACF,GAAG;QAACd;QAAOS;KAAa;IAExBlB,UAAU;QACR,IAAIO,MAAM,CAACG,gBAAgB;YACzB;QACF;QACA,MAAMkB,UAAU;YACd,MAAMC,qBAAqB,MAAMf,cAE9B,GAAGJ,eAAe,KAAK,CAAC;YAE3B,MAAMoB,UAAUD,oBAAoBC,SAASC,OAAO,CAACC,IAAMA,EAAEC,MAAM,EAAEX,IAAI,CAACY,IAAMA,EAAEC,QAAQ;YAC1F3B,SAASsB,WAAWb,kBAAkBmB,OAAOC,kBAAkB,EAAE;QACnE;QAEA,KAAKT;IACP,GAAG;QACDd;QACAD;QACAL;QACAE;QACAH;QACAU,kBAAkBmB,OAAOC;KAC1B;IACD,MAAMC,WAAW,CAACC;QAChB,IAAI,CAACA,SAAS;YACZ/B,SAAS,EAAE;YACX;QACF;QACA,MAAMgC,eAAeD,SAASjB,IAAI,CAACI,SACjC,OAAOA,WAAW,WAAWA,OAAOjB,KAAK,GAAGiB;QAE9ClB,SAASgC;QACTxB,kBAAkBuB;IACpB;IAEA,qBACE,MAACE;QAAIC,WAAWtC;;0BACd,KAACX;gBAAWkC,OAAM;;0BAClB,KAACjC;gBACCgD,WAAWtC;gBACXuC,UAAUrC,MAAMsC,QAAQ;gBACxBC,gBAAgB,CAACnB,SAAWoB,OAAOpB,OAAOjB,KAAK;gBAC/CsC,aAAa;gBACbC,SAAS;gBACTC,YAAY;gBACZ,uCAAuC;gBACvCX,UAAUA;gBACVC,SAASrB;gBACTT,OAAOM;;;;AAIf,EAAC"}
1
+ {"version":3,"sources":["../../../src/components/FieldsToExport/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListPreferences, SelectFieldClientComponent } from 'payload'\nimport type { ReactNode } from 'react'\n\nimport {\n FieldLabel,\n ReactSelect,\n useConfig,\n useDocumentInfo,\n useField,\n usePreferences,\n} from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport { reduceFields } from './reduceFields.js'\n\nconst baseClass = 'fields-to-export'\n\nexport const FieldsToExport: SelectFieldClientComponent = (props) => {\n const { id } = useDocumentInfo()\n const { setValue, value } = useField<string[]>()\n const { value: collectionSlug } = useField<string>({ path: 'collectionSlug' })\n const { getEntityConfig } = useConfig()\n const { collection } = useImportExport()\n const { getPreference } = usePreferences()\n const [displayedValue, setDisplayedValue] = useState<\n { id: string; label: ReactNode; value: string }[]\n >([])\n\n const collectionConfig = getEntityConfig({ collectionSlug: collectionSlug ?? collection })\n const fieldOptions = reduceFields({ fields: collectionConfig?.fields })\n\n useEffect(() => {\n if (value && value.length > 0) {\n setDisplayedValue((prevDisplayedValue) => {\n if (prevDisplayedValue.length > 0) {\n return prevDisplayedValue\n } // Prevent unnecessary updates\n\n return value.map((field) => {\n const match = fieldOptions.find((option) => option.value === field)\n return match ? { ...match, id: field } : { id: field, label: field, value: field }\n })\n })\n }\n }, [value, fieldOptions])\n\n useEffect(() => {\n if (id || !collectionSlug) {\n return\n }\n const doAsync = async () => {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(`${collectionSlug}-list`)\n\n const columns = currentPreferences?.columns?.filter((a) => a.active).map((b) => b.accessor)\n setValue(columns ?? collectionConfig?.admin?.defaultColumns ?? [])\n }\n\n void doAsync()\n }, [\n getPreference,\n collection,\n setValue,\n collectionSlug,\n id,\n collectionConfig?.admin?.defaultColumns,\n ])\n const onChange = (options: { id: string; label: ReactNode; value: string }[]) => {\n if (!options) {\n setValue([])\n return\n }\n const updatedValue = options?.map((option) =>\n typeof option === 'object' ? option.value : option,\n )\n setValue(updatedValue)\n setDisplayedValue(options)\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={props.field.label} path={props.path} />\n <ReactSelect\n className={baseClass}\n disabled={props.readOnly}\n getOptionValue={(option) => String(option.value)}\n inputId={`field-${props.path.replace(/\\./g, '__')}`}\n isClearable={true}\n isMulti={true}\n isSortable={true}\n // @ts-expect-error react select option\n onChange={onChange}\n options={fieldOptions}\n value={displayedValue}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","ReactSelect","useConfig","useDocumentInfo","useField","usePreferences","React","useEffect","useState","useImportExport","reduceFields","baseClass","FieldsToExport","props","id","setValue","value","collectionSlug","path","getEntityConfig","collection","getPreference","displayedValue","setDisplayedValue","collectionConfig","fieldOptions","fields","length","prevDisplayedValue","map","field","match","find","option","label","doAsync","currentPreferences","columns","filter","a","active","b","accessor","admin","defaultColumns","onChange","options","updatedValue","div","className","disabled","readOnly","getOptionValue","String","inputId","replace","isClearable","isMulti","isSortable"],"mappings":"AAAA;;AAKA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,cAAc,QACT,iBAAgB;AACvB,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,YAAY,QAAQ,oBAAmB;AAEhD,MAAMC,YAAY;AAElB,OAAO,MAAMC,iBAA6C,CAACC;IACzD,MAAM,EAAEC,EAAE,EAAE,GAAGX;IACf,MAAM,EAAEY,QAAQ,EAAEC,KAAK,EAAE,GAAGZ;IAC5B,MAAM,EAAEY,OAAOC,cAAc,EAAE,GAAGb,SAAiB;QAAEc,MAAM;IAAiB;IAC5E,MAAM,EAAEC,eAAe,EAAE,GAAGjB;IAC5B,MAAM,EAAEkB,UAAU,EAAE,GAAGX;IACvB,MAAM,EAAEY,aAAa,EAAE,GAAGhB;IAC1B,MAAM,CAACiB,gBAAgBC,kBAAkB,GAAGf,SAE1C,EAAE;IAEJ,MAAMgB,mBAAmBL,gBAAgB;QAAEF,gBAAgBA,kBAAkBG;IAAW;IACxF,MAAMK,eAAef,aAAa;QAAEgB,QAAQF,kBAAkBE;IAAO;IAErEnB,UAAU;QACR,IAAIS,SAASA,MAAMW,MAAM,GAAG,GAAG;YAC7BJ,kBAAkB,CAACK;gBACjB,IAAIA,mBAAmBD,MAAM,GAAG,GAAG;oBACjC,OAAOC;gBACT,EAAE,8BAA8B;gBAEhC,OAAOZ,MAAMa,GAAG,CAAC,CAACC;oBAChB,MAAMC,QAAQN,aAAaO,IAAI,CAAC,CAACC,SAAWA,OAAOjB,KAAK,KAAKc;oBAC7D,OAAOC,QAAQ;wBAAE,GAAGA,KAAK;wBAAEjB,IAAIgB;oBAAM,IAAI;wBAAEhB,IAAIgB;wBAAOI,OAAOJ;wBAAOd,OAAOc;oBAAM;gBACnF;YACF;QACF;IACF,GAAG;QAACd;QAAOS;KAAa;IAExBlB,UAAU;QACR,IAAIO,MAAM,CAACG,gBAAgB;YACzB;QACF;QACA,MAAMkB,UAAU;YACd,MAAMC,qBAAqB,MAAMf,cAE9B,GAAGJ,eAAe,KAAK,CAAC;YAE3B,MAAMoB,UAAUD,oBAAoBC,SAASC,OAAO,CAACC,IAAMA,EAAEC,MAAM,EAAEX,IAAI,CAACY,IAAMA,EAAEC,QAAQ;YAC1F3B,SAASsB,WAAWb,kBAAkBmB,OAAOC,kBAAkB,EAAE;QACnE;QAEA,KAAKT;IACP,GAAG;QACDd;QACAD;QACAL;QACAE;QACAH;QACAU,kBAAkBmB,OAAOC;KAC1B;IACD,MAAMC,WAAW,CAACC;QAChB,IAAI,CAACA,SAAS;YACZ/B,SAAS,EAAE;YACX;QACF;QACA,MAAMgC,eAAeD,SAASjB,IAAI,CAACI,SACjC,OAAOA,WAAW,WAAWA,OAAOjB,KAAK,GAAGiB;QAE9ClB,SAASgC;QACTxB,kBAAkBuB;IACpB;IAEA,qBACE,MAACE;QAAIC,WAAWtC;;0BACd,KAACX;gBAAWkC,OAAOrB,MAAMiB,KAAK,CAACI,KAAK;gBAAEhB,MAAML,MAAMK,IAAI;;0BACtD,KAACjB;gBACCgD,WAAWtC;gBACXuC,UAAUrC,MAAMsC,QAAQ;gBACxBC,gBAAgB,CAACnB,SAAWoB,OAAOpB,OAAOjB,KAAK;gBAC/CsC,SAAS,CAAC,MAAM,EAAEzC,MAAMK,IAAI,CAACqC,OAAO,CAAC,OAAO,OAAO;gBACnDC,aAAa;gBACbC,SAAS;gBACTC,YAAY;gBACZ,uCAAuC;gBACvCb,UAAUA;gBACVC,SAASrB;gBACTT,OAAOM;;;;AAIf,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Preview/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,OAAO,yBA+FnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Preview/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,OAAO,yBA8GnB,CAAA"}
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
- import { Table, useConfig, useField, useTranslation } from '@payloadcms/ui';
4
+ import { Table, Translation, useConfig, useField, useTranslation } from '@payloadcms/ui';
5
5
  import { fieldAffectsData } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
7
  import React from 'react';
8
- import { useImportExport } from '../ImportExportProvider/index.js';
9
8
  import './index.scss';
9
+ import { useImportExport } from '../ImportExportProvider/index.js';
10
10
  const baseClass = 'preview';
11
11
  export const Preview = ()=>{
12
12
  const { collection } = useImportExport();
@@ -29,7 +29,7 @@ export const Preview = ()=>{
29
29
  const [dataToRender, setDataToRender] = React.useState([]);
30
30
  const [resultCount, setResultCount] = React.useState('');
31
31
  const [columns, setColumns] = React.useState([]);
32
- const { i18n } = useTranslation();
32
+ const { i18n, t } = useTranslation();
33
33
  const collectionSlug = typeof collection === 'string' && collection;
34
34
  const collectionConfig = config.collections.find((collection)=>collection.slug === collectionSlug);
35
35
  React.useEffect(()=>{
@@ -104,13 +104,19 @@ export const Preview = ()=>{
104
104
  className: `${baseClass}__header`,
105
105
  children: [
106
106
  /*#__PURE__*/ _jsx("h3", {
107
- children: "Preview"
107
+ children: /*#__PURE__*/ _jsx(Translation, {
108
+ i18nKey: "version:preview",
109
+ t: t
110
+ })
108
111
  }),
109
- resultCount && /*#__PURE__*/ _jsxs("span", {
110
- children: [
111
- resultCount,
112
- " total documents"
113
- ]
112
+ resultCount && /*#__PURE__*/ _jsx(Translation, {
113
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
114
+ // @ts-expect-error
115
+ i18nKey: "plugin-import-export:totalDocumentsCount",
116
+ t: t,
117
+ variables: {
118
+ count: resultCount
119
+ }
114
120
  })
115
121
  ]
116
122
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Preview/index.tsx"],"sourcesContent":["'use client'\nimport type { Column } from '@payloadcms/ui'\nimport type { ClientField, FieldAffectingDataClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Table, useConfig, useField, useTranslation } from '@payloadcms/ui'\nimport { fieldAffectsData } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport { useImportExport } from '../ImportExportProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'preview'\n\nexport const Preview = () => {\n const { collection } = useImportExport()\n const { config } = useConfig()\n const { value: where } = useField({ path: 'where' })\n const { value: limit } = useField<number>({ path: 'limit' })\n const { value: fields } = useField<string[]>({ path: 'fields' })\n const { value: sort } = useField({ path: 'sort' })\n const { value: draft } = useField({ path: 'draft' })\n const [dataToRender, setDataToRender] = React.useState<any[]>([])\n const [resultCount, setResultCount] = React.useState<any>('')\n const [columns, setColumns] = React.useState<Column[]>([])\n const { i18n } = useTranslation()\n\n const collectionSlug = typeof collection === 'string' && collection\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n React.useEffect(() => {\n const fetchData = async () => {\n if (!collectionSlug) {\n return\n }\n\n try {\n const whereQuery = qs.stringify(\n {\n depth: 0,\n draft,\n limit: limit > 10 ? 10 : limit,\n sort,\n where,\n },\n {\n addQueryPrefix: true,\n },\n )\n const response = await fetch(`/api/${collectionSlug}${whereQuery}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })\n\n if (response.ok) {\n const data = await response.json()\n setResultCount(limit && limit < data.totalDocs ? limit : data.totalDocs)\n // TODO: check if this data is in the correct format for the table\n\n const filteredFields = (collectionConfig?.fields?.filter((field) => {\n if (!fieldAffectsData(field)) {\n return false\n }\n if (fields?.length > 0) {\n return fields.includes(field.name)\n }\n return true\n }) ?? []) as FieldAffectingDataClient[]\n\n setColumns(\n filteredFields.map((field) => ({\n accessor: field.name || '',\n active: true,\n field: field as ClientField,\n Heading: getTranslation(field?.label || (field.name as string), i18n),\n renderedCells: data.docs.map((doc: Record<string, unknown>) => {\n if (!field.name || !doc[field.name]) {\n return null\n }\n if (typeof doc[field.name] === 'object') {\n return JSON.stringify(doc[field.name])\n }\n return String(doc[field.name])\n }),\n })) as Column[],\n )\n setDataToRender(data.docs)\n }\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n void fetchData()\n }, [collectionConfig?.fields, collectionSlug, draft, fields, limit, sort, where])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h3>Preview</h3>\n {resultCount && <span>{resultCount} total documents</span>}\n </div>\n {dataToRender && <Table columns={columns} data={dataToRender} />}\n </div>\n )\n}\n"],"names":["getTranslation","Table","useConfig","useField","useTranslation","fieldAffectsData","qs","React","useImportExport","baseClass","Preview","collection","config","value","where","path","limit","fields","sort","draft","dataToRender","setDataToRender","useState","resultCount","setResultCount","columns","setColumns","i18n","collectionSlug","collectionConfig","collections","find","slug","useEffect","fetchData","whereQuery","stringify","depth","addQueryPrefix","response","fetch","headers","method","ok","data","json","totalDocs","filteredFields","filter","field","length","includes","name","map","accessor","active","Heading","label","renderedCells","docs","doc","JSON","String","error","console","div","className","h3","span"],"mappings":"AAAA;;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,iBAAgB;AAC3E,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,YAAYC,QAAQ,SAAQ;AAC5B,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,mCAAkC;AAClE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,UAAU;IACrB,MAAM,EAAEC,UAAU,EAAE,GAAGH;IACvB,MAAM,EAAEI,MAAM,EAAE,GAAGV;IACnB,MAAM,EAAEW,OAAOC,KAAK,EAAE,GAAGX,SAAS;QAAEY,MAAM;IAAQ;IAClD,MAAM,EAAEF,OAAOG,KAAK,EAAE,GAAGb,SAAiB;QAAEY,MAAM;IAAQ;IAC1D,MAAM,EAAEF,OAAOI,MAAM,EAAE,GAAGd,SAAmB;QAAEY,MAAM;IAAS;IAC9D,MAAM,EAAEF,OAAOK,IAAI,EAAE,GAAGf,SAAS;QAAEY,MAAM;IAAO;IAChD,MAAM,EAAEF,OAAOM,KAAK,EAAE,GAAGhB,SAAS;QAAEY,MAAM;IAAQ;IAClD,MAAM,CAACK,cAAcC,gBAAgB,GAAGd,MAAMe,QAAQ,CAAQ,EAAE;IAChE,MAAM,CAACC,aAAaC,eAAe,GAAGjB,MAAMe,QAAQ,CAAM;IAC1D,MAAM,CAACG,SAASC,WAAW,GAAGnB,MAAMe,QAAQ,CAAW,EAAE;IACzD,MAAM,EAAEK,IAAI,EAAE,GAAGvB;IAEjB,MAAMwB,iBAAiB,OAAOjB,eAAe,YAAYA;IACzD,MAAMkB,mBAAmBjB,OAAOkB,WAAW,CAACC,IAAI,CAC9C,CAACpB,aAAeA,WAAWqB,IAAI,KAAKJ;IAGtCrB,MAAM0B,SAAS,CAAC;QACd,MAAMC,YAAY;YAChB,IAAI,CAACN,gBAAgB;gBACnB;YACF;YAEA,IAAI;gBACF,MAAMO,aAAa7B,GAAG8B,SAAS,CAC7B;oBACEC,OAAO;oBACPlB;oBACAH,OAAOA,QAAQ,KAAK,KAAKA;oBACzBE;oBACAJ;gBACF,GACA;oBACEwB,gBAAgB;gBAClB;gBAEF,MAAMC,WAAW,MAAMC,MAAM,CAAC,KAAK,EAAEZ,iBAAiBO,YAAY,EAAE;oBAClEM,SAAS;wBACP,gBAAgB;oBAClB;oBACAC,QAAQ;gBACV;gBAEA,IAAIH,SAASI,EAAE,EAAE;oBACf,MAAMC,OAAO,MAAML,SAASM,IAAI;oBAChCrB,eAAeR,SAASA,QAAQ4B,KAAKE,SAAS,GAAG9B,QAAQ4B,KAAKE,SAAS;oBACvE,kEAAkE;oBAElE,MAAMC,iBAAkBlB,kBAAkBZ,QAAQ+B,OAAO,CAACC;wBACxD,IAAI,CAAC5C,iBAAiB4C,QAAQ;4BAC5B,OAAO;wBACT;wBACA,IAAIhC,QAAQiC,SAAS,GAAG;4BACtB,OAAOjC,OAAOkC,QAAQ,CAACF,MAAMG,IAAI;wBACnC;wBACA,OAAO;oBACT,MAAM,EAAE;oBAER1B,WACEqB,eAAeM,GAAG,CAAC,CAACJ,QAAW,CAAA;4BAC7BK,UAAUL,MAAMG,IAAI,IAAI;4BACxBG,QAAQ;4BACRN,OAAOA;4BACPO,SAASxD,eAAeiD,OAAOQ,SAAUR,MAAMG,IAAI,EAAazB;4BAChE+B,eAAed,KAAKe,IAAI,CAACN,GAAG,CAAC,CAACO;gCAC5B,IAAI,CAACX,MAAMG,IAAI,IAAI,CAACQ,GAAG,CAACX,MAAMG,IAAI,CAAC,EAAE;oCACnC,OAAO;gCACT;gCACA,IAAI,OAAOQ,GAAG,CAACX,MAAMG,IAAI,CAAC,KAAK,UAAU;oCACvC,OAAOS,KAAKzB,SAAS,CAACwB,GAAG,CAACX,MAAMG,IAAI,CAAC;gCACvC;gCACA,OAAOU,OAAOF,GAAG,CAACX,MAAMG,IAAI,CAAC;4BAC/B;wBACF,CAAA;oBAEF/B,gBAAgBuB,KAAKe,IAAI;gBAC3B;YACF,EAAE,OAAOI,OAAO;gBACdC,QAAQD,KAAK,CAAC,wBAAwBA;YACxC;QACF;QAEA,KAAK7B;IACP,GAAG;QAACL,kBAAkBZ;QAAQW;QAAgBT;QAAOF;QAAQD;QAAOE;QAAMJ;KAAM;IAEhF,qBACE,MAACmD;QAAIC,WAAWzD;;0BACd,MAACwD;gBAAIC,WAAW,GAAGzD,UAAU,QAAQ,CAAC;;kCACpC,KAAC0D;kCAAG;;oBACH5C,6BAAe,MAAC6C;;4BAAM7C;4BAAY;;;;;YAEpCH,8BAAgB,KAACnB;gBAAMwB,SAASA;gBAASmB,MAAMxB;;;;AAGtD,EAAC"}
1
+ {"version":3,"sources":["../../../src/components/Preview/index.tsx"],"sourcesContent":["'use client'\nimport type { Column } from '@payloadcms/ui'\nimport type { ClientField, FieldAffectingDataClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Table, Translation, useConfig, useField, useTranslation } from '@payloadcms/ui'\nimport { fieldAffectsData } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport type {\n PluginImportExportTranslationKeys,\n PluginImportExportTranslations,\n} from '../../translations/index.js'\n\nimport './index.scss'\nimport { useImportExport } from '../ImportExportProvider/index.js'\n\nconst baseClass = 'preview'\n\nexport const Preview = () => {\n const { collection } = useImportExport()\n const { config } = useConfig()\n const { value: where } = useField({ path: 'where' })\n const { value: limit } = useField<number>({ path: 'limit' })\n const { value: fields } = useField<string[]>({ path: 'fields' })\n const { value: sort } = useField({ path: 'sort' })\n const { value: draft } = useField({ path: 'draft' })\n const [dataToRender, setDataToRender] = React.useState<any[]>([])\n const [resultCount, setResultCount] = React.useState<any>('')\n const [columns, setColumns] = React.useState<Column[]>([])\n const { i18n, t } = useTranslation<\n PluginImportExportTranslations,\n PluginImportExportTranslationKeys\n >()\n\n const collectionSlug = typeof collection === 'string' && collection\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n React.useEffect(() => {\n const fetchData = async () => {\n if (!collectionSlug) {\n return\n }\n\n try {\n const whereQuery = qs.stringify(\n {\n depth: 0,\n draft,\n limit: limit > 10 ? 10 : limit,\n sort,\n where,\n },\n {\n addQueryPrefix: true,\n },\n )\n const response = await fetch(`/api/${collectionSlug}${whereQuery}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })\n\n if (response.ok) {\n const data = await response.json()\n setResultCount(limit && limit < data.totalDocs ? limit : data.totalDocs)\n // TODO: check if this data is in the correct format for the table\n\n const filteredFields = (collectionConfig?.fields?.filter((field) => {\n if (!fieldAffectsData(field)) {\n return false\n }\n if (fields?.length > 0) {\n return fields.includes(field.name)\n }\n return true\n }) ?? []) as FieldAffectingDataClient[]\n\n setColumns(\n filteredFields.map((field) => ({\n accessor: field.name || '',\n active: true,\n field: field as ClientField,\n Heading: getTranslation(field?.label || (field.name as string), i18n),\n renderedCells: data.docs.map((doc: Record<string, unknown>) => {\n if (!field.name || !doc[field.name]) {\n return null\n }\n if (typeof doc[field.name] === 'object') {\n return JSON.stringify(doc[field.name])\n }\n return String(doc[field.name])\n }),\n })) as Column[],\n )\n setDataToRender(data.docs)\n }\n } catch (error) {\n console.error('Error fetching data:', error)\n }\n }\n\n void fetchData()\n }, [collectionConfig?.fields, collectionSlug, draft, fields, limit, sort, where])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h3>\n <Translation i18nKey=\"version:preview\" t={t} />\n </h3>\n {resultCount && (\n <Translation\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n i18nKey=\"plugin-import-export:totalDocumentsCount\"\n t={t}\n variables={{\n count: resultCount,\n }}\n />\n )}\n </div>\n {dataToRender && <Table columns={columns} data={dataToRender} />}\n </div>\n )\n}\n"],"names":["getTranslation","Table","Translation","useConfig","useField","useTranslation","fieldAffectsData","qs","React","useImportExport","baseClass","Preview","collection","config","value","where","path","limit","fields","sort","draft","dataToRender","setDataToRender","useState","resultCount","setResultCount","columns","setColumns","i18n","t","collectionSlug","collectionConfig","collections","find","slug","useEffect","fetchData","whereQuery","stringify","depth","addQueryPrefix","response","fetch","headers","method","ok","data","json","totalDocs","filteredFields","filter","field","length","includes","name","map","accessor","active","Heading","label","renderedCells","docs","doc","JSON","String","error","console","div","className","h3","i18nKey","variables","count"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SortBy/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAkBzD,eAAO,MAAM,MAAM,EAAE,0BAqEpB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SortBy/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAkBzD,eAAO,MAAM,MAAM,EAAE,0BAsEpB,CAAA"}
@@ -67,12 +67,14 @@ export const SortBy = (props)=>{
67
67
  },
68
68
  children: [
69
69
  /*#__PURE__*/ _jsx(FieldLabel, {
70
- label: "Sort By"
70
+ label: props.field.label,
71
+ path: props.path
71
72
  }),
72
73
  /*#__PURE__*/ _jsx(ReactSelect, {
73
74
  className: baseClass,
74
75
  disabled: props.readOnly,
75
76
  getOptionValue: (option)=>String(option.value),
77
+ inputId: `field-${props.path.replace(/\./g, '__')}`,
76
78
  isClearable: true,
77
79
  isSortable: true,
78
80
  // @ts-expect-error react select option
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SortBy/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectFieldClientComponent } from 'payload'\nimport type { ReactNode } from 'react'\n\nimport {\n FieldLabel,\n ReactSelect,\n useConfig,\n useDocumentInfo,\n useField,\n useListQuery,\n} from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\nimport { reduceFields } from '../FieldsToExport/reduceFields.js'\nimport { useImportExport } from '../ImportExportProvider/index.js'\n\nconst baseClass = 'sort-by-fields'\n\nexport const SortBy: SelectFieldClientComponent = (props) => {\n const { id } = useDocumentInfo()\n const { setValue, value } = useField<string>()\n const { value: collectionSlug } = useField<string>({ path: 'collectionSlug' })\n const { query } = useListQuery()\n const { getEntityConfig } = useConfig()\n const { collection } = useImportExport()\n\n const [displayedValue, setDisplayedValue] = useState<{\n id: string\n label: ReactNode\n value: string\n } | null>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: collectionSlug ?? collection })\n const fieldOptions = reduceFields({ fields: collectionConfig?.fields })\n\n // Sync displayedValue with value from useField\n useEffect(() => {\n if (!value) {\n setDisplayedValue(null)\n return\n }\n\n const option = fieldOptions.find((field) => field.value === value)\n if (option && (!displayedValue || displayedValue.value !== value)) {\n setDisplayedValue(option)\n }\n }, [value, fieldOptions])\n\n useEffect(() => {\n if (id || !query?.sort || value) {\n return\n }\n\n const option = fieldOptions.find((field) => field.value === query.sort)\n if (option) {\n setValue(option.value)\n setDisplayedValue(option)\n }\n }, [fieldOptions, id, query?.sort, value, setValue])\n\n const onChange = (option: { id: string; label: ReactNode; value: string } | null) => {\n if (!option) {\n setValue('')\n setDisplayedValue(null)\n } else {\n setValue(option.value)\n setDisplayedValue(option)\n }\n }\n\n return (\n <div className={baseClass} style={{ '--field-width': '33%' } as React.CSSProperties}>\n <FieldLabel label=\"Sort By\" />\n <ReactSelect\n className={baseClass}\n disabled={props.readOnly}\n getOptionValue={(option) => String(option.value)}\n isClearable={true}\n isSortable={true}\n // @ts-expect-error react select option\n onChange={onChange}\n options={fieldOptions}\n // @ts-expect-error react select\n value={displayedValue}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","ReactSelect","useConfig","useDocumentInfo","useField","useListQuery","React","useEffect","useState","reduceFields","useImportExport","baseClass","SortBy","props","id","setValue","value","collectionSlug","path","query","getEntityConfig","collection","displayedValue","setDisplayedValue","collectionConfig","fieldOptions","fields","option","find","field","sort","onChange","div","className","style","label","disabled","readOnly","getOptionValue","String","isClearable","isSortable","options"],"mappings":"AAAA;;AAKA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,YAAY,QACP,iBAAgB;AACvB,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,eAAe,QAAQ,mCAAkC;AAElE,MAAMC,YAAY;AAElB,OAAO,MAAMC,SAAqC,CAACC;IACjD,MAAM,EAAEC,EAAE,EAAE,GAAGX;IACf,MAAM,EAAEY,QAAQ,EAAEC,KAAK,EAAE,GAAGZ;IAC5B,MAAM,EAAEY,OAAOC,cAAc,EAAE,GAAGb,SAAiB;QAAEc,MAAM;IAAiB;IAC5E,MAAM,EAAEC,KAAK,EAAE,GAAGd;IAClB,MAAM,EAAEe,eAAe,EAAE,GAAGlB;IAC5B,MAAM,EAAEmB,UAAU,EAAE,GAAGX;IAEvB,MAAM,CAACY,gBAAgBC,kBAAkB,GAAGf,SAIlC;IAEV,MAAMgB,mBAAmBJ,gBAAgB;QAAEH,gBAAgBA,kBAAkBI;IAAW;IACxF,MAAMI,eAAehB,aAAa;QAAEiB,QAAQF,kBAAkBE;IAAO;IAErE,+CAA+C;IAC/CnB,UAAU;QACR,IAAI,CAACS,OAAO;YACVO,kBAAkB;YAClB;QACF;QAEA,MAAMI,SAASF,aAAaG,IAAI,CAAC,CAACC,QAAUA,MAAMb,KAAK,KAAKA;QAC5D,IAAIW,UAAW,CAAA,CAACL,kBAAkBA,eAAeN,KAAK,KAAKA,KAAI,GAAI;YACjEO,kBAAkBI;QACpB;IACF,GAAG;QAACX;QAAOS;KAAa;IAExBlB,UAAU;QACR,IAAIO,MAAM,CAACK,OAAOW,QAAQd,OAAO;YAC/B;QACF;QAEA,MAAMW,SAASF,aAAaG,IAAI,CAAC,CAACC,QAAUA,MAAMb,KAAK,KAAKG,MAAMW,IAAI;QACtE,IAAIH,QAAQ;YACVZ,SAASY,OAAOX,KAAK;YACrBO,kBAAkBI;QACpB;IACF,GAAG;QAACF;QAAcX;QAAIK,OAAOW;QAAMd;QAAOD;KAAS;IAEnD,MAAMgB,WAAW,CAACJ;QAChB,IAAI,CAACA,QAAQ;YACXZ,SAAS;YACTQ,kBAAkB;QACpB,OAAO;YACLR,SAASY,OAAOX,KAAK;YACrBO,kBAAkBI;QACpB;IACF;IAEA,qBACE,MAACK;QAAIC,WAAWtB;QAAWuB,OAAO;YAAE,iBAAiB;QAAM;;0BACzD,KAAClC;gBAAWmC,OAAM;;0BAClB,KAAClC;gBACCgC,WAAWtB;gBACXyB,UAAUvB,MAAMwB,QAAQ;gBACxBC,gBAAgB,CAACX,SAAWY,OAAOZ,OAAOX,KAAK;gBAC/CwB,aAAa;gBACbC,YAAY;gBACZ,uCAAuC;gBACvCV,UAAUA;gBACVW,SAASjB;gBACT,gCAAgC;gBAChCT,OAAOM;;;;AAIf,EAAC"}
1
+ {"version":3,"sources":["../../../src/components/SortBy/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectFieldClientComponent } from 'payload'\nimport type { ReactNode } from 'react'\n\nimport {\n FieldLabel,\n ReactSelect,\n useConfig,\n useDocumentInfo,\n useField,\n useListQuery,\n} from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\nimport { reduceFields } from '../FieldsToExport/reduceFields.js'\nimport { useImportExport } from '../ImportExportProvider/index.js'\n\nconst baseClass = 'sort-by-fields'\n\nexport const SortBy: SelectFieldClientComponent = (props) => {\n const { id } = useDocumentInfo()\n const { setValue, value } = useField<string>()\n const { value: collectionSlug } = useField<string>({ path: 'collectionSlug' })\n const { query } = useListQuery()\n const { getEntityConfig } = useConfig()\n const { collection } = useImportExport()\n\n const [displayedValue, setDisplayedValue] = useState<{\n id: string\n label: ReactNode\n value: string\n } | null>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: collectionSlug ?? collection })\n const fieldOptions = reduceFields({ fields: collectionConfig?.fields })\n\n // Sync displayedValue with value from useField\n useEffect(() => {\n if (!value) {\n setDisplayedValue(null)\n return\n }\n\n const option = fieldOptions.find((field) => field.value === value)\n if (option && (!displayedValue || displayedValue.value !== value)) {\n setDisplayedValue(option)\n }\n }, [value, fieldOptions])\n\n useEffect(() => {\n if (id || !query?.sort || value) {\n return\n }\n\n const option = fieldOptions.find((field) => field.value === query.sort)\n if (option) {\n setValue(option.value)\n setDisplayedValue(option)\n }\n }, [fieldOptions, id, query?.sort, value, setValue])\n\n const onChange = (option: { id: string; label: ReactNode; value: string } | null) => {\n if (!option) {\n setValue('')\n setDisplayedValue(null)\n } else {\n setValue(option.value)\n setDisplayedValue(option)\n }\n }\n\n return (\n <div className={baseClass} style={{ '--field-width': '33%' } as React.CSSProperties}>\n <FieldLabel label={props.field.label} path={props.path} />\n <ReactSelect\n className={baseClass}\n disabled={props.readOnly}\n getOptionValue={(option) => String(option.value)}\n inputId={`field-${props.path.replace(/\\./g, '__')}`}\n isClearable={true}\n isSortable={true}\n // @ts-expect-error react select option\n onChange={onChange}\n options={fieldOptions}\n // @ts-expect-error react select\n value={displayedValue}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","ReactSelect","useConfig","useDocumentInfo","useField","useListQuery","React","useEffect","useState","reduceFields","useImportExport","baseClass","SortBy","props","id","setValue","value","collectionSlug","path","query","getEntityConfig","collection","displayedValue","setDisplayedValue","collectionConfig","fieldOptions","fields","option","find","field","sort","onChange","div","className","style","label","disabled","readOnly","getOptionValue","String","inputId","replace","isClearable","isSortable","options"],"mappings":"AAAA;;AAKA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,eAAe,EACfC,QAAQ,EACRC,YAAY,QACP,iBAAgB;AACvB,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,eAAe,QAAQ,mCAAkC;AAElE,MAAMC,YAAY;AAElB,OAAO,MAAMC,SAAqC,CAACC;IACjD,MAAM,EAAEC,EAAE,EAAE,GAAGX;IACf,MAAM,EAAEY,QAAQ,EAAEC,KAAK,EAAE,GAAGZ;IAC5B,MAAM,EAAEY,OAAOC,cAAc,EAAE,GAAGb,SAAiB;QAAEc,MAAM;IAAiB;IAC5E,MAAM,EAAEC,KAAK,EAAE,GAAGd;IAClB,MAAM,EAAEe,eAAe,EAAE,GAAGlB;IAC5B,MAAM,EAAEmB,UAAU,EAAE,GAAGX;IAEvB,MAAM,CAACY,gBAAgBC,kBAAkB,GAAGf,SAIlC;IAEV,MAAMgB,mBAAmBJ,gBAAgB;QAAEH,gBAAgBA,kBAAkBI;IAAW;IACxF,MAAMI,eAAehB,aAAa;QAAEiB,QAAQF,kBAAkBE;IAAO;IAErE,+CAA+C;IAC/CnB,UAAU;QACR,IAAI,CAACS,OAAO;YACVO,kBAAkB;YAClB;QACF;QAEA,MAAMI,SAASF,aAAaG,IAAI,CAAC,CAACC,QAAUA,MAAMb,KAAK,KAAKA;QAC5D,IAAIW,UAAW,CAAA,CAACL,kBAAkBA,eAAeN,KAAK,KAAKA,KAAI,GAAI;YACjEO,kBAAkBI;QACpB;IACF,GAAG;QAACX;QAAOS;KAAa;IAExBlB,UAAU;QACR,IAAIO,MAAM,CAACK,OAAOW,QAAQd,OAAO;YAC/B;QACF;QAEA,MAAMW,SAASF,aAAaG,IAAI,CAAC,CAACC,QAAUA,MAAMb,KAAK,KAAKG,MAAMW,IAAI;QACtE,IAAIH,QAAQ;YACVZ,SAASY,OAAOX,KAAK;YACrBO,kBAAkBI;QACpB;IACF,GAAG;QAACF;QAAcX;QAAIK,OAAOW;QAAMd;QAAOD;KAAS;IAEnD,MAAMgB,WAAW,CAACJ;QAChB,IAAI,CAACA,QAAQ;YACXZ,SAAS;YACTQ,kBAAkB;QACpB,OAAO;YACLR,SAASY,OAAOX,KAAK;YACrBO,kBAAkBI;QACpB;IACF;IAEA,qBACE,MAACK;QAAIC,WAAWtB;QAAWuB,OAAO;YAAE,iBAAiB;QAAM;;0BACzD,KAAClC;gBAAWmC,OAAOtB,MAAMgB,KAAK,CAACM,KAAK;gBAAEjB,MAAML,MAAMK,IAAI;;0BACtD,KAACjB;gBACCgC,WAAWtB;gBACXyB,UAAUvB,MAAMwB,QAAQ;gBACxBC,gBAAgB,CAACX,SAAWY,OAAOZ,OAAOX,KAAK;gBAC/CwB,SAAS,CAAC,MAAM,EAAE3B,MAAMK,IAAI,CAACuB,OAAO,CAAC,OAAO,OAAO;gBACnDC,aAAa;gBACbC,YAAY;gBACZ,uCAAuC;gBACvCZ,UAAUA;gBACVa,SAASnB;gBACT,gCAAgC;gBAChCT,OAAOM;;;;AAIf,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/export/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAe,MAAM,SAAS,CAAA;AAIzD,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,KAAK,EAwL/C,CAAA"}
1
+ {"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/export/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAe,MAAM,SAAS,CAAA;AAIzD,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,KAAK,EA0M/C,CAAA"}
@@ -9,10 +9,11 @@ export const getFields = (config)=>{
9
9
  width: '33%'
10
10
  },
11
11
  defaultValue: 'all',
12
- label: 'Locale',
12
+ // @ts-expect-error - this is not correctly typed in plugins right now
13
+ label: ({ t })=>t('plugin-import-export:field-locale-label'),
13
14
  options: [
14
15
  {
15
- label: 'All Locales',
16
+ label: ({ t })=>t('general:allLocales'),
16
17
  value: 'all'
17
18
  },
18
19
  ...config.localization.locales.map((locale)=>({
@@ -30,7 +31,8 @@ export const getFields = (config)=>{
30
31
  name: 'name',
31
32
  type: 'text',
32
33
  defaultValue: ()=>getFilename(),
33
- label: 'File Name'
34
+ // @ts-expect-error - this is not correctly typed in plugins right now
35
+ label: ({ t })=>t('plugin-import-export:field-name-label')
34
36
  },
35
37
  {
36
38
  type: 'row',
@@ -42,7 +44,8 @@ export const getFields = (config)=>{
42
44
  width: '33%'
43
45
  },
44
46
  defaultValue: 'csv',
45
- label: 'Export Format',
47
+ // @ts-expect-error - this is not correctly typed in plugins right now
48
+ label: ({ t })=>t('plugin-import-export:field-format-label'),
46
49
  options: [
47
50
  {
48
51
  label: 'CSV',
@@ -61,7 +64,9 @@ export const getFields = (config)=>{
61
64
  admin: {
62
65
  placeholder: 'No limit',
63
66
  width: '33%'
64
- }
67
+ },
68
+ // @ts-expect-error - this is not correctly typed in plugins right now
69
+ label: ({ t })=>t('plugin-import-export:field-limit-label')
65
70
  },
66
71
  {
67
72
  name: 'sort',
@@ -70,7 +75,9 @@ export const getFields = (config)=>{
70
75
  components: {
71
76
  Field: '@payloadcms/plugin-import-export/rsc#SortBy'
72
77
  }
73
- }
78
+ },
79
+ // @ts-expect-error - this is not correctly typed in plugins right now
80
+ label: ({ t })=>t('plugin-import-export:field-sort-label')
74
81
  }
75
82
  ]
76
83
  },
@@ -91,14 +98,15 @@ export const getFields = (config)=>{
91
98
  width: '33%'
92
99
  },
93
100
  defaultValue: 'yes',
94
- label: 'Drafts',
101
+ // @ts-expect-error - this is not correctly typed in plugins right now
102
+ label: ({ t })=>t('plugin-import-export:field-drafts-label'),
95
103
  options: [
96
104
  {
97
- label: 'Yes',
105
+ label: ({ t })=>t('general:yes'),
98
106
  value: 'yes'
99
107
  },
100
108
  {
101
- label: 'No',
109
+ label: ({ t })=>t('general:no'),
102
110
  value: 'no'
103
111
  }
104
112
  ]
@@ -110,17 +118,22 @@ export const getFields = (config)=>{
110
118
  name: 'selectionToUse',
111
119
  type: 'radio',
112
120
  defaultValue: 'all',
121
+ // @ts-expect-error - this is not correctly typed in plugins right now
122
+ label: ({ t })=>t('plugin-import-export:field-selectionToUse-label'),
113
123
  options: [
114
124
  {
115
- label: 'Use current selection',
125
+ // @ts-expect-error - this is not correctly typed in plugins right now
126
+ label: ({ t })=>t('plugin-import-export:selectionToUse-currentSelection'),
116
127
  value: 'currentSelection'
117
128
  },
118
129
  {
119
- label: 'Use current filters',
130
+ // @ts-expect-error - this is not correctly typed in plugins right now
131
+ label: ({ t })=>t('plugin-import-export:selectionToUse-currentFilters'),
120
132
  value: 'currentFilters'
121
133
  },
122
134
  {
123
- label: 'Use all documents',
135
+ // @ts-expect-error - this is not correctly typed in plugins right now
136
+ label: ({ t })=>t('plugin-import-export:selectionToUse-allDocuments'),
124
137
  value: 'all'
125
138
  }
126
139
  ],
@@ -134,7 +147,9 @@ export const getFields = (config)=>{
134
147
  Field: '@payloadcms/plugin-import-export/rsc#FieldsToExport'
135
148
  }
136
149
  },
137
- hasMany: true
150
+ hasMany: true,
151
+ // @ts-expect-error - this is not correctly typed in plugins right now
152
+ label: ({ t })=>t('plugin-import-export:field-fields-label')
138
153
  },
139
154
  {
140
155
  name: 'collectionSlug',
@@ -158,7 +173,8 @@ export const getFields = (config)=>{
158
173
  defaultValue: {}
159
174
  }
160
175
  ],
161
- label: 'Export Options'
176
+ // @ts-expect-error - this is not correctly typed in plugins right now
177
+ label: ({ t })=>t('plugin-import-export:exportOptions')
162
178
  },
163
179
  {
164
180
  name: 'preview',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/export/getFields.ts"],"sourcesContent":["import type { Config, Field, SelectField } from 'payload'\n\nimport { getFilename } from './getFilename.js'\n\nexport const getFields = (config: Config): Field[] => {\n let localeField: SelectField | undefined\n if (config.localization) {\n localeField = {\n name: 'locale',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'all',\n label: 'Locale',\n options: [\n {\n label: 'All Locales',\n value: 'all',\n },\n ...config.localization.locales.map((locale) => ({\n label: typeof locale === 'string' ? locale : locale.label,\n value: typeof locale === 'string' ? locale : locale.code,\n })),\n ],\n }\n }\n\n return [\n {\n type: 'collapsible',\n fields: [\n {\n name: 'name',\n type: 'text',\n defaultValue: () => getFilename(),\n label: 'File Name',\n },\n {\n type: 'row',\n fields: [\n {\n name: 'format',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'csv',\n label: 'Export Format',\n options: [\n {\n label: 'CSV',\n value: 'csv',\n },\n {\n label: 'JSON',\n value: 'json',\n },\n ],\n required: true,\n },\n {\n name: 'limit',\n type: 'number',\n admin: {\n placeholder: 'No limit',\n width: '33%',\n },\n },\n {\n name: 'sort',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#SortBy',\n },\n },\n },\n ],\n },\n {\n type: 'row',\n fields: [\n ...(localeField ? [localeField] : []),\n {\n name: 'drafts',\n type: 'select',\n admin: {\n condition: (data) => {\n const collectionConfig = (config.collections ?? []).find(\n (collection) => collection.slug === data.collectionSlug,\n )\n return Boolean(\n typeof collectionConfig?.versions === 'object' &&\n collectionConfig?.versions?.drafts,\n )\n },\n width: '33%',\n },\n defaultValue: 'yes',\n label: 'Drafts',\n options: [\n {\n label: 'Yes',\n value: 'yes',\n },\n {\n label: 'No',\n value: 'no',\n },\n ],\n },\n // {\n // name: 'depth',\n // type: 'number',\n // admin: {\n // width: '33%',\n // },\n // defaultValue: 1,\n // required: true,\n // },\n ],\n },\n {\n // virtual field for the UI component to modify the hidden `where` field\n name: 'selectionToUse',\n type: 'radio',\n defaultValue: 'all',\n options: [\n {\n label: 'Use current selection',\n value: 'currentSelection',\n },\n {\n label: 'Use current filters',\n value: 'currentFilters',\n },\n {\n label: 'Use all documents',\n value: 'all',\n },\n ],\n virtual: true,\n },\n {\n name: 'fields',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#FieldsToExport',\n },\n },\n hasMany: true,\n },\n {\n name: 'collectionSlug',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#CollectionField',\n },\n hidden: true,\n },\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#WhereField',\n },\n },\n defaultValue: {},\n },\n ],\n label: 'Export Options',\n },\n {\n name: 'preview',\n type: 'ui',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#Preview',\n },\n },\n },\n ]\n}\n"],"names":["getFilename","getFields","config","localeField","localization","name","type","admin","width","defaultValue","label","options","value","locales","map","locale","code","fields","required","placeholder","components","Field","condition","data","collectionConfig","collections","find","collection","slug","collectionSlug","Boolean","versions","drafts","virtual","hasMany","hidden"],"mappings":"AAEA,SAASA,WAAW,QAAQ,mBAAkB;AAE9C,OAAO,MAAMC,YAAY,CAACC;IACxB,IAAIC;IACJ,IAAID,OAAOE,YAAY,EAAE;QACvBD,cAAc;YACZE,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,OAAO;YACT;YACAC,cAAc;YACdC,OAAO;YACPC,SAAS;gBACP;oBACED,OAAO;oBACPE,OAAO;gBACT;mBACGV,OAAOE,YAAY,CAACS,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;wBAC9CL,OAAO,OAAOK,WAAW,WAAWA,SAASA,OAAOL,KAAK;wBACzDE,OAAO,OAAOG,WAAW,WAAWA,SAASA,OAAOC,IAAI;oBAC1D,CAAA;aACD;QACH;IACF;IAEA,OAAO;QACL;YACEV,MAAM;YACNW,QAAQ;gBACN;oBACEZ,MAAM;oBACNC,MAAM;oBACNG,cAAc,IAAMT;oBACpBU,OAAO;gBACT;gBACA;oBACEJ,MAAM;oBACNW,QAAQ;wBACN;4BACEZ,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLC,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;4BACDM,UAAU;wBACZ;wBACA;4BACEb,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLY,aAAa;gCACbX,OAAO;4BACT;wBACF;wBACA;4BACEH,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLa,YAAY;oCACVC,OAAO;gCACT;4BACF;wBACF;qBACD;gBACH;gBACA;oBACEf,MAAM;oBACNW,QAAQ;2BACFd,cAAc;4BAACA;yBAAY,GAAG,EAAE;wBACpC;4BACEE,MAAM;4BACNC,MAAM;4BACNC,OAAO;gCACLe,WAAW,CAACC;oCACV,MAAMC,mBAAmB,AAACtB,CAAAA,OAAOuB,WAAW,IAAI,EAAE,AAAD,EAAGC,IAAI,CACtD,CAACC,aAAeA,WAAWC,IAAI,KAAKL,KAAKM,cAAc;oCAEzD,OAAOC,QACL,OAAON,kBAAkBO,aAAa,YACpCP,kBAAkBO,UAAUC;gCAElC;gCACAxB,OAAO;4BACT;4BACAC,cAAc;4BACdC,OAAO;4BACPC,SAAS;gCACP;oCACED,OAAO;oCACPE,OAAO;gCACT;gCACA;oCACEF,OAAO;oCACPE,OAAO;gCACT;6BACD;wBACH;qBAUD;gBACH;gBACA;oBACE,wEAAwE;oBACxEP,MAAM;oBACNC,MAAM;oBACNG,cAAc;oBACdE,SAAS;wBACP;4BACED,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;wBACA;4BACEF,OAAO;4BACPE,OAAO;wBACT;qBACD;oBACDqB,SAAS;gBACX;gBACA;oBACE5B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAa,SAAS;gBACX;gBACA;oBACE7B,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;wBACAc,QAAQ;oBACV;oBACAjB,UAAU;gBACZ;gBACA;oBACEb,MAAM;oBACNC,MAAM;oBACNC,OAAO;wBACLa,YAAY;4BACVC,OAAO;wBACT;oBACF;oBACAZ,cAAc,CAAC;gBACjB;aACD;YACDC,OAAO;QACT;QACA;YACEL,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLa,YAAY;oBACVC,OAAO;gBACT;YACF;QACF;KACD;AACH,EAAC"}
1
+ {"version":3,"sources":["../../src/export/getFields.ts"],"sourcesContent":["import type { Config, Field, SelectField } from 'payload'\n\nimport { getFilename } from './getFilename.js'\n\nexport const getFields = (config: Config): Field[] => {\n let localeField: SelectField | undefined\n if (config.localization) {\n localeField = {\n name: 'locale',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'all',\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-locale-label'),\n options: [\n {\n label: ({ t }) => t('general:allLocales'),\n value: 'all',\n },\n ...config.localization.locales.map((locale) => ({\n label: typeof locale === 'string' ? locale : locale.label,\n value: typeof locale === 'string' ? locale : locale.code,\n })),\n ],\n }\n }\n\n return [\n {\n type: 'collapsible',\n fields: [\n {\n name: 'name',\n type: 'text',\n defaultValue: () => getFilename(),\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-name-label'),\n },\n {\n type: 'row',\n fields: [\n {\n name: 'format',\n type: 'select',\n admin: {\n width: '33%',\n },\n defaultValue: 'csv',\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-format-label'),\n options: [\n {\n label: 'CSV',\n value: 'csv',\n },\n {\n label: 'JSON',\n value: 'json',\n },\n ],\n required: true,\n },\n {\n name: 'limit',\n type: 'number',\n admin: {\n placeholder: 'No limit',\n width: '33%',\n },\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-limit-label'),\n },\n {\n name: 'sort',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#SortBy',\n },\n },\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-sort-label'),\n },\n ],\n },\n {\n type: 'row',\n fields: [\n ...(localeField ? [localeField] : []),\n {\n name: 'drafts',\n type: 'select',\n admin: {\n condition: (data) => {\n const collectionConfig = (config.collections ?? []).find(\n (collection) => collection.slug === data.collectionSlug,\n )\n return Boolean(\n typeof collectionConfig?.versions === 'object' &&\n collectionConfig?.versions?.drafts,\n )\n },\n width: '33%',\n },\n defaultValue: 'yes',\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-drafts-label'),\n options: [\n {\n label: ({ t }) => t('general:yes'),\n value: 'yes',\n },\n {\n label: ({ t }) => t('general:no'),\n value: 'no',\n },\n ],\n },\n // {\n // name: 'depth',\n // type: 'number',\n // // @ts-expect-error - this is not correctly typed in plugins right now\n // label: ({ t }) => t('plugin-import-export:field-depth-label'),\n // admin: {\n // width: '33%',\n // },\n // defaultValue: 1,\n // required: true,\n // },\n ],\n },\n {\n // virtual field for the UI component to modify the hidden `where` field\n name: 'selectionToUse',\n type: 'radio',\n defaultValue: 'all',\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-selectionToUse-label'),\n options: [\n {\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:selectionToUse-currentSelection'),\n value: 'currentSelection',\n },\n {\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:selectionToUse-currentFilters'),\n value: 'currentFilters',\n },\n {\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:selectionToUse-allDocuments'),\n value: 'all',\n },\n ],\n virtual: true,\n },\n {\n name: 'fields',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#FieldsToExport',\n },\n },\n hasMany: true,\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:field-fields-label'),\n },\n {\n name: 'collectionSlug',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#CollectionField',\n },\n hidden: true,\n },\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#WhereField',\n },\n },\n defaultValue: {},\n },\n ],\n // @ts-expect-error - this is not correctly typed in plugins right now\n label: ({ t }) => t('plugin-import-export:exportOptions'),\n },\n {\n name: 'preview',\n type: 'ui',\n admin: {\n components: {\n Field: '@payloadcms/plugin-import-export/rsc#Preview',\n },\n },\n },\n ]\n}\n"],"names":["getFilename","getFields","config","localeField","localization","name","type","admin","width","defaultValue","label","t","options","value","locales","map","locale","code","fields","required","placeholder","components","Field","condition","data","collectionConfig","collections","find","collection","slug","collectionSlug","Boolean","versions","drafts","virtual","hasMany","hidden"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,SAAS,CAAA;AAIjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAM1D,eAAO,MAAM,kBAAkB,iBACd,wBAAwB,cAC9B,MAAM,KAAG,MA+DjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,SAAS,CAAA;AAKjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAM1D,eAAO,MAAM,kBAAkB,iBACd,wBAAwB,cAC9B,MAAM,KAAG,MA+EjB,CAAA"}
package/dist/index.js CHANGED
@@ -62,7 +62,17 @@ export const importExportPlugin = (pluginConfig)=>(config)=>{
62
62
  if (!config.i18n) {
63
63
  config.i18n = {};
64
64
  }
65
- config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {});
65
+ // config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {})
66
+ /**
67
+ * Merge plugin translations
68
+ */ const simplifiedTranslations = Object.entries(translations).reduce((acc, [key, value])=>{
69
+ acc[key] = value.translations;
70
+ return acc;
71
+ }, {});
72
+ config.i18n = {
73
+ ...config.i18n,
74
+ translations: deepMergeSimple(simplifiedTranslations, config.i18n?.translations ?? {})
75
+ };
66
76
  return config;
67
77
  };
68
78
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, JobsConfig } from 'payload'\n\nimport { deepMergeSimple } from 'payload'\n\nimport type { ImportExportPluginConfig } from './types.js'\n\nimport { getCreateCollectionExportTask } from './export/getCreateExportCollectionTask.js'\nimport { getExportCollection } from './getExportCollection.js'\nimport { translations } from './translations/index.js'\n\nexport const importExportPlugin =\n (pluginConfig: ImportExportPluginConfig) =>\n (config: Config): Config => {\n const exportCollection = getExportCollection({ config, pluginConfig })\n if (config.collections) {\n config.collections.push(exportCollection)\n } else {\n config.collections = [exportCollection]\n }\n\n // inject custom import export provider\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.providers = config.admin.components.providers || []\n config.admin.components.providers.push(\n '@payloadcms/plugin-import-export/rsc#ImportExportProvider',\n )\n\n // inject the createExport job into the config\n config.jobs =\n config.jobs ||\n ({\n tasks: [getCreateCollectionExportTask(config)],\n } as unknown as JobsConfig) // cannot type jobs config inside of plugins\n\n let collectionsToUpdate = config.collections\n\n const usePluginCollections = pluginConfig.collections && pluginConfig.collections?.length > 0\n\n if (usePluginCollections) {\n collectionsToUpdate = config.collections?.filter((collection) => {\n return pluginConfig.collections?.includes(collection.slug)\n })\n }\n\n collectionsToUpdate.forEach((collection) => {\n if (!collection.admin) {\n collection.admin = { components: { listMenuItems: [] } }\n }\n const components = collection.admin.components || {}\n if (!components.listMenuItems) {\n components.listMenuItems = []\n }\n if (!components.edit) {\n components.edit = {}\n }\n if (!components.edit.SaveButton) {\n components.edit.SaveButton = '@payloadcms/plugin-import-export/rsc#ExportSaveButton'\n }\n components.listMenuItems.push({\n clientProps: {\n exportCollectionSlug: exportCollection.slug,\n },\n path: '@payloadcms/plugin-import-export/rsc#ExportListMenuItem',\n })\n collection.admin.components = components\n })\n\n if (!config.i18n) {\n config.i18n = {}\n }\n\n config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {})\n\n return config\n }\n"],"names":["deepMergeSimple","getCreateCollectionExportTask","getExportCollection","translations","importExportPlugin","pluginConfig","config","exportCollection","collections","push","admin","components","providers","jobs","tasks","collectionsToUpdate","usePluginCollections","length","filter","collection","includes","slug","forEach","listMenuItems","edit","SaveButton","clientProps","exportCollectionSlug","path","i18n"],"mappings":"AAEA,SAASA,eAAe,QAAQ,UAAS;AAIzC,SAASC,6BAA6B,QAAQ,4CAA2C;AACzF,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,YAAY,QAAQ,0BAAyB;AAEtD,OAAO,MAAMC,qBACX,CAACC,eACD,CAACC;QACC,MAAMC,mBAAmBL,oBAAoB;YAAEI;YAAQD;QAAa;QACpE,IAAIC,OAAOE,WAAW,EAAE;YACtBF,OAAOE,WAAW,CAACC,IAAI,CAACF;QAC1B,OAAO;YACLD,OAAOE,WAAW,GAAG;gBAACD;aAAiB;QACzC;QAEA,uCAAuC;QACvCD,OAAOI,KAAK,GAAGJ,OAAOI,KAAK,IAAI,CAAC;QAChCJ,OAAOI,KAAK,CAACC,UAAU,GAAGL,OAAOI,KAAK,CAACC,UAAU,IAAI,CAAC;QACtDL,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,GAAGN,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,IAAI,EAAE;QAC3EN,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,CAACH,IAAI,CACpC;QAGF,8CAA8C;QAC9CH,OAAOO,IAAI,GACTP,OAAOO,IAAI,IACV;YACCC,OAAO;gBAACb,8BAA8BK;aAAQ;QAChD,EAA4B,4CAA4C;;QAE1E,IAAIS,sBAAsBT,OAAOE,WAAW;QAE5C,MAAMQ,uBAAuBX,aAAaG,WAAW,IAAIH,aAAaG,WAAW,EAAES,SAAS;QAE5F,IAAID,sBAAsB;YACxBD,sBAAsBT,OAAOE,WAAW,EAAEU,OAAO,CAACC;gBAChD,OAAOd,aAAaG,WAAW,EAAEY,SAASD,WAAWE,IAAI;YAC3D;QACF;QAEAN,oBAAoBO,OAAO,CAAC,CAACH;YAC3B,IAAI,CAACA,WAAWT,KAAK,EAAE;gBACrBS,WAAWT,KAAK,GAAG;oBAAEC,YAAY;wBAAEY,eAAe,EAAE;oBAAC;gBAAE;YACzD;YACA,MAAMZ,aAAaQ,WAAWT,KAAK,CAACC,UAAU,IAAI,CAAC;YACnD,IAAI,CAACA,WAAWY,aAAa,EAAE;gBAC7BZ,WAAWY,aAAa,GAAG,EAAE;YAC/B;YACA,IAAI,CAACZ,WAAWa,IAAI,EAAE;gBACpBb,WAAWa,IAAI,GAAG,CAAC;YACrB;YACA,IAAI,CAACb,WAAWa,IAAI,CAACC,UAAU,EAAE;gBAC/Bd,WAAWa,IAAI,CAACC,UAAU,GAAG;YAC/B;YACAd,WAAWY,aAAa,CAACd,IAAI,CAAC;gBAC5BiB,aAAa;oBACXC,sBAAsBpB,iBAAiBc,IAAI;gBAC7C;gBACAO,MAAM;YACR;YACAT,WAAWT,KAAK,CAACC,UAAU,GAAGA;QAChC;QAEA,IAAI,CAACL,OAAOuB,IAAI,EAAE;YAChBvB,OAAOuB,IAAI,GAAG,CAAC;QACjB;QAEAvB,OAAOuB,IAAI,CAAC1B,YAAY,GAAGH,gBAAgBG,cAAcG,OAAOuB,IAAI,EAAE1B,gBAAgB,CAAC;QAEvF,OAAOG;IACT,EAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, JobsConfig } from 'payload'\n\nimport { deepMergeSimple } from 'payload'\n\nimport type { PluginDefaultTranslationsObject } from './translations/types.js'\nimport type { ImportExportPluginConfig } from './types.js'\n\nimport { getCreateCollectionExportTask } from './export/getCreateExportCollectionTask.js'\nimport { getExportCollection } from './getExportCollection.js'\nimport { translations } from './translations/index.js'\n\nexport const importExportPlugin =\n (pluginConfig: ImportExportPluginConfig) =>\n (config: Config): Config => {\n const exportCollection = getExportCollection({ config, pluginConfig })\n if (config.collections) {\n config.collections.push(exportCollection)\n } else {\n config.collections = [exportCollection]\n }\n\n // inject custom import export provider\n config.admin = config.admin || {}\n config.admin.components = config.admin.components || {}\n config.admin.components.providers = config.admin.components.providers || []\n config.admin.components.providers.push(\n '@payloadcms/plugin-import-export/rsc#ImportExportProvider',\n )\n\n // inject the createExport job into the config\n config.jobs =\n config.jobs ||\n ({\n tasks: [getCreateCollectionExportTask(config)],\n } as unknown as JobsConfig) // cannot type jobs config inside of plugins\n\n let collectionsToUpdate = config.collections\n\n const usePluginCollections = pluginConfig.collections && pluginConfig.collections?.length > 0\n\n if (usePluginCollections) {\n collectionsToUpdate = config.collections?.filter((collection) => {\n return pluginConfig.collections?.includes(collection.slug)\n })\n }\n\n collectionsToUpdate.forEach((collection) => {\n if (!collection.admin) {\n collection.admin = { components: { listMenuItems: [] } }\n }\n const components = collection.admin.components || {}\n if (!components.listMenuItems) {\n components.listMenuItems = []\n }\n if (!components.edit) {\n components.edit = {}\n }\n if (!components.edit.SaveButton) {\n components.edit.SaveButton = '@payloadcms/plugin-import-export/rsc#ExportSaveButton'\n }\n components.listMenuItems.push({\n clientProps: {\n exportCollectionSlug: exportCollection.slug,\n },\n path: '@payloadcms/plugin-import-export/rsc#ExportListMenuItem',\n })\n collection.admin.components = components\n })\n\n if (!config.i18n) {\n config.i18n = {}\n }\n\n // config.i18n.translations = deepMergeSimple(translations, config.i18n?.translations ?? {})\n\n /**\n * Merge plugin translations\n */\n const simplifiedTranslations = Object.entries(translations).reduce(\n (acc, [key, value]) => {\n acc[key] = value.translations\n return acc\n },\n {} as Record<string, PluginDefaultTranslationsObject>,\n )\n\n config.i18n = {\n ...config.i18n,\n translations: deepMergeSimple(simplifiedTranslations, config.i18n?.translations ?? {}),\n }\n\n return config\n }\n"],"names":["deepMergeSimple","getCreateCollectionExportTask","getExportCollection","translations","importExportPlugin","pluginConfig","config","exportCollection","collections","push","admin","components","providers","jobs","tasks","collectionsToUpdate","usePluginCollections","length","filter","collection","includes","slug","forEach","listMenuItems","edit","SaveButton","clientProps","exportCollectionSlug","path","i18n","simplifiedTranslations","Object","entries","reduce","acc","key","value"],"mappings":"AAEA,SAASA,eAAe,QAAQ,UAAS;AAKzC,SAASC,6BAA6B,QAAQ,4CAA2C;AACzF,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,YAAY,QAAQ,0BAAyB;AAEtD,OAAO,MAAMC,qBACX,CAACC,eACD,CAACC;QACC,MAAMC,mBAAmBL,oBAAoB;YAAEI;YAAQD;QAAa;QACpE,IAAIC,OAAOE,WAAW,EAAE;YACtBF,OAAOE,WAAW,CAACC,IAAI,CAACF;QAC1B,OAAO;YACLD,OAAOE,WAAW,GAAG;gBAACD;aAAiB;QACzC;QAEA,uCAAuC;QACvCD,OAAOI,KAAK,GAAGJ,OAAOI,KAAK,IAAI,CAAC;QAChCJ,OAAOI,KAAK,CAACC,UAAU,GAAGL,OAAOI,KAAK,CAACC,UAAU,IAAI,CAAC;QACtDL,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,GAAGN,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,IAAI,EAAE;QAC3EN,OAAOI,KAAK,CAACC,UAAU,CAACC,SAAS,CAACH,IAAI,CACpC;QAGF,8CAA8C;QAC9CH,OAAOO,IAAI,GACTP,OAAOO,IAAI,IACV;YACCC,OAAO;gBAACb,8BAA8BK;aAAQ;QAChD,EAA4B,4CAA4C;;QAE1E,IAAIS,sBAAsBT,OAAOE,WAAW;QAE5C,MAAMQ,uBAAuBX,aAAaG,WAAW,IAAIH,aAAaG,WAAW,EAAES,SAAS;QAE5F,IAAID,sBAAsB;YACxBD,sBAAsBT,OAAOE,WAAW,EAAEU,OAAO,CAACC;gBAChD,OAAOd,aAAaG,WAAW,EAAEY,SAASD,WAAWE,IAAI;YAC3D;QACF;QAEAN,oBAAoBO,OAAO,CAAC,CAACH;YAC3B,IAAI,CAACA,WAAWT,KAAK,EAAE;gBACrBS,WAAWT,KAAK,GAAG;oBAAEC,YAAY;wBAAEY,eAAe,EAAE;oBAAC;gBAAE;YACzD;YACA,MAAMZ,aAAaQ,WAAWT,KAAK,CAACC,UAAU,IAAI,CAAC;YACnD,IAAI,CAACA,WAAWY,aAAa,EAAE;gBAC7BZ,WAAWY,aAAa,GAAG,EAAE;YAC/B;YACA,IAAI,CAACZ,WAAWa,IAAI,EAAE;gBACpBb,WAAWa,IAAI,GAAG,CAAC;YACrB;YACA,IAAI,CAACb,WAAWa,IAAI,CAACC,UAAU,EAAE;gBAC/Bd,WAAWa,IAAI,CAACC,UAAU,GAAG;YAC/B;YACAd,WAAWY,aAAa,CAACd,IAAI,CAAC;gBAC5BiB,aAAa;oBACXC,sBAAsBpB,iBAAiBc,IAAI;gBAC7C;gBACAO,MAAM;YACR;YACAT,WAAWT,KAAK,CAACC,UAAU,GAAGA;QAChC;QAEA,IAAI,CAACL,OAAOuB,IAAI,EAAE;YAChBvB,OAAOuB,IAAI,GAAG,CAAC;QACjB;QAEA,4FAA4F;QAE5F;;KAEC,GACD,MAAMC,yBAAyBC,OAAOC,OAAO,CAAC7B,cAAc8B,MAAM,CAChE,CAACC,KAAK,CAACC,KAAKC,MAAM;YAChBF,GAAG,CAACC,IAAI,GAAGC,MAAMjC,YAAY;YAC7B,OAAO+B;QACT,GACA,CAAC;QAGH5B,OAAOuB,IAAI,GAAG;YACZ,GAAGvB,OAAOuB,IAAI;YACd1B,cAAcH,gBAAgB8B,wBAAwBxB,OAAOuB,IAAI,EAAE1B,gBAAgB,CAAC;QACtF;QAEA,OAAOG;IACT,EAAC"}
@@ -1,7 +1,6 @@
1
- import type { GenericTranslationsObject, NestedKeysStripped } from '@payloadcms/translations';
2
- export declare const translations: {
3
- en: GenericTranslationsObject;
4
- };
1
+ import type { GenericTranslationsObject, NestedKeysStripped, SupportedLanguages } from '@payloadcms/translations';
2
+ import type { PluginDefaultTranslationsObject } from './types.js';
3
+ export declare const translations: SupportedLanguages<PluginDefaultTranslationsObject>;
5
4
  export type PluginImportExportTranslations = GenericTranslationsObject;
6
5
  export type PluginImportExportTranslationKeys = NestedKeysStripped<PluginImportExportTranslations>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAI7F,eAAO,MAAM,YAAY;;CAExB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,CAAA;AAEtE,MAAM,MAAM,iCAAiC,GAAG,kBAAkB,CAAC,8BAA8B,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAyCjE,eAAO,MAAM,YAAY,EAuCpB,kBAAkB,CAAC,+BAA+B,CAAC,CAAA;AAExD,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,CAAA;AAEtE,MAAM,MAAM,iCAAiC,GAAG,kBAAkB,CAAC,8BAA8B,CAAC,CAAA"}