@payloadcms/ui 3.0.0-beta.68 → 3.0.0-beta.69

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 (63) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  5. package/dist/elements/DeleteDocument/index.js +7 -3
  6. package/dist/elements/DeleteDocument/index.js.map +1 -1
  7. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentControls/index.js +5 -1
  9. package/dist/elements/DocumentControls/index.js.map +1 -1
  10. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentFields/index.js +46 -48
  12. package/dist/elements/DocumentFields/index.js.map +1 -1
  13. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.js +10 -6
  15. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  16. package/dist/elements/Logout/index.d.ts.map +1 -1
  17. package/dist/elements/Logout/index.js +6 -3
  18. package/dist/elements/Logout/index.js.map +1 -1
  19. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  20. package/dist/elements/StayLoggedIn/index.js +6 -2
  21. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  22. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  23. package/dist/elements/Table/DefaultCell/index.js +5 -1
  24. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  25. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +4 -4
  26. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  27. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  28. package/dist/elements/WhereBuilder/Condition/index.js +4 -2
  29. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  30. package/dist/exports/client/index.js +18 -18
  31. package/dist/exports/client/index.js.map +4 -4
  32. package/dist/exports/shared/index.d.ts +1 -0
  33. package/dist/exports/shared/index.d.ts.map +1 -1
  34. package/dist/exports/shared/index.js +2 -2
  35. package/dist/exports/shared/index.js.map +4 -4
  36. package/dist/fields/Upload/Input.d.ts +4 -0
  37. package/dist/fields/Upload/Input.d.ts.map +1 -1
  38. package/dist/fields/Upload/Input.js +2 -2
  39. package/dist/fields/Upload/Input.js.map +1 -1
  40. package/dist/fields/Upload/index.d.ts.map +1 -1
  41. package/dist/fields/Upload/index.js +18 -3
  42. package/dist/fields/Upload/index.js.map +1 -1
  43. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  44. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +39 -18
  45. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  46. package/dist/graphics/Account/index.d.ts.map +1 -1
  47. package/dist/graphics/Account/index.js +5 -1
  48. package/dist/graphics/Account/index.js.map +1 -1
  49. package/dist/providers/Auth/index.d.ts +1 -1
  50. package/dist/providers/Auth/index.d.ts.map +1 -1
  51. package/dist/providers/Auth/index.js +46 -38
  52. package/dist/providers/Auth/index.js.map +1 -1
  53. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  54. package/dist/providers/ComponentMap/buildComponentMap/fields.js +1 -0
  55. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  56. package/dist/utilities/buildFormState.d.ts.map +1 -1
  57. package/dist/utilities/buildFormState.js +1 -0
  58. package/dist/utilities/buildFormState.js.map +1 -1
  59. package/dist/utilities/formatAdminURL.d.ts +8 -0
  60. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  61. package/dist/utilities/formatAdminURL.js +15 -0
  62. package/dist/utilities/formatAdminURL.js.map +1 -0
  63. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAY1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAa1D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAoF7B,CAAA"}
@@ -6,6 +6,7 @@ import { Account } from '../../graphics/Account/index.js';
6
6
  import { useActions } from '../../providers/Actions/index.js';
7
7
  import { useConfig } from '../../providers/Config/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
9
10
  import { Hamburger } from '../Hamburger/index.js';
10
11
  import { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js';
11
12
  import { Localizer } from '../Localizer/index.js';
@@ -91,7 +92,10 @@ export const AppHeader = ()=>{
91
92
  /*#__PURE__*/ _jsx(LinkElement, {
92
93
  "aria-label": t('authentication:account'),
93
94
  className: `${baseClass}__account`,
94
- href: `${adminRoute}${accountRoute}`,
95
+ href: formatAdminURL({
96
+ adminRoute,
97
+ path: accountRoute
98
+ }),
95
99
  tabIndex: 0,
96
100
  children: /*#__PURE__*/ _jsx(Account, {})
97
101
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav Link={Link} className={`${baseClass}__step-nav`} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={`${adminRoute}${accountRoute}`}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport LinkWithDefault from 'next/link.js'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\nexport const AppHeader: React.FC = () => {\n const { t } = useTranslation()\n\n const {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { actions } = useActions()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [actions])\n\n const Link = LinkWithDefault.default\n\n const LinkElement = Link || 'a'\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav Link={Link} className={`${baseClass}__step-nav`} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {Array.isArray(actions) &&\n actions.map((Action, i) => (\n <div\n className={\n isScrollable && i === actions.length - 1 ? `${baseClass}__last-action` : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <LinkElement\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute })}\n tabIndex={0}\n >\n <Account />\n </LinkElement>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"names":["LinkWithDefault","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","formatAdminURL","Hamburger","LocalizerLabel","Localizer","NavToggler","useNav","StepNav","baseClass","AppHeader","t","admin","routes","account","accountRoute","localization","adminRoute","actions","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","Link","default","LinkElement","header","className","filter","Boolean","join","div","tabIndex","ref","Array","isArray","map","Action","i","length","ariaLabel","aria-label","href","path"],"mappings":"AAAA;;AACA,OAAOA,qBAAqB,eAAc;AAC1C,OAAOC,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAE1D,SAASC,OAAO,QAAQ,kCAAiC;AACzD,SAASC,UAAU,QAAQ,mCAAkC;AAC7D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,UAAU,QAAQ,6BAA4B;AACvD,SAASC,MAAM,QAAQ,oBAAmB;AAC1C,SAASC,OAAO,QAAQ,sBAAqB;AAC7C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,YAAsB;IACjC,MAAM,EAAEC,CAAC,EAAE,GAAGV;IAEd,MAAM,EACJW,OAAO,EACLC,QAAQ,EAAEC,SAASC,YAAY,EAAE,EAClC,EACDC,YAAY,EACZH,QAAQ,EAAED,OAAOK,UAAU,EAAE,EAC9B,GAAGjB;IAEJ,MAAM,EAAEkB,OAAO,EAAE,GAAGnB;IAEpB,MAAM,EAAEoB,OAAO,EAAE,GAAGZ;IAEpB,MAAMa,oBAAoBxB,OAAuB;IACjD,MAAM,CAACyB,cAAcC,gBAAgB,GAAGzB,SAAS;IAEjDF,UAAU;QACR,MAAM4B,oBAAoB;YACxB,MAAMC,KAAKJ,kBAAkBK,OAAO;YACpC,IAAID,IAAI;gBACN,MAAME,aAAaF,GAAGG,WAAW,GAAGH,GAAGI,WAAW;gBAClDN,gBAAgBI;YAClB;QACF;QAEAH;QACAM,OAAOC,gBAAgB,CAAC,UAAUP;QAElC,OAAO;YACLM,OAAOE,mBAAmB,CAAC,UAAUR;QACvC;IACF,GAAG;QAACL;KAAQ;IAEZ,MAAMc,OAAOvC,gBAAgBwC,OAAO;IAEpC,MAAMC,cAAcF,QAAQ;IAE5B,qBACE,MAACG;QAAOC,WAAW;YAAC3B;YAAWU,WAAW,CAAC,EAAEV,UAAU,UAAU,CAAC;SAAC,CAAC4B,MAAM,CAACC,SAASC,IAAI,CAAC;;0BACvF,KAACC;gBAAIJ,WAAW,CAAC,EAAE3B,UAAU,IAAI,CAAC;;0BAClC,KAAC+B;gBAAIJ,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;0BACrC,cAAA,MAAC+B;oBAAIJ,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;;sCACrC,KAACH;4BAAW8B,WAAW,CAAC,EAAE3B,UAAU,oBAAoB,CAAC;4BAAEgC,UAAU,CAAC;sCACpE,cAAA,KAACtC;;sCAEH,MAACqC;4BAAIJ,WAAW,CAAC,EAAE3B,UAAU,kBAAkB,CAAC;;8CAC9C,KAAC+B;oCAAIJ,WAAW,CAAC,EAAE3B,UAAU,kBAAkB,CAAC;8CAC9C,cAAA,KAACD;wCAAQwB,MAAMA;wCAAMI,WAAW,CAAC,EAAE3B,UAAU,UAAU,CAAC;;;8CAE1D,MAAC+B;oCAAIJ,WAAW,CAAC,EAAE3B,UAAU,iBAAiB,CAAC;;sDAC7C,KAAC+B;4CAAIJ,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;4CAAEiC,KAAKtB;sDAC3CuB,MAAMC,OAAO,CAAC1B,YACbA,QAAQ2B,GAAG,CAAC,CAACC,QAAQC,kBACnB,KAACP;oDACCJ,WACEf,gBAAgB0B,MAAM7B,QAAQ8B,MAAM,GAAG,IAAI,CAAC,EAAEvC,UAAU,aAAa,CAAC,GAAG;8DAI1EqC;mDAFIC;;wCAMZ1B,8BAAgB,KAACmB;4CAAIJ,WAAW,CAAC,EAAE3B,UAAU,sBAAsB,CAAC;;;;gCAEtEO,8BACC,KAACZ;oCAAe6C,WAAU;oCAAYb,WAAW,CAAC,EAAE3B,UAAU,mBAAmB,CAAC;;8CAEpF,KAACyB;oCACCgB,cAAYvC,EAAE;oCACdyB,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;oCAClC0C,MAAMjD,eAAe;wCAAEe;wCAAYmC,MAAMrC;oCAAa;oCACtD0B,UAAU;8CAEV,cAAA,KAAC3C;;;;;;;0BAKT,KAACO;gBAAU+B,WAAW,CAAC,EAAE3B,UAAU,WAAW,CAAC;;;;AAGrD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgI1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqI1C,CAAA"}
@@ -10,6 +10,7 @@ import { useConfig } from '../../providers/Config/index.js';
10
10
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { requests } from '../../utilities/api.js';
13
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
13
14
  import { Button } from '../Button/index.js';
14
15
  import { PopupList } from '../Popup/index.js';
15
16
  import { Translation } from '../Translation/index.js';
@@ -17,7 +18,7 @@ import './index.scss';
17
18
  const baseClass = 'delete-document';
18
19
  export const DeleteDocument = (props)=>{
19
20
  const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props;
20
- const { routes: { admin, api }, serverURL } = useConfig();
21
+ const { routes: { admin: adminRoute, api }, serverURL } = useConfig();
21
22
  const { setModified } = useForm();
22
23
  const [deleting, setDeleting] = useState(false);
23
24
  const { toggleModal } = useModal();
@@ -54,7 +55,10 @@ export const DeleteDocument = (props)=>{
54
55
  label: getTranslation(singularLabel, i18n),
55
56
  title
56
57
  }) || json.message);
57
- return router.push(`${admin}/collections/${collectionSlug}`);
58
+ return router.push(formatAdminURL({
59
+ adminRoute,
60
+ path: `/collections/${collectionSlug}`
61
+ }));
58
62
  }
59
63
  toggleModal(modalSlug);
60
64
  if (json.errors) {
@@ -83,7 +87,7 @@ export const DeleteDocument = (props)=>{
83
87
  i18n,
84
88
  title,
85
89
  router,
86
- admin,
90
+ adminRoute,
87
91
  addDefaultError
88
92
  ]);
89
93
  if (id) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(`${admin}/collections/${collectionSlug}`)\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n admin,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","requests","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","routes","admin","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","errors","forEach","e","Fragment","onClick","className","slug","div","h1","p","elements","children","strong","i18nKey","variables","buttonStyle","undefined","type"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n routes: { admin: adminRoute, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","requests","formatAdminURL","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","routes","admin","adminRoute","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","Fragment","onClick","className","slug","div","h1","p","elements","children","strong","i18nKey","variables","buttonStyle","undefined","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGhG,OAAO,KAA8B,MAAM,OAAO,CAAA;AAgBlD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CAqMA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGhG,OAAO,KAA8B,MAAM,OAAO,CAAA;AAiBlD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CAwMA,CAAA"}
@@ -5,6 +5,7 @@ import React, { Fragment, useEffect } from 'react';
5
5
  import { useComponentMap } from '../../providers/ComponentMap/index.js';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
8
9
  import { formatDate } from '../../utilities/formatDate.js';
9
10
  import { Autosave } from '../Autosave/index.js';
10
11
  import { DeleteDocument } from '../DeleteDocument/index.js';
@@ -187,7 +188,10 @@ export const DocumentControls = (props)=>{
187
188
  hasCreatePermission && /*#__PURE__*/ _jsxs(React.Fragment, {
188
189
  children: [
189
190
  /*#__PURE__*/ _jsx(PopupList.Button, {
190
- href: `${adminRoute}/collections/${collectionConfig?.slug}/create`,
191
+ href: formatAdminURL({
192
+ adminRoute,
193
+ path: `/collections/${collectionConfig?.slug}/create`
194
+ }),
191
195
  id: "action-create",
192
196
  children: i18n.t('general:createNew')
193
197
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission, SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasPublishPermission?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n const { getComponentMap } = useComponentMap()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {componentMap?.isPreviewEnabled && (\n <PreviewButton CustomComponent={componentMap.PreviewButton} />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton CustomComponent={componentMap.SaveDraftButton} />\n )}\n <PublishButton CustomComponent={componentMap.PublishButton} />\n </React.Fragment>\n ) : (\n <SaveButton CustomComponent={componentMap.SaveButton} />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={`${adminRoute}/collections/${collectionConfig?.slug}/create`}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["getTranslation","React","Fragment","useEffect","useComponentMap","useConfig","useTranslation","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getComponentMap","collectionConfig","collections","find","coll","globalConfig","globals","global","componentMap","collectionSlug","globalSlug","admin","dateFormat","routes","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","date","pattern","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","className","div","ul","li","p","t","label","labels","singular","filter","join","autosave","collection","publishedDocUpdatedAt","timestamps","title","isPreviewEnabled","CustomComponent","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission, SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasPublishPermission?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n const { getComponentMap } = useComponentMap()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {componentMap?.isPreviewEnabled && (\n <PreviewButton CustomComponent={componentMap.PreviewButton} />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton CustomComponent={componentMap.SaveDraftButton} />\n )}\n <PublishButton CustomComponent={componentMap.PublishButton} />\n </React.Fragment>\n ) : (\n <SaveButton CustomComponent={componentMap.SaveButton} />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["getTranslation","React","Fragment","useEffect","useComponentMap","useConfig","useTranslation","formatAdminURL","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getComponentMap","collectionConfig","collections","find","coll","globalConfig","globals","global","componentMap","collectionSlug","globalSlug","admin","dateFormat","routes","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","date","pattern","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","className","div","ul","li","p","t","label","labels","singular","filter","join","autosave","collection","publishedDocUpdatedAt","timestamps","title","isPreviewEnabled","CustomComponent","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAIvF,OAAO,cAAc,CAAA;AAIrB,KAAK,IAAI,GAAG;IACV,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,mBAAmB,CAAA;IACnC,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAoEzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAIvF,OAAO,cAAc,CAAA;AAIrB,KAAK,IAAI,GAAG;IACV,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,mBAAmB,CAAA;IACnC,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAkEzC,CAAA"}
@@ -9,58 +9,56 @@ export const DocumentFields = ({ AfterFields, BeforeFields, description, docPerm
9
9
  const mainFields = fieldMap.filter(({ isSidebar })=>!isSidebar);
10
10
  const sidebarFields = fieldMap.filter(({ isSidebar })=>isSidebar);
11
11
  const hasSidebarFields = sidebarFields && sidebarFields.length > 0;
12
- return /*#__PURE__*/ _jsx(React.Fragment, {
13
- children: /*#__PURE__*/ _jsxs("div", {
14
- className: [
15
- baseClass,
16
- hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,
17
- forceSidebarWrap && `${baseClass}--force-sidebar-wrap`
18
- ].filter(Boolean).join(' '),
19
- children: [
20
- /*#__PURE__*/ _jsx("div", {
21
- className: `${baseClass}__main`,
22
- children: /*#__PURE__*/ _jsxs(Gutter, {
23
- className: `${baseClass}__edit`,
24
- children: [
25
- /*#__PURE__*/ _jsx("header", {
26
- className: `${baseClass}__header`,
27
- children: description && /*#__PURE__*/ _jsx("div", {
28
- className: `${baseClass}__sub-header`
29
- })
30
- }),
31
- BeforeFields,
32
- /*#__PURE__*/ _jsx(RenderFields, {
33
- className: `${baseClass}__fields`,
34
- fieldMap: mainFields,
35
- forceRender: 10,
36
- path: "",
37
- permissions: docPermissions?.fields,
38
- readOnly: readOnly,
39
- schemaPath: schemaPath
40
- }),
41
- AfterFields
42
- ]
43
- })
44
- }),
45
- hasSidebarFields && /*#__PURE__*/ _jsx("div", {
46
- className: `${baseClass}__sidebar-wrap`,
47
- children: /*#__PURE__*/ _jsx("div", {
48
- className: `${baseClass}__sidebar`,
49
- children: /*#__PURE__*/ _jsx("div", {
50
- className: `${baseClass}__sidebar-fields`,
51
- children: /*#__PURE__*/ _jsx(RenderFields, {
52
- fieldMap: sidebarFields,
53
- forceRender: 10,
54
- path: "",
55
- permissions: docPermissions?.fields,
56
- readOnly: readOnly,
57
- schemaPath: schemaPath
12
+ return /*#__PURE__*/ _jsxs("div", {
13
+ className: [
14
+ baseClass,
15
+ hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,
16
+ forceSidebarWrap && `${baseClass}--force-sidebar-wrap`
17
+ ].filter(Boolean).join(' '),
18
+ children: [
19
+ /*#__PURE__*/ _jsx("div", {
20
+ className: `${baseClass}__main`,
21
+ children: /*#__PURE__*/ _jsxs(Gutter, {
22
+ className: `${baseClass}__edit`,
23
+ children: [
24
+ /*#__PURE__*/ _jsx("header", {
25
+ className: `${baseClass}__header`,
26
+ children: description && /*#__PURE__*/ _jsx("div", {
27
+ className: `${baseClass}__sub-header`
58
28
  })
29
+ }),
30
+ BeforeFields,
31
+ /*#__PURE__*/ _jsx(RenderFields, {
32
+ className: `${baseClass}__fields`,
33
+ fieldMap: mainFields,
34
+ forceRender: 10,
35
+ path: "",
36
+ permissions: docPermissions?.fields,
37
+ readOnly: readOnly,
38
+ schemaPath: schemaPath
39
+ }),
40
+ AfterFields
41
+ ]
42
+ })
43
+ }),
44
+ hasSidebarFields && /*#__PURE__*/ _jsx("div", {
45
+ className: `${baseClass}__sidebar-wrap`,
46
+ children: /*#__PURE__*/ _jsx("div", {
47
+ className: `${baseClass}__sidebar`,
48
+ children: /*#__PURE__*/ _jsx("div", {
49
+ className: `${baseClass}__sidebar-fields`,
50
+ children: /*#__PURE__*/ _jsx(RenderFields, {
51
+ fieldMap: sidebarFields,
52
+ forceRender: 10,
53
+ path: "",
54
+ permissions: docPermissions?.fields,
55
+ readOnly: readOnly,
56
+ schemaPath: schemaPath
59
57
  })
60
58
  })
61
59
  })
62
- ]
63
- })
60
+ })
61
+ ]
64
62
  });
65
63
  };
66
64
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DocumentFields/index.tsx"],"sourcesContent":["'use client'\nimport type { Description, DocumentPermissions } from 'payload'\n\nimport React from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'document-fields'\n\ntype Args = {\n AfterFields?: React.ReactNode\n BeforeFields?: React.ReactNode\n description?: Description\n docPermissions: DocumentPermissions\n fieldMap: FieldMap\n forceSidebarWrap?: boolean\n readOnly: boolean\n schemaPath: string\n}\n\nexport const DocumentFields: React.FC<Args> = ({\n AfterFields,\n BeforeFields,\n description,\n docPermissions,\n fieldMap,\n forceSidebarWrap,\n readOnly,\n schemaPath,\n}) => {\n const mainFields = fieldMap.filter(({ isSidebar }) => !isSidebar)\n\n const sidebarFields = fieldMap.filter(({ isSidebar }) => isSidebar)\n\n const hasSidebarFields = sidebarFields && sidebarFields.length > 0\n\n return (\n <React.Fragment>\n <div\n className={[\n baseClass,\n hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,\n forceSidebarWrap && `${baseClass}--force-sidebar-wrap`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__main`}>\n <Gutter className={`${baseClass}__edit`}>\n <header className={`${baseClass}__header`}>\n {description && (\n <div className={`${baseClass}__sub-header`}>\n {/* <ViewDescription description={description} /> */}\n </div>\n )}\n </header>\n {BeforeFields}\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={mainFields}\n forceRender={10}\n path=\"\"\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n {AfterFields}\n </Gutter>\n </div>\n {hasSidebarFields && (\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-fields`}>\n <RenderFields\n fieldMap={sidebarFields}\n forceRender={10}\n path=\"\"\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n </React.Fragment>\n )\n}\n"],"names":["React","RenderFields","Gutter","baseClass","DocumentFields","AfterFields","BeforeFields","description","docPermissions","fieldMap","forceSidebarWrap","readOnly","schemaPath","mainFields","filter","isSidebar","sidebarFields","hasSidebarFields","length","Fragment","div","className","Boolean","join","header","forceRender","path","permissions","fields"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAIzB,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,iBAAiC,CAAC,EAC7CC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,QAAQ,EACRC,gBAAgB,EAChBC,QAAQ,EACRC,UAAU,EACX;IACC,MAAMC,aAAaJ,SAASK,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE,GAAK,CAACA;IAEvD,MAAMC,gBAAgBP,SAASK,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE,GAAKA;IAEzD,MAAME,mBAAmBD,iBAAiBA,cAAcE,MAAM,GAAG;IAEjE,qBACE,KAAClB,MAAMmB,QAAQ;kBACb,cAAA,MAACC;YACCC,WAAW;gBACTlB;gBACAc,mBAAmB,CAAC,EAAEd,UAAU,aAAa,CAAC,GAAG,CAAC,EAAEA,UAAU,YAAY,CAAC;gBAC3EO,oBAAoB,CAAC,EAAEP,UAAU,oBAAoB,CAAC;aACvD,CACEW,MAAM,CAACQ,SACPC,IAAI,CAAC;;8BAER,KAACH;oBAAIC,WAAW,CAAC,EAAElB,UAAU,MAAM,CAAC;8BAClC,cAAA,MAACD;wBAAOmB,WAAW,CAAC,EAAElB,UAAU,MAAM,CAAC;;0CACrC,KAACqB;gCAAOH,WAAW,CAAC,EAAElB,UAAU,QAAQ,CAAC;0CACtCI,6BACC,KAACa;oCAAIC,WAAW,CAAC,EAAElB,UAAU,YAAY,CAAC;;;4BAK7CG;0CACD,KAACL;gCACCoB,WAAW,CAAC,EAAElB,UAAU,QAAQ,CAAC;gCACjCM,UAAUI;gCACVY,aAAa;gCACbC,MAAK;gCACLC,aAAanB,gBAAgBoB;gCAC7BjB,UAAUA;gCACVC,YAAYA;;4BAEbP;;;;gBAGJY,kCACC,KAACG;oBAAIC,WAAW,CAAC,EAAElB,UAAU,cAAc,CAAC;8BAC1C,cAAA,KAACiB;wBAAIC,WAAW,CAAC,EAAElB,UAAU,SAAS,CAAC;kCACrC,cAAA,KAACiB;4BAAIC,WAAW,CAAC,EAAElB,UAAU,gBAAgB,CAAC;sCAC5C,cAAA,KAACF;gCACCQ,UAAUO;gCACVS,aAAa;gCACbC,MAAK;gCACLC,aAAanB,gBAAgBoB;gCAC7BjB,UAAUA;gCACVC,YAAYA;;;;;;;;AAS9B,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/DocumentFields/index.tsx"],"sourcesContent":["'use client'\nimport type { Description, DocumentPermissions } from 'payload'\n\nimport React from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'document-fields'\n\ntype Args = {\n AfterFields?: React.ReactNode\n BeforeFields?: React.ReactNode\n description?: Description\n docPermissions: DocumentPermissions\n fieldMap: FieldMap\n forceSidebarWrap?: boolean\n readOnly: boolean\n schemaPath: string\n}\n\nexport const DocumentFields: React.FC<Args> = ({\n AfterFields,\n BeforeFields,\n description,\n docPermissions,\n fieldMap,\n forceSidebarWrap,\n readOnly,\n schemaPath,\n}) => {\n const mainFields = fieldMap.filter(({ isSidebar }) => !isSidebar)\n\n const sidebarFields = fieldMap.filter(({ isSidebar }) => isSidebar)\n\n const hasSidebarFields = sidebarFields && sidebarFields.length > 0\n\n return (\n <div\n className={[\n baseClass,\n hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,\n forceSidebarWrap && `${baseClass}--force-sidebar-wrap`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__main`}>\n <Gutter className={`${baseClass}__edit`}>\n <header className={`${baseClass}__header`}>\n {description && (\n <div className={`${baseClass}__sub-header`}>\n {/* <ViewDescription description={description} /> */}\n </div>\n )}\n </header>\n {BeforeFields}\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={mainFields}\n forceRender={10}\n path=\"\"\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n {AfterFields}\n </Gutter>\n </div>\n {hasSidebarFields && (\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-fields`}>\n <RenderFields\n fieldMap={sidebarFields}\n forceRender={10}\n path=\"\"\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","RenderFields","Gutter","baseClass","DocumentFields","AfterFields","BeforeFields","description","docPermissions","fieldMap","forceSidebarWrap","readOnly","schemaPath","mainFields","filter","isSidebar","sidebarFields","hasSidebarFields","length","div","className","Boolean","join","header","forceRender","path","permissions","fields"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAIzB,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAalB,OAAO,MAAMC,iBAAiC,CAAC,EAC7CC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,cAAc,EACdC,QAAQ,EACRC,gBAAgB,EAChBC,QAAQ,EACRC,UAAU,EACX;IACC,MAAMC,aAAaJ,SAASK,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE,GAAK,CAACA;IAEvD,MAAMC,gBAAgBP,SAASK,MAAM,CAAC,CAAC,EAAEC,SAAS,EAAE,GAAKA;IAEzD,MAAME,mBAAmBD,iBAAiBA,cAAcE,MAAM,GAAG;IAEjE,qBACE,MAACC;QACCC,WAAW;YACTjB;YACAc,mBAAmB,CAAC,EAAEd,UAAU,aAAa,CAAC,GAAG,CAAC,EAAEA,UAAU,YAAY,CAAC;YAC3EO,oBAAoB,CAAC,EAAEP,UAAU,oBAAoB,CAAC;SACvD,CACEW,MAAM,CAACO,SACPC,IAAI,CAAC;;0BAER,KAACH;gBAAIC,WAAW,CAAC,EAAEjB,UAAU,MAAM,CAAC;0BAClC,cAAA,MAACD;oBAAOkB,WAAW,CAAC,EAAEjB,UAAU,MAAM,CAAC;;sCACrC,KAACoB;4BAAOH,WAAW,CAAC,EAAEjB,UAAU,QAAQ,CAAC;sCACtCI,6BACC,KAACY;gCAAIC,WAAW,CAAC,EAAEjB,UAAU,YAAY,CAAC;;;wBAK7CG;sCACD,KAACL;4BACCmB,WAAW,CAAC,EAAEjB,UAAU,QAAQ,CAAC;4BACjCM,UAAUI;4BACVW,aAAa;4BACbC,MAAK;4BACLC,aAAalB,gBAAgBmB;4BAC7BhB,UAAUA;4BACVC,YAAYA;;wBAEbP;;;;YAGJY,kCACC,KAACE;gBAAIC,WAAW,CAAC,EAAEjB,UAAU,cAAc,CAAC;0BAC1C,cAAA,KAACgB;oBAAIC,WAAW,CAAC,EAAEjB,UAAU,SAAS,CAAC;8BACrC,cAAA,KAACgB;wBAAIC,WAAW,CAAC,EAAEjB,UAAU,gBAAgB,CAAC;kCAC5C,cAAA,KAACF;4BACCQ,UAAUO;4BACVQ,aAAa;4BACbC,MAAK;4BACLC,aAAalB,gBAAgBmB;4BAC7BhB,UAAUA;4BACVC,YAAYA;;;;;;;AAQ5B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAUpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2G7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiH7C,CAAA"}
@@ -10,6 +10,7 @@ import { useConfig } from '../../providers/Config/index.js';
10
10
  import { useLocale } from '../../providers/Locale/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { requests } from '../../utilities/api.js';
13
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
13
14
  import { Button } from '../Button/index.js';
14
15
  import { PopupList } from '../Popup/index.js';
15
16
  import './index.scss';
@@ -20,8 +21,8 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
20
21
  const { toggleModal } = useModal();
21
22
  const locale = useLocale();
22
23
  const { setModified } = useForm();
23
- const { routes: { api }, serverURL } = useConfig();
24
- const { routes: { admin } } = useConfig();
24
+ const { routes: { api: apiRoute }, serverURL } = useConfig();
25
+ const { routes: { admin: adminRoute } } = useConfig();
25
26
  const [hasClicked, setHasClicked] = useState(false);
26
27
  const { i18n, t } = useTranslation();
27
28
  const modalSlug = `duplicate-${id}`;
@@ -31,7 +32,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
31
32
  toggleModal(modalSlug);
32
33
  return;
33
34
  }
34
- await requests.post(`${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
35
+ await requests.post(`${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
35
36
  body: JSON.stringify({}),
36
37
  headers: {
37
38
  'Accept-Language': i18n.language,
@@ -45,7 +46,10 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
45
46
  label: getTranslation(singularLabel, i18n)
46
47
  }));
47
48
  setModified(false);
48
- router.push(`${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`);
49
+ router.push(formatAdminURL({
50
+ adminRoute,
51
+ path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`
52
+ }));
49
53
  } else {
50
54
  toast.error(errors?.[0].message || message || t('error:unspecific', {
51
55
  label: getTranslation(singularLabel, i18n)
@@ -56,7 +60,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
56
60
  locale,
57
61
  modified,
58
62
  serverURL,
59
- api,
63
+ apiRoute,
60
64
  slug,
61
65
  id,
62
66
  i18n,
@@ -66,7 +70,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
66
70
  singularLabel,
67
71
  setModified,
68
72
  router,
69
- admin
73
+ adminRoute
70
74
  ]);
71
75
  const confirm = useCallback(async ()=>{
72
76
  setHasClicked(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const {\n routes: { admin },\n } = useConfig()\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(\n `${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n )\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n api,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n admin,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","requests","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","serverURL","admin","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","error","confirm","Fragment","onClick","className","div","h1","p","buttonStyle","type"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const {\n routes: { admin: adminRoute },\n } = useConfig()\n\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n )\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n adminRoute,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","requests","formatAdminURL","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","apiRoute","serverURL","admin","adminRoute","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","confirm","Fragment","onClick","className","div","h1","p","buttonStyle","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAuCvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAUA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyCvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAUA,CAAA"}
@@ -5,17 +5,20 @@ import { LogOutIcon } from '../../icons/LogOut/index.js';
5
5
  import { useComponentMap } from '../../providers/ComponentMap/index.js';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
8
9
  const baseClass = 'nav';
9
10
  const DefaultLogout = ({ Link, tabIndex })=>{
10
11
  const { t } = useTranslation();
11
12
  const config = useConfig();
12
- const { admin: { routes: { logout: logoutRoute } }, routes: { admin } } = config;
13
- const basePath = process.env.NEXT_BASE_PATH ?? '';
13
+ const { admin: { routes: { logout: logoutRoute } }, routes: { admin: adminRoute } } = config;
14
14
  const LinkElement = Link || 'a';
15
15
  return /*#__PURE__*/ _jsx(LinkElement, {
16
16
  "aria-label": t('authentication:logOut'),
17
17
  className: `${baseClass}__log-out`,
18
- href: `${basePath}${admin}${logoutRoute}`,
18
+ href: formatAdminURL({
19
+ adminRoute,
20
+ path: logoutRoute
21
+ }),
19
22
  tabIndex: tabIndex,
20
23
  children: /*#__PURE__*/ _jsx(LogOutIcon, {})
21
24
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'nav'\n\nconst DefaultLogout: React.FC<{\n Link: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex }) => {\n const { t } = useTranslation()\n const config = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin },\n } = config\n\n const basePath = process.env.NEXT_BASE_PATH ?? ''\n\n const LinkElement = Link || 'a'\n\n return (\n <LinkElement\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={`${basePath}${admin}${logoutRoute}`}\n tabIndex={tabIndex}\n >\n <LogOutIcon />\n </LinkElement>\n )\n}\n\nexport const Logout: React.FC<{\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex = 0 }) => {\n const {\n componentMap: { LogoutButton: CustomLogout },\n } = useComponentMap()\n\n if (CustomLogout) {\n return <Fragment>{CustomLogout}</Fragment>\n }\n\n return <DefaultLogout Link={Link} tabIndex={tabIndex} />\n}\n"],"names":["React","Fragment","LogOutIcon","useComponentMap","useConfig","useTranslation","baseClass","DefaultLogout","Link","tabIndex","t","config","admin","routes","logout","logoutRoute","basePath","process","env","NEXT_BASE_PATH","LinkElement","aria-label","className","href","Logout","componentMap","LogoutButton","CustomLogout"],"mappings":"AAAA;;AACA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,MAAMC,YAAY;AAElB,MAAMC,gBAGD,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IACtB,MAAM,EAAEC,CAAC,EAAE,GAAGL;IACd,MAAMM,SAASP;IAEf,MAAM,EACJQ,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,KAAK,EAAE,EAClB,GAAGD;IAEJ,MAAMK,WAAWC,QAAQC,GAAG,CAACC,cAAc,IAAI;IAE/C,MAAMC,cAAcZ,QAAQ;IAE5B,qBACE,KAACY;QACCC,cAAYX,EAAE;QACdY,WAAW,CAAC,EAAEhB,UAAU,SAAS,CAAC;QAClCiB,MAAM,CAAC,EAAEP,SAAS,EAAEJ,MAAM,EAAEG,YAAY,CAAC;QACzCN,UAAUA;kBAEV,cAAA,KAACP;;AAGP;AAEA,OAAO,MAAMsB,SAGR,CAAC,EAAEhB,IAAI,EAAEC,WAAW,CAAC,EAAE;IAC1B,MAAM,EACJgB,cAAc,EAAEC,cAAcC,YAAY,EAAE,EAC7C,GAAGxB;IAEJ,IAAIwB,cAAc;QAChB,qBAAO,KAAC1B;sBAAU0B;;IACpB;IAEA,qBAAO,KAACpB;QAAcC,MAAMA;QAAMC,UAAUA;;AAC9C,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\n\nconst baseClass = 'nav'\n\nconst DefaultLogout: React.FC<{\n Link: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex }) => {\n const { t } = useTranslation()\n const config = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const LinkElement = Link || 'a'\n\n return (\n <LinkElement\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n })}\n tabIndex={tabIndex}\n >\n <LogOutIcon />\n </LinkElement>\n )\n}\n\nexport const Logout: React.FC<{\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex = 0 }) => {\n const {\n componentMap: { LogoutButton: CustomLogout },\n } = useComponentMap()\n\n if (CustomLogout) {\n return <Fragment>{CustomLogout}</Fragment>\n }\n\n return <DefaultLogout Link={Link} tabIndex={tabIndex} />\n}\n"],"names":["React","Fragment","LogOutIcon","useComponentMap","useConfig","useTranslation","formatAdminURL","baseClass","DefaultLogout","Link","tabIndex","t","config","admin","routes","logout","logoutRoute","adminRoute","LinkElement","aria-label","className","href","path","Logout","componentMap","LogoutButton","CustomLogout"],"mappings":"AAAA;;AACA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAElE,MAAMC,YAAY;AAElB,MAAMC,gBAGD,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IACtB,MAAM,EAAEC,CAAC,EAAE,GAAGN;IACd,MAAMO,SAASR;IAEf,MAAM,EACJS,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGL;IAEJ,MAAMM,cAAcT,QAAQ;IAE5B,qBACE,KAACS;QACCC,cAAYR,EAAE;QACdS,WAAW,CAAC,EAAEb,UAAU,SAAS,CAAC;QAClCc,MAAMf,eAAe;YACnBW;YACAK,MAAMN;QACR;QACAN,UAAUA;kBAEV,cAAA,KAACR;;AAGP;AAEA,OAAO,MAAMqB,SAGR,CAAC,EAAEd,IAAI,EAAEC,WAAW,CAAC,EAAE;IAC1B,MAAM,EACJc,cAAc,EAAEC,cAAcC,YAAY,EAAE,EAC7C,GAAGvB;IAEJ,IAAIuB,cAAc;QAChB,qBAAO,KAACzB;sBAAUyB;;IACpB;IAEA,qBAAO,KAAClB;QAAcC,MAAMA;QAAMC,UAAUA;;AAC9C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EA4CrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAkDrC,CAAA"}