@payloadcms/next 3.35.0-internal.b3d367c → 3.35.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 (143) hide show
  1. package/dist/auth/login.d.ts +22 -0
  2. package/dist/auth/login.d.ts.map +1 -0
  3. package/dist/auth/login.js +71 -0
  4. package/dist/auth/login.js.map +1 -0
  5. package/dist/auth/logout.d.ts +7 -0
  6. package/dist/auth/logout.d.ts.map +1 -0
  7. package/dist/auth/logout.js +37 -0
  8. package/dist/auth/logout.js.map +1 -0
  9. package/dist/auth/refresh.d.ts +9 -0
  10. package/dist/auth/refresh.d.ts.map +1 -0
  11. package/dist/auth/refresh.js +48 -0
  12. package/dist/auth/refresh.js.map +1 -0
  13. package/dist/exports/auth.d.ts +4 -0
  14. package/dist/exports/auth.d.ts.map +1 -0
  15. package/dist/exports/auth.js +4 -0
  16. package/dist/exports/auth.js.map +1 -0
  17. package/dist/prod/styles.css +1 -1
  18. package/dist/utilities/getExistingAuthToken.d.ts +7 -0
  19. package/dist/utilities/getExistingAuthToken.d.ts.map +1 -0
  20. package/dist/utilities/getExistingAuthToken.js +6 -0
  21. package/dist/utilities/getExistingAuthToken.js.map +1 -0
  22. package/dist/utilities/setPayloadAuthCookie.d.ts +9 -0
  23. package/dist/utilities/setPayloadAuthCookie.d.ts.map +1 -0
  24. package/dist/utilities/setPayloadAuthCookie.js +27 -0
  25. package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
  26. package/dist/views/API/index.client.d.ts.map +1 -1
  27. package/dist/views/API/index.client.js +2 -1
  28. package/dist/views/API/index.client.js.map +1 -1
  29. package/dist/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  30. package/dist/views/LivePreview/Toolbar/Controls/index.js +2 -2
  31. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  32. package/dist/views/Version/Default/SetStepNav.d.ts +2 -2
  33. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  34. package/dist/views/Version/Default/SetStepNav.js +5 -4
  35. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  36. package/dist/views/Version/Default/index.d.ts.map +1 -1
  37. package/dist/views/Version/Default/index.js +127 -332
  38. package/dist/views/Version/Default/index.js.map +1 -1
  39. package/dist/views/Version/Default/index.scss +32 -102
  40. package/dist/views/Version/Default/types.d.ts +8 -12
  41. package/dist/views/Version/Default/types.d.ts.map +1 -1
  42. package/dist/views/Version/Default/types.js.map +1 -1
  43. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +4 -4
  44. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  45. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +33 -32
  46. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  47. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +3 -30
  48. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts +1 -6
  49. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
  50. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +17 -21
  51. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  52. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +3 -4
  53. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  54. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +55 -80
  55. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  56. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +11 -11
  57. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  58. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +11 -11
  59. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  60. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +10 -0
  61. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +20 -20
  62. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +5 -3
  64. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  65. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +58 -49
  66. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  67. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +11 -0
  68. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts +9 -0
  69. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts.map +1 -0
  70. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +23 -0
  71. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -0
  72. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  73. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +45 -39
  74. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  75. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +11 -0
  76. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  77. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +37 -37
  78. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  79. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +11 -0
  80. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts +9 -0
  81. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts.map +1 -0
  82. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +23 -0
  83. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -0
  84. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  85. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +60 -77
  86. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  87. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +11 -0
  88. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.d.ts +7 -0
  89. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.d.ts.map +1 -0
  90. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js +7 -0
  91. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +1 -0
  92. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  93. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +1 -2
  94. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  95. package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts +3 -0
  96. package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts.map +1 -0
  97. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +37 -0
  98. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -0
  99. package/dist/views/Version/RenderFieldsToDiff/index.js +0 -1
  100. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  101. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  102. package/dist/views/Version/Restore/index.js +1 -1
  103. package/dist/views/Version/Restore/index.js.map +1 -1
  104. package/dist/views/Version/Restore/index.scss +1 -6
  105. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  106. package/dist/views/Version/SelectComparison/index.js +68 -26
  107. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  108. package/dist/views/Version/SelectComparison/index.scss +4 -0
  109. package/dist/views/Version/SelectComparison/types.d.ts +4 -4
  110. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  111. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  112. package/dist/views/Version/SelectLocales/index.d.ts +2 -9
  113. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  114. package/dist/views/Version/SelectLocales/index.js +60 -33
  115. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  116. package/dist/views/Version/SelectLocales/index.scss +9 -0
  117. package/dist/views/Version/SelectLocales/types.d.ts +7 -0
  118. package/dist/views/Version/SelectLocales/types.d.ts.map +1 -0
  119. package/dist/views/Version/SelectLocales/types.js +2 -0
  120. package/dist/views/Version/SelectLocales/types.js.map +1 -0
  121. package/dist/views/Version/index.d.ts.map +1 -1
  122. package/dist/views/Version/index.js +56 -105
  123. package/dist/views/Version/index.js.map +1 -1
  124. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  125. package/dist/views/Versions/cells/AutosaveCell/index.js +4 -4
  126. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  127. package/dist/views/Versions/getLatestVersion.d.ts +2 -2
  128. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  129. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  130. package/package.json +8 -7
  131. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +0 -4
  132. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +0 -1
  133. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +0 -78
  134. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +0 -1
  135. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.scss +0 -4
  136. package/dist/views/Version/SelectComparison/VersionPillLabel.d.ts +0 -6
  137. package/dist/views/Version/SelectComparison/VersionPillLabel.d.ts.map +0 -1
  138. package/dist/views/Version/SelectComparison/VersionPillLabel.js +0 -70
  139. package/dist/views/Version/SelectComparison/VersionPillLabel.js.map +0 -1
  140. package/dist/views/Version/SelectComparison/formatVersionPill.d.ts +0 -8
  141. package/dist/views/Version/SelectComparison/formatVersionPill.d.ts.map +0 -1
  142. package/dist/views/Version/SelectComparison/formatVersionPill.js +0 -24
  143. package/dist/views/Version/SelectComparison/formatVersionPill.js.map +0 -1
@@ -84,7 +84,7 @@ const Restore = ({
84
84
  className: [baseClass, className].filter(Boolean).join(' '),
85
85
  children: /*#__PURE__*/_jsx(Button, {
86
86
  buttonStyle: "pill",
87
- className: [canRestoreAsDraft && `${baseClass}__restore-as-draft-button`].filter(Boolean).join(' '),
87
+ className: [canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' '),
88
88
  onClick: () => toggleModal(modalSlug),
89
89
  size: "small",
90
90
  SubMenuPopupContent: canRestoreAsDraft ? () => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","body","confirmingLabel","heading","onConfirm"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ConfirmationModal,\n PopupList,\n toast,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n return startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__restore-as-draft-button`]\n .filter(Boolean)\n .join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <ConfirmationModal\n body={restoreMessage}\n confirmingLabel={t('version:restoring')}\n heading={t('version:confirmVersionRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","body","confirmingLabel","heading","onConfirm"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ConfirmationModal,\n PopupList,\n toast,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n return startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <ConfirmationModal\n body={restoreMessage}\n confirmingLabel={t('version:restoring')}\n heading={t('version:confirmVersionRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,6 @@
4
4
  .restore-version {
5
5
  cursor: pointer;
6
6
  display: flex;
7
- min-width: max-content;
8
7
 
9
8
  .popup-button {
10
9
  display: flex;
@@ -25,11 +24,7 @@
25
24
  }
26
25
  }
27
26
 
28
- .btn {
29
- margin-block: 0;
30
- }
31
-
32
- &__restore-as-draft-button {
27
+ &__button {
33
28
  border-top-right-radius: 0px;
34
29
  border-bottom-right-radius: 0px;
35
30
  margin-right: 2px;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4J5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAQrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyL5C,CAAA"}
@@ -1,10 +1,11 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { fieldBaseClass, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui';
4
+ import { fieldBaseClass, Pill, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui';
5
+ import { formatDate } from '@payloadcms/ui/shared';
5
6
  import { stringify } from 'qs-esm';
6
7
  import React, { useCallback, useEffect, useState } from 'react';
7
- import { formatVersionPill } from './formatVersionPill.js';
8
+ import { renderPill } from '../../Versions/cells/AutosaveCell/index.js';
8
9
  const baseClass = 'compare-version';
9
10
  const maxResultsPerRequest = 10;
10
11
  const baseOptions = [];
@@ -12,25 +13,28 @@ export const SelectComparison = props => {
12
13
  const {
13
14
  baseURL,
14
15
  draftsEnabled,
15
- latestDraftVersionID,
16
- latestPublishedVersionID,
16
+ latestDraftVersion,
17
+ latestPublishedVersion,
17
18
  onChange,
18
19
  parentID,
19
- versionFromOption,
20
- versionToID
20
+ value,
21
+ versionID
21
22
  } = props;
22
- const {
23
- i18n,
24
- t
25
- } = useTranslation();
26
23
  const {
27
24
  config: {
25
+ admin: {
26
+ dateFormat
27
+ },
28
28
  localization
29
29
  }
30
30
  } = useConfig();
31
31
  const [options, setOptions] = useState(baseOptions);
32
32
  const [lastLoadedPage, setLastLoadedPage] = useState(1);
33
33
  const [errorLoading, setErrorLoading] = useState('');
34
+ const {
35
+ i18n,
36
+ t
37
+ } = useTranslation();
34
38
  const loadedAllOptionsRef = React.useRef(false);
35
39
  const getResults = useCallback(async ({
36
40
  lastLoadedPage: lastLoadedPageArg
@@ -45,7 +49,7 @@ export const SelectComparison = props => {
45
49
  where: {
46
50
  and: [{
47
51
  id: {
48
- not_equals: versionToID
52
+ not_equals: versionID
49
53
  }
50
54
  }]
51
55
  }
@@ -74,18 +78,52 @@ export const SelectComparison = props => {
74
78
  if (response.ok) {
75
79
  const data = await response.json();
76
80
  if (data.docs.length > 0) {
81
+ const versionInfo = {
82
+ draft: {
83
+ currentLabel: t('version:currentDraft'),
84
+ latestVersion: latestDraftVersion,
85
+ pillStyle: undefined,
86
+ previousLabel: t('version:draft')
87
+ },
88
+ published: {
89
+ currentLabel: t('version:currentPublishedVersion'),
90
+ latestVersion: latestPublishedVersion,
91
+ pillStyle: 'success',
92
+ previousLabel: t('version:previouslyPublished')
93
+ }
94
+ };
77
95
  const additionalOptions = data.docs.map(doc => {
78
- const pill = formatVersionPill({
79
- doc,
80
- latestDraftVersionID,
81
- latestPublishedVersionID
82
- });
96
+ const status = doc.version._status;
97
+ let publishedLocalePill = null;
98
+ const publishedLocale = doc.publishedLocale || undefined;
99
+ const {
100
+ currentLabel,
101
+ latestVersion,
102
+ pillStyle,
103
+ previousLabel
104
+ } = versionInfo[status] || {};
105
+ if (localization && localization?.locales && publishedLocale) {
106
+ const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale;
107
+ const locale = localization.locales.find(loc => loc.code === localeCode);
108
+ const formattedLabel = locale?.label?.[i18n?.language] || locale?.label;
109
+ if (formattedLabel) {
110
+ publishedLocalePill = /*#__PURE__*/_jsx(Pill, {
111
+ children: formattedLabel
112
+ });
113
+ }
114
+ }
83
115
  return {
84
- label: pill.Label,
85
- value: pill.id
116
+ label: /*#__PURE__*/_jsxs("div", {
117
+ children: [formatDate({
118
+ date: doc.updatedAt,
119
+ i18n,
120
+ pattern: dateFormat
121
+ }), "  ", renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle), publishedLocalePill]
122
+ }),
123
+ value: doc.id
86
124
  };
87
125
  });
88
- setOptions(existingOptions => [...existingOptions, ...additionalOptions].filter((option, index, self) => self.findIndex(t_0 => t_0.value === option.value) === index));
126
+ setOptions(existingOptions => [...existingOptions, ...additionalOptions]);
89
127
  if (!data.hasNextPage) {
90
128
  loadedAllOptionsRef.current = true;
91
129
  }
@@ -94,7 +132,7 @@ export const SelectComparison = props => {
94
132
  } else {
95
133
  setErrorLoading(t('error:unspecific'));
96
134
  }
97
- }, [versionToID, parentID, localization, draftsEnabled, baseURL, i18n.language, latestDraftVersionID, latestPublishedVersionID, t]);
135
+ }, [dateFormat, baseURL, parentID, versionID, t, i18n, latestDraftVersion, latestPublishedVersion]);
98
136
  useEffect(() => {
99
137
  if (!i18n.dateFNS) {
100
138
  // If dateFNS is not loaded, we can't format the date in getResults
@@ -104,14 +142,18 @@ export const SelectComparison = props => {
104
142
  lastLoadedPage: 1
105
143
  });
106
144
  }, [getResults, i18n.dateFNS]);
145
+ const filteredOptions = options.filter((option, index, self) => self.findIndex(t_0 => t_0.value === option.value) === index);
107
146
  useEffect(() => {
108
- if (options.length > 0 && !versionFromOption) {
109
- onChange(options[0]);
147
+ if (filteredOptions.length > 0 && !value) {
148
+ onChange(filteredOptions[0]);
110
149
  }
111
- }, [options, versionFromOption, onChange]);
150
+ }, [filteredOptions, value, onChange]);
112
151
  return /*#__PURE__*/_jsxs("div", {
113
152
  className: [fieldBaseClass, baseClass, errorLoading && 'error-loading'].filter(Boolean).join(' '),
114
- children: [!errorLoading && /*#__PURE__*/_jsx(ReactSelect, {
153
+ children: [/*#__PURE__*/_jsx("div", {
154
+ className: `${baseClass}__label`,
155
+ children: t('version:compareVersion')
156
+ }), !errorLoading && /*#__PURE__*/_jsx(ReactSelect, {
115
157
  isClearable: false,
116
158
  isSearchable: false,
117
159
  onChange: onChange,
@@ -120,9 +162,9 @@ export const SelectComparison = props => {
120
162
  lastLoadedPage: lastLoadedPage + 1
121
163
  });
122
164
  },
123
- options: options,
165
+ options: filteredOptions,
124
166
  placeholder: t('version:selectVersionToCompare'),
125
- value: versionFromOption
167
+ value: value
126
168
  }), errorLoading && /*#__PURE__*/_jsx("div", {
127
169
  className: `${baseClass}__error-loading`,
128
170
  children: errorLoading
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldBaseClass","ReactSelect","useConfig","useTranslation","stringify","React","useCallback","useEffect","useState","formatVersionPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","draftsEnabled","latestDraftVersionID","latestPublishedVersionID","onChange","parentID","versionFromOption","versionToID","i18n","t","config","localization","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","push","parent","equals","snapshot","search","response","fetch","credentials","headers","language","ok","data","json","docs","length","additionalOptions","map","doc","pill","label","Label","value","existingOptions","filter","option","index","self","findIndex","hasNextPage","dateFNS","_jsxs","className","Boolean","join","_jsx","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { fieldBaseClass, Pill, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { stringify } from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\nimport './index.scss'\nimport { formatVersionPill } from './formatVersionPill.js'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = []\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const {\n baseURL,\n draftsEnabled,\n latestDraftVersionID,\n latestPublishedVersionID,\n onChange,\n parentID,\n versionFromOption,\n versionToID,\n } = props\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const [options, setOptions] = useState<\n {\n label: React.ReactNode | string\n value: string\n }[]\n >(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) {\n return\n }\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionToID,\n },\n },\n ],\n },\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n if (localization && draftsEnabled) {\n query.where.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const search = stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n\n if (data.docs.length > 0) {\n const additionalOptions = data.docs.map((doc) => {\n const pill = formatVersionPill({\n doc,\n latestDraftVersionID,\n latestPublishedVersionID,\n })\n\n return {\n label: pill.Label,\n value: pill.id,\n }\n })\n\n setOptions((existingOptions) =>\n [...existingOptions, ...additionalOptions].filter(\n (option, index, self) => self.findIndex((t) => t.value === option.value) === index,\n ),\n )\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [\n versionToID,\n parentID,\n localization,\n draftsEnabled,\n baseURL,\n i18n.language,\n latestDraftVersionID,\n latestPublishedVersionID,\n t,\n ],\n )\n\n useEffect(() => {\n if (!i18n.dateFNS) {\n // If dateFNS is not loaded, we can't format the date in getResults\n return\n }\n void getResults({ lastLoadedPage: 1 })\n }, [getResults, i18n.dateFNS])\n\n useEffect(() => {\n if (options.length > 0 && !versionFromOption) {\n onChange(options[0])\n }\n }, [options, versionFromOption, onChange])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={options}\n placeholder={t('version:selectVersionToCompare')}\n value={versionFromOption}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldBaseClass","Pill","ReactSelect","useConfig","useTranslation","formatDate","stringify","React","useCallback","useEffect","useState","renderPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","draftsEnabled","latestDraftVersion","latestPublishedVersion","onChange","parentID","value","versionID","config","admin","dateFormat","localization","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","i18n","t","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","push","parent","equals","snapshot","search","response","fetch","credentials","headers","language","ok","data","json","docs","length","versionInfo","draft","currentLabel","latestVersion","pillStyle","undefined","previousLabel","published","additionalOptions","map","doc","status","version","_status","publishedLocalePill","publishedLocale","locales","localeCode","Array","isArray","locale","find","loc","code","formattedLabel","label","_jsx","_jsxs","date","updatedAt","pattern","existingOptions","hasNextPage","dateFNS","filteredOptions","filter","option","index","self","findIndex","className","Boolean","join","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { fieldBaseClass, Pill, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { stringify } from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\nimport './index.scss'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = []\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const {\n baseURL,\n draftsEnabled,\n latestDraftVersion,\n latestPublishedVersion,\n onChange,\n parentID,\n value,\n versionID,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n localization,\n },\n } = useConfig()\n\n const [options, setOptions] = useState<\n {\n label: React.ReactNode | string\n value: string\n }[]\n >(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const { i18n, t } = useTranslation()\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) {\n return\n }\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionID,\n },\n },\n ],\n },\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n if (localization && draftsEnabled) {\n query.where.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const search = stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n\n if (data.docs.length > 0) {\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const additionalOptions = data.docs.map((doc) => {\n const status = doc.version._status\n let publishedLocalePill = null\n const publishedLocale = doc.publishedLocale || undefined\n const { currentLabel, latestVersion, pillStyle, previousLabel } =\n versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale)\n ? publishedLocale[0]\n : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return {\n label: (\n <div>\n {formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })}\n &nbsp;&nbsp;\n {renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </div>\n ),\n value: doc.id,\n }\n })\n\n setOptions((existingOptions) => [...existingOptions, ...additionalOptions])\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [dateFormat, baseURL, parentID, versionID, t, i18n, latestDraftVersion, latestPublishedVersion],\n )\n\n useEffect(() => {\n if (!i18n.dateFNS) {\n // If dateFNS is not loaded, we can't format the date in getResults\n return\n }\n void getResults({ lastLoadedPage: 1 })\n }, [getResults, i18n.dateFNS])\n\n const filteredOptions = options.filter(\n (option, index, self) => self.findIndex((t) => t.value === option.value) === index,\n )\n\n useEffect(() => {\n if (filteredOptions.length > 0 && !value) {\n onChange(filteredOptions[0])\n }\n }, [filteredOptions, value, onChange])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__label`}>{t('version:compareVersion')}</div>\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={filteredOptions}\n placeholder={t('version:selectVersionToCompare')}\n value={value}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,5 +7,9 @@
7
7
  background-color: var(--theme-error-100);
8
8
  color: var(--theme-elevation-0);
9
9
  }
10
+
11
+ &__label {
12
+ margin-bottom: calc(var(--base) * 0.25);
13
+ }
10
14
  }
11
15
  }
@@ -3,12 +3,12 @@ import type { CompareOption } from '../Default/types.js';
3
3
  export type Props = {
4
4
  baseURL: string;
5
5
  draftsEnabled?: boolean;
6
- latestDraftVersionID?: string;
7
- latestPublishedVersionID?: string;
6
+ latestDraftVersion?: string;
7
+ latestPublishedVersion?: string;
8
8
  onChange: (val: CompareOption) => void;
9
9
  parentID?: number | string;
10
- versionFromOption: CompareOption;
11
- versionToID: string;
10
+ value: CompareOption;
11
+ versionID: string;
12
12
  };
13
13
  type CLEAR = {
14
14
  required: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,iBAAiB,EAAE,aAAa,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,KAAK,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n draftsEnabled?: boolean\n latestDraftVersionID?: string\n latestPublishedVersionID?: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n versionFromOption: CompareOption\n versionToID: string\n}\n\ntype CLEAR = {\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: SanitizedCollectionConfig\n data: PaginatedDocs<any>\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n"],"mappings":"AA4BA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n draftsEnabled?: boolean\n latestDraftVersion?: string\n latestPublishedVersion?: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n value: CompareOption\n versionID: string\n}\n\ntype CLEAR = {\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: SanitizedCollectionConfig\n data: PaginatedDocs<any>\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n"],"mappings":"AA4BA","ignoreList":[]}
@@ -1,12 +1,5 @@
1
- import { type SelectablePill } from '@payloadcms/ui';
2
1
  import React from 'react';
3
- export type SelectedLocaleOnChange = (args: {
4
- locales: SelectablePill[];
5
- }) => void;
6
- export type Props = {
7
- locales: SelectablePill[];
8
- localeSelectorOpen: boolean;
9
- onChange: SelectedLocaleOnChange;
10
- };
2
+ import type { Props } from './types.js';
3
+ import './index.scss';
11
4
  export declare const SelectLocales: React.FC<Props>;
12
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,KAAK,IAAI,CAAA;AAClF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,QAAQ,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyBzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8BzC,CAAA"}
@@ -1,39 +1,66 @@
1
1
  'use client';
2
2
 
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import { AnimateHeight } from '@payloadcms/ui';
5
- import { PillSelector } from '@payloadcms/ui';
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { ReactSelect, useLocale, useTranslation } from '@payloadcms/ui';
6
6
  import React from 'react';
7
7
  const baseClass = 'select-version-locales';
8
- export const SelectLocales = ({
9
- locales,
10
- localeSelectorOpen,
11
- onChange
12
- }) => {
13
- return /*#__PURE__*/_jsx(AnimateHeight, {
14
- className: baseClass,
15
- height: localeSelectorOpen ? 'auto' : 0,
16
- id: `${baseClass}-locales`,
17
- children: /*#__PURE__*/_jsx(PillSelector, {
18
- onClick: ({
19
- pill
20
- }) => {
21
- const newLocales = locales.map(locale => {
22
- if (locale.name === pill.name) {
23
- return {
24
- ...locale,
25
- selected: !pill.selected
26
- };
27
- } else {
28
- return locale;
29
- }
30
- });
31
- onChange({
32
- locales: newLocales
33
- });
34
- },
35
- pills: locales
36
- })
37
- });
8
+ export const SelectLocales = t0 => {
9
+ const $ = _c(8);
10
+ const {
11
+ onChange,
12
+ options,
13
+ value
14
+ } = t0;
15
+ const {
16
+ t
17
+ } = useTranslation();
18
+ const {
19
+ code
20
+ } = useLocale();
21
+ let t1;
22
+ if ($[0] !== code) {
23
+ t1 = items => items.map(item => {
24
+ if (typeof item.label === "string") {
25
+ return item;
26
+ }
27
+ if (typeof item.label !== "string" && item.label[code]) {
28
+ return {
29
+ label: item.label[code],
30
+ value: item.value
31
+ };
32
+ }
33
+ });
34
+ $[0] = code;
35
+ $[1] = t1;
36
+ } else {
37
+ t1 = $[1];
38
+ }
39
+ const format = t1;
40
+ let t2;
41
+ if ($[2] !== format || $[3] !== onChange || $[4] !== options || $[5] !== t || $[6] !== value) {
42
+ t2 = _jsxs("div", {
43
+ className: baseClass,
44
+ children: [_jsx("div", {
45
+ className: `${baseClass}__label`,
46
+ children: t("version:showLocales")
47
+ }), _jsx(ReactSelect, {
48
+ isMulti: true,
49
+ onChange,
50
+ options: format(options),
51
+ placeholder: t("version:selectLocales"),
52
+ value: format(value)
53
+ })]
54
+ });
55
+ $[2] = format;
56
+ $[3] = onChange;
57
+ $[4] = options;
58
+ $[5] = t;
59
+ $[6] = value;
60
+ $[7] = t2;
61
+ } else {
62
+ t2 = $[7];
63
+ }
64
+ return t2;
38
65
  };
39
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AnimateHeight","PillSelector","React","baseClass","SelectLocales","locales","localeSelectorOpen","onChange","_jsx","className","height","id","onClick","pill","newLocales","map","locale","name","selected","pills"],"sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"sourcesContent":["'use client'\n\nimport { AnimateHeight } from '@payloadcms/ui'\nimport { PillSelector, type SelectablePill } from '@payloadcms/ui'\nimport React from 'react'\n\nconst baseClass = 'select-version-locales'\n\nexport type SelectedLocaleOnChange = (args: { locales: SelectablePill[] }) => void\nexport type Props = {\n locales: SelectablePill[]\n localeSelectorOpen: boolean\n onChange: SelectedLocaleOnChange\n}\n\nexport const SelectLocales: React.FC<Props> = ({ locales, localeSelectorOpen, onChange }) => {\n return (\n <AnimateHeight\n className={baseClass}\n height={localeSelectorOpen ? 'auto' : 0}\n id={`${baseClass}-locales`}\n >\n <PillSelector\n onClick={({ pill }) => {\n const newLocales = locales.map((locale) => {\n if (locale.name === pill.name) {\n return {\n ...locale,\n selected: !pill.selected,\n }\n } else {\n return locale\n }\n })\n onChange({ locales: newLocales })\n }}\n pills={locales}\n />\n </AnimateHeight>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAA6B;AAClD,OAAOC,KAAA,MAAW;AAElB,MAAMC,SAAA,GAAY;AASlB,OAAO,MAAMC,aAAA,GAAiCA,CAAC;EAAEC,OAAO;EAAEC,kBAAkB;EAAEC;AAAQ,CAAE;EACtF,oBACEC,IAAA,CAACR,aAAA;IACCS,SAAA,EAAWN,SAAA;IACXO,MAAA,EAAQJ,kBAAA,GAAqB,SAAS;IACtCK,EAAA,EAAI,GAAGR,SAAA,UAAmB;cAE1B,aAAAK,IAAA,CAACP,YAAA;MACCW,OAAA,EAASA,CAAC;QAAEC;MAAI,CAAE;QAChB,MAAMC,UAAA,GAAaT,OAAA,CAAQU,GAAG,CAAEC,MAAA;UAC9B,IAAIA,MAAA,CAAOC,IAAI,KAAKJ,IAAA,CAAKI,IAAI,EAAE;YAC7B,OAAO;cACL,GAAGD,MAAM;cACTE,QAAA,EAAU,CAACL,IAAA,CAAKK;YAClB;UACF,OAAO;YACL,OAAOF,MAAA;UACT;QACF;QACAT,QAAA,CAAS;UAAEF,OAAA,EAASS;QAAW;MACjC;MACAK,KAAA,EAAOd;;;AAIf","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","ReactSelect","useLocale","useTranslation","React","baseClass","SelectLocales","t0","$","onChange","options","value","t","code","t1","items","map","item","label","format","t2","_jsxs","className","children","_jsx","isMulti","placeholder"],"sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"sourcesContent":["'use client'\nimport { ReactSelect, useLocale, useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'select-version-locales'\n\nexport const SelectLocales: React.FC<Props> = ({ onChange, options, value }) => {\n const { t } = useTranslation()\n const { code } = useLocale()\n\n const format = (items) => {\n return items.map((item) => {\n if (typeof item.label === 'string') {\n return item\n }\n if (typeof item.label !== 'string' && item.label[code]) {\n return {\n label: item.label[code],\n value: item.value,\n }\n }\n })\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__label`}>{t('version:showLocales')}</div>\n <ReactSelect\n isMulti\n onChange={onChange}\n options={format(options)}\n placeholder={t('version:selectLocales')}\n value={format(value)}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AACvD,OAAOC,KAAA,MAAW;AAMlB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAAiCC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,QAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAJ,EAA4B;EACzE;IAAAK;EAAA,IAAcT,cAAA;EACd;IAAAU;EAAA,IAAiBX,SAAA;EAAA,IAAAY,EAAA;EAAA,IAAAN,CAAA,QAAAK,IAAA;IAEFC,EAAA,GAAAC,KAAA,IACNA,KAAA,CAAAC,GAAA,CAAAC,IAAA;MAAA,IACD,OAAOA,IAAA,CAAAC,KAAA,KAAe;QAAA,OACjBD,IAAA;MAAA;MAAA,IAEL,OAAOA,IAAA,CAAAC,KAAA,KAAe,YAAYD,IAAA,CAAAC,KAAA,CAAWL,IAAA,CAAK;QAAA;UAAAK,KAAA,EAE3CD,IAAA,CAAAC,KAAA,CAAWL,IAAA;UAAAF,KAAA,EACXM,IAAA,CAAAN;QAAA;MAAA;IAAA,CAGb;IACFH,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAZA,MAAAW,MAAA,GAAeL,EAYf;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAW,MAAA,IAAAX,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAGES,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAAjB,SAAA;MAAAkB,QAAA,GACCC,IAAA,CAAC;QAAAF,SAAA,EAAe,GAAAjB,SAAA,SAAqB;QAAAkB,QAAA,EAAGX,CAAA,CAAE;MAAA,C,GAC1CY,IAAA,CAAAvB,WAAA;QAAAwB,OAAA;QAAAhB,QAAA;QAAAC,OAAA,EAGWS,MAAA,CAAOT,OAAA;QAAAgB,WAAA,EACHd,CAAA,CAAE;QAAAD,KAAA,EACRQ,MAAA,CAAOR,KAAA;MAAA,C;;;;;;;;;;;SAPlBS,E;CAWJ","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ @layer payload-default {
2
+ .select-version-locales {
3
+ flex-grow: 1;
4
+
5
+ &__label {
6
+ margin-bottom: calc(var(--base) * 0.25);
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ import type { OptionObject } from 'payload';
2
+ export type Props = {
3
+ onChange: (options: OptionObject[]) => void;
4
+ options: OptionObject[];
5
+ value: OptionObject[];
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectLocales/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;IAC3C,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Version/SelectLocales/types.ts"],"sourcesContent":["import type { OptionObject } from 'payload'\n\nexport type Props = {\n onChange: (options: OptionObject[]) => void\n options: OptionObject[]\n value: OptionObject[]\n}\n"],"mappings":"AAEA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAMxB,MAAM,SAAS,CAAA;AAOhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BA4S/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,uBAAuB,EAKxB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BAkP/D"}