@payloadcms/ui 3.59.0-internal.152bf35 → 3.59.0-internal.3d25465

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 (38) hide show
  1. package/dist/elements/DocumentLocked/index.js +1 -1
  2. package/dist/elements/DocumentLocked/index.js.map +1 -1
  3. package/dist/elements/Nav/context.d.ts +6 -0
  4. package/dist/elements/Nav/context.d.ts.map +1 -1
  5. package/dist/elements/Nav/context.js +6 -0
  6. package/dist/elements/Nav/context.js.map +1 -1
  7. package/dist/elements/PageControls/index.d.ts +9 -0
  8. package/dist/elements/PageControls/index.d.ts.map +1 -1
  9. package/dist/elements/PageControls/index.js +101 -45
  10. package/dist/elements/PageControls/index.js.map +1 -1
  11. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  12. package/dist/elements/RelationshipTable/index.js +3 -2
  13. package/dist/elements/RelationshipTable/index.js.map +1 -1
  14. package/dist/elements/StickyToolbar/index.d.ts +3 -0
  15. package/dist/elements/StickyToolbar/index.d.ts.map +1 -1
  16. package/dist/elements/StickyToolbar/index.js +3 -0
  17. package/dist/elements/StickyToolbar/index.js.map +1 -1
  18. package/dist/elements/Table/index.scss +1 -0
  19. package/dist/exports/client/index.d.ts +4 -1
  20. package/dist/exports/client/index.d.ts.map +1 -1
  21. package/dist/exports/client/index.js +12 -12
  22. package/dist/exports/client/index.js.map +4 -4
  23. package/dist/fields/Upload/RelationshipContent/index.js +1 -1
  24. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  25. package/dist/hooks/useControllableState.d.ts +2 -0
  26. package/dist/hooks/useControllableState.d.ts.map +1 -1
  27. package/dist/hooks/useControllableState.js +44 -11
  28. package/dist/hooks/useControllableState.js.map +1 -1
  29. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  30. package/dist/providers/LivePreview/index.js +3 -0
  31. package/dist/providers/LivePreview/index.js.map +1 -1
  32. package/dist/styles.css +1 -1
  33. package/dist/utilities/getColumns.js +1 -1
  34. package/dist/utilities/getColumns.js.map +1 -1
  35. package/dist/views/Edit/index.d.ts.map +1 -1
  36. package/dist/views/Edit/index.js +5 -1
  37. package/dist/views/Edit/index.js.map +1 -1
  38. package/package.json +5 -5
@@ -23,7 +23,7 @@ const formatDate = date => {
23
23
  minute: 'numeric',
24
24
  month: 'short',
25
25
  year: 'numeric'
26
- }).format(date);
26
+ }).format(new Date(date));
27
27
  };
28
28
  export const DocumentLocked = t0 => {
29
29
  const $ = _c(32);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRouteCache","useRouteTransition","useTranslation","isClientUserObject","Button","Modal","useModal","modalSlug","baseClass","formatDate","date","Intl","DateTimeFormat","day","hour","hour12","minute","month","year","format","DocumentLocked","t0","$","handleGoBack","isActive","onReadOnly","onTakeOver","updatedAt","user","closeModal","openModal","t","clearRouteCache","startRouteTransition","t1","t2","t3","t4","t5","email","id","t6","t7","t8","_jsx","className","closeOnBlur","onClose","slug","children","_jsxs","buttonStyle","onClick","size"],"sources":["../../../src/elements/DocumentLocked/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser } from 'payload'\n\nimport React, { useEffect } from 'react'\n\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isClientUserObject } from '../../utilities/isClientUserObject.js'\nimport { Button } from '../Button/index.js'\nimport { Modal, useModal } from '../Modal/index.js'\nimport './index.scss'\n\nconst modalSlug = 'document-locked'\n\nconst baseClass = 'document-locked'\n\nconst formatDate = (date) => {\n if (!date) {\n return ''\n }\n return new Intl.DateTimeFormat('en-US', {\n day: 'numeric',\n hour: 'numeric',\n hour12: true,\n minute: 'numeric',\n month: 'short',\n year: 'numeric',\n }).format(date)\n}\n\nexport const DocumentLocked: React.FC<{\n handleGoBack: () => void\n isActive: boolean\n onReadOnly: () => void\n onTakeOver: () => void\n updatedAt?: null | number\n user?: ClientUser | number | string\n}> = ({ handleGoBack, isActive, onReadOnly, onTakeOver, updatedAt, user }) => {\n const { closeModal, openModal } = useModal()\n const { t } = useTranslation()\n const { clearRouteCache } = useRouteCache()\n const { startRouteTransition } = useRouteTransition()\n\n useEffect(() => {\n if (isActive) {\n openModal(modalSlug)\n } else {\n closeModal(modalSlug)\n }\n }, [isActive, openModal, closeModal])\n\n return (\n <Modal\n className={baseClass}\n // Fixes https://github.com/payloadcms/payload/issues/13778\n closeOnBlur={false}\n onClose={() => {\n startRouteTransition(() => handleGoBack())\n }}\n slug={modalSlug}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:documentLocked')}</h1>\n <p>\n <strong>\n {isClientUserObject(user) ? (user.email ?? user.id) : `${t('general:user')}: ${user}`}\n </strong>{' '}\n {t('general:currentlyEditing')}\n </p>\n <p>\n {t('general:editedSince')} <strong>{formatDate(updatedAt)}</strong>\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id={`${modalSlug}-go-back`}\n onClick={() => {\n startRouteTransition(() => handleGoBack())\n }}\n size=\"large\"\n >\n {t('general:goBack')}\n </Button>\n <Button\n buttonStyle=\"secondary\"\n id={`${modalSlug}-view-read-only`}\n onClick={() => {\n onReadOnly()\n closeModal(modalSlug)\n clearRouteCache()\n }}\n size=\"large\"\n >\n {t('general:viewReadOnly')}\n </Button>\n <Button\n buttonStyle=\"primary\"\n id={`${modalSlug}-take-over`}\n onClick={() => {\n onTakeOver()\n closeModal(modalSlug)\n }}\n size=\"large\"\n >\n {t('general:takeOver')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRouteCache","useRouteTransition","useTranslation","isClientUserObject","Button","Modal","useModal","modalSlug","baseClass","formatDate","date","Intl","DateTimeFormat","day","hour","hour12","minute","month","year","format","Date","DocumentLocked","t0","$","handleGoBack","isActive","onReadOnly","onTakeOver","updatedAt","user","closeModal","openModal","t","clearRouteCache","startRouteTransition","t1","t2","t3","t4","t5","email","id","t6","t7","t8","_jsx","className","closeOnBlur","onClose","slug","children","_jsxs","buttonStyle","onClick","size"],"sources":["../../../src/elements/DocumentLocked/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser } from 'payload'\n\nimport React, { useEffect } from 'react'\n\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isClientUserObject } from '../../utilities/isClientUserObject.js'\nimport { Button } from '../Button/index.js'\nimport { Modal, useModal } from '../Modal/index.js'\nimport './index.scss'\n\nconst modalSlug = 'document-locked'\n\nconst baseClass = 'document-locked'\n\nconst formatDate = (date) => {\n if (!date) {\n return ''\n }\n return new Intl.DateTimeFormat('en-US', {\n day: 'numeric',\n hour: 'numeric',\n hour12: true,\n minute: 'numeric',\n month: 'short',\n year: 'numeric',\n }).format(new Date(date))\n}\n\nexport const DocumentLocked: React.FC<{\n handleGoBack: () => void\n isActive: boolean\n onReadOnly: () => void\n onTakeOver: () => void\n updatedAt?: null | number\n user?: ClientUser | number | string\n}> = ({ handleGoBack, isActive, onReadOnly, onTakeOver, updatedAt, user }) => {\n const { closeModal, openModal } = useModal()\n const { t } = useTranslation()\n const { clearRouteCache } = useRouteCache()\n const { startRouteTransition } = useRouteTransition()\n\n useEffect(() => {\n if (isActive) {\n openModal(modalSlug)\n } else {\n closeModal(modalSlug)\n }\n }, [isActive, openModal, closeModal])\n\n return (\n <Modal\n className={baseClass}\n // Fixes https://github.com/payloadcms/payload/issues/13778\n closeOnBlur={false}\n onClose={() => {\n startRouteTransition(() => handleGoBack())\n }}\n slug={modalSlug}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:documentLocked')}</h1>\n <p>\n <strong>\n {isClientUserObject(user) ? (user.email ?? user.id) : `${t('general:user')}: ${user}`}\n </strong>{' '}\n {t('general:currentlyEditing')}\n </p>\n <p>\n {t('general:editedSince')} <strong>{formatDate(updatedAt)}</strong>\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id={`${modalSlug}-go-back`}\n onClick={() => {\n startRouteTransition(() => handleGoBack())\n }}\n size=\"large\"\n >\n {t('general:goBack')}\n </Button>\n <Button\n buttonStyle=\"secondary\"\n id={`${modalSlug}-view-read-only`}\n onClick={() => {\n onReadOnly()\n closeModal(modalSlug)\n clearRouteCache()\n }}\n size=\"large\"\n >\n {t('general:viewReadOnly')}\n </Button>\n <Button\n buttonStyle=\"primary\"\n id={`${modalSlug}-take-over`}\n onClick={() => {\n onTakeOver()\n closeModal(modalSlug)\n }}\n size=\"large\"\n >\n {t('general:takeOver')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,8 +6,14 @@ type NavContextType = {
6
6
  setNavOpen: (value: boolean) => void;
7
7
  shouldAnimate: boolean;
8
8
  };
9
+ /**
10
+ * @internal
11
+ */
9
12
  export declare const NavContext: React.Context<NavContextType>;
10
13
  export declare const useNav: () => NavContextType;
14
+ /**
15
+ * @internal
16
+ */
11
17
  export declare const NavProvider: React.FC<{
12
18
  children: React.ReactNode;
13
19
  initialIsOpen?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,UAAU,+BAMrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAA8B,CAAA;AAYjD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAkFA,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,+BAMrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAA8B,CAAA;AAYjD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAkFA,CAAA"}
@@ -5,6 +5,9 @@ import { useWindowInfo } from '@faceless-ui/window-info';
5
5
  import { usePathname } from 'next/navigation.js';
6
6
  import React, { useEffect, useRef } from 'react';
7
7
  import { usePreferences } from '../../providers/Preferences/index.js';
8
+ /**
9
+ * @internal
10
+ */
8
11
  export const NavContext = /*#__PURE__*/React.createContext({
9
12
  hydrated: false,
10
13
  navOpen: true,
@@ -22,6 +25,9 @@ const getNavPreference = async getPreference => {
22
25
  return true;
23
26
  }
24
27
  };
28
+ /**
29
+ * @internal
30
+ */
25
31
  export const NavProvider = ({
26
32
  children,
27
33
  initialIsOpen
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["useWindowInfo","usePathname","React","useEffect","useRef","usePreferences","NavContext","createContext","hydrated","navOpen","navRef","setNavOpen","shouldAnimate","useNav","use","getNavPreference","getPreference","navPrefs","preferredState","open","NavProvider","children","initialIsOpen","breakpoints","l","largeBreak","m","midBreak","s","smallBreak","pathname","useState","setShouldAnimate","setHydrated","setNavFromPreferences","current","style","overscrollBehavior","timeout","setTimeout","clearTimeout","_jsx","value"],"sources":["../../../src/elements/Nav/context.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { usePathname } from 'next/navigation.js'\nimport React, { useEffect, useRef } from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\n\ntype NavContextType = {\n hydrated: boolean\n navOpen: boolean\n navRef: React.RefObject<HTMLDivElement | null>\n setNavOpen: (value: boolean) => void\n shouldAnimate: boolean\n}\n\nexport const NavContext = React.createContext<NavContextType>({\n hydrated: false,\n navOpen: true,\n navRef: null,\n setNavOpen: () => {},\n shouldAnimate: false,\n})\n\nexport const useNav = () => React.use(NavContext)\n\nconst getNavPreference = async (getPreference): Promise<boolean> => {\n const navPrefs = await getPreference('nav')\n const preferredState = navPrefs?.open\n if (typeof preferredState === 'boolean') {\n return preferredState\n } else {\n return true\n }\n}\n\nexport const NavProvider: React.FC<{\n children: React.ReactNode\n initialIsOpen?: boolean\n}> = ({ children, initialIsOpen }) => {\n const {\n breakpoints: { l: largeBreak, m: midBreak, s: smallBreak },\n } = useWindowInfo()\n\n const pathname = usePathname()\n\n const { getPreference } = usePreferences()\n const navRef = useRef(null)\n\n // initialize the nav to be closed\n // this is because getting the preference is async\n // so instead of closing it after the preference is loaded\n // we will open it after the preference is loaded\n const [navOpen, setNavOpen] = React.useState(initialIsOpen)\n\n const [shouldAnimate, setShouldAnimate] = React.useState(false)\n const [hydrated, setHydrated] = React.useState(false)\n\n // on load check the user's preference and set \"initial\" state\n useEffect(() => {\n if (largeBreak === false) {\n const setNavFromPreferences = async () => {\n const preferredState = await getNavPreference(getPreference)\n setNavOpen(preferredState)\n }\n\n void setNavFromPreferences()\n }\n }, [largeBreak, getPreference, setNavOpen])\n\n // on smaller screens where the nav is a modal\n // close the nav when the user navigates away\n useEffect(() => {\n if (smallBreak === true) {\n setNavOpen(false)\n }\n }, [pathname])\n\n // on open and close, lock the body scroll\n // do not do this on desktop, the sidebar is not a modal\n useEffect(() => {\n if (navRef.current) {\n if (navOpen && midBreak) {\n navRef.current.style.overscrollBehavior = 'contain'\n } else {\n navRef.current.style.overscrollBehavior = 'auto'\n }\n }\n }, [navOpen, midBreak])\n\n // on smaller screens where the nav is a modal\n // close the nav when the user resizes down to mobile\n // the sidebar is a modal on mobile\n useEffect(() => {\n if (largeBreak === true || midBreak === true || smallBreak === true) {\n setNavOpen(false)\n }\n setHydrated(true)\n\n const timeout = setTimeout(() => {\n setShouldAnimate(true)\n }, 100)\n return () => {\n clearTimeout(timeout)\n }\n }, [largeBreak, midBreak, smallBreak])\n\n // when the component unmounts, clear all body scroll locks\n useEffect(() => {\n return () => {\n if (navRef.current) {\n navRef.current.style.overscrollBehavior = 'auto'\n }\n }\n }, [])\n\n return (\n <NavContext value={{ hydrated, navOpen, navRef, setNavOpen, shouldAnimate }}>\n {children}\n </NavContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["useWindowInfo","usePathname","React","useEffect","useRef","usePreferences","NavContext","createContext","hydrated","navOpen","navRef","setNavOpen","shouldAnimate","useNav","use","getNavPreference","getPreference","navPrefs","preferredState","open","NavProvider","children","initialIsOpen","breakpoints","l","largeBreak","m","midBreak","s","smallBreak","pathname","useState","setShouldAnimate","setHydrated","setNavFromPreferences","current","style","overscrollBehavior","timeout","setTimeout","clearTimeout","_jsx","value"],"sources":["../../../src/elements/Nav/context.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { usePathname } from 'next/navigation.js'\nimport React, { useEffect, useRef } from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\n\ntype NavContextType = {\n hydrated: boolean\n navOpen: boolean\n navRef: React.RefObject<HTMLDivElement | null>\n setNavOpen: (value: boolean) => void\n shouldAnimate: boolean\n}\n\n/**\n * @internal\n */\nexport const NavContext = React.createContext<NavContextType>({\n hydrated: false,\n navOpen: true,\n navRef: null,\n setNavOpen: () => {},\n shouldAnimate: false,\n})\n\nexport const useNav = () => React.use(NavContext)\n\nconst getNavPreference = async (getPreference): Promise<boolean> => {\n const navPrefs = await getPreference('nav')\n const preferredState = navPrefs?.open\n if (typeof preferredState === 'boolean') {\n return preferredState\n } else {\n return true\n }\n}\n\n/**\n * @internal\n */\nexport const NavProvider: React.FC<{\n children: React.ReactNode\n initialIsOpen?: boolean\n}> = ({ children, initialIsOpen }) => {\n const {\n breakpoints: { l: largeBreak, m: midBreak, s: smallBreak },\n } = useWindowInfo()\n\n const pathname = usePathname()\n\n const { getPreference } = usePreferences()\n const navRef = useRef(null)\n\n // initialize the nav to be closed\n // this is because getting the preference is async\n // so instead of closing it after the preference is loaded\n // we will open it after the preference is loaded\n const [navOpen, setNavOpen] = React.useState(initialIsOpen)\n\n const [shouldAnimate, setShouldAnimate] = React.useState(false)\n const [hydrated, setHydrated] = React.useState(false)\n\n // on load check the user's preference and set \"initial\" state\n useEffect(() => {\n if (largeBreak === false) {\n const setNavFromPreferences = async () => {\n const preferredState = await getNavPreference(getPreference)\n setNavOpen(preferredState)\n }\n\n void setNavFromPreferences()\n }\n }, [largeBreak, getPreference, setNavOpen])\n\n // on smaller screens where the nav is a modal\n // close the nav when the user navigates away\n useEffect(() => {\n if (smallBreak === true) {\n setNavOpen(false)\n }\n }, [pathname])\n\n // on open and close, lock the body scroll\n // do not do this on desktop, the sidebar is not a modal\n useEffect(() => {\n if (navRef.current) {\n if (navOpen && midBreak) {\n navRef.current.style.overscrollBehavior = 'contain'\n } else {\n navRef.current.style.overscrollBehavior = 'auto'\n }\n }\n }, [navOpen, midBreak])\n\n // on smaller screens where the nav is a modal\n // close the nav when the user resizes down to mobile\n // the sidebar is a modal on mobile\n useEffect(() => {\n if (largeBreak === true || midBreak === true || smallBreak === true) {\n setNavOpen(false)\n }\n setHydrated(true)\n\n const timeout = setTimeout(() => {\n setShouldAnimate(true)\n }, 100)\n return () => {\n clearTimeout(timeout)\n }\n }, [largeBreak, midBreak, smallBreak])\n\n // when the component unmounts, clear all body scroll locks\n useEffect(() => {\n return () => {\n if (navRef.current) {\n navRef.current.style.overscrollBehavior = 'auto'\n }\n }\n }, [])\n\n return (\n <NavContext value={{ hydrated, navOpen, navRef, setNavOpen, shouldAnimate }}>\n {children}\n </NavContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,9 @@ import type { ClientCollectionConfig, PaginatedDocs } from 'payload';
2
2
  import React from 'react';
3
3
  import type { IListQueryContext } from '../../providers/ListQuery/types.js';
4
4
  import './index.scss';
5
+ /**
6
+ * @internal
7
+ */
5
8
  export declare const PageControlsComponent: React.FC<{
6
9
  AfterPageControls?: React.ReactNode;
7
10
  collectionConfig: ClientCollectionConfig;
@@ -10,6 +13,12 @@ export declare const PageControlsComponent: React.FC<{
10
13
  handlePerPageChange?: IListQueryContext['handlePerPageChange'];
11
14
  limit?: number;
12
15
  }>;
16
+ /**
17
+ * These page controls are controlled by the global ListQuery state.
18
+ * To override thi behavior, build your own wrapper around PageControlsComponent.
19
+ *
20
+ * @internal
21
+ */
13
22
  export declare const PageControls: React.FC<{
14
23
  AfterPageControls?: React.ReactNode;
15
24
  collectionConfig: ClientCollectionConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PageControls/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGpE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAM3E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;IACxD,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CA2CA,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,gBAAgB,EAAE,sBAAsB,CAAA;CACzC,CAmBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PageControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGpE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAM3E,OAAO,cAAc,CAAA;AAIrB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;IACxD,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CA2CA,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,gBAAgB,EAAE,sBAAsB,CAAA;CACzC,CAmBA,CAAA"}
@@ -1,3 +1,6 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
1
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
5
  import { isNumber } from 'payload/shared';
3
6
  import React, { Fragment } from 'react';
@@ -7,50 +10,81 @@ import { useListQuery } from '../../providers/ListQuery/context.js';
7
10
  import { useTranslation } from '../../providers/Translation/index.js';
8
11
  import './index.scss';
9
12
  const baseClass = 'page-controls';
10
- export const PageControlsComponent = ({
11
- AfterPageControls,
12
- collectionConfig,
13
- data,
14
- handlePageChange,
15
- handlePerPageChange,
16
- limit
17
- }) => {
13
+ /**
14
+ * @internal
15
+ */
16
+ export const PageControlsComponent = t0 => {
17
+ const $ = _c(16);
18
+ const {
19
+ AfterPageControls,
20
+ collectionConfig,
21
+ data,
22
+ handlePageChange,
23
+ handlePerPageChange,
24
+ limit
25
+ } = t0;
18
26
  const {
19
27
  i18n
20
28
  } = useTranslation();
21
- return /*#__PURE__*/_jsxs("div", {
22
- className: baseClass,
23
- children: [/*#__PURE__*/_jsx(Pagination, {
24
- hasNextPage: data.hasNextPage,
25
- hasPrevPage: data.hasPrevPage,
26
- limit: data.limit,
27
- nextPage: data.nextPage,
28
- numberOfNeighbors: 1,
29
- onChange: handlePageChange,
30
- page: data.page,
31
- prevPage: data.prevPage,
32
- totalPages: data.totalPages
33
- }), data.totalDocs > 0 && /*#__PURE__*/_jsxs(Fragment, {
34
- children: [/*#__PURE__*/_jsxs("div", {
35
- className: `${baseClass}__page-info`,
36
- children: [data.page * data.limit - (data.limit - 1), "-", data.totalPages > 1 && data.totalPages !== data.page ? data.limit * data.page : data.totalDocs, ' ', i18n.t('general:of'), " ", data.totalDocs]
37
- }), /*#__PURE__*/_jsx(PerPage, {
38
- handleChange: handlePerPageChange,
39
- limit: limit,
40
- limits: collectionConfig?.admin?.pagination?.limits,
41
- resetPage: data.totalDocs <= data.pagingCounter
42
- }), AfterPageControls]
43
- })]
44
- });
29
+ let t1;
30
+ if ($[0] !== AfterPageControls || $[1] !== collectionConfig?.admin?.pagination?.limits || $[2] !== data.hasNextPage || $[3] !== data.hasPrevPage || $[4] !== data.limit || $[5] !== data.nextPage || $[6] !== data.page || $[7] !== data.pagingCounter || $[8] !== data.prevPage || $[9] !== data.totalDocs || $[10] !== data.totalPages || $[11] !== handlePageChange || $[12] !== handlePerPageChange || $[13] !== i18n || $[14] !== limit) {
31
+ t1 = _jsxs("div", {
32
+ className: baseClass,
33
+ children: [_jsx(Pagination, {
34
+ hasNextPage: data.hasNextPage,
35
+ hasPrevPage: data.hasPrevPage,
36
+ limit: data.limit,
37
+ nextPage: data.nextPage,
38
+ numberOfNeighbors: 1,
39
+ onChange: handlePageChange,
40
+ page: data.page,
41
+ prevPage: data.prevPage,
42
+ totalPages: data.totalPages
43
+ }), data.totalDocs > 0 && _jsxs(Fragment, {
44
+ children: [_jsxs("div", {
45
+ className: `${baseClass}__page-info`,
46
+ children: [data.page * data.limit - (data.limit - 1), "-", data.totalPages > 1 && data.totalPages !== data.page ? data.limit * data.page : data.totalDocs, " ", i18n.t("general:of"), " ", data.totalDocs]
47
+ }), _jsx(PerPage, {
48
+ handleChange: handlePerPageChange,
49
+ limit,
50
+ limits: collectionConfig?.admin?.pagination?.limits,
51
+ resetPage: data.totalDocs <= data.pagingCounter
52
+ }), AfterPageControls]
53
+ })]
54
+ });
55
+ $[0] = AfterPageControls;
56
+ $[1] = collectionConfig?.admin?.pagination?.limits;
57
+ $[2] = data.hasNextPage;
58
+ $[3] = data.hasPrevPage;
59
+ $[4] = data.limit;
60
+ $[5] = data.nextPage;
61
+ $[6] = data.page;
62
+ $[7] = data.pagingCounter;
63
+ $[8] = data.prevPage;
64
+ $[9] = data.totalDocs;
65
+ $[10] = data.totalPages;
66
+ $[11] = handlePageChange;
67
+ $[12] = handlePerPageChange;
68
+ $[13] = i18n;
69
+ $[14] = limit;
70
+ $[15] = t1;
71
+ } else {
72
+ t1 = $[15];
73
+ }
74
+ return t1;
45
75
  };
46
- /*
76
+ /**
47
77
  * These page controls are controlled by the global ListQuery state.
48
78
  * To override thi behavior, build your own wrapper around PageControlsComponent.
79
+ *
80
+ * @internal
49
81
  */
50
- export const PageControls = ({
51
- AfterPageControls,
52
- collectionConfig
53
- }) => {
82
+ export const PageControls = t0 => {
83
+ const $ = _c(10);
84
+ const {
85
+ AfterPageControls,
86
+ collectionConfig
87
+ } = t0;
54
88
  const {
55
89
  data,
56
90
  defaultLimit: initialLimit,
@@ -58,13 +92,35 @@ export const PageControls = ({
58
92
  handlePerPageChange,
59
93
  query
60
94
  } = useListQuery();
61
- return /*#__PURE__*/_jsx(PageControlsComponent, {
62
- AfterPageControls: AfterPageControls,
63
- collectionConfig: collectionConfig,
64
- data: data,
65
- handlePageChange: handlePageChange,
66
- handlePerPageChange: handlePerPageChange,
67
- limit: isNumber(query.limit) ? query.limit : initialLimit
68
- });
95
+ let t1;
96
+ if ($[0] !== initialLimit || $[1] !== query.limit) {
97
+ t1 = isNumber(query.limit) ? query.limit : initialLimit;
98
+ $[0] = initialLimit;
99
+ $[1] = query.limit;
100
+ $[2] = t1;
101
+ } else {
102
+ t1 = $[2];
103
+ }
104
+ let t2;
105
+ if ($[3] !== AfterPageControls || $[4] !== collectionConfig || $[5] !== data || $[6] !== handlePageChange || $[7] !== handlePerPageChange || $[8] !== t1) {
106
+ t2 = _jsx(PageControlsComponent, {
107
+ AfterPageControls,
108
+ collectionConfig,
109
+ data,
110
+ handlePageChange,
111
+ handlePerPageChange,
112
+ limit: t1
113
+ });
114
+ $[3] = AfterPageControls;
115
+ $[4] = collectionConfig;
116
+ $[5] = data;
117
+ $[6] = handlePageChange;
118
+ $[7] = handlePerPageChange;
119
+ $[8] = t1;
120
+ $[9] = t2;
121
+ } else {
122
+ t2 = $[9];
123
+ }
124
+ return t2;
69
125
  };
70
126
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isNumber","React","Fragment","Pagination","PerPage","useListQuery","useTranslation","baseClass","PageControlsComponent","AfterPageControls","collectionConfig","data","handlePageChange","handlePerPageChange","limit","i18n","_jsxs","className","_jsx","hasNextPage","hasPrevPage","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","totalDocs","t","handleChange","limits","admin","pagination","resetPage","pagingCounter","PageControls","defaultLimit","initialLimit","query"],"sources":["../../../src/elements/PageControls/index.tsx"],"sourcesContent":["import type { ClientCollectionConfig, PaginatedDocs } from 'payload'\n\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { IListQueryContext } from '../../providers/ListQuery/types.js'\n\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { useListQuery } from '../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'page-controls'\n\nexport const PageControlsComponent: React.FC<{\n AfterPageControls?: React.ReactNode\n collectionConfig: ClientCollectionConfig\n data: PaginatedDocs\n handlePageChange?: IListQueryContext['handlePageChange']\n handlePerPageChange?: IListQueryContext['handlePerPageChange']\n limit?: number\n}> = ({\n AfterPageControls,\n collectionConfig,\n data,\n handlePageChange,\n handlePerPageChange,\n limit,\n}) => {\n const { i18n } = useTranslation()\n\n return (\n <div className={baseClass}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={limit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {AfterPageControls}\n </Fragment>\n )}\n </div>\n )\n}\n\n/*\n * These page controls are controlled by the global ListQuery state.\n * To override thi behavior, build your own wrapper around PageControlsComponent.\n */\nexport const PageControls: React.FC<{\n AfterPageControls?: React.ReactNode\n collectionConfig: ClientCollectionConfig\n}> = ({ AfterPageControls, collectionConfig }) => {\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n return (\n <PageControlsComponent\n AfterPageControls={AfterPageControls}\n collectionConfig={collectionConfig}\n data={data}\n handlePageChange={handlePageChange}\n handlePerPageChange={handlePerPageChange}\n limit={isNumber(query.limit) ? query.limit : initialLimit}\n />\n )\n}\n"],"mappings":";AAEA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,qBAAA,GAORA,CAAC;EACJC,iBAAiB;EACjBC,gBAAgB;EAChBC,IAAI;EACJC,gBAAgB;EAChBC,mBAAmB;EACnBC;AAAK,CACN;EACC,MAAM;IAAEC;EAAI,CAAE,GAAGT,cAAA;EAEjB,oBACEU,KAAA,CAAC;IAAIC,SAAA,EAAWV,SAAA;4BACdW,IAAA,CAACf,UAAA;MACCgB,WAAA,EAAaR,IAAA,CAAKQ,WAAW;MAC7BC,WAAA,EAAaT,IAAA,CAAKS,WAAW;MAC7BN,KAAA,EAAOH,IAAA,CAAKG,KAAK;MACjBO,QAAA,EAAUV,IAAA,CAAKU,QAAQ;MACvBC,iBAAA,EAAmB;MACnBC,QAAA,EAAUX,gBAAA;MACVY,IAAA,EAAMb,IAAA,CAAKa,IAAI;MACfC,QAAA,EAAUd,IAAA,CAAKc,QAAQ;MACvBC,UAAA,EAAYf,IAAA,CAAKe;QAElBf,IAAA,CAAKgB,SAAS,GAAG,kBAChBX,KAAA,CAACd,QAAA;8BACCc,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGV,SAAA,aAAsB;mBACtCI,IAAA,CAAKa,IAAI,GAAGb,IAAA,CAAKG,KAAK,IAAIH,IAAA,CAAKG,KAAK,GAAG,IAAG,KAC1CH,IAAA,CAAKe,UAAU,GAAG,KAAKf,IAAA,CAAKe,UAAU,KAAKf,IAAA,CAAKa,IAAI,GACjDb,IAAA,CAAKG,KAAK,GAAGH,IAAA,CAAKa,IAAI,GACtBb,IAAA,CAAKgB,SAAS,EAAE,KACnBZ,IAAA,CAAKa,CAAC,CAAC,eAAc,KAAEjB,IAAA,CAAKgB,SAAS;uBAExCT,IAAA,CAACd,OAAA;QACCyB,YAAA,EAAchB,mBAAA;QACdC,KAAA,EAAOA,KAAA;QACPgB,MAAA,EAAQpB,gBAAA,EAAkBqB,KAAA,EAAOC,UAAA,EAAYF,MAAA;QAC7CG,SAAA,EAAWtB,IAAA,CAAKgB,SAAS,IAAIhB,IAAA,CAAKuB;UAEnCzB,iBAAA;;;AAKX;AAEA;;;;AAIA,OAAO,MAAM0B,YAAA,GAGRA,CAAC;EAAE1B,iBAAiB;EAAEC;AAAgB,CAAE;EAC3C,MAAM;IACJC,IAAI;IACJyB,YAAA,EAAcC,YAAY;IAC1BzB,gBAAgB;IAChBC,mBAAmB;IACnByB;EAAK,CACN,GAAGjC,YAAA;EAEJ,oBACEa,IAAA,CAACV,qBAAA;IACCC,iBAAA,EAAmBA,iBAAA;IACnBC,gBAAA,EAAkBA,gBAAA;IAClBC,IAAA,EAAMA,IAAA;IACNC,gBAAA,EAAkBA,gBAAA;IAClBC,mBAAA,EAAqBA,mBAAA;IACrBC,KAAA,EAAOd,QAAA,CAASsC,KAAA,CAAMxB,KAAK,IAAIwB,KAAA,CAAMxB,KAAK,GAAGuB;;AAGnD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","isNumber","React","Fragment","Pagination","PerPage","useListQuery","useTranslation","baseClass","PageControlsComponent","t0","$","AfterPageControls","collectionConfig","data","handlePageChange","handlePerPageChange","limit","i18n","t1","admin","pagination","limits","hasNextPage","hasPrevPage","nextPage","page","pagingCounter","prevPage","totalDocs","totalPages","_jsxs","className","children","_jsx","numberOfNeighbors","onChange","t","handleChange","resetPage","PageControls","defaultLimit","initialLimit","query","t2"],"sources":["../../../src/elements/PageControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, PaginatedDocs } from 'payload'\n\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { IListQueryContext } from '../../providers/ListQuery/types.js'\n\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { useListQuery } from '../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'page-controls'\n\n/**\n * @internal\n */\nexport const PageControlsComponent: React.FC<{\n AfterPageControls?: React.ReactNode\n collectionConfig: ClientCollectionConfig\n data: PaginatedDocs\n handlePageChange?: IListQueryContext['handlePageChange']\n handlePerPageChange?: IListQueryContext['handlePerPageChange']\n limit?: number\n}> = ({\n AfterPageControls,\n collectionConfig,\n data,\n handlePageChange,\n handlePerPageChange,\n limit,\n}) => {\n const { i18n } = useTranslation()\n\n return (\n <div className={baseClass}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={limit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {AfterPageControls}\n </Fragment>\n )}\n </div>\n )\n}\n\n/**\n * These page controls are controlled by the global ListQuery state.\n * To override thi behavior, build your own wrapper around PageControlsComponent.\n *\n * @internal\n */\nexport const PageControls: React.FC<{\n AfterPageControls?: React.ReactNode\n collectionConfig: ClientCollectionConfig\n}> = ({ AfterPageControls, collectionConfig }) => {\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n return (\n <PageControlsComponent\n AfterPageControls={AfterPageControls}\n collectionConfig={collectionConfig}\n data={data}\n handlePageChange={handlePageChange}\n handlePerPageChange={handlePerPageChange}\n limit={isNumber(query.limit) ? query.limit : initialLimit}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAIrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEhD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAiVvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAIrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEhD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAuVvE,CAAA"}
@@ -99,6 +99,7 @@ export const RelationshipTable = props => {
99
99
  accessor,
100
100
  active: true
101
101
  })) : undefined;
102
+ const renderRowTypes = typeof field.admin.disableRowTypes === 'boolean' ? !field.admin.disableRowTypes : Array.isArray(relationTo);
102
103
  const {
103
104
  data: newData,
104
105
  state: newColumnState,
@@ -111,14 +112,14 @@ export const RelationshipTable = props => {
111
112
  orderableFieldName: !field.orderable || Array.isArray(field.collection) ? undefined : `_${field.collection}_${field.name}_order`,
112
113
  parent,
113
114
  query: newQuery,
114
- renderRowTypes: true,
115
+ renderRowTypes,
115
116
  tableAppearance: 'condensed'
116
117
  });
117
118
  setData(newData);
118
119
  setTable(NewTable);
119
120
  setColumnState(newColumnState);
120
121
  setIsLoadingTable(false);
121
- }, [field.defaultLimit, field.defaultSort, field.admin.defaultColumns, field.collection, field.name, field.orderable, collectionConfig?.admin?.pagination?.defaultLimit, collectionConfig?.defaultSort, query, filterOptions, getTableState, relationTo, parent]);
122
+ }, [field.defaultLimit, field.defaultSort, field.admin.defaultColumns, field.admin.disableRowTypes, field.collection, field.name, field.orderable, collectionConfig?.admin?.pagination?.defaultLimit, collectionConfig?.defaultSort, query, filterOptions, getTableState, relationTo, parent]);
122
123
  const handleTableRender = useEffectEvent((query, disableTable) => {
123
124
  if (!disableTable && (!Table || query)) {
124
125
  void renderTable();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","Pill","useEffectEvent","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","renderRowTypes","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","_jsxs","className","_jsx","buttonStyle","icon","label","onClick","direction","pillStyle","size","length","labels","plural","singular","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","height","slug","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"none\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ' doc-drawer__toggler'}`}\n collections={config.collections}\n i18n={i18n}\n icon={isPolymorphic ? 'plus' : undefined}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","Pill","useEffectEvent","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","_jsxs","className","_jsx","buttonStyle","icon","label","onClick","direction","pillStyle","size","length","labels","plural","singular","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","height","slug","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.admin.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"none\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ' doc-drawer__toggler'}`}\n collections={config.collections}\n i18n={i18n}\n icon={isPolymorphic ? 'plus' : undefined}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,8 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
+ /**
4
+ * @internal
5
+ */
3
6
  export declare const StickyToolbar: React.FC<{
4
7
  children: React.ReactNode;
5
8
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StickyToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAiE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StickyToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAiE,CAAA"}
@@ -2,6 +2,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import './index.scss';
4
4
  const baseClass = 'sticky-toolbar';
5
+ /**
6
+ * @internal
7
+ */
5
8
  export const StickyToolbar = ({
6
9
  children
7
10
  }) => /*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","baseClass","StickyToolbar","children","_jsx","className"],"sources":["../../../src/elements/StickyToolbar/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'sticky-toolbar'\n\nexport const StickyToolbar: React.FC<{\n children: React.ReactNode\n}> = ({ children }) => <div className={baseClass}>{children}</div>\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAERA,CAAC;EAAEC;AAAQ,CAAE,kBAAKC,IAAA,CAAC;EAAIC,SAAA,EAAWJ,SAAA;YAAYE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","StickyToolbar","children","_jsx","className"],"sources":["../../../src/elements/StickyToolbar/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'sticky-toolbar'\n\n/**\n * @internal\n */\nexport const StickyToolbar: React.FC<{\n children: React.ReactNode\n}> = ({ children }) => <div className={baseClass}>{children}</div>\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB;;;AAGA,OAAO,MAAMC,aAAA,GAERA,CAAC;EAAEC;AAAQ,CAAE,kBAAKC,IAAA,CAAC;EAAIC,SAAA,EAAWJ,SAAA;YAAYE","ignoreList":[]}
@@ -5,6 +5,7 @@
5
5
  margin-bottom: $baseline;
6
6
  overflow: auto;
7
7
  max-width: 100%;
8
+ isolation: isolate;
8
9
 
9
10
  table {
10
11
  min-width: 100%;
@@ -71,6 +71,8 @@ export type { ListDrawerProps, ListTogglerProps, UseListDrawer, } from '../../el
71
71
  export { ListSelection } from '../../views/List/ListSelection/index.js';
72
72
  export { CollectionListHeader as ListHeader } from '../../views/List/ListHeader/index.js';
73
73
  export { GroupByHeader } from '../../views/List/GroupByHeader/index.js';
74
+ export { PageControls, PageControlsComponent } from '../../elements/PageControls/index.js';
75
+ export { StickyToolbar } from '../../elements/StickyToolbar/index.js';
74
76
  export { GroupByPageControls } from '../../elements/PageControls/GroupByPageControls.js';
75
77
  export { LoadingOverlayToggle } from '../../elements/Loading/index.js';
76
78
  export { FormLoadingOverlayToggle } from '../../elements/Loading/index.js';
@@ -78,7 +80,7 @@ export { LoadingOverlay } from '../../elements/Loading/index.js';
78
80
  export { Logout } from '../../elements/Logout/index.js';
79
81
  export { Modal, useModal } from '../../elements/Modal/index.js';
80
82
  export { NavToggler } from '../../elements/Nav/NavToggler/index.js';
81
- export { useNav } from '../../elements/Nav/context.js';
83
+ export { NavContext, NavProvider, useNav } from '../../elements/Nav/context.js';
82
84
  export { NavGroup } from '../../elements/NavGroup/index.js';
83
85
  export { Pagination } from '../../elements/Pagination/index.js';
84
86
  export { PerPage } from '../../elements/PerPage/index.js';
@@ -246,6 +248,7 @@ export type { UploadHandlersContext } from '../../providers/UploadHandlers/index
246
248
  export { defaultTheme, type Theme, ThemeProvider, useTheme } from '../../providers/Theme/index.js';
247
249
  export { TranslationProvider, useTranslation } from '../../providers/Translation/index.js';
248
250
  export { useWindowInfo, WindowInfoProvider } from '../../providers/WindowInfo/index.js';
251
+ export { useControllableState } from '../../hooks/useControllableState.js';
249
252
  export { Text as TextCondition } from '../../elements/WhereBuilder/Condition/Text/index.js';
250
253
  export { Select as SelectCondition } from '../../elements/WhereBuilder/Condition/Select/index.js';
251
254
  export { RelationshipFilter as RelationshipCondition } from '../../elements/WhereBuilder/Condition/Relationship/index.js';