@payloadcms/ui 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  2. package/dist/elements/CopyLocaleData/index.js +4 -3
  3. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  4. package/dist/elements/FieldSelect/index.js +2 -2
  5. package/dist/elements/FieldSelect/index.js.map +1 -1
  6. package/dist/elements/RelationshipTable/index.d.ts +2 -0
  7. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  8. package/dist/elements/RelationshipTable/index.js +35 -31
  9. package/dist/elements/RelationshipTable/index.js.map +1 -1
  10. package/dist/elements/Table/DefaultCell/index.js +2 -2
  11. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  12. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  13. package/dist/elements/TableColumns/buildColumnState.js +5 -2
  14. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  15. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  16. package/dist/elements/WhereBuilder/reduceClientFields.js +2 -2
  17. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  18. package/dist/exports/client/index.js +10 -10
  19. package/dist/exports/client/index.js.map +3 -3
  20. package/dist/fields/Join/index.d.ts.map +1 -1
  21. package/dist/fields/Join/index.js +15 -3
  22. package/dist/fields/Join/index.js.map +1 -1
  23. package/dist/forms/RenderFields/index.js +2 -2
  24. package/dist/forms/RenderFields/index.js.map +1 -1
  25. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  26. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +5 -8
  27. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  28. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  29. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -0
  30. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  31. package/dist/utilities/buildTableState.d.ts.map +1 -1
  32. package/dist/utilities/buildTableState.js.map +1 -1
  33. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  34. package/dist/utilities/copyDataFromLocale.js +11 -4
  35. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  36. package/dist/utilities/formatFields.d.ts.map +1 -1
  37. package/dist/utilities/formatFields.js +2 -2
  38. package/dist/utilities/formatFields.js.map +1 -1
  39. package/dist/utilities/renderTable.d.ts.map +1 -1
  40. package/dist/utilities/renderTable.js +4 -0
  41. package/dist/utilities/renderTable.js.map +1 -1
  42. package/dist/views/Edit/index.js +1 -1
  43. package/dist/views/Edit/index.js.map +1 -1
  44. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAe1C,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAqLlC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAoLlC,CAAA"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
+ import { getTranslation } from '@payloadcms/translations';
5
6
  import { useRouter } from 'next/navigation.js';
6
7
  import React, { useCallback } from 'react';
7
8
  import { toast } from 'sonner';
@@ -16,8 +17,8 @@ import { useTranslation } from '../../providers/Translation/index.js';
16
17
  import { DrawerHeader } from '../BulkUpload/Header/index.js';
17
18
  import { Button } from '../Button/index.js';
18
19
  import { Drawer } from '../Drawer/index.js';
19
- import { PopupList } from '../Popup/index.js';
20
20
  import './index.scss';
21
+ import { PopupList } from '../Popup/index.js';
21
22
  const baseClass = 'copy-locale-data';
22
23
  const drawerSlug = 'copy-locale';
23
24
  export const CopyLocaleData = () => {
@@ -39,6 +40,7 @@ export const CopyLocaleData = () => {
39
40
  globalSlug
40
41
  } = useDocumentInfo();
41
42
  const {
43
+ i18n,
42
44
  t
43
45
  } = useTranslation();
44
46
  const modified = useFormModified();
@@ -56,7 +58,7 @@ export const CopyLocaleData = () => {
56
58
  const localeOptionsWithoutCurrent = localeOptions.filter(locale_0 => locale_0.value !== code);
57
59
  const getLocaleLabel = code_0 => {
58
60
  const locale_1 = localization && localization.locales.find(l => l.code === code_0);
59
- return locale_1 && locale_1.label ? locale_1.label : code_0;
61
+ return locale_1 && locale_1.label ? getTranslation(locale_1.label, i18n) : code_0;
60
62
  };
61
63
  const [copying, setCopying] = React.useState(false);
62
64
  const [toLocale, setToLocale] = React.useState(null);
@@ -64,7 +66,6 @@ export const CopyLocaleData = () => {
64
66
  const [overwriteExisting, setOverwriteExisting] = React.useState(false);
65
67
  React.useEffect(() => {
66
68
  if (fromLocale !== code) {
67
- // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
68
69
  setFromLocale(code);
69
70
  }
70
71
  }, [code, fromLocale]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","useRouter","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","config","localization","routes","admin","serverURL","code","id","collectionSlug","globalSlug","t","modified","toggleModal","copyDataFromLocale","router","localeOptions","locales","map","locale","label","value","localeOptionsWithoutCurrent","filter","getLocaleLabel","find","l","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","useEffect","copyLocaleData","from","to","docID","overrideData","push","error","message","_jsxs","Fragment","_jsx","onClick","info","className","gutter","Header","onClose","title","slug","buttonStyle","disabled","iconPosition","size","name","onChange","selectedOption","options","path","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? locale.label : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n toggleModal(drawerSlug)\n router.push(\n `${serverURL}${admin}/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}?locale=${to}`,\n )\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","config","localization","routes","admin","serverURL","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","localeOptions","locales","map","locale","label","value","localeOptionsWithoutCurrent","filter","getLocaleLabel","find","l","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","useEffect","copyLocaleData","from","to","docID","overrideData","push","error","message","_jsxs","Fragment","_jsx","onClick","info","className","gutter","Header","onClose","title","slug","buttonStyle","disabled","iconPosition","size","name","onChange","selectedOption","options","path","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport './index.scss'\nimport { PopupList } from '../Popup/index.js'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n toggleModal(drawerSlug)\n router.push(\n `${serverURL}${admin}/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}?locale=${to}`,\n )\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { fieldAffectsData, fieldHasSubFields } from 'payload/shared';
5
+ import { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared';
6
6
  import React, { Fragment, useState } from 'react';
7
7
  import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
8
8
  import { FieldLabel } from '../../fields/FieldLabel/index.js';
@@ -50,7 +50,7 @@ const reduceFields = ({
50
50
  const CustomLabel = formState?.[path]?.customComponents?.Label;
51
51
  return fields?.reduce((fieldsToUse, field) => {
52
52
  // escape for a variety of reasons, include ui fields as they have `name`.
53
- if ((fieldAffectsData(field) || field.type === 'ui') && (field.admin.disableBulkEdit || field.unique || field.admin.hidden || 'readOnly' in field && field.readOnly)) {
53
+ if ((fieldAffectsData(field) || field.type === 'ui') && (field.admin.disableBulkEdit || field.unique || fieldIsHiddenOrDisabled(field) || 'readOnly' in field && field.readOnly)) {
54
54
  return fieldsToUse;
55
55
  }
56
56
  if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","fieldAffectsData","fieldHasSubFields","React","Fragment","useState","RenderCustomComponent","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label","reduceFields","fields","formState","labelPrefix","path","customComponents","Label","reduce","fieldsToUse","type","admin","disableBulkEdit","unique","hidden","readOnly","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","t0","$","setSelected","t","dispatchFields","getFields","t1","options","t2","selected","activeFields","map","_temp","Object","keys","length","forEach","find","handleChange","t3","className","children","getOptionValue","_temp2","isMulti","onChange","option","String"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPath, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields } from 'payload/shared'\nimport React, { Fragment, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly setSelected: (fields: FieldWithPath[]) => void\n}\n\nexport const combineLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): { Label: React.ReactNode; value: FieldWithPath }[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin.disableBulkEdit ||\n field.unique ||\n field.admin.hidden ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fields: field.fields,\n labelPrefix: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, setSelected }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState(() => reduceFields({ fields, formState: getFields() }))\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","React","Fragment","useState","RenderCustomComponent","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label","reduceFields","fields","formState","labelPrefix","path","customComponents","Label","reduce","fieldsToUse","type","admin","disableBulkEdit","unique","readOnly","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","t0","$","setSelected","t","dispatchFields","getFields","t1","options","t2","selected","activeFields","map","_temp","Object","keys","length","forEach","find","handleChange","t3","className","children","getOptionValue","_temp2","isMulti","onChange","option","String"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPath, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React, { Fragment, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly setSelected: (fields: FieldWithPath[]) => void\n}\n\nexport const combineLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): { Label: React.ReactNode; value: FieldWithPath }[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fields: field.fields,\n labelPrefix: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, setSelected }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState(() => reduceFields({ fields, formState: getFields() }))\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,uBAAuB,QAAQ;AAC7E,OAAOC,KAAA,IAASC,QAAQ,EAAEC,QAAQ,QAAQ;AAE1C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,WAAW;EACXC,KAAK;EACLC;AAAM,CAKP;EACC,oBACEC,KAAA,CAACb,QAAA;eACEY,MAAA,gBACCC,KAAA,CAACb,QAAA;8BACCc,IAAA,CAAC;QAAKC,KAAA,EAAO;UAAEC,OAAA,EAAS;QAAe;kBAAIJ;UAC1C;SAED,M,aACJE,IAAA,CAAC;MAAKC,KAAA,EAAO;QAAEC,OAAA,EAAS;MAAe;gBACrC,aAAAF,IAAA,CAACZ,qBAAA;QACCe,eAAA,EAAiBP,WAAA;QACjBQ,QAAA,eAAUJ,IAAA,CAACX,UAAA;UAAWgB,KAAA,EAAO,WAAWR,KAAA,IAASA,KAAA,CAAMQ;;;;;AAKjE;AAEA,MAAMC,YAAA,GAAeA,CAAC;EACpBC,MAAM;EACNC,SAAS;EACTC,WAAA,GAAc,IAAI;EAClBC,IAAA,GAAO;AAAE,CAMV;EACC,IAAI,CAACH,MAAA,EAAQ;IACX,OAAO,EAAE;EACX;EAEA,MAAMX,WAAA,GAAcY,SAAA,GAAYE,IAAA,CAAK,EAAEC,gBAAA,EAAkBC,KAAA;EAEzD,OAAOL,MAAA,EAAQM,MAAA,CAAO,CAACC,WAAA,EAAajB,KAAA;IAClC;IACA,IACE,CAACf,gBAAA,CAAiBe,KAAA,KAAUA,KAAA,CAAMkB,IAAI,KAAK,IAAG,MAC7ClB,KAAA,CAAMmB,KAAK,CAACC,eAAe,IAC1BpB,KAAA,CAAMqB,MAAM,IACZlC,uBAAA,CAAwBa,KAAA,KACvB,cAAcA,KAAA,IAASA,KAAA,CAAMsB,QAAQ,GACxC;MACA,OAAOL,WAAA;IACT;IAEA,IAAI,EAAEjB,KAAA,CAAMkB,IAAI,KAAK,WAAWlB,KAAA,CAAMkB,IAAI,KAAK,QAAO,KAAMhC,iBAAA,CAAkBc,KAAA,GAAQ;MACpF,OAAO,C,GACFiB,WAAA,E,GACAR,YAAA,CAAa;QACdC,MAAA,EAAQV,KAAA,CAAMU,MAAM;QACpBE,WAAA,EAAad,YAAA,CAAa;UAAEC,WAAA;UAAaC,KAAA;UAAOC,MAAA,EAAQW;QAAY;QACpEC,IAAA,EAAMnB,2BAAA,CAA4BmB,IAAA,EAAMb,KAAA;MAC1C,GACD;IACH;IAEA,IAAIA,KAAA,CAAMkB,IAAI,KAAK,UAAU,UAAUlB,KAAA,EAAO;MAC5C,OAAO,C,GACFiB,WAAA,E,GACAjB,KAAA,CAAMuB,IAAI,CAACP,MAAM,CAAC,CAACQ,SAAA,EAAWC,GAAA;QAC/B,IAAI,YAAYA,GAAA,EAAK;UACnB,MAAMC,UAAA,GAAa,UAAUD,GAAA,IAAOA,GAAA,CAAIE,IAAI;UAC5C,OAAO,C,GACFH,SAAA,E,GACAf,YAAA,CAAa;YACdC,MAAA,EAAQe,GAAA,CAAIf,MAAM;YAClBE,WAAA;YACAC,IAAA,EAAMa,UAAA,GAAahC,2BAAA,CAA4BmB,IAAA,EAAMb,KAAA,IAASa;UAChE,GACD;QACH;MACF,GAAG,EAAE,EACN;IACH;IAEA,MAAMe,cAAA,GAAiB;MACrBpB,KAAA,EAAOV,YAAA,CAAa;QAAEC,WAAA;QAAaC,KAAA;QAAOC,MAAA,EAAQW;MAAY;MAC9DiB,KAAA,EAAO;QACL,GAAG7B,KAAK;QACRa,IAAA,EAAMnB,2BAAA,CAA4BmB,IAAA,EAAMb,KAAA;MAC1C;IACF;IAEA,OAAO,C,GAAIiB,WAAA,EAAaW,cAAA,CAAe;EACzC,GAAG,EAAE;AACP;AAEA,OAAO,MAAME,WAAA,GAA0CC,EAAA;EAAA,MAAAC,CAAA,GAAAhD,EAAA;EAAC;IAAA0B,MAAA;IAAAuB;EAAA,IAAAF,EAAuB;EAC7E;IAAAG;EAAA,IAAcvC,cAAA;EACd;IAAAwC,cAAA;IAAAC;EAAA,IAAsC3C,OAAA;EAAA,IAAA4C,EAAA;EAAA,IAAAL,CAAA,QAAAtB,MAAA,IAAAsB,CAAA,QAAAI,SAAA;IAEXC,EAAA,GAAAA,CAAA,KAAM5B,YAAA;MAAAC,MAAA;MAAAC,SAAA,EAAkCyB,SAAA;IAAA,CAAY;IAAAJ,CAAA,MAAAtB,MAAA;IAAAsB,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAA/E,OAAAM,OAAA,IAAkBhD,QAAA,CAAS+C,EAAoD;EAAA,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,SAAA,IAAAJ,CAAA,QAAAC,WAAA;IAE1DM,EAAA,GAAAC,QAAA;MACnB,MAAAC,YAAA,GAAqBL,SAAA;MAAA,IAEjBI,QAAA,SAAa;QACfP,WAAA,GAAc;MAAA;QAEdA,WAAA,CAAYO,QAAA,CAAAE,GAAA,CAAAC,KAA4B;MAAA;MAAA,IAItCH,QAAA,SAAa,IAAQI,MAAA,CAAAC,IAAA,CAAYJ,YAAA,MAAkB,EAAAK,MAAA,GAAWN,QAAA,CAAAM,MAAe;QAC/EF,MAAA,CAAAC,IAAA,CAAYJ,YAAA,EAAAM,OAAA,CAAAlC,IAAA;UAAA,IAER2B,QAAA,SAAa,KACZA,QAAA,CAAAQ,IAAA,CAAAhD,KAAA,IACQA,KAAA,CAAA6B,KAAA,CAAAhB,IAAA,KAAqBA,IAC9B;YAEAsB,cAAA;cAAAjB,IAAA,EACQ;cAAAL;YAAA,CAER;UAAA;QAAA,CAEJ;MAAA;IAAA;IAEJmB,CAAA,MAAAG,cAAA;IAAAH,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAC,WAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAzBA,MAAAiB,YAAA,GAAqBV,EAyBrB;EAAA,IAAAW,EAAA;EAAA,IAAAlB,CAAA,QAAAiB,YAAA,IAAAjB,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAE,CAAA;IAGEgB,EAAA,GAAAhD,KAAA,CAAC;MAAAiD,SAAA,EAAAtD,SAAA;MAAAuD,QAAA,GACCjD,IAAA,CAAAX,UAAA;QAAAgB,KAAA,EAAmB0B,CAAA,CAAE;MAAA,C,GACrB/B,IAAA,CAAAP,WAAA;QAAAyD,cAAA,EAAAC,MAAA;QAAAC,OAAA;QAAAC,QAAA,EAQYP,YAAA;QAAAX;MAAA,C;;;;;;;;;SAVdY,E;CAeJ;AAjDuD,SAAAP,MAAAZ,EAAA;EAYvB;IAAAF;EAAA,IAAAE,EAAS;EAAA,OAAKF,KAAA;AAAA;AAZS,SAAAyB,OAAAG,MAAA;EAAA,IAsCzC,OAAOA,MAAA,CAAA5B,KAAA,KAAiB,YAAY,UAAU4B,MAAA,CAAA5B,KAAY;IAAA,OACrD6B,MAAA,CAAOD,MAAA,CAAA5B,KAAA,CAAAhB,IAAiB;EAAA;EAAA,OAE1B6C,MAAA,CAAOD,MAAA,CAAA5B,KAAY;AAAA","ignoreList":[]}
@@ -3,7 +3,9 @@ import React from 'react';
3
3
  import type { DocumentDrawerProps } from '../DocumentDrawer/types.js';
4
4
  import './index.scss';
5
5
  type RelationshipTableComponentProps = {
6
+ readonly AfterInput?: React.ReactNode;
6
7
  readonly allowCreate?: boolean;
8
+ readonly BeforeInput?: React.ReactNode;
7
9
  readonly disableTable?: boolean;
8
10
  readonly field: JoinFieldClient;
9
11
  readonly filterOptions?: Where;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAMrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,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,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAuNvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAMrB,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,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,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA2NvE,CAAA"}
@@ -24,9 +24,11 @@ import { DrawerLink } from './cells/DrawerLink/index.js';
24
24
  import { RelationshipTablePagination } from './Pagination.js';
25
25
  const baseClass = 'relationship-table';
26
26
  export const RelationshipTable = props => {
27
- const $ = _c(56);
27
+ const $ = _c(58);
28
28
  const {
29
+ AfterInput,
29
30
  allowCreate: t0,
31
+ BeforeInput,
30
32
  disableTable: t1,
31
33
  filterOptions,
32
34
  initialData: initialDataFromProps,
@@ -77,7 +79,7 @@ export const RelationshipTable = props => {
77
79
  t3 = $[4];
78
80
  }
79
81
  const [collectionConfig] = useState(t3);
80
- const [isLoadingTable, setIsLoadingTable] = useState(true);
82
+ const [isLoadingTable, setIsLoadingTable] = useState(!disableTable);
81
83
  const [data, setData] = useState(initialData);
82
84
  const [columnState, setColumnState] = useState();
83
85
  const {
@@ -222,14 +224,14 @@ export const RelationshipTable = props => {
222
224
  const t13 = `${baseClass}__toggle-columns ${openColumnSelector ? `${baseClass}__buttons-active` : ""}`;
223
225
  const t14 = openColumnSelector ? "up" : "down";
224
226
  let t15;
225
- if ($[33] !== DocumentDrawer || $[34] !== Label || $[35] !== Table || $[36] !== canCreate || $[37] !== collectionConfig || $[38] !== columnState || $[39] !== data || $[40] !== i18n || $[41] !== initialDrawerData || $[42] !== isLoadingTable || $[43] !== onDrawerCreate || $[44] !== onDrawerSave || $[45] !== openColumnSelector || $[46] !== openDrawer || $[47] !== preferenceKey || $[48] !== relationTo || $[49] !== t || $[50] !== t12 || $[51] !== t13 || $[52] !== t14) {
227
+ if ($[33] !== AfterInput || $[34] !== BeforeInput || $[35] !== DocumentDrawer || $[36] !== Label || $[37] !== Table || $[38] !== canCreate || $[39] !== collectionConfig || $[40] !== columnState || $[41] !== data || $[42] !== i18n || $[43] !== initialDrawerData || $[44] !== isLoadingTable || $[45] !== onDrawerCreate || $[46] !== onDrawerSave || $[47] !== openColumnSelector || $[48] !== openDrawer || $[49] !== preferenceKey || $[50] !== relationTo || $[51] !== t || $[52] !== t12 || $[53] !== t13 || $[54] !== t14) {
226
228
  let t16;
227
- if ($[54] !== openColumnSelector) {
229
+ if ($[56] !== openColumnSelector) {
228
230
  t16 = () => setOpenColumnSelector(!openColumnSelector);
229
- $[54] = openColumnSelector;
230
- $[55] = t16;
231
+ $[56] = openColumnSelector;
232
+ $[57] = t16;
231
233
  } else {
232
- t16 = $[55];
234
+ t16 = $[57];
233
235
  }
234
236
  t15 = _jsxs("div", {
235
237
  className: baseClass,
@@ -249,7 +251,7 @@ export const RelationshipTable = props => {
249
251
  children: t("general:columns")
250
252
  })]
251
253
  })]
252
- }), isLoadingTable ? _jsx("p", {
254
+ }), BeforeInput, isLoadingTable ? _jsx("p", {
253
255
  children: t("general:loading")
254
256
  }) : _jsxs(Fragment, {
255
257
  children: [data.docs && data.docs.length === 0 && _jsxs("div", {
@@ -300,34 +302,36 @@ export const RelationshipTable = props => {
300
302
  })
301
303
  })
302
304
  })]
303
- }), _jsx(DocumentDrawer, {
305
+ }), AfterInput, _jsx(DocumentDrawer, {
304
306
  initialData: initialDrawerData,
305
307
  onSave: onDrawerCreate
306
308
  })]
307
309
  });
308
- $[33] = DocumentDrawer;
309
- $[34] = Label;
310
- $[35] = Table;
311
- $[36] = canCreate;
312
- $[37] = collectionConfig;
313
- $[38] = columnState;
314
- $[39] = data;
315
- $[40] = i18n;
316
- $[41] = initialDrawerData;
317
- $[42] = isLoadingTable;
318
- $[43] = onDrawerCreate;
319
- $[44] = onDrawerSave;
320
- $[45] = openColumnSelector;
321
- $[46] = openDrawer;
322
- $[47] = preferenceKey;
323
- $[48] = relationTo;
324
- $[49] = t;
325
- $[50] = t12;
326
- $[51] = t13;
327
- $[52] = t14;
328
- $[53] = t15;
310
+ $[33] = AfterInput;
311
+ $[34] = BeforeInput;
312
+ $[35] = DocumentDrawer;
313
+ $[36] = Label;
314
+ $[37] = Table;
315
+ $[38] = canCreate;
316
+ $[39] = collectionConfig;
317
+ $[40] = columnState;
318
+ $[41] = data;
319
+ $[42] = i18n;
320
+ $[43] = initialDrawerData;
321
+ $[44] = isLoadingTable;
322
+ $[45] = onDrawerCreate;
323
+ $[46] = onDrawerSave;
324
+ $[47] = openColumnSelector;
325
+ $[48] = openDrawer;
326
+ $[49] = preferenceKey;
327
+ $[50] = relationTo;
328
+ $[51] = t;
329
+ $[52] = t12;
330
+ $[53] = t13;
331
+ $[54] = t14;
332
+ $[55] = t15;
329
333
  } else {
330
- t15 = $[53];
334
+ t15 = $[55];
331
335
  }
332
336
  return t15;
333
337
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","$","allowCreate","t0","disableTable","t1","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","undefined","Table","setTable","getEntityConfig","permissions","t2","docs","Array","isArray","reduce","_temp","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","t3","collectionSlug","collectionConfig","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","t4","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","renderTable","t5","t6","t7","t8","DocumentDrawer","DocumentDrawerToggler","t9","closeDrawer","openDrawer","t10","args","foundDocIndex","findIndex","doc_0","doc","id","withNewOrUpdatedDoc","newDocs","onDrawerSave","t11","args_0","onDrawerCreate","preferenceKey","canCreate","collections","create","t12","_jsx","className","children","t13","t14","t15","t16","_jsxs","icon","direction","pillStyle","length","label","labels","plural","onClick","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","height","slug","onSave","acc"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.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 { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.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 { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly allowCreate?: boolean\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n allowCreate = true,\n disableTable = false,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(true)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\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 [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\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 >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\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: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","$","AfterInput","allowCreate","t0","BeforeInput","disableTable","t1","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","undefined","Table","setTable","getEntityConfig","permissions","t2","docs","Array","isArray","reduce","_temp","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","t3","collectionSlug","collectionConfig","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","t4","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","renderTable","t5","t6","t7","t8","DocumentDrawer","DocumentDrawerToggler","t9","closeDrawer","openDrawer","t10","args","foundDocIndex","findIndex","doc_0","doc","id","withNewOrUpdatedDoc","newDocs","onDrawerSave","t11","args_0","onDrawerCreate","preferenceKey","canCreate","collections","create","t12","_jsx","className","children","t13","t14","t15","t16","_jsxs","icon","direction","pillStyle","length","label","labels","plural","onClick","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","height","slug","onSave","acc"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.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 { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.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 { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\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 filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\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 [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\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 >\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: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import LinkImport from 'next/link.js';
7
- import { fieldAffectsData } from 'payload/shared';
7
+ import { fieldAffectsData, fieldIsID } from 'payload/shared';
8
8
  import React from 'react'; // TODO: abstract this out to support all routers
9
9
  import { useConfig } from '../../../providers/Config/index.js';
10
10
  import { useTranslation } from '../../../providers/Translation/index.js';
@@ -81,7 +81,7 @@ export const DefaultCell = props => {
81
81
  }
82
82
  wrapElementProps.onClick = t5;
83
83
  }
84
- if ("name" in field && field.name === "id") {
84
+ if (fieldIsID(field)) {
85
85
  t4 = _jsx(WrapElement, {
86
86
  ...wrapElementProps,
87
87
  children: _jsx(CodeCell, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","LinkImport","fieldAffectsData","React","useConfig","useTranslation","formatAdminURL","CodeCell","cellComponents","Link","default","DefaultCell","props","$","cellData","className","classNameFromProps","collectionConfig","field","t0","link","onClick","onClickFromProps","rowData","admin","i18n","config","t1","routes","t2","adminRoute","classNameFromConfigContext","undefined","WrapElement","t3","t4","Symbol","for","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","t5","collectionSlug","name","_jsx","children","nowrap","DefaultCellComponent","CellComponent","upload","FileCellComponent","File","_jsxs","t","label","JSON","stringify"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport LinkImport from 'next/link.js'\nimport { fieldAffectsData } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionConfig,\n field,\n field: { admin },\n link,\n onClick: onClickFromProps,\n rowData,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if ('name' in field && field.name === 'id') {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(cellData === '' || typeof cellData === 'undefined' || cellData === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof cellData === 'string' && cellData}\n {typeof cellData === 'number' && cellData}\n {typeof cellData === 'object' && cellData !== null && JSON.stringify(cellData)}\n </WrapElement>\n )\n }\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","LinkImport","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","CodeCell","cellComponents","Link","default","DefaultCell","props","$","cellData","className","classNameFromProps","collectionConfig","field","t0","link","onClick","onClickFromProps","rowData","admin","i18n","config","t1","routes","t2","adminRoute","classNameFromConfigContext","undefined","WrapElement","t3","t4","Symbol","for","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","t5","collectionSlug","_jsx","children","nowrap","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport LinkImport from 'next/link.js'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionConfig,\n field,\n field: { admin },\n link,\n onClick: onClickFromProps,\n rowData,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(cellData === '' || typeof cellData === 'undefined' || cellData === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof cellData === 'string' && cellData}\n {typeof cellData === 'number' && cellData}\n {typeof cellData === 'object' && cellData !== null && JSON.stringify(cellData)}\n </WrapElement>\n )\n }\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAEzB,KAAK,EACL,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAyOnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAEzB,KAAK,EACL,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EA6OnD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MissingEditorProp } from 'payload';
3
- import { deepCopyObjectSimple, fieldIsPresentationalOnly } from 'payload/shared';
3
+ import { deepCopyObjectSimple, fieldIsHiddenOrDisabled, fieldIsID, fieldIsPresentationalOnly } from 'payload/shared';
4
4
  import React from 'react';
5
5
  import { RenderCustomComponent, RenderDefaultCell, SelectAll, SelectRow, SortColumn } from '../../exports/client/index.js';
6
6
  import { flattenFieldMap } from '../../utilities/flattenFieldMap.js';
@@ -28,7 +28,7 @@ export const buildColumnState = args => {
28
28
  // place the `ID` field first, if it exists
29
29
  // do the same for the `useAsTitle` field with precedence over the `ID` field
30
30
  // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`
31
- const idFieldIndex = sortedFieldMap?.findIndex(field => 'name' in field && field.name === 'id');
31
+ const idFieldIndex = sortedFieldMap?.findIndex(field => fieldIsID(field));
32
32
  if (idFieldIndex > -1) {
33
33
  const idField = sortedFieldMap.splice(idFieldIndex, 1)[0];
34
34
  sortedFieldMap.unshift(idField);
@@ -61,6 +61,9 @@ export const buildColumnState = args => {
61
61
  }
62
62
  const activeColumnsIndices = [];
63
63
  const sorted = sortedFieldMap?.reduce((acc, field, index) => {
64
+ if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {
65
+ return acc;
66
+ }
64
67
  const _field = _sortedFieldMap.find(f => 'name' in field && 'name' in f && f.name === field.name);
65
68
  const columnPreference = columnPreferences?.find(preference => field && 'name' in field && preference.accessor === field.name);
66
69
  let active = false;