@payloadcms/ui 3.0.0-beta.109 → 3.0.0-beta.110

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 (35) hide show
  1. package/dist/elements/ReactSelect/types.d.ts +2 -1
  2. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  3. package/dist/elements/ReactSelect/types.js.map +1 -1
  4. package/dist/elements/Table/TableCellProvider/index.js +9 -9
  5. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  6. package/dist/exports/client/index.js +7 -7
  7. package/dist/exports/client/index.js.map +4 -4
  8. package/dist/fields/Relationship/findOptionsByValue.d.ts +2 -1
  9. package/dist/fields/Relationship/findOptionsByValue.d.ts.map +1 -1
  10. package/dist/fields/Relationship/findOptionsByValue.js +9 -2
  11. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  12. package/dist/fields/Relationship/index.d.ts.map +1 -1
  13. package/dist/fields/Relationship/index.js +2 -0
  14. package/dist/fields/Relationship/index.js.map +1 -1
  15. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +23 -20
  16. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  17. package/dist/fields/Relationship/select-components/SingleValue/index.js +24 -21
  18. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  19. package/dist/fields/Relationship/types.d.ts +1 -0
  20. package/dist/fields/Relationship/types.d.ts.map +1 -1
  21. package/dist/fields/Relationship/types.js.map +1 -1
  22. package/dist/fields/Textarea/index.d.ts.map +1 -1
  23. package/dist/fields/Textarea/index.js +2 -1
  24. package/dist/fields/Textarea/index.js.map +1 -1
  25. package/dist/fields/Upload/Input.d.ts.map +1 -1
  26. package/dist/fields/Upload/Input.js +1 -1
  27. package/dist/fields/Upload/Input.js.map +1 -1
  28. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  29. package/dist/providers/DocumentInfo/index.js +4 -1
  30. package/dist/providers/DocumentInfo/index.js.map +1 -1
  31. package/dist/providers/ScrollInfo/index.d.ts +1 -3
  32. package/dist/providers/ScrollInfo/index.d.ts.map +1 -1
  33. package/dist/providers/ScrollInfo/index.js +1 -12
  34. package/dist/providers/ScrollInfo/index.js.map +1 -1
  35. package/package.json +5 -5
@@ -1,9 +1,10 @@
1
1
  import type { Option } from '../../elements/ReactSelect/types.js';
2
2
  import type { OptionGroup, Value } from './types.js';
3
3
  type Args = {
4
+ allowEdit: boolean;
4
5
  options: OptionGroup[];
5
6
  value: Value | Value[];
6
7
  };
7
- export declare const findOptionsByValue: ({ options, value }: Args) => Option | Option[];
8
+ export declare const findOptionsByValue: ({ allowEdit, options, value }: Args) => Option | Option[];
8
9
  export {};
9
10
  //# sourceMappingURL=findOptionsByValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findOptionsByValue.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/findOptionsByValue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,kBAAkB,uBAAwB,IAAI,KAAG,MAAM,GAAG,MAAM,EAuC5E,CAAA"}
1
+ {"version":3,"file":"findOptionsByValue.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/findOptionsByValue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,kBAAkB,kCAAmC,IAAI,KAAG,MAAM,GAAG,MAAM,EAuCvF,CAAA"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  export const findOptionsByValue = ({
4
+ allowEdit,
4
5
  options,
5
6
  value
6
7
  }) => {
@@ -18,7 +19,10 @@ export const findOptionsByValue = ({
18
19
  });
19
20
  }
20
21
  });
21
- return matchedOption;
22
+ return matchedOption ? {
23
+ allowEdit,
24
+ ...matchedOption
25
+ } : undefined;
22
26
  });
23
27
  }
24
28
  let matchedOption;
@@ -32,7 +36,10 @@ export const findOptionsByValue = ({
32
36
  });
33
37
  }
34
38
  });
35
- return matchedOption;
39
+ return matchedOption ? {
40
+ allowEdit,
41
+ ...matchedOption
42
+ } : undefined;
36
43
  }
37
44
  return undefined;
38
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"findOptionsByValue.js","names":["findOptionsByValue","options","value","Array","isArray","map","val","matchedOption","forEach","optGroup","find","option","relationTo","undefined"],"sources":["../../../src/fields/Relationship/findOptionsByValue.ts"],"sourcesContent":["'use client'\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { OptionGroup, Value } from './types.js'\n\ntype Args = {\n options: OptionGroup[]\n value: Value | Value[]\n}\n\nexport const findOptionsByValue = ({ options, value }: Args): Option | Option[] => {\n if (value || typeof value === 'number') {\n if (Array.isArray(value)) {\n return value.map((val) => {\n let matchedOption: Option\n\n options.forEach((optGroup) => {\n if (!matchedOption) {\n matchedOption = optGroup.options.find((option) => {\n if (typeof val === 'object') {\n return option.value === val.value && option.relationTo === val.relationTo\n }\n\n return val === option.value\n })\n }\n })\n\n return matchedOption\n })\n }\n\n let matchedOption: Option\n\n options.forEach((optGroup) => {\n if (!matchedOption) {\n matchedOption = optGroup.options.find((option) => {\n if (typeof value === 'object') {\n return option.value === value.value && option.relationTo === value.relationTo\n }\n return value === option.value\n })\n }\n })\n\n return matchedOption\n }\n\n return undefined\n}\n"],"mappings":"AAAA;;AASA,OAAO,MAAMA,kBAAA,GAAqBA,CAAC;EAAEC,OAAO;EAAEC;AAAK,CAAQ;EACzD,IAAIA,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;IACtC,IAAIC,KAAA,CAAMC,OAAO,CAACF,KAAA,GAAQ;MACxB,OAAOA,KAAA,CAAMG,GAAG,CAAEC,GAAA;QAChB,IAAIC,aAAA;QAEJN,OAAA,CAAQO,OAAO,CAAEC,QAAA;UACf,IAAI,CAACF,aAAA,EAAe;YAClBA,aAAA,GAAgBE,QAAA,CAASR,OAAO,CAACS,IAAI,CAAEC,MAAA;cACrC,IAAI,OAAOL,GAAA,KAAQ,UAAU;gBAC3B,OAAOK,MAAA,CAAOT,KAAK,KAAKI,GAAA,CAAIJ,KAAK,IAAIS,MAAA,CAAOC,UAAU,KAAKN,GAAA,CAAIM,UAAU;cAC3E;cAEA,OAAON,GAAA,KAAQK,MAAA,CAAOT,KAAK;YAC7B;UACF;QACF;QAEA,OAAOK,aAAA;MACT;IACF;IAEA,IAAIA,aAAA;IAEJN,OAAA,CAAQO,OAAO,CAAEC,QAAA;MACf,IAAI,CAACF,aAAA,EAAe;QAClBA,aAAA,GAAgBE,QAAA,CAASR,OAAO,CAACS,IAAI,CAAEC,MAAA;UACrC,IAAI,OAAOT,KAAA,KAAU,UAAU;YAC7B,OAAOS,MAAA,CAAOT,KAAK,KAAKA,KAAA,CAAMA,KAAK,IAAIS,MAAA,CAAOC,UAAU,KAAKV,KAAA,CAAMU,UAAU;UAC/E;UACA,OAAOV,KAAA,KAAUS,MAAA,CAAOT,KAAK;QAC/B;MACF;IACF;IAEA,OAAOK,aAAA;EACT;EAEA,OAAOM,SAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"findOptionsByValue.js","names":["findOptionsByValue","allowEdit","options","value","Array","isArray","map","val","matchedOption","forEach","optGroup","find","option","relationTo","undefined"],"sources":["../../../src/fields/Relationship/findOptionsByValue.ts"],"sourcesContent":["'use client'\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { OptionGroup, Value } from './types.js'\n\ntype Args = {\n allowEdit: boolean\n options: OptionGroup[]\n value: Value | Value[]\n}\n\nexport const findOptionsByValue = ({ allowEdit, options, value }: Args): Option | Option[] => {\n if (value || typeof value === 'number') {\n if (Array.isArray(value)) {\n return value.map((val) => {\n let matchedOption: Option\n\n options.forEach((optGroup) => {\n if (!matchedOption) {\n matchedOption = optGroup.options.find((option) => {\n if (typeof val === 'object') {\n return option.value === val.value && option.relationTo === val.relationTo\n }\n\n return val === option.value\n })\n }\n })\n\n return matchedOption ? { allowEdit, ...matchedOption } : undefined\n })\n }\n\n let matchedOption: Option\n\n options.forEach((optGroup) => {\n if (!matchedOption) {\n matchedOption = optGroup.options.find((option) => {\n if (typeof value === 'object') {\n return option.value === value.value && option.relationTo === value.relationTo\n }\n return value === option.value\n })\n }\n })\n\n return matchedOption ? { allowEdit, ...matchedOption } : undefined\n }\n\n return undefined\n}\n"],"mappings":"AAAA;;AAUA,OAAO,MAAMA,kBAAA,GAAqBA,CAAC;EAAEC,SAAS;EAAEC,OAAO;EAAEC;AAAK,CAAQ;EACpE,IAAIA,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;IACtC,IAAIC,KAAA,CAAMC,OAAO,CAACF,KAAA,GAAQ;MACxB,OAAOA,KAAA,CAAMG,GAAG,CAAEC,GAAA;QAChB,IAAIC,aAAA;QAEJN,OAAA,CAAQO,OAAO,CAAEC,QAAA;UACf,IAAI,CAACF,aAAA,EAAe;YAClBA,aAAA,GAAgBE,QAAA,CAASR,OAAO,CAACS,IAAI,CAAEC,MAAA;cACrC,IAAI,OAAOL,GAAA,KAAQ,UAAU;gBAC3B,OAAOK,MAAA,CAAOT,KAAK,KAAKI,GAAA,CAAIJ,KAAK,IAAIS,MAAA,CAAOC,UAAU,KAAKN,GAAA,CAAIM,UAAU;cAC3E;cAEA,OAAON,GAAA,KAAQK,MAAA,CAAOT,KAAK;YAC7B;UACF;QACF;QAEA,OAAOK,aAAA,GAAgB;UAAEP,SAAA;UAAW,GAAGO;QAAc,IAAIM,SAAA;MAC3D;IACF;IAEA,IAAIN,aAAA;IAEJN,OAAA,CAAQO,OAAO,CAAEC,QAAA;MACf,IAAI,CAACF,aAAA,EAAe;QAClBA,aAAA,GAAgBE,QAAA,CAASR,OAAO,CAACS,IAAI,CAAEC,MAAA;UACrC,IAAI,OAAOT,KAAA,KAAU,UAAU;YAC7B,OAAOS,MAAA,CAAOT,KAAK,KAAKA,KAAA,CAAMA,KAAK,IAAIS,MAAA,CAAOC,UAAU,KAAKV,KAAA,CAAMU,UAAU;UAC/E;UACA,OAAOV,KAAA,KAAUS,MAAA,CAAOT,KAAK;QAC/B;MACF;IACF;IAEA,OAAOK,aAAA,GAAgB;MAAEP,SAAA;MAAW,GAAGO;IAAc,IAAIM,SAAA;EAC3D;EAEA,OAAOA,SAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAwBnF,OAAO,cAAc,CAAA;AA4rBrB,eAAO,MAAM,iBAAiB;;;;;;;oCAA4C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAwBnF,OAAO,cAAc,CAAA;AA6rBrB,eAAO,MAAM,iBAAiB;;;;;;;oCAA4C,CAAA"}
@@ -38,6 +38,7 @@ const RelationshipFieldComponent = props => {
38
38
  _path: pathFromProps,
39
39
  admin: {
40
40
  allowCreate = true,
41
+ allowEdit = true,
41
42
  className,
42
43
  description,
43
44
  isSortable = true,
@@ -458,6 +459,7 @@ const RelationshipFieldComponent = props => {
458
459
  }
459
460
  }, [openDrawer, currentlyOpenRelationship]);
460
461
  const valueToRender = findOptionsByValue({
462
+ allowEdit,
461
463
  options,
462
464
  value: value_0
463
465
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","useFieldProps","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","descriptionProps","errorProps","field","name","_path","pathFromProps","admin","allowCreate","className","description","isSortable","readOnly","readOnlyFromAdmin","sortOptions","style","width","hasMany","relationTo","required","labelProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","path","pathFromContext","readOnlyFromContext","filterOptions","formInitializing","formProcessing","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","string","label","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","_jsxs","Boolean","join","replace","_jsx","Label","components","CustomError","Error","backspaceRemovesValue","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","Description","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport './index.scss'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n allowCreate = true,\n className,\n description,\n isSortable = true,\n readOnly: readOnlyFromAdmin,\n sortOptions,\n style,\n width,\n } = {},\n hasMany,\n relationTo,\n required,\n },\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const {\n filterOptions,\n formInitializing,\n formProcessing,\n initialValue,\n path,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const readOnly = readOnlyFromProps || readOnlyFromContext || formInitializing\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of getFormState and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).map((option) => {\n if (option.value === args.doc.id) {\n return {\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n }\n }\n\n return option\n })\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let string = item.label\n // strings less than breakApartThreshold length won't be chunked\n while (string.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = string.indexOf(' ', searchFilter.length)\n if (r.test(string.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))) {\n return true\n }\n string = string.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(string.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel field={field} Label={field?.admin?.components?.Label} {...(labelProps || {})} />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError\n CustomError={field?.admin?.components?.Error}\n field={field}\n path={path}\n {...(errorProps || {})}\n />\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || formProcessing || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : option.value\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n <FieldDescription\n Description={field?.admin?.components?.Description}\n description={description}\n field={field}\n {...(descriptionProps || {})}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["wordBoundariesRegex","qs","React","useCallback","useEffect","useReducer","useRef","useState","AddNewRelation","useDocumentDrawer","ReactSelect","useFieldProps","useField","withCondition","useDebouncedCallback","useIgnoredEffect","useAuth","useConfig","useLocale","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","createRelationMap","findOptionsByValue","optionsReducer","MultiValueLabel","SingleValue","maxResultsPerRequest","baseClass","RelationshipFieldComponent","props","descriptionProps","errorProps","field","name","_path","pathFromProps","admin","allowCreate","allowEdit","className","description","isSortable","readOnly","readOnlyFromAdmin","sortOptions","style","width","hasMany","relationTo","required","labelProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","config","collections","routes","api","serverURL","i18n","t","permissions","code","locale","hasMultipleRelations","Array","isArray","currentlyOpenRelationship","setCurrentlyOpenRelationship","id","undefined","collectionSlug","hasReadPermission","lastFullyLoadedRelation","setLastFullyLoadedRelation","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","search","setSearch","isLoading","setIsLoading","enableWordBoundarySearch","setEnableWordBoundarySearch","menuIsOpen","setMenuIsOpen","hasLoadedFirstPageRef","memoizedValidate","value","validationOptions","path","pathFromContext","readOnlyFromContext","filterOptions","formInitializing","formProcessing","initialValue","setValue","showError","options","dispatchOptions","valueRef","current","DocumentDrawer","isDrawerOpen","openDrawer","openDrawerWhenRelationChanges","getResults","lastFullyLoadedRelationArg","lastLoadedPageArg","onSuccess","searchArg","sort","valueArg","lastFullyLoadedRelationToUse","relations","relationsToFetch","slice","resultsFetched","relationMap","reduce","priorRelation","relation","relationFilterOption","lastLoadedPageToUse","indexOf","Promise","resolve","collection","find","coll","slug","fieldToSearch","useAsTitle","fieldToSort","defaultSort","query","depth","draft","limit","page","where","and","not_in","push","like","response","fetch","body","stringify","credentials","headers","language","method","ok","data","json","prevState","nextPage","docs","length","type","status","ids","updateSearch","handleInputChange","Object","entries","idsToLoad","filter","optionGroup","option","in","isIdOnly","idOnly","exemptValues","onSave","args","collectionConfig","doc","map","onDuplicate","concat","onDelete","filterOption","item","searchFilter","r","breakApartThreshold","string","label","indexOfSpace","test","onDocumentDrawerOpen","valueToRender","_jsxs","Boolean","join","replace","_jsx","Label","components","CustomError","Error","backspaceRemovesValue","customProps","disableKeyDown","disableMouseDown","disabled","getOptionValue","isMulti","onChange","selected","onInputChange","newSearch","onMenuClose","onMenuOpen","onMenuScrollToBottom","Description","RelationshipField"],"sources":["../../../src/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, RelationshipFieldClientComponent, Where } from 'payload'\n\nimport { wordBoundariesRegex } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { GetResults, Option, Value } from './types.js'\n\nimport { AddNewRelation } from '../../elements/AddNewRelation/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { createRelationMap } from './createRelationMap.js'\nimport { findOptionsByValue } from './findOptionsByValue.js'\nimport './index.scss'\nimport { optionsReducer } from './optionsReducer.js'\nimport { MultiValueLabel } from './select-components/MultiValueLabel/index.js'\nimport { SingleValue } from './select-components/SingleValue/index.js'\n\nconst maxResultsPerRequest = 10\n\nconst baseClass = 'relationship'\n\nconst RelationshipFieldComponent: RelationshipFieldClientComponent = (props) => {\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: {\n allowCreate = true,\n allowEdit = true,\n className,\n description,\n isSortable = true,\n readOnly: readOnlyFromAdmin,\n sortOptions,\n style,\n width,\n } = {},\n hasMany,\n relationTo,\n required,\n },\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { config } = useConfig()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const hasMultipleRelations = Array.isArray(relationTo)\n\n const [currentlyOpenRelationship, setCurrentlyOpenRelationship] = useState<\n Parameters<ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']>[0]\n >({\n id: undefined,\n collectionSlug: undefined,\n hasReadPermission: false,\n })\n\n const [lastFullyLoadedRelation, setLastFullyLoadedRelation] = useState(-1)\n const [lastLoadedPage, setLastLoadedPage] = useState<Record<string, number>>({})\n const [errorLoading, setErrorLoading] = useState('')\n const [search, setSearch] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false)\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const hasLoadedFirstPageRef = useRef(false)\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, required })\n }\n },\n [validate, required],\n )\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const {\n filterOptions,\n formInitializing,\n formProcessing,\n initialValue,\n path,\n setValue,\n showError,\n value,\n } = useField<Value | Value[]>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n\n const readOnly = readOnlyFromProps || readOnlyFromContext || formInitializing\n\n const valueRef = useRef(value)\n valueRef.current = value\n\n const [DocumentDrawer, , { isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentlyOpenRelationship.id,\n collectionSlug: currentlyOpenRelationship.collectionSlug,\n })\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const getResults: GetResults = useCallback(\n async ({\n filterOptions,\n lastFullyLoadedRelation: lastFullyLoadedRelationArg,\n lastLoadedPage: lastLoadedPageArg,\n onSuccess,\n search: searchArg,\n sort,\n value: valueArg,\n }) => {\n if (!permissions) {\n return\n }\n const lastFullyLoadedRelationToUse =\n typeof lastFullyLoadedRelationArg !== 'undefined' ? lastFullyLoadedRelationArg : -1\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const relationsToFetch =\n lastFullyLoadedRelationToUse === -1\n ? relations\n : relations.slice(lastFullyLoadedRelationToUse + 1)\n\n let resultsFetched = 0\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value: valueArg,\n })\n\n if (!errorLoading) {\n await relationsToFetch.reduce(async (priorRelation, relation) => {\n const relationFilterOption = filterOptions?.[relation]\n\n let lastLoadedPageToUse\n if (search !== searchArg) {\n lastLoadedPageToUse = 1\n } else {\n lastLoadedPageToUse = lastLoadedPageArg[relation] + 1\n }\n await priorRelation\n\n if (relationFilterOption === false) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n return Promise.resolve()\n }\n\n if (resultsFetched < 10) {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n let fieldToSort = collection?.defaultSort || 'id'\n if (typeof sortOptions === 'string') {\n fieldToSort = sortOptions\n } else if (sortOptions?.[relation]) {\n fieldToSort = sortOptions[relation]\n }\n\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: maxResultsPerRequest,\n locale,\n page: lastLoadedPageToUse,\n sort: fieldToSort,\n where: {\n and: [\n {\n id: {\n not_in: relationMap[relation],\n },\n },\n ],\n },\n }\n\n if (searchArg) {\n query.where.and.push({\n [fieldToSearch]: {\n like: searchArg,\n },\n })\n }\n\n if (relationFilterOption && typeof relationFilterOption !== 'boolean') {\n query.where.and.push(relationFilterOption)\n }\n\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n if (response.ok) {\n const data: PaginatedDocs<unknown> = await response.json()\n setLastLoadedPage((prevState) => {\n return {\n ...prevState,\n [relation]: lastLoadedPageToUse,\n }\n })\n\n if (!data.nextPage) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n }\n\n if (data.docs.length > 0) {\n resultsFetched += data.docs.length\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: data.docs,\n i18n,\n sort,\n })\n }\n } else if (response.status === 403) {\n setLastFullyLoadedRelation(relations.indexOf(relation))\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs: [],\n i18n,\n ids: relationMap[relation],\n sort,\n })\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n }\n }, Promise.resolve())\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n }\n },\n [\n permissions,\n relationTo,\n hasMany,\n errorLoading,\n search,\n collections,\n locale,\n serverURL,\n sortOptions,\n api,\n i18n,\n config,\n t,\n ],\n )\n\n const updateSearch = useDebouncedCallback((searchArg: string, valueArg: Value | Value[]) => {\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n search: searchArg,\n sort: true,\n value: valueArg,\n })\n setSearch(searchArg)\n }, 300)\n\n const handleInputChange = useCallback(\n (searchArg: string, valueArg: Value | Value[]) => {\n if (search !== searchArg) {\n setLastLoadedPage({})\n updateSearch(searchArg, valueArg, searchArg !== '')\n }\n },\n [search, updateSearch],\n )\n\n // ///////////////////////////////////\n // Ensure we have an option for each value\n // ///////////////////////////////////\n\n useIgnoredEffect(\n () => {\n const relationMap = createRelationMap({\n hasMany,\n relationTo,\n value,\n })\n\n void Object.entries(relationMap).reduce(async (priorRelation, [relation, ids]) => {\n await priorRelation\n\n const idsToLoad = ids.filter((id) => {\n return !options.find((optionGroup) =>\n optionGroup?.options?.find(\n (option) => option.value === id && option.relationTo === relation,\n ),\n )\n })\n\n if (idsToLoad.length > 0) {\n const query = {\n depth: 0,\n draft: true,\n limit: idsToLoad.length,\n locale,\n where: {\n id: {\n in: idsToLoad,\n },\n },\n }\n\n if (!errorLoading) {\n const response = await fetch(`${serverURL}${api}/${relation}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n\n const collection = collections.find((coll) => coll.slug === relation)\n let docs = []\n\n if (response.ok) {\n const data = await response.json()\n docs = data.docs\n }\n\n dispatchOptions({\n type: 'ADD',\n collection,\n config,\n docs,\n i18n,\n ids: idsToLoad,\n sort: true,\n })\n }\n }\n }, Promise.resolve())\n },\n [value],\n [\n options,\n hasMany,\n errorLoading,\n collections,\n hasMultipleRelations,\n serverURL,\n api,\n i18n,\n relationTo,\n locale,\n config,\n ],\n )\n\n // Determine if we should switch to word boundary search\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const isIdOnly = relations.reduce((idOnly, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n return fieldToSearch === 'id' && idOnly\n }, true)\n setEnableWordBoundarySearch(!isIdOnly)\n }, [relationTo, collections])\n\n // When (`relationTo` || `filterOptions` || `locale`) changes, reset component\n // Note - effect should not run on first run\n useIgnoredEffect(\n () => {\n // If the menu is open while filterOptions changes\n // due to latency of getFormState and fast clicking into this field,\n // re-fetch options\n if (hasLoadedFirstPageRef.current && menuIsOpen) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: valueRef.current,\n })\n }\n\n // If the menu is not open, still reset the field state\n // because we need to get new options next time the menu opens\n dispatchOptions({\n type: 'CLEAR',\n exemptValues: valueRef.current,\n })\n\n setLastFullyLoadedRelation(-1)\n setLastLoadedPage({})\n },\n [relationTo, filterOptions, locale, path, menuIsOpen],\n [getResults],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n dispatchOptions({\n type: 'UPDATE',\n collection: args.collectionConfig,\n config,\n doc: args.doc,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).map((option) => {\n if (option.value === args.doc.id) {\n return {\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n }\n }\n\n return option\n })\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n dispatchOptions({\n type: 'ADD',\n collection: args.collectionConfig,\n config,\n docs: [args.doc],\n i18n,\n sort: true,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).concat({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n } as Option)\n : null,\n )\n } else {\n setValue({\n relationTo: args.collectionConfig.slug,\n value: args.doc.id,\n })\n }\n },\n [i18n, config, hasMany, setValue],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n dispatchOptions({\n id: args.id,\n type: 'REMOVE',\n collection: args.collectionConfig,\n config,\n i18n,\n })\n\n if (hasMany) {\n setValue(\n valueRef.current\n ? (valueRef.current as Option[]).filter((option) => {\n return option.value !== args.id\n })\n : null,\n )\n } else {\n setValue(null)\n }\n\n return\n },\n [i18n, config, hasMany, setValue],\n )\n\n const filterOption = useCallback((item: Option, searchFilter: string) => {\n if (!searchFilter) {\n return true\n }\n const r = wordBoundariesRegex(searchFilter || '')\n // breaking the labels to search into smaller parts increases performance\n const breakApartThreshold = 250\n let string = item.label\n // strings less than breakApartThreshold length won't be chunked\n while (string.length > breakApartThreshold) {\n // slicing by the next space after the length of the search input prevents slicing the string up by partial words\n const indexOfSpace = string.indexOf(' ', searchFilter.length)\n if (r.test(string.slice(0, indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1))) {\n return true\n }\n string = string.slice(indexOfSpace === -1 ? searchFilter.length : indexOfSpace + 1)\n }\n return r.test(string.slice(-breakApartThreshold))\n }, [])\n\n const onDocumentDrawerOpen = useCallback<\n ReactSelectAdapterProps['customProps']['onDocumentDrawerOpen']\n >(({ id, collectionSlug, hasReadPermission }) => {\n openDrawerWhenRelationChanges.current = true\n setCurrentlyOpenRelationship({\n id,\n collectionSlug,\n hasReadPermission,\n })\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawer()\n openDrawerWhenRelationChanges.current = false\n }\n }, [openDrawer, currentlyOpenRelationship])\n\n const valueToRender = findOptionsByValue({ allowEdit, options, value })\n\n if (!Array.isArray(valueToRender) && valueToRender?.value === 'null') {\n valueToRender.value = null\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n errorLoading && 'error-loading',\n readOnly && `${baseClass}--read-only`,\n !readOnly && allowCreate && `${baseClass}--allow-create`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel field={field} Label={field?.admin?.components?.Label} {...(labelProps || {})} />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError\n CustomError={field?.admin?.components?.Error}\n field={field}\n path={path}\n {...(errorProps || {})}\n />\n {!errorLoading && (\n <div className={`${baseClass}__wrap`}>\n <ReactSelect\n backspaceRemovesValue={!isDrawerOpen}\n components={{\n MultiValueLabel,\n SingleValue,\n }}\n customProps={{\n disableKeyDown: isDrawerOpen,\n disableMouseDown: isDrawerOpen,\n onDocumentDrawerOpen,\n onSave,\n }}\n disabled={readOnly || formProcessing || isDrawerOpen}\n filterOption={enableWordBoundarySearch ? filterOption : undefined}\n getOptionValue={(option) => {\n if (!option) {\n return undefined\n }\n return hasMany && Array.isArray(relationTo)\n ? `${option.relationTo}_${option.value}`\n : option.value\n }}\n isLoading={isLoading}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={\n !readOnly\n ? (selected) => {\n if (selected === null) {\n setValue(hasMany ? [] : null)\n } else if (hasMany && Array.isArray(selected)) {\n setValue(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option.relationTo,\n value: option.value,\n }\n }\n\n return option.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n setValue({\n relationTo: selected.relationTo,\n value: selected.value,\n })\n } else if (!Array.isArray(selected)) {\n setValue(selected.value)\n }\n }\n : undefined\n }\n onInputChange={(newSearch) => handleInputChange(newSearch, value)}\n onMenuClose={() => {\n setMenuIsOpen(false)\n }}\n onMenuOpen={() => {\n setMenuIsOpen(true)\n\n if (!hasLoadedFirstPageRef.current) {\n setIsLoading(true)\n void getResults({\n filterOptions,\n lastLoadedPage: {},\n onSuccess: () => {\n hasLoadedFirstPageRef.current = true\n setIsLoading(false)\n },\n value: initialValue,\n })\n }\n }}\n onMenuScrollToBottom={() => {\n void getResults({\n filterOptions,\n lastFullyLoadedRelation,\n lastLoadedPage,\n search,\n sort: false,\n value: initialValue,\n })\n }}\n options={options}\n showError={showError}\n value={valueToRender ?? null}\n />\n {!readOnly && allowCreate && (\n <AddNewRelation\n hasMany={hasMany}\n path={path}\n relationTo={relationTo}\n setValue={setValue}\n value={value}\n />\n )}\n </div>\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n <FieldDescription\n Description={field?.admin?.components?.Description}\n description={description}\n field={field}\n {...(descriptionProps || {})}\n />\n </div>\n {currentlyOpenRelationship.collectionSlug && currentlyOpenRelationship.hasReadPermission && (\n <DocumentDrawer onDelete={onDelete} onDuplicate={onDuplicate} onSave={onSave} />\n )}\n </div>\n )\n}\n\nexport const RelationshipField = withCondition(RelationshipFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,mBAAmB,QAAQ;AACpC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAM5E,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAChC,SAASC,WAAW,QAAQ;AAE5B,MAAMC,oBAAA,GAAuB;AAE7B,MAAMC,SAAA,GAAY;AAElB,MAAMC,0BAAA,GAAgEC,KAAA;EACpE,MAAM;IACJC,gBAAgB;IAChBC,UAAU;IACVC,KAAK;IACLA,KAAA,EAAO;MACLC,IAAI;MACJC,KAAA,EAAOC,aAAa;MACpBC,KAAA,EAAO;QACLC,WAAA,GAAc,IAAI;QAClBC,SAAA,GAAY,IAAI;QAChBC,SAAS;QACTC,WAAW;QACXC,UAAA,GAAa,IAAI;QACjBC,QAAA,EAAUC,iBAAiB;QAC3BC,WAAW;QACXC,KAAK;QACLC;MAAK,CACN,GAAG,CAAC,CAAC;MACNC,OAAO;MACPC,UAAU;MACVC;IAAQ,CACT;IACDC,UAAU;IACVR,QAAA,EAAUS,yBAAyB;IACnCC;EAAQ,CACT,GAAGvB,KAAA;EACJ,MAAMwB,iBAAA,GAAoBF,yBAAA,IAA6BR,iBAAA;EAEvD,MAAM;IAAEW;EAAM,CAAE,GAAGxC,SAAA;EAEnB,MAAM;IACJyC,WAAW;IACXC,MAAA,EAAQ;MAAEC;IAAG,CAAE;IACfC;EAAS,CACV,GAAGJ,MAAA;EAEJ,MAAM;IAAEK,IAAI;IAAEC;EAAC,CAAE,GAAG5C,cAAA;EACpB,MAAM;IAAE6C;EAAW,CAAE,GAAGhD,OAAA;EACxB,MAAM;IAAEiD,IAAA,EAAMC;EAAM,CAAE,GAAGhD,SAAA;EACzB,MAAMiD,oBAAA,GAAuBC,KAAA,CAAMC,OAAO,CAAClB,UAAA;EAE3C,MAAM,CAACmB,yBAAA,EAA2BC,4BAAA,CAA6B,GAAGhE,QAAA,CAEhE;IACAiE,EAAA,EAAIC,SAAA;IACJC,cAAA,EAAgBD,SAAA;IAChBE,iBAAA,EAAmB;EACrB;EAEA,MAAM,CAACC,uBAAA,EAAyBC,0BAAA,CAA2B,GAAGtE,QAAA,CAAS,CAAC;EACxE,MAAM,CAACuE,cAAA,EAAgBC,iBAAA,CAAkB,GAAGxE,QAAA,CAAiC,CAAC;EAC9E,MAAM,CAACyE,YAAA,EAAcC,eAAA,CAAgB,GAAG1E,QAAA,CAAS;EACjD,MAAM,CAAC2E,MAAA,EAAQC,SAAA,CAAU,GAAG5E,QAAA,CAAS;EACrC,MAAM,CAAC6E,SAAA,EAAWC,YAAA,CAAa,GAAG9E,QAAA,CAAS;EAC3C,MAAM,CAAC+E,wBAAA,EAA0BC,2BAAA,CAA4B,GAAGhF,QAAA,CAAS;EACzE,MAAM,CAACiF,UAAA,EAAYC,aAAA,CAAc,GAAGlF,QAAA,CAAS;EAC7C,MAAMmF,qBAAA,GAAwBpF,MAAA,CAAO;EAErC,MAAMqF,gBAAA,GAAmBxF,WAAA,CACvB,CAACyF,KAAA,EAAOC,iBAAA;IACN,IAAI,OAAOtC,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASqC,KAAA,EAAO;QAAE,GAAGC,iBAAiB;QAAEzC;MAAS;IAC1D;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,CAAS;EAEtB,MAAM;IAAE0C,IAAA,EAAMC,eAAe;IAAElD,QAAA,EAAUmD;EAAmB,CAAE,GAAGrF,aAAA;EAEjE,MAAM;IACJsF,aAAa;IACbC,gBAAgB;IAChBC,cAAc;IACdC,YAAY;IACZN,IAAI;IACJO,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAGhF,QAAA,CAA0B;IAC5BkF,IAAA,EAAMC,eAAA,IAAmBzD,aAAA,IAAiBF,IAAA;IAC1CmB,QAAA,EAAUoC;EACZ;EACA,MAAM,CAACY,OAAA,EAASC,eAAA,CAAgB,GAAGnG,UAAA,CAAWqB,cAAA,EAAgB,EAAE;EAEhE,MAAMmB,QAAA,GAAWW,iBAAA,IAAqBwC,mBAAA,IAAuBE,gBAAA;EAE7D,MAAMO,QAAA,GAAWnG,MAAA,CAAOsF,OAAA;EACxBa,QAAA,CAASC,OAAO,GAAGd,OAAA;EAEnB,MAAM,CAACe,cAAA,GAAkB;IAAEC,YAAY;IAAEC;EAAU,CAAE,CAAC,GAAGpG,iBAAA,CAAkB;IACzE+D,EAAA,EAAIF,yBAAA,CAA0BE,EAAE;IAChCE,cAAA,EAAgBJ,yBAAA,CAA0BI;EAC5C;EAEA,MAAMoC,6BAAA,GAAgCxG,MAAA,CAAO;EAE7C,MAAMyG,UAAA,GAAyB5G,WAAA,CAC7B,OAAO;IACL8F,aAAa,EAAbA,eAAa;IACbrB,uBAAA,EAAyBoC,0BAA0B;IACnDlC,cAAA,EAAgBmC,iBAAiB;IACjCC,SAAS;IACThC,MAAA,EAAQiC,SAAS;IACjBC,IAAI;IACJxB,KAAA,EAAOyB;EAAQ,CAChB;IACC,IAAI,CAACrD,WAAA,EAAa;MAChB;IACF;IACA,MAAMsD,4BAAA,GACJ,OAAON,0BAAA,KAA+B,cAAcA,0BAAA,GAA6B,CAAC;IAEpF,MAAMO,SAAA,GAAYnD,KAAA,CAAMC,OAAO,CAAClB,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;IACvE,MAAMqE,gBAAA,GACJF,4BAAA,KAAiC,CAAC,IAC9BC,SAAA,GACAA,SAAA,CAAUE,KAAK,CAACH,4BAAA,GAA+B;IAErD,IAAII,cAAA,GAAiB;IACrB,MAAMC,WAAA,GAAcnG,iBAAA,CAAkB;MACpC0B,OAAA;MACAC,UAAA;MACAyC,KAAA,EAAOyB;IACT;IAEA,IAAI,CAACrC,YAAA,EAAc;MACjB,MAAMwC,gBAAA,CAAiBI,MAAM,CAAC,OAAOC,aAAA,EAAeC,QAAA;QAClD,MAAMC,oBAAA,GAAuB9B,eAAA,GAAgB6B,QAAA,CAAS;QAEtD,IAAIE,mBAAA;QACJ,IAAI9C,MAAA,KAAWiC,SAAA,EAAW;UACxBa,mBAAA,GAAsB;QACxB,OAAO;UACLA,mBAAA,GAAsBf,iBAAiB,CAACa,QAAA,CAAS,GAAG;QACtD;QACA,MAAMD,aAAA;QAEN,IAAIE,oBAAA,KAAyB,OAAO;UAClClD,0BAAA,CAA2B0C,SAAA,CAAUU,OAAO,CAACH,QAAA;UAC7C,OAAOI,OAAA,CAAQC,OAAO;QACxB;QAEA,IAAIT,cAAA,GAAiB,IAAI;UACvB,MAAMU,UAAA,GAAa1E,WAAA,CAAY2E,IAAI,CAAEC,IAAA,IAASA,IAAA,CAAKC,IAAI,KAAKT,QAAA;UAC5D,MAAMU,aAAA,GAAgBJ,UAAA,EAAY7F,KAAA,EAAOkG,UAAA,IAAc;UACvD,IAAIC,WAAA,GAAcN,UAAA,EAAYO,WAAA,IAAe;UAC7C,IAAI,OAAO5F,WAAA,KAAgB,UAAU;YACnC2F,WAAA,GAAc3F,WAAA;UAChB,OAAO,IAAIA,WAAA,GAAc+E,QAAA,CAAS,EAAE;YAClCY,WAAA,GAAc3F,WAAW,CAAC+E,QAAA,CAAS;UACrC;UAEA,MAAMc,KAAA,GAGF;YACFC,KAAA,EAAO;YACPC,KAAA,EAAO;YACPC,KAAA,EAAOlH,oBAAA;YACPqC,MAAA;YACA8E,IAAA,EAAMhB,mBAAA;YACNZ,IAAA,EAAMsB,WAAA;YACNO,KAAA,EAAO;cACLC,GAAA,EAAK,CACH;gBACE1E,EAAA,EAAI;kBACF2E,MAAA,EAAQxB,WAAW,CAACG,QAAA;gBACtB;cACF;YAEJ;UACF;UAEA,IAAIX,SAAA,EAAW;YACbyB,KAAA,CAAMK,KAAK,CAACC,GAAG,CAACE,IAAI,CAAC;cACnB,CAACZ,aAAA,GAAgB;gBACfa,IAAA,EAAMlC;cACR;YACF;UACF;UAEA,IAAIY,oBAAA,IAAwB,OAAOA,oBAAA,KAAyB,WAAW;YACrEa,KAAA,CAAMK,KAAK,CAACC,GAAG,CAACE,IAAI,CAACrB,oBAAA;UACvB;UAEA,MAAMuB,QAAA,GAAW,MAAMC,KAAA,CAAM,GAAG1F,SAAA,GAAYD,GAAA,IAAOkE,QAAA,EAAU,EAAE;YAC7D0B,IAAA,EAAMvJ,EAAA,CAAGwJ,SAAS,CAACb,KAAA;YACnBc,WAAA,EAAa;YACbC,OAAA,EAAS;cACP,mBAAmB7F,IAAA,CAAK8F,QAAQ;cAChC,gBAAgB;cAChB,0BAA0B;YAC5B;YACAC,MAAA,EAAQ;UACV;UAEA,IAAIP,QAAA,CAASQ,EAAE,EAAE;YACf,MAAMC,IAAA,GAA+B,MAAMT,QAAA,CAASU,IAAI;YACxDjF,iBAAA,CAAmBkF,SAAA;cACjB,OAAO;gBACL,GAAGA,SAAS;gBACZ,CAACnC,QAAA,GAAWE;cACd;YACF;YAEA,IAAI,CAAC+B,IAAA,CAAKG,QAAQ,EAAE;cAClBrF,0BAAA,CAA2B0C,SAAA,CAAUU,OAAO,CAACH,QAAA;YAC/C;YAEA,IAAIiC,IAAA,CAAKI,IAAI,CAACC,MAAM,GAAG,GAAG;cACxB1C,cAAA,IAAkBqC,IAAA,CAAKI,IAAI,CAACC,MAAM;cAElC5D,eAAA,CAAgB;gBACd6D,IAAA,EAAM;gBACNjC,UAAA;gBACA3E,MAAA;gBACA0G,IAAA,EAAMJ,IAAA,CAAKI,IAAI;gBACfrG,IAAA;gBACAsD;cACF;YACF;UACF,OAAO,IAAIkC,QAAA,CAASgB,MAAM,KAAK,KAAK;YAClCzF,0BAAA,CAA2B0C,SAAA,CAAUU,OAAO,CAACH,QAAA;YAC7CtB,eAAA,CAAgB;cACd6D,IAAA,EAAM;cACNjC,UAAA;cACA3E,MAAA;cACA0G,IAAA,EAAM,EAAE;cACRrG,IAAA;cACAyG,GAAA,EAAK5C,WAAW,CAACG,QAAA,CAAS;cAC1BV;YACF;UACF,OAAO;YACLnC,eAAA,CAAgBlB,CAAA,CAAE;UACpB;QACF;MACF,GAAGmE,OAAA,CAAQC,OAAO;MAElB,IAAI,OAAOjB,SAAA,KAAc,YAAY;QACnCA,SAAA;MACF;IACF;EACF,GACA,CACElD,WAAA,EACAb,UAAA,EACAD,OAAA,EACA8B,YAAA,EACAE,MAAA,EACAxB,WAAA,EACAQ,MAAA,EACAL,SAAA,EACAd,WAAA,EACAa,GAAA,EACAE,IAAA,EACAL,MAAA,EACAM,CAAA,CACD;EAGH,MAAMyG,YAAA,GAAe1J,oBAAA,CAAqB,CAACqG,WAAA,EAAmBE,UAAA;IAC5D,KAAKN,UAAA,CAAW;MACdd,aAAA;MACAnB,cAAA,EAAgB,CAAC;MACjBI,MAAA,EAAQiC,WAAA;MACRC,IAAA,EAAM;MACNxB,KAAA,EAAOyB;IACT;IACAlC,SAAA,CAAUgC,WAAA;EACZ,GAAG;EAEH,MAAMsD,iBAAA,GAAoBtK,WAAA,CACxB,CAACgH,WAAA,EAAmBE,UAAA;IAClB,IAAInC,MAAA,KAAWiC,WAAA,EAAW;MACxBpC,iBAAA,CAAkB,CAAC;MACnByF,YAAA,CAAarD,WAAA,EAAWE,UAAA,EAAUF,WAAA,KAAc;IAClD;EACF,GACA,CAACjC,MAAA,EAAQsF,YAAA,CAAa;EAGxB;EACA;EACA;EAEAzJ,gBAAA,CACE;IACE,MAAM4G,aAAA,GAAcnG,iBAAA,CAAkB;MACpC0B,OAAA;MACAC,UAAA;MACAyC,KAAA,EAAAA;IACF;IAEA,KAAK8E,MAAA,CAAOC,OAAO,CAAChD,aAAA,EAAaC,MAAM,CAAC,OAAOC,eAAA,EAAe,CAACC,UAAA,EAAUyC,GAAA,CAAI;MAC3E,MAAM1C,eAAA;MAEN,MAAM+C,SAAA,GAAYL,GAAA,CAAIM,MAAM,CAAErG,EAAA;QAC5B,OAAO,CAAC+B,OAAA,CAAQ8B,IAAI,CAAEyC,WAAA,IACpBA,WAAA,EAAavE,OAAA,EAAS8B,IAAA,CACnB0C,MAAA,IAAWA,MAAA,CAAOnF,KAAK,KAAKpB,EAAA,IAAMuG,MAAA,CAAO5H,UAAU,KAAK2E,UAAA;MAG/D;MAEA,IAAI8C,SAAA,CAAUR,MAAM,GAAG,GAAG;QACxB,MAAMxB,OAAA,GAAQ;UACZC,KAAA,EAAO;UACPC,KAAA,EAAO;UACPC,KAAA,EAAO6B,SAAA,CAAUR,MAAM;UACvBlG,MAAA;UACA+E,KAAA,EAAO;YACLzE,EAAA,EAAI;cACFwG,EAAA,EAAIJ;YACN;UACF;QACF;QAEA,IAAI,CAAC5F,YAAA,EAAc;UACjB,MAAMsE,UAAA,GAAW,MAAMC,KAAA,CAAM,GAAG1F,SAAA,GAAYD,GAAA,IAAOkE,UAAA,EAAU,EAAE;YAC7D0B,IAAA,EAAMvJ,EAAA,CAAGwJ,SAAS,CAACb,OAAA;YACnBc,WAAA,EAAa;YACbC,OAAA,EAAS;cACP,mBAAmB7F,IAAA,CAAK8F,QAAQ;cAChC,gBAAgB;cAChB,0BAA0B;YAC5B;YACAC,MAAA,EAAQ;UACV;UAEA,MAAMzB,YAAA,GAAa1E,WAAA,CAAY2E,IAAI,CAAEC,MAAA,IAASA,MAAA,CAAKC,IAAI,KAAKT,UAAA;UAC5D,IAAIqC,IAAA,GAAO,EAAE;UAEb,IAAIb,UAAA,CAASQ,EAAE,EAAE;YACf,MAAMC,MAAA,GAAO,MAAMT,UAAA,CAASU,IAAI;YAChCG,IAAA,GAAOJ,MAAA,CAAKI,IAAI;UAClB;UAEA3D,eAAA,CAAgB;YACd6D,IAAA,EAAM;YACNjC,UAAA,EAAAA,YAAA;YACA3E,MAAA;YACA0G,IAAA;YACArG,IAAA;YACAyG,GAAA,EAAKK,SAAA;YACLxD,IAAA,EAAM;UACR;QACF;MACF;IACF,GAAGc,OAAA,CAAQC,OAAO;EACpB,GACA,CAACvC,OAAA,CAAM,EACP,CACEW,OAAA,EACArD,OAAA,EACA8B,YAAA,EACAtB,WAAA,EACAS,oBAAA,EACAN,SAAA,EACAD,GAAA,EACAE,IAAA,EACAX,UAAA,EACAe,MAAA,EACAT,MAAA,CACD;EAGH;EACArD,SAAA,CAAU;IACR,MAAMmH,WAAA,GAAYnD,KAAA,CAAMC,OAAO,CAAClB,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;IACvE,MAAM8H,QAAA,GAAW1D,WAAA,CAAUK,MAAM,CAAC,CAACsD,MAAA,EAAQpD,UAAA;MACzC,MAAMM,YAAA,GAAa1E,WAAA,CAAY2E,IAAI,CAAEC,MAAA,IAASA,MAAA,CAAKC,IAAI,KAAKT,UAAA;MAC5D,MAAMU,eAAA,GAAgBJ,YAAA,EAAY7F,KAAA,EAAOkG,UAAA,IAAc;MACvD,OAAOD,eAAA,KAAkB,QAAQ0C,MAAA;IACnC,GAAG;IACH3F,2BAAA,CAA4B,CAAC0F,QAAA;EAC/B,GAAG,CAAC9H,UAAA,EAAYO,WAAA,CAAY;EAE5B;EACA;EACA3C,gBAAA,CACE;IACE;IACA;IACA;IACA,IAAI2E,qBAAA,CAAsBgB,OAAO,IAAIlB,UAAA,EAAY;MAC/CH,YAAA,CAAa;MACb,KAAK0B,UAAA,CAAW;QACdd,aAAA;QACAnB,cAAA,EAAgB,CAAC;QACjBoC,SAAA,EAAWA,CAAA;UACTxB,qBAAA,CAAsBgB,OAAO,GAAG;UAChCrB,YAAA,CAAa;QACf;QACAO,KAAA,EAAOa,QAAA,CAASC;MAClB;IACF;IAEA;IACA;IACAF,eAAA,CAAgB;MACd6D,IAAA,EAAM;MACNc,YAAA,EAAc1E,QAAA,CAASC;IACzB;IAEA7B,0BAAA,CAA2B,CAAC;IAC5BE,iBAAA,CAAkB,CAAC;EACrB,GACA,CAAC5B,UAAA,EAAY8C,aAAA,EAAe/B,MAAA,EAAQ4B,IAAA,EAAMN,UAAA,CAAW,EACrD,CAACuB,UAAA,CAAW;EAGd,MAAMqE,MAAA,GAASjL,WAAA,CACZkL,IAAA;IACC7E,eAAA,CAAgB;MACd6D,IAAA,EAAM;MACNjC,UAAA,EAAYiD,IAAA,CAAKC,gBAAgB;MACjC7H,MAAA;MACA8H,GAAA,EAAKF,IAAA,CAAKE,GAAG;MACbzH;IACF;IAEA,IAAIZ,OAAA,EAAS;MACXmD,QAAA,CACEI,QAAA,CAASC,OAAO,GACZD,QAAC,CAASC,OAAO,CAAc8E,GAAG,CAAET,QAAA;QAClC,IAAIA,QAAA,CAAOnF,KAAK,KAAKyF,IAAA,CAAKE,GAAG,CAAC/G,EAAE,EAAE;UAChC,OAAO;YACLrB,UAAA,EAAYkI,IAAA,CAAKC,gBAAgB,CAAC/C,IAAI;YACtC3C,KAAA,EAAOyF,IAAA,CAAKE,GAAG,CAAC/G;UAClB;QACF;QAEA,OAAOuG,QAAA;MACT,KACA;IAER,OAAO;MACL1E,QAAA,CAAS;QACPlD,UAAA,EAAYkI,IAAA,CAAKC,gBAAgB,CAAC/C,IAAI;QACtC3C,KAAA,EAAOyF,IAAA,CAAKE,GAAG,CAAC/G;MAClB;IACF;EACF,GACA,CAACV,IAAA,EAAML,MAAA,EAAQP,OAAA,EAASmD,QAAA,CAAS;EAGnC,MAAMoF,WAAA,GAActL,WAAA,CACjBkL,MAAA;IACC7E,eAAA,CAAgB;MACd6D,IAAA,EAAM;MACNjC,UAAA,EAAYiD,MAAA,CAAKC,gBAAgB;MACjC7H,MAAA;MACA0G,IAAA,EAAM,CAACkB,MAAA,CAAKE,GAAG,CAAC;MAChBzH,IAAA;MACAsD,IAAA,EAAM;IACR;IAEA,IAAIlE,OAAA,EAAS;MACXmD,QAAA,CACEI,QAAA,CAASC,OAAO,GACZD,QAAC,CAASC,OAAO,CAAcgF,MAAM,CAAC;QACpCvI,UAAA,EAAYkI,MAAA,CAAKC,gBAAgB,CAAC/C,IAAI;QACtC3C,KAAA,EAAOyF,MAAA,CAAKE,GAAG,CAAC/G;MAClB,KACA;IAER,OAAO;MACL6B,QAAA,CAAS;QACPlD,UAAA,EAAYkI,MAAA,CAAKC,gBAAgB,CAAC/C,IAAI;QACtC3C,KAAA,EAAOyF,MAAA,CAAKE,GAAG,CAAC/G;MAClB;IACF;EACF,GACA,CAACV,IAAA,EAAML,MAAA,EAAQP,OAAA,EAASmD,QAAA,CAAS;EAGnC,MAAMsF,QAAA,GAAWxL,WAAA,CACdkL,MAAA;IACC7E,eAAA,CAAgB;MACdhC,EAAA,EAAI6G,MAAA,CAAK7G,EAAE;MACX6F,IAAA,EAAM;MACNjC,UAAA,EAAYiD,MAAA,CAAKC,gBAAgB;MACjC7H,MAAA;MACAK;IACF;IAEA,IAAIZ,OAAA,EAAS;MACXmD,QAAA,CACEI,QAAA,CAASC,OAAO,GACZD,QAAC,CAASC,OAAO,CAAcmE,MAAM,CAAEE,QAAA;QACrC,OAAOA,QAAA,CAAOnF,KAAK,KAAKyF,MAAA,CAAK7G,EAAE;MACjC,KACA;IAER,OAAO;MACL6B,QAAA,CAAS;IACX;IAEA;EACF,GACA,CAACvC,IAAA,EAAML,MAAA,EAAQP,OAAA,EAASmD,QAAA,CAAS;EAGnC,MAAMuF,YAAA,GAAezL,WAAA,CAAY,CAAC0L,IAAA,EAAcC,YAAA;IAC9C,IAAI,CAACA,YAAA,EAAc;MACjB,OAAO;IACT;IACA,MAAMC,CAAA,GAAI/L,mBAAA,CAAoB8L,YAAA,IAAgB;IAC9C;IACA,MAAME,mBAAA,GAAsB;IAC5B,IAAIC,MAAA,GAASJ,IAAA,CAAKK,KAAK;IACvB;IACA,OAAOD,MAAA,CAAO7B,MAAM,GAAG4B,mBAAA,EAAqB;MAC1C;MACA,MAAMG,YAAA,GAAeF,MAAA,CAAOhE,OAAO,CAAC,KAAK6D,YAAA,CAAa1B,MAAM;MAC5D,IAAI2B,CAAA,CAAEK,IAAI,CAACH,MAAA,CAAOxE,KAAK,CAAC,GAAG0E,YAAA,KAAiB,CAAC,IAAIL,YAAA,CAAa1B,MAAM,GAAG+B,YAAA,GAAe,KAAK;QACzF,OAAO;MACT;MACAF,MAAA,GAASA,MAAA,CAAOxE,KAAK,CAAC0E,YAAA,KAAiB,CAAC,IAAIL,YAAA,CAAa1B,MAAM,GAAG+B,YAAA,GAAe;IACnF;IACA,OAAOJ,CAAA,CAAEK,IAAI,CAACH,MAAA,CAAOxE,KAAK,CAAC,CAACuE,mBAAA;EAC9B,GAAG,EAAE;EAEL,MAAMK,oBAAA,GAAuBlM,WAAA,CAE3B,CAAC;IAAEqE,EAAE,EAAFA,IAAE;IAAEE,cAAc;IAAEC;EAAiB,CAAE;IAC1CmC,6BAAA,CAA8BJ,OAAO,GAAG;IACxCnC,4BAAA,CAA6B;MAC3BC,EAAA,EAAAA,IAAA;MACAE,cAAA;MACAC;IACF;EACF,GAAG,EAAE;EAELvE,SAAA,CAAU;IACR,IAAI0G,6BAAA,CAA8BJ,OAAO,EAAE;MACzCG,UAAA;MACAC,6BAAA,CAA8BJ,OAAO,GAAG;IAC1C;EACF,GAAG,CAACG,UAAA,EAAYvC,yBAAA,CAA0B;EAE1C,MAAMgI,aAAA,GAAgB7K,kBAAA,CAAmB;IAAEgB,SAAA;IAAW8D,OAAA;IAASX,KAAA,EAAAA;EAAM;EAErE,IAAI,CAACxB,KAAA,CAAMC,OAAO,CAACiI,aAAA,KAAkBA,aAAA,EAAe1G,KAAA,KAAU,QAAQ;IACpE0G,aAAA,CAAc1G,KAAK,GAAG;EACxB;EAEA,oBACE2G,KAAA,CAAC;IACC7J,SAAA,EAAW,CACTnB,cAAA,EACAO,SAAA,EACAY,SAAA,EACA4D,SAAA,IAAa,SACbtB,YAAA,IAAgB,iBAChBnC,QAAA,IAAY,GAAGf,SAAA,aAAsB,EACrC,CAACe,QAAA,IAAYL,WAAA,IAAe,GAAGV,SAAA,gBAAyB,CACzD,CACE+I,MAAM,CAAC2B,OAAA,EACPC,IAAI,CAAC;IACRjI,EAAA,EAAI,SAASsB,IAAA,CAAK4G,OAAO,CAAC,OAAO,OAAO;IACxC1J,KAAA,EAAO;MACL,GAAGA,KAAK;MACRC;IACF;4BAEA0J,IAAA,CAACrL,UAAA;MAAWa,KAAA,EAAOA,KAAA;MAAOyK,KAAA,EAAOzK,KAAA,EAAOI,KAAA,EAAOsK,UAAA,EAAYD,KAAA;MAAQ,IAAIvJ,UAAA,IAAc,CAAC,CAAC;qBACvFkJ,KAAA,CAAC;MAAI7J,SAAA,EAAW,GAAGnB,cAAA,QAAsB;8BACvCoL,IAAA,CAACtL,UAAA;QACCyL,WAAA,EAAa3K,KAAA,EAAOI,KAAA,EAAOsK,UAAA,EAAYE,KAAA;QACvC5K,KAAA,EAAOA,KAAA;QACP2D,IAAA,EAAMA,IAAA;QACL,IAAI5D,UAAA,IAAc,CAAC,CAAC;UAEtB,CAAC8C,YAAA,iBACAuH,KAAA,CAAC;QAAI7J,SAAA,EAAW,GAAGZ,SAAA,QAAiB;gCAClC6K,IAAA,CAACjM,WAAA;UACCsM,qBAAA,EAAuB,CAACpG,YAAA;UACxBiG,UAAA,EAAY;YACVlL,eAAA;YACAC;UACF;UACAqL,WAAA,EAAa;YACXC,cAAA,EAAgBtG,YAAA;YAChBuG,gBAAA,EAAkBvG,YAAA;YAClByF,oBAAA;YACAjB;UACF;UACAgC,QAAA,EAAUvK,QAAA,IAAYsD,cAAA,IAAkBS,YAAA;UACxCgF,YAAA,EAActG,wBAAA,GAA2BsG,YAAA,GAAenH,SAAA;UACxD4I,cAAA,EAAiBtC,QAAA;YACf,IAAI,CAACA,QAAA,EAAQ;cACX,OAAOtG,SAAA;YACT;YACA,OAAOvB,OAAA,IAAWkB,KAAA,CAAMC,OAAO,CAAClB,UAAA,IAC5B,GAAG4H,QAAA,CAAO5H,UAAU,IAAI4H,QAAA,CAAOnF,KAAK,EAAE,GACtCmF,QAAA,CAAOnF,KAAK;UAClB;UACAR,SAAA,EAAWA,SAAA;UACXkI,OAAA,EAASpK,OAAA;UACTN,UAAA,EAAYA,UAAA;UACZ2K,QAAA,EACE,CAAC1K,QAAA,GACI2K,QAAA;YACC,IAAIA,QAAA,KAAa,MAAM;cACrBnH,QAAA,CAASnD,OAAA,GAAU,EAAE,GAAG;YAC1B,OAAO,IAAIA,OAAA,IAAWkB,KAAA,CAAMC,OAAO,CAACmJ,QAAA,GAAW;cAC7CnH,QAAA,CACEmH,QAAA,GACIA,QAAA,CAAShC,GAAG,CAAET,QAAA;gBACZ,IAAI5G,oBAAA,EAAsB;kBACxB,OAAO;oBACLhB,UAAA,EAAY4H,QAAA,CAAO5H,UAAU;oBAC7ByC,KAAA,EAAOmF,QAAA,CAAOnF;kBAChB;gBACF;gBAEA,OAAOmF,QAAA,CAAOnF,KAAK;cACrB,KACA;YAER,OAAO,IAAIzB,oBAAA,IAAwB,CAACC,KAAA,CAAMC,OAAO,CAACmJ,QAAA,GAAW;cAC3DnH,QAAA,CAAS;gBACPlD,UAAA,EAAYqK,QAAA,CAASrK,UAAU;gBAC/ByC,KAAA,EAAO4H,QAAA,CAAS5H;cAClB;YACF,OAAO,IAAI,CAACxB,KAAA,CAAMC,OAAO,CAACmJ,QAAA,GAAW;cACnCnH,QAAA,CAASmH,QAAA,CAAS5H,KAAK;YACzB;UACF,IACAnB,SAAA;UAENgJ,aAAA,EAAgBC,SAAA,IAAcjD,iBAAA,CAAkBiD,SAAA,EAAW9H,OAAA;UAC3D+H,WAAA,EAAaA,CAAA;YACXlI,aAAA,CAAc;UAChB;UACAmI,UAAA,EAAYA,CAAA;YACVnI,aAAA,CAAc;YAEd,IAAI,CAACC,qBAAA,CAAsBgB,OAAO,EAAE;cAClCrB,YAAA,CAAa;cACb,KAAK0B,UAAA,CAAW;gBACdd,aAAA;gBACAnB,cAAA,EAAgB,CAAC;gBACjBoC,SAAA,EAAWA,CAAA;kBACTxB,qBAAA,CAAsBgB,OAAO,GAAG;kBAChCrB,YAAA,CAAa;gBACf;gBACAO,KAAA,EAAOQ;cACT;YACF;UACF;UACAyH,oBAAA,EAAsBA,CAAA;YACpB,KAAK9G,UAAA,CAAW;cACdd,aAAA;cACArB,uBAAA;cACAE,cAAA;cACAI,MAAA;cACAkC,IAAA,EAAM;cACNxB,KAAA,EAAOQ;YACT;UACF;UACAG,OAAA,EAASA,OAAA;UACTD,SAAA,EAAWA,SAAA;UACXV,KAAA,EAAO0G,aAAA,IAAiB;YAEzB,CAACzJ,QAAA,IAAYL,WAAA,iBACZmK,IAAA,CAACnM,cAAA;UACC0C,OAAA,EAASA,OAAA;UACT4C,IAAA,EAAMA,IAAA;UACN3C,UAAA,EAAYA,UAAA;UACZkD,QAAA,EAAUA,QAAA;UACVT,KAAA,EAAOA;;UAKdZ,YAAA,iBAAgB2H,IAAA,CAAC;QAAIjK,SAAA,EAAW,GAAGZ,SAAA,iBAA0B;kBAAGkD;uBACjE2H,IAAA,CAACvL,gBAAA;QACC0M,WAAA,EAAa3L,KAAA,EAAOI,KAAA,EAAOsK,UAAA,EAAYiB,WAAA;QACvCnL,WAAA,EAAaA,WAAA;QACbR,KAAA,EAAOA,KAAA;QACN,IAAIF,gBAAA,IAAoB,CAAC,CAAC;;QAG9BqC,yBAAA,CAA0BI,cAAc,IAAIJ,yBAAA,CAA0BK,iBAAiB,iBACtFgI,IAAA,CAAChG,cAAA;MAAegF,QAAA,EAAUA,QAAA;MAAUF,WAAA,EAAaA,WAAA;MAAaL,MAAA,EAAQA;;;AAI9E;AAEA,OAAO,MAAM2C,iBAAA,GAAoBlN,aAAA,CAAckB,0BAAA","ignoreList":[]}
@@ -11,12 +11,13 @@ import { useTranslation } from '../../../../providers/Translation/index.js';
11
11
  import './index.scss';
12
12
  const baseClass = 'relationship--multi-value-label';
13
13
  export const MultiValueLabel = props => {
14
- const $ = _c(24);
14
+ const $ = _c(26);
15
15
  const {
16
16
  data: t0,
17
17
  selectProps: t1
18
18
  } = props;
19
19
  const {
20
+ allowEdit,
20
21
  label,
21
22
  relationTo,
22
23
  value
@@ -61,10 +62,10 @@ export const MultiValueLabel = props => {
61
62
  t5 = $[5];
62
63
  }
63
64
  let t6;
64
- if ($[6] !== t5 || $[7] !== props || $[8] !== relationTo || $[9] !== hasReadPermission || $[10] !== label || $[11] !== onDocumentDrawerOpen || $[12] !== value || $[13] !== t || $[14] !== showTooltip) {
65
+ if ($[6] !== t5 || $[7] !== props || $[8] !== relationTo || $[9] !== hasReadPermission || $[10] !== allowEdit || $[11] !== label || $[12] !== onDocumentDrawerOpen || $[13] !== value || $[14] !== t || $[15] !== showTooltip) {
65
66
  let t7;
66
- if ($[16] !== relationTo || $[17] !== hasReadPermission || $[18] !== label || $[19] !== onDocumentDrawerOpen || $[20] !== value || $[21] !== t || $[22] !== showTooltip) {
67
- t7 = relationTo && hasReadPermission && _jsx(Fragment, {
67
+ if ($[17] !== relationTo || $[18] !== hasReadPermission || $[19] !== allowEdit || $[20] !== label || $[21] !== onDocumentDrawerOpen || $[22] !== value || $[23] !== t || $[24] !== showTooltip) {
68
+ t7 = relationTo && hasReadPermission && allowEdit !== false && _jsx(Fragment, {
68
69
  children: _jsxs("button", {
69
70
  "aria-label": `Edit ${label}`,
70
71
  className: `${baseClass}__drawer-toggler`,
@@ -93,16 +94,17 @@ export const MultiValueLabel = props => {
93
94
  })]
94
95
  })
95
96
  });
96
- $[16] = relationTo;
97
- $[17] = hasReadPermission;
98
- $[18] = label;
99
- $[19] = onDocumentDrawerOpen;
100
- $[20] = value;
101
- $[21] = t;
102
- $[22] = showTooltip;
103
- $[23] = t7;
97
+ $[17] = relationTo;
98
+ $[18] = hasReadPermission;
99
+ $[19] = allowEdit;
100
+ $[20] = label;
101
+ $[21] = onDocumentDrawerOpen;
102
+ $[22] = value;
103
+ $[23] = t;
104
+ $[24] = showTooltip;
105
+ $[25] = t7;
104
106
  } else {
105
- t7 = $[23];
107
+ t7 = $[25];
106
108
  }
107
109
  t6 = _jsxs("div", {
108
110
  className: baseClass,
@@ -121,14 +123,15 @@ export const MultiValueLabel = props => {
121
123
  $[7] = props;
122
124
  $[8] = relationTo;
123
125
  $[9] = hasReadPermission;
124
- $[10] = label;
125
- $[11] = onDocumentDrawerOpen;
126
- $[12] = value;
127
- $[13] = t;
128
- $[14] = showTooltip;
129
- $[15] = t6;
126
+ $[10] = allowEdit;
127
+ $[11] = label;
128
+ $[12] = onDocumentDrawerOpen;
129
+ $[13] = value;
130
+ $[14] = t;
131
+ $[15] = showTooltip;
132
+ $[16] = t6;
130
133
  } else {
131
- t6 = $[15];
134
+ t6 = $[16];
132
135
  }
133
136
  return t6;
134
137
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Fragment","useState","components","Tooltip","EditIcon","useAuth","useTranslation","baseClass","MultiValueLabel","props","$","data","t0","selectProps","t1","label","relationTo","value","t2","undefined","customProps","t3","t4","draggableProps","onDocumentDrawerOpen","permissions","showTooltip","setShowTooltip","t","hasReadPermission","Boolean","collections","read","permission","t5","t6","t7","_jsx","children","_jsxs","className","onClick","id","collectionSlug","onKeyDown","_temp","onMouseDown","_temp2","onMouseEnter","onMouseLeave","onTouchEnd","_temp3","type","show","innerProps","e","key","stopPropagation","e_0","e_1"],"sources":["../../../../../src/fields/Relationship/select-components/MultiValueLabel/index.tsx"],"sourcesContent":["'use client'\nimport type { MultiValueProps } from 'react-select'\n\nimport React, { Fragment, useState } from 'react'\nimport { components } from 'react-select'\n\nimport type { ReactSelectAdapterProps } from '../../../../elements/ReactSelect/types.js'\nimport type { Option } from '../../types.js'\n\nimport { Tooltip } from '../../../../elements/Tooltip/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship--multi-value-label'\n\nexport const MultiValueLabel: React.FC<\n {\n selectProps: {\n // TODO Fix this - moduleResolution 16 breaks our declare module\n customProps: ReactSelectAdapterProps['customProps']\n }\n } & MultiValueProps<Option>\n> = (props) => {\n const {\n data: { label, relationTo, value },\n selectProps: { customProps: { draggableProps, onDocumentDrawerOpen } = {} } = {},\n } = props\n\n const { permissions } = useAuth()\n const [showTooltip, setShowTooltip] = useState(false)\n const { t } = useTranslation()\n const hasReadPermission = Boolean(permissions?.collections?.[relationTo]?.read?.permission)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__content`}>\n <components.MultiValueLabel\n {...props}\n innerProps={{\n className: `${baseClass}__text`,\n ...(draggableProps || {}),\n }}\n />\n </div>\n {relationTo && hasReadPermission && (\n <Fragment>\n <button\n aria-label={`Edit ${label}`}\n className={`${baseClass}__drawer-toggler`}\n onClick={() => {\n setShowTooltip(false)\n onDocumentDrawerOpen({\n id: value,\n collectionSlug: relationTo,\n hasReadPermission,\n })\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:editLabel', { label: '' })}\n </Tooltip>\n <EditIcon className={`${baseClass}__icon`} />\n </button>\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Fragment","useState","components","Tooltip","EditIcon","useAuth","useTranslation","baseClass","MultiValueLabel","props","$","data","t0","selectProps","t1","allowEdit","label","relationTo","value","t2","undefined","customProps","t3","t4","draggableProps","onDocumentDrawerOpen","permissions","showTooltip","setShowTooltip","t","hasReadPermission","Boolean","collections","read","permission","t5","t6","t7","_jsx","children","_jsxs","className","onClick","id","collectionSlug","onKeyDown","_temp","onMouseDown","_temp2","onMouseEnter","onMouseLeave","onTouchEnd","_temp3","type","show","innerProps","e","key","stopPropagation","e_0","e_1"],"sources":["../../../../../src/fields/Relationship/select-components/MultiValueLabel/index.tsx"],"sourcesContent":["'use client'\nimport type { MultiValueProps } from 'react-select'\n\nimport React, { Fragment, useState } from 'react'\nimport { components } from 'react-select'\n\nimport type { ReactSelectAdapterProps } from '../../../../elements/ReactSelect/types.js'\nimport type { Option } from '../../types.js'\n\nimport { Tooltip } from '../../../../elements/Tooltip/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship--multi-value-label'\n\nexport const MultiValueLabel: React.FC<\n {\n selectProps: {\n // TODO Fix this - moduleResolution 16 breaks our declare module\n customProps: ReactSelectAdapterProps['customProps']\n }\n } & MultiValueProps<Option>\n> = (props) => {\n const {\n data: { allowEdit, label, relationTo, value },\n selectProps: { customProps: { draggableProps, onDocumentDrawerOpen } = {} } = {},\n } = props\n\n const { permissions } = useAuth()\n const [showTooltip, setShowTooltip] = useState(false)\n const { t } = useTranslation()\n const hasReadPermission = Boolean(permissions?.collections?.[relationTo]?.read?.permission)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__content`}>\n <components.MultiValueLabel\n {...props}\n innerProps={{\n className: `${baseClass}__text`,\n ...(draggableProps || {}),\n }}\n />\n </div>\n {relationTo && hasReadPermission && allowEdit !== false && (\n <Fragment>\n <button\n aria-label={`Edit ${label}`}\n className={`${baseClass}__drawer-toggler`}\n onClick={() => {\n setShowTooltip(false)\n onDocumentDrawerOpen({\n id: value,\n collectionSlug: relationTo,\n hasReadPermission,\n })\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:editLabel', { label: '' })}\n </Tooltip>\n <EditIcon className={`${baseClass}__icon`} />\n </button>\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,13 +11,14 @@ import { useTranslation } from '../../../../providers/Translation/index.js';
11
11
  import './index.scss';
12
12
  const baseClass = 'relationship--single-value';
13
13
  export const SingleValue = props => {
14
- const $ = _c(22);
14
+ const $ = _c(24);
15
15
  const {
16
16
  children,
17
17
  data: t0,
18
18
  selectProps: t1
19
19
  } = props;
20
20
  const {
21
+ allowEdit,
21
22
  label,
22
23
  relationTo,
23
24
  value
@@ -53,10 +54,10 @@ export const SingleValue = props => {
53
54
  } = useAuth();
54
55
  const hasReadPermission = Boolean(permissions?.collections?.[relationTo]?.read?.permission);
55
56
  let t5;
56
- if ($[4] !== children || $[5] !== relationTo || $[6] !== hasReadPermission || $[7] !== label || $[8] !== t || $[9] !== onDocumentDrawerOpen || $[10] !== value || $[11] !== showTooltip || $[12] !== props) {
57
+ if ($[4] !== children || $[5] !== relationTo || $[6] !== hasReadPermission || $[7] !== allowEdit || $[8] !== label || $[9] !== t || $[10] !== onDocumentDrawerOpen || $[11] !== value || $[12] !== showTooltip || $[13] !== props) {
57
58
  let t6;
58
- if ($[14] !== relationTo || $[15] !== hasReadPermission || $[16] !== label || $[17] !== t || $[18] !== onDocumentDrawerOpen || $[19] !== value || $[20] !== showTooltip) {
59
- t6 = relationTo && hasReadPermission && _jsx(Fragment, {
59
+ if ($[15] !== relationTo || $[16] !== hasReadPermission || $[17] !== allowEdit || $[18] !== label || $[19] !== t || $[20] !== onDocumentDrawerOpen || $[21] !== value || $[22] !== showTooltip) {
60
+ t6 = relationTo && hasReadPermission && allowEdit !== false && _jsx(Fragment, {
60
61
  children: _jsxs("button", {
61
62
  "aria-label": t("general:editLabel", {
62
63
  label
@@ -83,16 +84,17 @@ export const SingleValue = props => {
83
84
  }), _jsx(EditIcon, {})]
84
85
  })
85
86
  });
86
- $[14] = relationTo;
87
- $[15] = hasReadPermission;
88
- $[16] = label;
89
- $[17] = t;
90
- $[18] = onDocumentDrawerOpen;
91
- $[19] = value;
92
- $[20] = showTooltip;
93
- $[21] = t6;
87
+ $[15] = relationTo;
88
+ $[16] = hasReadPermission;
89
+ $[17] = allowEdit;
90
+ $[18] = label;
91
+ $[19] = t;
92
+ $[20] = onDocumentDrawerOpen;
93
+ $[21] = value;
94
+ $[22] = showTooltip;
95
+ $[23] = t6;
94
96
  } else {
95
- t6 = $[21];
97
+ t6 = $[23];
96
98
  }
97
99
  t5 = _jsx(SelectComponents.SingleValue, {
98
100
  ...props,
@@ -111,15 +113,16 @@ export const SingleValue = props => {
111
113
  $[4] = children;
112
114
  $[5] = relationTo;
113
115
  $[6] = hasReadPermission;
114
- $[7] = label;
115
- $[8] = t;
116
- $[9] = onDocumentDrawerOpen;
117
- $[10] = value;
118
- $[11] = showTooltip;
119
- $[12] = props;
120
- $[13] = t5;
116
+ $[7] = allowEdit;
117
+ $[8] = label;
118
+ $[9] = t;
119
+ $[10] = onDocumentDrawerOpen;
120
+ $[11] = value;
121
+ $[12] = showTooltip;
122
+ $[13] = props;
123
+ $[14] = t5;
121
124
  } else {
122
- t5 = $[13];
125
+ t5 = $[14];
123
126
  }
124
127
  return t5;
125
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Fragment","useState","components","SelectComponents","Tooltip","EditIcon","useAuth","useTranslation","baseClass","SingleValue","props","$","children","data","t0","selectProps","t1","label","relationTo","value","t2","undefined","customProps","t3","t4","onDocumentDrawerOpen","showTooltip","setShowTooltip","t","permissions","hasReadPermission","Boolean","collections","read","permission","t5","t6","_jsx","_jsxs","className","onClick","id","collectionSlug","onKeyDown","_temp","onMouseDown","_temp2","onMouseEnter","onMouseLeave","onTouchEnd","_temp3","type","show","e","key","stopPropagation","e_0","e_1"],"sources":["../../../../../src/fields/Relationship/select-components/SingleValue/index.tsx"],"sourcesContent":["'use client'\nimport type { SingleValueProps } from 'react-select'\n\nimport React, { Fragment, useState } from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { ReactSelectAdapterProps } from '../../../../elements/ReactSelect/types.js'\nimport type { Option } from '../../types.js'\n\nimport { Tooltip } from '../../../../elements/Tooltip/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship--single-value'\n\nexport const SingleValue: React.FC<\n {\n selectProps: {\n // TODO Fix this - moduleResolution 16 breaks our declare module\n customProps: ReactSelectAdapterProps['customProps']\n }\n } & SingleValueProps<Option>\n> = (props) => {\n const {\n children,\n data: { label, relationTo, value },\n selectProps: { customProps: { onDocumentDrawerOpen } = {} } = {},\n } = props\n\n const [showTooltip, setShowTooltip] = useState(false)\n const { t } = useTranslation()\n const { permissions } = useAuth()\n const hasReadPermission = Boolean(permissions?.collections?.[relationTo]?.read?.permission)\n\n return (\n <SelectComponents.SingleValue {...props} className={baseClass}>\n <div className={`${baseClass}__label`}>\n <div className={`${baseClass}__label-text`}>\n <div className={`${baseClass}__text`}>{children}</div>\n {relationTo && hasReadPermission && (\n <Fragment>\n <button\n aria-label={t('general:editLabel', { label })}\n className={`${baseClass}__drawer-toggler`}\n onClick={() => {\n setShowTooltip(false)\n onDocumentDrawerOpen({\n id: value,\n collectionSlug: relationTo,\n hasReadPermission,\n })\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={(e) => e.stopPropagation()} // prevents react-select dropdown from openingtype=\"button\"\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:edit')}\n </Tooltip>\n <EditIcon />\n </button>\n </Fragment>\n )}\n </div>\n </div>\n </SelectComponents.SingleValue>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Fragment","useState","components","SelectComponents","Tooltip","EditIcon","useAuth","useTranslation","baseClass","SingleValue","props","$","children","data","t0","selectProps","t1","allowEdit","label","relationTo","value","t2","undefined","customProps","t3","t4","onDocumentDrawerOpen","showTooltip","setShowTooltip","t","permissions","hasReadPermission","Boolean","collections","read","permission","t5","t6","_jsx","_jsxs","className","onClick","id","collectionSlug","onKeyDown","_temp","onMouseDown","_temp2","onMouseEnter","onMouseLeave","onTouchEnd","_temp3","type","show","e","key","stopPropagation","e_0","e_1"],"sources":["../../../../../src/fields/Relationship/select-components/SingleValue/index.tsx"],"sourcesContent":["'use client'\nimport type { SingleValueProps } from 'react-select'\n\nimport React, { Fragment, useState } from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { ReactSelectAdapterProps } from '../../../../elements/ReactSelect/types.js'\nimport type { Option } from '../../types.js'\n\nimport { Tooltip } from '../../../../elements/Tooltip/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship--single-value'\n\nexport const SingleValue: React.FC<\n {\n selectProps: {\n // TODO Fix this - moduleResolution 16 breaks our declare module\n customProps: ReactSelectAdapterProps['customProps']\n }\n } & SingleValueProps<Option>\n> = (props) => {\n const {\n children,\n data: { allowEdit, label, relationTo, value },\n selectProps: { customProps: { onDocumentDrawerOpen } = {} } = {},\n } = props\n\n const [showTooltip, setShowTooltip] = useState(false)\n const { t } = useTranslation()\n const { permissions } = useAuth()\n const hasReadPermission = Boolean(permissions?.collections?.[relationTo]?.read?.permission)\n\n return (\n <SelectComponents.SingleValue {...props} className={baseClass}>\n <div className={`${baseClass}__label`}>\n <div className={`${baseClass}__label-text`}>\n <div className={`${baseClass}__text`}>{children}</div>\n {relationTo && hasReadPermission && allowEdit !== false && (\n <Fragment>\n <button\n aria-label={t('general:editLabel', { label })}\n className={`${baseClass}__drawer-toggler`}\n onClick={() => {\n setShowTooltip(false)\n onDocumentDrawerOpen({\n id: value,\n collectionSlug: relationTo,\n hasReadPermission,\n })\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()} // prevents react-select dropdown from opening\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={(e) => e.stopPropagation()} // prevents react-select dropdown from openingtype=\"button\"\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:edit')}\n </Tooltip>\n <EditIcon />\n </button>\n </Fragment>\n )}\n </div>\n </div>\n </SelectComponents.SingleValue>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,EAAEC,QAAQ,QAAQ;AAC1C,SAASC,UAAA,IAAcC,gBAAgB,QAAQ;AAK/C,SAASC,OAAO,QAAQ;AACxB,SAASC,QAAQ,QAAQ;AACzB,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAOTC,KAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EACF;IAAAc,QAAA;IAAAC,IAAA,EAAAC,EAAA;IAAAC,WAAA,EAAAC;EAAA,IAIIN,KAAA;EAFI;IAAAO,SAAA;IAAAC,KAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAN,EAAuC;EAAA,IAAAO,EAAA;EAAA,IAAAV,CAAA,QAAAK,EAAA;IAChCK,EAAA,GAAAL,EAAmD,KAAAM,SAAA,QAAnDN,EAAmD;IAAAL,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAnD;IAAAY,WAAA,EAAAC;EAAA,IAAAH,EAAmD;EAAA,IAAAI,EAAA;EAAA,IAAAd,CAAA,QAAAa,EAAA;IAApCC,EAAA,GAAAD,EAA6B,KAAAF,SAAA,QAA7BE,EAA6B;IAAAb,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAA7B;IAAAe;EAAA,IAAAD,EAA6B;EAG3D,OAAAE,WAAA,EAAAC,cAAA,IAAsC3B,QAAA,MAAS;EAC/C;IAAA4B;EAAA,IAActB,cAAA;EACd;IAAAuB;EAAA,IAAwBxB,OAAA;EACxB,MAAAyB,iBAAA,GAA0BC,OAAA,CAAQF,WAAA,EAAAG,WAAA,GAA2Bd,UAAA,GAAAe,IAAA,EAAAC,UAAmB;EAAA,IAAAC,EAAA;EAAA,IAAAzB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAQ,UAAA,IAAAR,CAAA,QAAAoB,iBAAA,IAAApB,CAAA,QAAAM,SAAA,IAAAN,CAAA,QAAAO,KAAA,IAAAP,CAAA,QAAAkB,CAAA,IAAAlB,CAAA,SAAAe,oBAAA,IAAAf,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAgB,WAAA,IAAAhB,CAAA,SAAAD,KAAA;IAAA,IAAA2B,EAAA;IAAA,IAAA1B,CAAA,SAAAQ,UAAA,IAAAR,CAAA,SAAAoB,iBAAA,IAAApB,CAAA,SAAAM,SAAA,IAAAN,CAAA,SAAAO,KAAA,IAAAP,CAAA,SAAAkB,CAAA,IAAAlB,CAAA,SAAAe,oBAAA,IAAAf,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAgB,WAAA;MAOvEU,EAAA,GAAAlB,UAAA,IAAcY,iBAAA,IAAqBd,SAAA,UAAc,IAChDqB,IAAA,CAAAtC,QAAA;QAAAY,QAAA,EACE2B,KAAA,CAAC;UAAA,cACaV,CAAA,CAAE;YAAAX;UAAA,CAA6B;UAAAsB,SAAA,EAChC,GAAAhC,SAAA,kBAA8B;UAAAiC,OAAA,EAAAA,CAAA;YAEvCb,cAAA,MAAe;YACfF,oBAAA;cAAAgB,EAAA,EACMtB,KAAA;cAAAuB,cAAA,EACYxB,UAAA;cAAAY;YAAA,CAElB;UAAA;UAAAa,SAAA,EAAAC,KAAA;UAAAC,WAAA,EAAAC,MAAA;UAAAC,YAAA,EAAAA,CAAA,KAQkBpB,cAAA,KAAe;UAAAqB,YAAA,EAAAA,CAAA,KACfrB,cAAA,MAAe;UAAAsB,UAAA,EAAAC,MAAA;UAAAC,IAAA,EAE9B;UAAAxC,QAAA,GAEL0B,IAAA,CAAAlC,OAAA;YAAAoC,SAAA,EAAoB,GAAAhC,SAAA,WAAuB;YAAA6C,IAAA,EAAQ1B,WAAA;YAAAf,QAAA,EAChDiB,CAAA,CAAE;UAAA,C,GAELS,IAAA,CAAAjC,QAAA,IAAC;QAAA,C;;;;;;;;;;;;;;IA/Bb+B,EAAA,GAAAE,IAAA,CAAAnC,gBAAA,CAAAM,WAAA;MAAA,GAAkCC,KAAK;MAAA8B,SAAA,EAAAhC,SAAA;MAAAI,QAAA,EACrC0B,IAAA,CAAC;QAAAE,SAAA,EAAe,GAAAhC,SAAA,SAAqB;QAAAI,QAAA,EACnC2B,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAAhC,SAAA,cAA0B;UAAAI,QAAA,GACxC0B,IAAA,CAAC;YAAAE,SAAA,EAAe,GAAAhC,SAAA,QAAoB;YAAAI;UAAA,C,GACnCyB,E;;;;;;;;;;;;;;;;;;SAJPD,E;CAuCJ;AApDI,SAAAS,MAAAS,CAAA;EAAA,IA+BkBA,CAAA,CAAAC,GAAA,KAAU;IACZD,CAAA,CAAAE,eAAA,CAAiB;EAAA;AAAA;AAhCjC,SAAAT,OAAAU,GAAA;EAAA,OAmCgCH,GAAA,CAAAE,eAAA,CAAiB;AAAA;AAnCjD,SAAAL,OAAAO,GAAA;EAAA,OAsC+BJ,GAAA,CAAAE,eAAA,CAAiB;AAAA","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
2
  import type { ClientCollectionConfig, ClientConfig, FilterOptionsResult } from 'payload';
3
3
  export type Option = {
4
+ allowEdit: boolean;
4
5
  label: string;
5
6
  options?: Option[];
6
7
  relationTo?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAExF,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAA;AAEvD,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;IAC9B,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;IAC9B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;CACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAExF,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAA;AAEvD,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;IAC9B,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,sBAAsB,CAAA;IAClC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;IAC9B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;CACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Relationship/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ClientConfig, FilterOptionsResult } from 'payload'\n\nexport type Option = {\n label: string\n options?: Option[]\n relationTo?: string\n value: number | string\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ValueWithRelation = {\n relationTo: string\n value: number | string\n}\n\nexport type Value = number | string | ValueWithRelation\n\ntype CLEAR = {\n exemptValues?: Value | Value[]\n type: 'CLEAR'\n}\n\ntype UPDATE = {\n collection: ClientCollectionConfig\n config: ClientConfig\n doc: any\n i18n: I18nClient\n type: 'UPDATE'\n}\n\ntype ADD = {\n collection: ClientCollectionConfig\n config: ClientConfig\n docs: any[]\n i18n: I18nClient\n ids?: (number | string)[]\n sort?: boolean\n type: 'ADD'\n}\n\ntype REMOVE = {\n collection: ClientCollectionConfig\n config: ClientConfig\n i18n: I18nClient\n id: string\n type: 'REMOVE'\n}\n\nexport type Action = ADD | CLEAR | REMOVE | UPDATE\n\nexport type GetResults = (args: {\n filterOptions?: FilterOptionsResult\n lastFullyLoadedRelation?: number\n lastLoadedPage: Record<string, number>\n onSuccess?: () => void\n search?: string\n sort?: boolean\n value?: Value | Value[]\n}) => Promise<void>\n"],"mappings":"AAuDA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Relationship/types.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ClientConfig, FilterOptionsResult } from 'payload'\n\nexport type Option = {\n allowEdit: boolean\n label: string\n options?: Option[]\n relationTo?: string\n value: number | string\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ValueWithRelation = {\n relationTo: string\n value: number | string\n}\n\nexport type Value = number | string | ValueWithRelation\n\ntype CLEAR = {\n exemptValues?: Value | Value[]\n type: 'CLEAR'\n}\n\ntype UPDATE = {\n collection: ClientCollectionConfig\n config: ClientConfig\n doc: any\n i18n: I18nClient\n type: 'UPDATE'\n}\n\ntype ADD = {\n collection: ClientCollectionConfig\n config: ClientConfig\n docs: any[]\n i18n: I18nClient\n ids?: (number | string)[]\n sort?: boolean\n type: 'ADD'\n}\n\ntype REMOVE = {\n collection: ClientCollectionConfig\n config: ClientConfig\n i18n: I18nClient\n id: string\n type: 'REMOVE'\n}\n\nexport type Action = ADD | CLEAR | REMOVE | UPDATE\n\nexport type GetResults = (args: {\n filterOptions?: FilterOptionsResult\n lastFullyLoadedRelation?: number\n lastLoadedPage: Record<string, number>\n onSuccess?: () => void\n search?: string\n sort?: boolean\n value?: Value | Value[]\n}) => Promise<void>\n"],"mappings":"AAwDA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;AA+F5C,eAAO,MAAM,aAAa;wBA7FT,MAAO,GAAG;yBAA6C,MACpE,oBACU;;;;;;;oCA2FoD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AASpD,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;AA+F5C,eAAO,MAAM,aAAa;wBA/FvB,MAAO,GAAG;yBAEF,MAAO,oBAAoB;;;;;;;oCA6F4B,CAAA"}
@@ -8,6 +8,7 @@ import { useFieldProps } from '../../forms/FieldPropsProvider/index.js';
8
8
  import { useField } from '../../forms/useField/index.js';
9
9
  import { withCondition } from '../../forms/withCondition/index.js';
10
10
  import { useConfig } from '../../providers/Config/index.js';
11
+ import { useLocale } from '../../providers/Locale/index.js';
11
12
  import { useTranslation } from '../../providers/Translation/index.js';
12
13
  import { isFieldRTL } from '../shared/index.js';
13
14
  import './index.scss';
@@ -21,7 +22,6 @@ const TextareaFieldComponent = props => {
21
22
  field,
22
23
  field: t0,
23
24
  labelProps,
24
- locale,
25
25
  readOnly: readOnlyFromTopLevelProps,
26
26
  validate
27
27
  } = props;
@@ -57,6 +57,7 @@ const TextareaFieldComponent = props => {
57
57
  const {
58
58
  i18n
59
59
  } = useTranslation();
60
+ const locale = useLocale();
60
61
  const {
61
62
  config: t3
62
63
  } = useConfig();