@payloadcms/ui 3.18.0-canary.df484f6 → 3.19.0-canary.5e4a1d4

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 (112) hide show
  1. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  4. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/index.js +4 -2
  8. package/dist/elements/BulkUpload/index.js.map +1 -1
  9. package/dist/elements/DeleteDocument/index.js.map +1 -1
  10. package/dist/elements/DocumentControls/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
  13. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  15. package/dist/elements/ListDrawer/DrawerContent.js +6 -6
  16. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  17. package/dist/elements/Localizer/index.d.ts.map +1 -1
  18. package/dist/elements/Localizer/index.js +21 -21
  19. package/dist/elements/Localizer/index.js.map +1 -1
  20. package/dist/elements/PublishButton/index.js +79 -100
  21. package/dist/elements/PublishButton/index.js.map +1 -1
  22. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  23. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  24. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  25. package/dist/elements/RelationshipTable/index.js.map +1 -1
  26. package/dist/elements/SortColumn/index.scss +0 -1
  27. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
  28. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  30. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
  31. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  32. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  33. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  34. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
  35. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  36. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  37. package/dist/elements/Table/DefaultCell/index.js +33 -40
  38. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  39. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  40. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
  41. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  42. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  43. package/dist/elements/TableColumns/buildColumnState.js +30 -11
  44. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  45. package/dist/elements/TableColumns/index.js.map +1 -1
  46. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  47. package/dist/elements/Thumbnail/index.js +5 -2
  48. package/dist/elements/Thumbnail/index.js.map +1 -1
  49. package/dist/elements/Upload/index.d.ts.map +1 -1
  50. package/dist/elements/Upload/index.js +72 -33
  51. package/dist/elements/Upload/index.js.map +1 -1
  52. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  53. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
  54. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  55. package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
  56. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  57. package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
  58. package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
  59. package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
  60. package/dist/exports/client/index.js +22 -22
  61. package/dist/exports/client/index.js.map +4 -4
  62. package/dist/exports/shared/index.js +2 -2
  63. package/dist/exports/shared/index.js.map +3 -3
  64. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  65. package/dist/fields/Blocks/BlockRow.js +32 -47
  66. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  67. package/dist/fields/Blocks/index.js +3 -2
  68. package/dist/fields/Blocks/index.js.map +1 -1
  69. package/dist/fields/Join/index.d.ts.map +1 -1
  70. package/dist/fields/Join/index.js +5 -5
  71. package/dist/fields/Join/index.js.map +1 -1
  72. package/dist/fields/Relationship/index.d.ts.map +1 -1
  73. package/dist/fields/Relationship/index.js +14 -8
  74. package/dist/fields/Relationship/index.js.map +1 -1
  75. package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
  76. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  77. package/dist/forms/Form/reduceToSerializableFields.js +15 -12
  78. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  79. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  80. package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
  81. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  82. package/dist/providers/Config/index.d.ts +22 -13
  83. package/dist/providers/Config/index.d.ts.map +1 -1
  84. package/dist/providers/Config/index.js +45 -61
  85. package/dist/providers/Config/index.js.map +1 -1
  86. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  87. package/dist/providers/DocumentInfo/index.js.map +1 -1
  88. package/dist/providers/Locale/index.d.ts.map +1 -1
  89. package/dist/providers/Locale/index.js +62 -54
  90. package/dist/providers/Locale/index.js.map +1 -1
  91. package/dist/scss/toasts.scss +2 -0
  92. package/dist/styles.css +1 -1
  93. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  94. package/dist/utilities/handleFormStateLocking.js +3 -3
  95. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  96. package/dist/utilities/isURLAllowed.d.ts +3 -0
  97. package/dist/utilities/isURLAllowed.d.ts.map +1 -0
  98. package/dist/utilities/isURLAllowed.js +31 -0
  99. package/dist/utilities/isURLAllowed.js.map +1 -0
  100. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  101. package/dist/views/Edit/Auth/APIKey.js +4 -3
  102. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  103. package/dist/views/Edit/index.d.ts.map +1 -1
  104. package/dist/views/Edit/index.js.map +1 -1
  105. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  106. package/dist/views/List/ListHeader/index.js +5 -4
  107. package/dist/views/List/ListHeader/index.js.map +1 -1
  108. package/dist/views/List/index.d.ts.map +1 -1
  109. package/dist/views/List/index.js.map +1 -1
  110. package/package.json +5 -5
  111. package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
  112. /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
@@ -26,7 +26,6 @@ export const RelationshipField = props => {
26
26
  } = props;
27
27
  const {
28
28
  config: {
29
- collections,
30
29
  routes: {
31
30
  api
32
31
  },
@@ -77,13 +76,17 @@ export const RelationshipField = props => {
77
76
  });
78
77
  const fieldToSearch = collection_0?.admin?.useAsTitle || 'id';
79
78
  const pageIndex = nextPageByRelationshipRef.current.get(relationSlug);
79
+ const where = {
80
+ and: []
81
+ };
80
82
  const query = {
81
83
  depth: 0,
82
84
  limit: maxResultsPerRequest,
83
85
  page: pageIndex,
84
- where: {
85
- and: []
86
- }
86
+ select: {
87
+ [fieldToSearch]: true
88
+ },
89
+ where
87
90
  };
88
91
  if (debouncedSearch) {
89
92
  query.where.and.push({
@@ -106,12 +109,10 @@ export const RelationshipField = props => {
106
109
  const data_0 = await response.json();
107
110
  if (data_0.docs.length > 0) {
108
111
  addOptions(data_0, relationSlug);
109
- if (!debouncedSearch) {
110
- if (data_0.nextPage) {
111
- nextPageByRelationshipRef.current.set(relationSlug, data_0.nextPage);
112
- } else {
113
- partiallyLoadedRelationshipSlugs.current = partiallyLoadedRelationshipSlugs.current.filter(partiallyLoadedRelation => partiallyLoadedRelation !== relationSlug);
114
- }
112
+ if (data_0.nextPage) {
113
+ nextPageByRelationshipRef.current.set(relationSlug, data_0.nextPage);
114
+ } else {
115
+ partiallyLoadedRelationshipSlugs.current = partiallyLoadedRelationshipSlugs.current.filter(partiallyLoadedRelation => partiallyLoadedRelation !== relationSlug);
115
116
  }
116
117
  }
117
118
  } else {
@@ -124,7 +125,7 @@ export const RelationshipField = props => {
124
125
  }
125
126
  }
126
127
  setHasLoadedFirstOptions(true);
127
- }, [addOptions, api, collections, debouncedSearch, i18n.language, serverURL, t]);
128
+ }, [addOptions, api, debouncedSearch, getEntityConfig, i18n.language, serverURL, t]);
128
129
  const loadMoreOptions = React.useCallback(() => {
129
130
  if (partiallyLoadedRelationshipSlugs.current.length > 0) {
130
131
  const abortController_0 = new AbortController();
@@ -180,7 +181,13 @@ export const RelationshipField = props => {
180
181
  return undefined;
181
182
  }, [hasMany, hasMultipleRelations, value, options]);
182
183
  const handleInputChange = input => {
184
+ dispatchOptions({
185
+ type: 'CLEAR',
186
+ i18n,
187
+ required: false
188
+ });
183
189
  const relationSlug_0 = partiallyLoadedRelationshipSlugs.current[0];
190
+ partiallyLoadedRelationshipSlugs.current = relationSlugs;
184
191
  nextPageByRelationshipRef.current.set(relationSlug_0, 1);
185
192
  setSearch(input);
186
193
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","disabled","field","admin","isSortable","hasMany","relationTo","onChange","value","config","collections","routes","api","serverURL","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","relationSlugs","initialRelationMap","map","Map","forEach","relation","set","nextPageByRelationshipRef","useRef","partiallyLoadedRelationshipSlugs","addOptions","data","collection","collectionSlug","type","loadRelationOptions","abortController","relationSlug","current","includes","fieldToSearch","useAsTitle","pageIndex","get","query","depth","limit","page","where","and","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","nextPage","filter","partiallyLoadedRelation","e","aborted","console","error","loadMoreOptions","AbortController","findOptionsByValue","val","matchedOption","opt","some","subOpt","find","undefined","valueWithRelation","handleInputChange","input","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","Boolean","join","valueToRender","_jsxs","className","_jsx","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin: { isSortable } = {}, hasMany, relationTo },\n onChange,\n value,\n } = props\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n const initialRelationMap = () => {\n const map: Map<string, number> = new Map()\n relationSlugs.forEach((relation) => {\n map.set(relation, 1)\n })\n return map\n }\n const nextPageByRelationshipRef = React.useRef<Map<string, number>>(initialRelationMap())\n const partiallyLoadedRelationshipSlugs = React.useRef<string[]>(relationSlugs)\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation }) as ClientCollectionConfig\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadRelationOptions = React.useCallback(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n if (relationSlug && partiallyLoadedRelationshipSlugs.current.includes(relationSlug)) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n }) as ClientCollectionConfig\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const pageIndex = nextPageByRelationshipRef.current.get(relationSlug)\n\n const query: {\n depth?: number\n limit?: number\n page?: number\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: pageIndex,\n where: {\n and: [],\n },\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (!debouncedSearch) {\n if (data.nextPage) {\n nextPageByRelationshipRef.current.set(relationSlug, data.nextPage)\n } else {\n partiallyLoadedRelationshipSlugs.current =\n partiallyLoadedRelationshipSlugs.current.filter(\n (partiallyLoadedRelation) => partiallyLoadedRelation !== relationSlug,\n )\n }\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e)\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n [addOptions, api, collections, debouncedSearch, i18n.language, serverURL, t],\n )\n\n const loadMoreOptions = React.useCallback(() => {\n if (partiallyLoadedRelationshipSlugs.current.length > 0) {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: partiallyLoadedRelationshipSlugs.current[0],\n })\n }\n }, [loadRelationOptions])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = (input: string) => {\n const relationSlug = partiallyLoadedRelationshipSlugs.current[0]\n nextPageByRelationshipRef.current.set(relationSlug, 1)\n setSearch(input)\n }\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * 1. Trigger initial relationship options fetch\n * 2. When search changes, loadRelationOptions will\n * fire off again\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const abortControllers: AbortController[] = []\n relations.forEach((relation) => {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: relation,\n })\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, loadRelationOptions, relationTo])\n\n /**\n * Load any options that were not returned\n * in the first 10 of each relation fetch\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n if (hasMany && Array.isArray(selected)) {\n onChange(\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 onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={loadMoreOptions}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,YAAYA,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,QAAQ;AAKpE,SAASC,WAAW,QAAQ;AAC5B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,OAAO;AACP,OAAOC,cAAA,MAAoB;AAE3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,oBAAA,GAAuB;AAE7B,OAAO,MAAMC,iBAAA,GAAsCC,KAAA;EACjD,MAAM;IACJC,QAAQ;IACRC,KAAA,EAAO;MAAEC,KAAA,EAAO;QAAEC;MAAU,CAAE,GAAG,CAAC,CAAC;MAAEC,OAAO;MAAEC;IAAU,CAAE;IAC1DC,QAAQ;IACRC;EAAK,CACN,GAAGR,KAAA;EAEJ,MAAM;IACJS,MAAA,EAAQ;MACNC,WAAW;MACXC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGrB,SAAA;EAEJ,MAAMsB,oBAAA,GAAuBC,KAAA,CAAMC,OAAO,CAACX,UAAA;EAC3C,MAAM,CAACY,OAAA,EAASC,eAAA,CAAgB,GAAG7B,UAAA,CAAWM,cAAA,EAAgB,EAAE;EAChE,MAAM,CAACwB,MAAA,EAAQC,SAAA,CAAU,GAAG9B,QAAA,CAAS;EACrC,MAAM,CAAC+B,YAAA,EAAcC,eAAA,CAAgB,GAAGhC,QAAA,CAAS;EACjD,MAAM,CAACiC,qBAAA,EAAuBC,wBAAA,CAAyB,GAAGlC,QAAA,CAAS;EACnE,MAAMmC,eAAA,GAAkBlC,WAAA,CAAY4B,MAAA,EAAQ;EAC5C,MAAM;IAAEO,IAAI;IAAEC;EAAC,CAAE,GAAGlC,cAAA;EACpB,MAAMmC,aAAA,GAAgBd,oBAAA,GAAuBT,UAAA,GAAa,CAACA,UAAA,CAAW;EACtE,MAAMwB,kBAAA,GAAqBA,CAAA;IACzB,MAAMC,GAAA,GAA2B,IAAIC,GAAA;IACrCH,aAAA,CAAcI,OAAO,CAAEC,QAAA;MACrBH,GAAA,CAAII,GAAG,CAACD,QAAA,EAAU;IACpB;IACA,OAAOH,GAAA;EACT;EACA,MAAMK,yBAAA,GAA4BjD,KAAA,CAAMkD,MAAM,CAAsBP,kBAAA;EACpE,MAAMQ,gCAAA,GAAmCnD,KAAA,CAAMkD,MAAM,CAAWR,aAAA;EAEhE,MAAMU,UAAA,GAAanD,WAAA,CACjB,CAACoD,IAAA,EAAMN,UAAA;IACL,MAAMO,UAAA,GAAa3B,eAAA,CAAgB;MAAE4B,cAAA,EAAgBR;IAAS;IAC9Df,eAAA,CAAgB;MAAEwB,IAAA,EAAM;MAAOF,UAAA;MAAYD,IAAA;MAAMzB,oBAAA;MAAsBY,IAAA;MAAMO,QAAA,EAAAA;IAAS;EACxF,GACA,CAACnB,oBAAA,EAAsBY,IAAA,EAAMb,eAAA,CAAgB;EAG/C,MAAM8B,mBAAA,GAAsBzD,KAAA,CAAMC,WAAW,CAC3C,OAAO;IACLyD,eAAe;IACfC;EAAY,CAIb;IACC,IAAIA,YAAA,IAAgBR,gCAAA,CAAiCS,OAAO,CAACC,QAAQ,CAACF,YAAA,GAAe;MACnF,MAAML,YAAA,GAAa3B,eAAA,CAAgB;QACjC4B,cAAA,EAAgBI;MAClB;MACA,MAAMG,aAAA,GAAgBR,YAAA,EAAYtC,KAAA,EAAO+C,UAAA,IAAc;MACvD,MAAMC,SAAA,GAAYf,yBAAA,CAA0BW,OAAO,CAACK,GAAG,CAACN,YAAA;MAExD,MAAMO,KAAA,GAKF;QACFC,KAAA,EAAO;QACPC,KAAA,EAAOzD,oBAAA;QACP0D,IAAA,EAAML,SAAA;QACNM,KAAA,EAAO;UACLC,GAAA,EAAK;QACP;MACF;MAEA,IAAIhC,eAAA,EAAiB;QACnB2B,KAAA,CAAMI,KAAK,CAACC,GAAG,CAACC,IAAI,CAAC;UACnB,CAACV,aAAA,GAAgB;YACfW,IAAA,EAAMlC;UACR;QACF;MACF;MAEA,IAAI;QACF,MAAMmC,QAAA,GAAW,MAAMC,KAAA,CACrB,GAAGjD,SAAA,GAAYD,GAAA,IAAOkC,YAAA,GAAe5D,EAAA,CAAG6E,SAAS,CAACV,KAAA,EAAO;UAAEW,cAAA,EAAgB;QAAK,IAAI,EACpF;UACEC,WAAA,EAAa;UACbC,OAAA,EAAS;YACP,mBAAmBvC,IAAA,CAAKwC;UAC1B;UACAC,MAAA,EAAQvB,eAAA,CAAgBuB;QAC1B;QAGF,IAAIP,QAAA,CAASQ,EAAE,EAAE;UACf,MAAM7B,MAAA,GAAsB,MAAMqB,QAAA,CAASS,IAAI;UAC/C,IAAI9B,MAAA,CAAK+B,IAAI,CAACC,MAAM,GAAG,GAAG;YACxBjC,UAAA,CAAWC,MAAA,EAAMM,YAAA;YAEjB,IAAI,CAACpB,eAAA,EAAiB;cACpB,IAAIc,MAAA,CAAKiC,QAAQ,EAAE;gBACjBrC,yBAAA,CAA0BW,OAAO,CAACZ,GAAG,CAACW,YAAA,EAAcN,MAAA,CAAKiC,QAAQ;cACnE,OAAO;gBACLnC,gCAAA,CAAiCS,OAAO,GACtCT,gCAAA,CAAiCS,OAAO,CAAC2B,MAAM,CAC5CC,uBAAA,IAA4BA,uBAAA,KAA4B7B,YAAA;cAE/D;YACF;UACF;QACF,OAAO;UACLvB,eAAA,CAAgBK,CAAA,CAAE;QACpB;MACF,EAAE,OAAOgD,CAAA,EAAG;QACV,IAAI,CAAC/B,eAAA,CAAgBuB,MAAM,CAACS,OAAO,EAAE;UACnCC,OAAA,CAAQC,KAAK,CAACH,CAAA;QAChB;MACF;IACF;IAEAnD,wBAAA,CAAyB;EAC3B,GACA,CAACc,UAAA,EAAY3B,GAAA,EAAKF,WAAA,EAAagB,eAAA,EAAiBC,IAAA,CAAKwC,QAAQ,EAAEtD,SAAA,EAAWe,CAAA,CAAE;EAG9E,MAAMoD,eAAA,GAAkB7F,KAAA,CAAMC,WAAW,CAAC;IACxC,IAAIkD,gCAAA,CAAiCS,OAAO,CAACyB,MAAM,GAAG,GAAG;MACvD,MAAM3B,iBAAA,GAAkB,IAAIoC,eAAA;MAC5B,KAAKrC,mBAAA,CAAoB;QACvBC,eAAA,EAAAA,iBAAA;QACAC,YAAA,EAAcR,gCAAA,CAAiCS,OAAO,CAAC;MACzD;IACF;EACF,GAAG,CAACH,mBAAA,CAAoB;EAExB,MAAMsC,kBAAA,GAAqB9F,WAAA,CAAY;IACrC,IAAIoB,KAAA,EAAO;MACT,IAAIH,OAAA,EAAS;QACX,IAAIW,KAAA,CAAMC,OAAO,CAACT,KAAA,GAAQ;UACxB,OAAOA,KAAA,CAAMuB,GAAG,CAAEoD,GAAA;YAChB,IAAIpE,oBAAA,EAAsB;cACxB,IAAIqE,aAAA;cAEJlE,OAAA,CAAQe,OAAO,CAAEoD,GAAA;gBACf,IAAIA,GAAA,CAAInE,OAAO,EAAE;kBACfmE,GAAA,CAAInE,OAAO,CAACoE,IAAI,CAAEC,MAAA;oBAChB,IAAIA,MAAA,EAAQ/E,KAAA,IAAS2E,GAAA,CAAI3E,KAAK,EAAE;sBAC9B4E,aAAA,GAAgBG,MAAA;sBAChB,OAAO;oBACT;oBAEA,OAAO;kBACT;gBACF;cACF;cAEA,OAAOH,aAAA;YACT;YAEA,OAAOlE,OAAA,CAAQsE,IAAI,CAAEH,KAAA,IAAQA,KAAA,CAAI7E,KAAK,IAAI2E,GAAA;UAC5C;QACF;QAEA,OAAOM,SAAA;MACT;MAEA,IAAI1E,oBAAA,EAAsB;QACxB,IAAIqE,eAAA;QAEJ,MAAMM,iBAAA,GAAoBlF,KAAA;QAE1BU,OAAA,CAAQe,OAAO,CAAEoD,KAAA;UACf,IAAIA,KAAA,EAAKnE,OAAA,EAAS;YAChBmE,KAAA,CAAInE,OAAO,CAACoE,IAAI,CAAEC,QAAA;cAChB,IAAIA,QAAA,EAAQ/E,KAAA,IAASkF,iBAAA,CAAkBlF,KAAK,EAAE;gBAC5C4E,eAAA,GAAgBG,QAAA;gBAChB,OAAO;cACT;cACA,OAAO;YACT;UACF;QACF;QAEA,OAAOH,eAAA;MACT;MAEA,OAAOlE,OAAA,CAAQsE,IAAI,CAAEH,KAAA,IAAQA,KAAA,CAAI7E,KAAK,IAAIA,KAAA;IAC5C;IAEA,OAAOiF,SAAA;EACT,GAAG,CAACpF,OAAA,EAASU,oBAAA,EAAsBP,KAAA,EAAOU,OAAA,CAAQ;EAElD,MAAMyE,iBAAA,GAAqBC,KAAA;IACzB,MAAM9C,cAAA,GAAeR,gCAAA,CAAiCS,OAAO,CAAC,EAAE;IAChEX,yBAAA,CAA0BW,OAAO,CAACZ,GAAG,CAACW,cAAA,EAAc;IACpDzB,SAAA,CAAUuE,KAAA;EACZ;EAEA,MAAMC,aAAA,GAAgBzG,WAAA,CACpB,OAAO0G,EAAA,EAAI5D,UAAA;IACT,IAAI,CAACZ,YAAA,IAAgBwE,EAAA,KAAO,UAAUA,EAAA,IAAM5D,UAAA,EAAU;MACpD,MAAM2B,UAAA,GAAW,MAAMC,KAAA,CAAM,GAAGjD,SAAA,GAAYD,GAAA,IAAOsB,UAAA,IAAY4D,EAAA,UAAY,EAAE;QAC3E7B,WAAA,EAAa;QACbC,OAAA,EAAS;UACP,mBAAmBvC,IAAA,CAAKwC;QAC1B;MACF;MAEA,IAAIN,UAAA,CAASQ,EAAE,EAAE;QACf,MAAM7B,MAAA,GAAO,MAAMqB,UAAA,CAASS,IAAI;QAChC/B,UAAA,CAAW;UAAEgC,IAAA,EAAM,CAAC/B,MAAA;QAAM,GAAGN,UAAA;MAC/B,OAAO;QACL;QACA4C,OAAA,CAAQC,KAAK,CAACnD,CAAA,CAAE,yBAAyB;UAAEkE;QAAG;MAChD;IACF;EACF,GACA,CAACnE,IAAA,EAAMY,UAAA,EAAY3B,GAAA,EAAKU,YAAA,EAAcT,SAAA,EAAWe,CAAA,CAAE;EAGrD;;;;;EAKAvC,SAAA,CAAU;IACR,MAAM0G,SAAA,GAAY/E,KAAA,CAAMC,OAAO,CAACX,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;IACvE,MAAM0F,gBAAA,GAAsC,EAAE;IAC9CD,SAAA,CAAU9D,OAAO,CAAEC,UAAA;MACjB,MAAMW,iBAAA,GAAkB,IAAIoC,eAAA;MAC5B,KAAKrC,mBAAA,CAAoB;QACvBC,eAAA,EAAAA,iBAAA;QACAC,YAAA,EAAcZ;MAChB;MACA8D,gBAAA,CAAiBrC,IAAI,CAACd,iBAAA;IACxB;IAEA,OAAO;MACLmD,gBAAA,CAAiB/D,OAAO,CAAEgE,UAAA;QACxB,IAAIA,UAAA,CAAW7B,MAAM,EAAE;UACrB,IAAI;YACF6B,UAAA,CAAWC,KAAK;UAClB,EAAE,OAAOC,IAAA,EAAM;YACb;UAAA;QAEJ;MACF;IACF;EACF,GAAG,CAACxE,IAAA,EAAMiB,mBAAA,EAAqBtC,UAAA,CAAW;EAE1C;;;;EAIAjB,SAAA,CAAU;IACR,IAAImB,KAAA,IAASgB,qBAAA,EAAuB;MAClC,IAAInB,OAAA,EAAS;QACX,MAAM+F,cAAA,GAAiBlB,kBAAA;QAErB,CAAAkB,cAAC,IAA+B,EAAE,EAAEnE,OAAO,CAAC,CAACoE,MAAA,EAAQC,CAAA;UACrD,IAAI,CAACD,MAAA,EAAQ;YACX,IAAItF,oBAAA,EAAsB;cACxB,KAAK8E,aAAA,CAAcrF,KAAK,CAAC8F,CAAA,CAAE,CAAC9F,KAAK,EAAEA,KAAK,CAAC8F,CAAA,CAAE,CAAChG,UAAU;YACxD,OAAO;cACL,KAAKuF,aAAA,CAAcrF,KAAK,CAAC8F,CAAA,CAAE,EAAEhG,UAAA;YAC/B;UACF;QACF;MACF,OAAO;QACL,MAAM8E,eAAA,GAAgBF,kBAAA;QAEtB,IAAI,CAACE,eAAA,EAAe;UAClB,IAAIrE,oBAAA,EAAsB;YACxB,MAAM2E,mBAAA,GAAoBlF,KAAA;YAC1B,KAAKqF,aAAA,CAAcH,mBAAA,CAAkBlF,KAAK,EAAEkF,mBAAA,CAAkBpF,UAAU;UAC1E,OAAO;YACL,KAAKuF,aAAA,CAAcrF,KAAA,EAAOF,UAAA;UAC5B;QACF;MACF;IACF;EACF,GAAG,CACDuF,aAAA,EACAX,kBAAA,EACA7E,OAAA,EACAU,oBAAA,EACAT,UAAA,EACAE,KAAA,EACAgB,qBAAA,CACD;EAED,MAAM+E,OAAA,GAAU,CAAC,cAAc1G,SAAA,EAAWyB,YAAA,IAAgB,gBAAgB,CACvEoD,MAAM,CAAC8B,OAAA,EACPC,IAAI,CAAC;EAER,MAAMC,aAAA,GAAiBxB,kBAAA,MAAwB1E,KAAA;EAE/C,oBACEmG,KAAA,CAAC;IAAIC,SAAA,EAAWL,OAAA;eACb,CAACjF,YAAA,iBACAuF,IAAA,CAAClH,WAAA;MACCM,QAAA,EAAUA,QAAA;MACV6G,OAAA,EAASzG,OAAA;MACTD,UAAA,EAAYA,UAAA;MACZG,QAAA,EAAWwG,QAAA;QACT,IAAI,CAACA,QAAA,EAAU;UACbxG,QAAA,CAAS;UACT;QACF;QACA,IAAIF,OAAA,IAAWW,KAAA,CAAMC,OAAO,CAAC8F,QAAA,GAAW;UACtCxG,QAAA,CACEwG,QAAA,GACIA,QAAA,CAAShF,GAAG,CAAEsE,QAAA;YACZ,IAAItF,oBAAA,EAAsB;cACxB,OAAO;gBACLT,UAAA,EAAY+F,QAAA,EAAQ/F,UAAA;gBACpBE,KAAA,EAAO6F,QAAA,EAAQ7F;cACjB;YACF;YAEA,OAAO6F,QAAA,EAAQ7F,KAAA;UACjB,KACA;QAER,OAAO,IAAIO,oBAAA,IAAwB,CAACC,KAAA,CAAMC,OAAO,CAAC8F,QAAA,GAAW;UAC3DxG,QAAA,CAAS;YACPD,UAAA,EAAYyG,QAAA,EAAUzG,UAAA;YACtBE,KAAA,EAAOuG,QAAA,EAAUvG;UACnB;QACF,OAAO,IAAI,CAACQ,KAAA,CAAMC,OAAO,CAAC8F,QAAA,GAAW;UACnCxG,QAAA,CAASwG,QAAA,EAAUvG,KAAA;QACrB;MACF;MACAwG,aAAA,EAAerB,iBAAA;MACfsB,oBAAA,EAAsBjC,eAAA;MACtB9D,OAAA,EAASA,OAAA;MACTgG,WAAA,EAAatF,CAAA,CAAE;MACfpB,KAAA,EAAOkG;QAGVpF,YAAA,iBAAgBuF,IAAA,CAAC;MAAID,SAAA,EAAW,GAAG/G,SAAA,iBAA0B;gBAAGyB;;;AAGvE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","disabled","field","admin","isSortable","hasMany","relationTo","onChange","value","config","routes","api","serverURL","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","relationSlugs","initialRelationMap","map","Map","forEach","relation","set","nextPageByRelationshipRef","useRef","partiallyLoadedRelationshipSlugs","addOptions","data","collection","collectionSlug","type","loadRelationOptions","abortController","relationSlug","current","includes","fieldToSearch","useAsTitle","pageIndex","get","where","and","query","depth","limit","page","select","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","nextPage","filter","partiallyLoadedRelation","e","aborted","console","error","loadMoreOptions","AbortController","findOptionsByValue","val","matchedOption","opt","some","subOpt","find","undefined","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","Boolean","join","valueToRender","_jsxs","className","_jsx","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin: { isSortable } = {}, hasMany, relationTo },\n onChange,\n value,\n } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n const initialRelationMap = () => {\n const map: Map<string, number> = new Map()\n relationSlugs.forEach((relation) => {\n map.set(relation, 1)\n })\n return map\n }\n const nextPageByRelationshipRef = React.useRef<Map<string, number>>(initialRelationMap())\n const partiallyLoadedRelationshipSlugs = React.useRef<string[]>(relationSlugs)\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadRelationOptions = React.useCallback(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n if (relationSlug && partiallyLoadedRelationshipSlugs.current.includes(relationSlug)) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const pageIndex = nextPageByRelationshipRef.current.get(relationSlug)\n\n const where: Where = {\n and: [],\n }\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: pageIndex,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n nextPageByRelationshipRef.current.set(relationSlug, data.nextPage)\n } else {\n partiallyLoadedRelationshipSlugs.current =\n partiallyLoadedRelationshipSlugs.current.filter(\n (partiallyLoadedRelation) => partiallyLoadedRelation !== relationSlug,\n )\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e)\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n [addOptions, api, debouncedSearch, getEntityConfig, i18n.language, serverURL, t],\n )\n\n const loadMoreOptions = React.useCallback(() => {\n if (partiallyLoadedRelationshipSlugs.current.length > 0) {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: partiallyLoadedRelationshipSlugs.current[0],\n })\n }\n }, [loadRelationOptions])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = (input: string) => {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n const relationSlug = partiallyLoadedRelationshipSlugs.current[0]\n partiallyLoadedRelationshipSlugs.current = relationSlugs\n nextPageByRelationshipRef.current.set(relationSlug, 1)\n setSearch(input)\n }\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * 1. Trigger initial relationship options fetch\n * 2. When search changes, loadRelationOptions will\n * fire off again\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const abortControllers: AbortController[] = []\n relations.forEach((relation) => {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: relation,\n })\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, loadRelationOptions, relationTo])\n\n /**\n * Load any options that were not returned\n * in the first 10 of each relation fetch\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n if (hasMany && Array.isArray(selected)) {\n onChange(\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 onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={loadMoreOptions}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { validOperators } from 'payload/shared';
3
+ import { validOperatorSet } from 'payload/shared';
4
4
  const validateWhereQuery = whereQuery => {
5
5
  if (whereQuery?.or?.length > 0 && whereQuery?.or?.[0]?.and && whereQuery?.or?.[0]?.and?.length > 0) {
6
6
  // At this point we know that the whereQuery has 'or' and 'and' fields,
@@ -19,7 +19,7 @@ const validateWhereQuery = whereQuery => {
19
19
  for (const key of andKeys) {
20
20
  const operator = Object.keys(andQuery[key])[0];
21
21
  // Check if the key is a valid Operator.
22
- if (!operator || !validOperators.includes(operator)) {
22
+ if (!operator || !validOperatorSet.has(operator)) {
23
23
  return false;
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateWhereQuery.js","names":["validOperators","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","includes"],"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Operator, Where } from 'payload'\n\nimport { validOperators } from 'payload/shared'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperators.includes(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"mappings":"AAAA;;AAGA,SAASA,cAAc,QAAQ;AAE/B,MAAMC,kBAAA,GAAsBC,UAAA;EAC1B,IACEA,UAAA,EAAYC,EAAA,EAAIC,MAAA,GAAS,KACzBF,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,IACrBH,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,EAAKD,MAAA,GAAS,GACnC;IACA;IACA;IAEA,MAAME,OAAA,GAAUJ,UAAA,CAAWC,EAAE,CAACI,KAAK,CAAEC,OAAA;MACnC,IAAIA,OAAA,CAAQH,GAAG,IAAII,KAAA,CAAMC,OAAO,CAACF,OAAA,CAAQH,GAAG,GAAG;QAC7C,OAAOG,OAAA,CAAQH,GAAG,CAACE,KAAK,CAAEI,QAAA;UACxB,IAAI,OAAOA,QAAA,KAAa,UAAU;YAChC,OAAO;UACT;UACA,MAAMC,OAAA,GAAUC,MAAA,CAAOC,IAAI,CAACH,QAAA;UAC5B;UACA,IAAIC,OAAA,CAAQR,MAAM,KAAK,GAAG;YACxB,OAAO;UACT;UAEA,KAAK,MAAMW,GAAA,IAAOH,OAAA,EAAS;YACzB,MAAMI,QAAA,GAAWH,MAAA,CAAOC,IAAI,CAACH,QAAQ,CAACI,GAAA,CAAI,CAAC,CAAC,EAAE;YAC9C;YACA,IAAI,CAACC,QAAA,IAAY,CAAChB,cAAA,CAAeiB,QAAQ,CAACD,QAAA,GAAuB;cAC/D,OAAO;YACT;UACF;UACA,OAAO;QACT;MACF;MACA,OAAO;IACT;IAEA,OAAOV,OAAA;EACT;EAEA,OAAO;AACT;AAEA,eAAeL,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"validateWhereQuery.js","names":["validOperatorSet","validateWhereQuery","whereQuery","or","length","and","isValid","every","orQuery","Array","isArray","andQuery","andKeys","Object","keys","key","operator","has"],"sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"sourcesContent":["'use client'\nimport type { Operator, Where } from 'payload'\n\nimport { validOperatorSet } from 'payload/shared'\n\nconst validateWhereQuery = (whereQuery): whereQuery is Where => {\n if (\n whereQuery?.or?.length > 0 &&\n whereQuery?.or?.[0]?.and &&\n whereQuery?.or?.[0]?.and?.length > 0\n ) {\n // At this point we know that the whereQuery has 'or' and 'and' fields,\n // now let's check the structure and content of these fields.\n\n const isValid = whereQuery.or.every((orQuery) => {\n if (orQuery.and && Array.isArray(orQuery.and)) {\n return orQuery.and.every((andQuery) => {\n if (typeof andQuery !== 'object') {\n return false\n }\n const andKeys = Object.keys(andQuery)\n // If there are no keys, it's not a valid WhereField.\n if (andKeys.length === 0) {\n return false\n }\n\n for (const key of andKeys) {\n const operator = Object.keys(andQuery[key])[0]\n // Check if the key is a valid Operator.\n if (!operator || !validOperatorSet.has(operator as Operator)) {\n return false\n }\n }\n return true\n })\n }\n return false\n })\n\n return isValid\n }\n\n return false\n}\n\nexport default validateWhereQuery\n"],"mappings":"AAAA;;AAGA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,kBAAA,GAAsBC,UAAA;EAC1B,IACEA,UAAA,EAAYC,EAAA,EAAIC,MAAA,GAAS,KACzBF,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,IACrBH,UAAA,EAAYC,EAAA,GAAK,EAAE,EAAEE,GAAA,EAAKD,MAAA,GAAS,GACnC;IACA;IACA;IAEA,MAAME,OAAA,GAAUJ,UAAA,CAAWC,EAAE,CAACI,KAAK,CAAEC,OAAA;MACnC,IAAIA,OAAA,CAAQH,GAAG,IAAII,KAAA,CAAMC,OAAO,CAACF,OAAA,CAAQH,GAAG,GAAG;QAC7C,OAAOG,OAAA,CAAQH,GAAG,CAACE,KAAK,CAAEI,QAAA;UACxB,IAAI,OAAOA,QAAA,KAAa,UAAU;YAChC,OAAO;UACT;UACA,MAAMC,OAAA,GAAUC,MAAA,CAAOC,IAAI,CAACH,QAAA;UAC5B;UACA,IAAIC,OAAA,CAAQR,MAAM,KAAK,GAAG;YACxB,OAAO;UACT;UAEA,KAAK,MAAMW,GAAA,IAAOH,OAAA,EAAS;YACzB,MAAMI,QAAA,GAAWH,MAAA,CAAOC,IAAI,CAACH,QAAQ,CAACI,GAAA,CAAI,CAAC,CAAC,EAAE;YAC9C;YACA,IAAI,CAACC,QAAA,IAAY,CAAChB,gBAAA,CAAiBiB,GAAG,CAACD,QAAA,GAAuB;cAC5D,OAAO;YACT;UACF;UACA,OAAO;QACT;MACF;MACA,OAAO;IACT;IAEA,OAAOV,OAAA;EACT;EAEA,OAAO;AACT;AAEA,eAAeL,kBAAA","ignoreList":[]}
@@ -10,5 +10,5 @@ function require(m) {
10
10
  }
11
11
  // Workaround end
12
12
 
13
- import{i as a}from"./chunk-3MXUY6XL.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
- //# sourceMappingURL=CodeEditor-W7RSWONH.js.map
13
+ import{i as a}from"./chunk-CQQHQHCB.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=CodeEditor-BMYVMDNZ.js.map
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ // Workaround for react-datepicker and other cjs dependencies potentially inserting require("react") statements
3
+ import * as requireReact from 'react';
4
+ import * as requireReactDom from 'react-dom';
5
+
6
+ function require(m) {
7
+ if (m === 'react') return requireReact;
8
+ if (m === 'react-dom') return requireReactDom;
9
+ throw new Error(`Unknown module ${m}`);
10
+ }
11
+ // Workaround end
12
+
13
+ import{c as Sr}from"react/compiler-runtime";import{jsx as Be}from"react/jsx-runtime";function Ue(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function se(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function re(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?se(Object(r),!0).forEach(function(n){Ue(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):se(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function qe(t,e){if(t==null)return{};var r={},n=Object.keys(t),o,i;for(i=0;i<n.length;i++)o=n[i],!(e.indexOf(o)>=0)&&(r[o]=t[o]);return r}function de(t,e){if(t==null)return{};var r=qe(t,e),n,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o<i.length;o++)n=i[o],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function me(t,e){return Fe(t)||Ke(t,e)||Ge(t,e)||Ye()}function Fe(t){if(Array.isArray(t))return t}function Ke(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],n=!0,o=!1,i=void 0;try{for(var c=t[Symbol.iterator](),a;!(n=(a=c.next()).done)&&(r.push(a.value),!(e&&r.length===e));n=!0);}catch(u){o=!0,i=u}finally{try{!n&&c.return!=null&&c.return()}finally{if(o)throw i}}return r}}function Ge(t,e){if(t){if(typeof t=="string")return fe(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return fe(t,e)}}function fe(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Ye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
14
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Je(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function pe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ge(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?pe(Object(r),!0).forEach(function(n){Je(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):pe(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Qe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(n){return e.reduceRight(function(o,i){return i(o)},n)}}function W(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,a=new Array(c),u=0;u<c;u++)a[u]=arguments[u];return e.apply(r,[].concat(o,a))}}}function G(t){return{}.toString.call(t).includes("Object")}function Xe(t){return!Object.keys(t).length}function H(t){return typeof t=="function"}function Ze(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function et(t,e){return G(e)||A("changeType"),Object.keys(e).some(function(r){return!Ze(t,r)})&&A("changeField"),e}function tt(t){H(t)||A("selectorType")}function rt(t){H(t)||G(t)||A("handlerType"),G(t)&&Object.values(t).some(function(e){return!H(e)})&&A("handlersType")}function nt(t){t||A("initialIsRequired"),G(t)||A("initialType"),Xe(t)&&A("initialContent")}function ot(t,e){throw new Error(t[e]||t.default)}var it={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},A=W(ot)(it),K={changes:et,selector:tt,handler:rt,initial:nt};function at(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};K.initial(t),K.handler(e);var r={current:t},n=W(lt)(r,e),o=W(ut)(r),i=W(K.changes)(t),c=W(ct)(r);function a(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(m){return m};return K.selector(l),l(r.current)}function u(l){Qe(n,o,i,c)(l)}return[a,u]}function ct(t,e){return H(e)?e(t.current):e}function ut(t,e){return t.current=ge(ge({},t.current),e),e}function lt(t,e,r){return H(e)?e(t.current):Object.keys(r).forEach(function(n){var o;return(o=e[n])===null||o===void 0?void 0:o.call(e,t.current[n])}),r}var st={create:at},he=st;var ft={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}},ve=ft;function dt(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,a=new Array(c),u=0;u<c;u++)a[u]=arguments[u];return e.apply(r,[].concat(o,a))}}}var ye=dt;function mt(t){return{}.toString.call(t).includes("Object")}var be=mt;function pt(t){return t||we("configIsRequired"),be(t)||we("configType"),t.urls?(gt(),{paths:{vs:t.urls.monacoBase}}):t}function gt(){console.warn(Oe.deprecation)}function ht(t,e){throw new Error(t[e]||t.default)}var Oe={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
15
+ You are using deprecated way of configuration.
16
+
17
+ Instead of using
18
+ monaco.config({ urls: { monacoBase: '...' } })
19
+ use
20
+ monaco.config({ paths: { vs: '...' } })
21
+
22
+ For more please check the link https://github.com/suren-atoyan/monaco-loader#config
23
+ `},we=ye(ht)(Oe),vt={config:pt},je=vt;var yt=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return function(o){return r.reduceRight(function(i,c){return c(i)},o)}},Me=yt;function Se(t,e){return Object.keys(e).forEach(function(r){e[r]instanceof Object&&t[r]&&Object.assign(e[r],Se(t[r],e[r]))}),re(re({},t),e)}var xe=Se;var bt={type:"cancelation",msg:"operation is manually canceled"};function wt(t){var e=!1,r=new Promise(function(n,o){t.then(function(i){return e?o(bt):n(i)}),t.catch(o)});return r.cancel=function(){return e=!0},r}var Y=wt;var Ot=he.create({config:ve,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ce=me(Ot,2),B=Ce[0],J=Ce[1];function jt(t){var e=je.config(t),r=e.monaco,n=de(e,["monaco"]);J(function(o){return{config:xe(o.config,n),monaco:r}})}function Mt(){var t=B(function(e){var r=e.monaco,n=e.isInitialized,o=e.resolve;return{monaco:r,isInitialized:n,resolve:o}});if(!t.isInitialized){if(J({isInitialized:!0}),t.monaco)return t.resolve(t.monaco),Y(ne);if(window.monaco&&window.monaco.editor)return Ee(window.monaco),t.resolve(window.monaco),Y(ne);Me(St,Ct)(Et)}return Y(ne)}function St(t){return document.body.appendChild(t)}function xt(t){var e=document.createElement("script");return t&&(e.src=t),e}function Ct(t){var e=B(function(n){var o=n.config,i=n.reject;return{config:o,reject:i}}),r=xt("".concat(e.config.paths.vs,"/loader.js"));return r.onload=function(){return t()},r.onerror=e.reject,r}function Et(){var t=B(function(r){var n=r.config,o=r.resolve,i=r.reject;return{config:n,resolve:o,reject:i}}),e=window.require;e.config(t.config),e(["vs/editor/editor.main"],function(r){Ee(r),t.resolve(r)},function(r){t.reject(r)})}function Ee(t){B().monaco||J({monaco:t})}function Pt(){return B(function(t){var e=t.monaco;return e})}var ne=new Promise(function(t,e){return J({resolve:t,reject:e})}),Tt={config:jt,init:Mt,__getMonacoInstance:Pt},D=Tt;import{memo as It}from"react";import Rt,{useState as Pe,useRef as _,useCallback as Te,useEffect as Ie}from"react";import{memo as At}from"react";import oe from"react";import Lt from"react";import{useEffect as Bt}from"react";import{useEffect as Ut,useRef as qt}from"react";import{useState as fn}from"react";import{memo as Qt}from"react";import Xt,{useState as Re,useEffect as Q,useRef as I,useCallback as Zt}from"react";import{useEffect as er,useRef as tr}from"react";var Dt={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ie=Dt,_t={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},kt=_t;function $t({children:t}){return Lt.createElement("div",{style:kt.container},t)}var Nt=$t,Vt=Nt;function Wt({width:t,height:e,isEditorReady:r,loading:n,_ref:o,className:i,wrapperProps:c}){return oe.createElement("section",{style:{...ie.wrapper,width:t,height:e},...c},!r&&oe.createElement(Vt,null,n),oe.createElement("div",{ref:o,style:{...ie.fullWidth,...!r&&ie.hide},className:i}))}var Ht=Wt,Ae=At(Ht);function zt(t){Bt(t,[])}var De=zt;function Ft(t,e,r=!0){let n=qt(!0);Ut(n.current||!r?()=>{n.current=!1}:t,e)}var E=Ft;function z(){}function k(t,e,r,n){return Kt(t,n)||Gt(t,e,r,n)}function Kt(t,e){return t.editor.getModel(Le(t,e))}function Gt(t,e,r,n){return t.editor.createModel(e,r,n?Le(t,n):void 0)}function Le(t,e){return t.Uri.parse(e)}function Yt({original:t,modified:e,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:c,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:u=!1,theme:l="light",loading:m="Loading...",options:s={},height:S="100%",width:v="100%",className:x,wrapperProps:O={},beforeMount:h=z,onMount:C=z}){let[p,P]=Pe(!1),[T,y]=Pe(!0),b=_(null),g=_(null),N=_(null),j=_(C),f=_(h),L=_(!1);De(()=>{let d=D.init();return d.then(w=>(g.current=w)&&y(!1)).catch(w=>w?.type!=="cancelation"&&console.error("Monaco initialization: error:",w)),()=>b.current?V():d.cancel()}),E(()=>{if(b.current&&g.current){let d=b.current.getOriginalEditor(),w=k(g.current,t||"",n||r||"text",i||"");w!==d.getModel()&&d.setModel(w)}},[i],p),E(()=>{if(b.current&&g.current){let d=b.current.getModifiedEditor(),w=k(g.current,e||"",o||r||"text",c||"");w!==d.getModel()&&d.setModel(w)}},[c],p),E(()=>{let d=b.current.getModifiedEditor();d.getOption(g.current.editor.EditorOption.readOnly)?d.setValue(e||""):e!==d.getValue()&&(d.executeEdits("",[{range:d.getModel().getFullModelRange(),text:e||"",forceMoveMarkers:!0}]),d.pushUndoStop())},[e],p),E(()=>{b.current?.getModel()?.original.setValue(t||"")},[t],p),E(()=>{let{original:d,modified:w}=b.current.getModel();g.current.editor.setModelLanguage(d,n||r||"text"),g.current.editor.setModelLanguage(w,o||r||"text")},[r,n,o],p),E(()=>{g.current?.editor.setTheme(l)},[l],p),E(()=>{b.current?.updateOptions(s)},[s],p);let q=Te(()=>{if(!g.current)return;f.current(g.current);let d=k(g.current,t||"",n||r||"text",i||""),w=k(g.current,e||"",o||r||"text",c||"");b.current?.setModel({original:d,modified:w})},[r,e,o,t,n,i,c]),F=Te(()=>{!L.current&&N.current&&(b.current=g.current.editor.createDiffEditor(N.current,{automaticLayout:!0,...s}),q(),g.current?.editor.setTheme(l),P(!0),L.current=!0)},[s,l,q]);Ie(()=>{p&&j.current(b.current,g.current)},[p]),Ie(()=>{!T&&!p&&F()},[T,p,F]);function V(){let d=b.current?.getModel();a||d?.original?.dispose(),u||d?.modified?.dispose(),b.current?.dispose()}return Rt.createElement(Ae,{width:v,height:S,isEditorReady:p,loading:m,_ref:N,className:x,wrapperProps:O})}var Jt=Yt,ln=It(Jt);function rr(t){let e=tr();return er(()=>{e.current=t},[t]),e.current}var nr=rr,X=new Map;function or({defaultValue:t,defaultLanguage:e,defaultPath:r,value:n,language:o,path:i,theme:c="light",line:a,loading:u="Loading...",options:l={},overrideServices:m={},saveViewState:s=!0,keepCurrentModel:S=!1,width:v="100%",height:x="100%",className:O,wrapperProps:h={},beforeMount:C=z,onMount:p=z,onChange:P,onValidate:T=z}){let[y,b]=Re(!1),[g,N]=Re(!0),j=I(null),f=I(null),L=I(null),q=I(p),F=I(C),V=I(),d=I(n),w=nr(i),ue=I(!1),Z=I(!1);De(()=>{let M=D.init();return M.then(R=>(j.current=R)&&N(!1)).catch(R=>R?.type!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>f.current?ze():M.cancel()}),E(()=>{let M=k(j.current,t||n||"",e||o||"",i||r||"");M!==f.current?.getModel()&&(s&&X.set(w,f.current?.saveViewState()),f.current?.setModel(M),s&&f.current?.restoreViewState(X.get(i)))},[i],y),E(()=>{f.current?.updateOptions(l)},[l],y),E(()=>{!f.current||n===void 0||(f.current.getOption(j.current.editor.EditorOption.readOnly)?f.current.setValue(n):n!==f.current.getValue()&&(Z.current=!0,f.current.executeEdits("",[{range:f.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),f.current.pushUndoStop(),Z.current=!1))},[n],y),E(()=>{let M=f.current?.getModel();M&&o&&j.current?.editor.setModelLanguage(M,o)},[o],y),E(()=>{a!==void 0&&f.current?.revealLine(a)},[a],y),E(()=>{j.current?.editor.setTheme(c)},[c],y);let le=Zt(()=>{if(!(!L.current||!j.current)&&!ue.current){F.current(j.current);let M=i||r,R=k(j.current,n||t||"",e||o||"",M||"");f.current=j.current?.editor.create(L.current,{model:R,automaticLayout:!0,...l},m),s&&f.current.restoreViewState(X.get(M)),j.current.editor.setTheme(c),a!==void 0&&f.current.revealLine(a),b(!0),ue.current=!0}},[t,e,r,n,o,i,l,m,s,c,a]);Q(()=>{y&&q.current(f.current,j.current)},[y]),Q(()=>{!g&&!y&&le()},[g,y,le]),d.current=n,Q(()=>{y&&P&&(V.current?.dispose(),V.current=f.current?.onDidChangeModelContent(M=>{Z.current||P(f.current.getValue(),M)}))},[y,P]),Q(()=>{if(y){let M=j.current.editor.onDidChangeMarkers(R=>{let ee=f.current.getModel()?.uri;if(ee&&R.find(te=>te.path===ee.path)){let te=j.current.editor.getModelMarkers({resource:ee});T?.(te)}});return()=>{M?.dispose()}}return()=>{}},[y,T]);function ze(){V.current?.dispose(),S?s&&X.set(i,f.current.saveViewState()):f.current.getModel()?.dispose(),f.current.dispose()}return Xt.createElement(Ae,{width:v,height:x,isEditorReady:y,loading:u,_ref:L,className:O,wrapperProps:h})}var ir=or,ar=Qt(ir),ae=ar;import{useState as xr}from"react";import{c as pr}from"react/compiler-runtime";import{jsx as gr}from"react/jsx-runtime";import{createContext as hr,useContext as vr,useEffect as yr,useState as $e}from"react";import{jsx as cr}from"react/jsx-runtime";import{createContext as ur,useCallback as lr,useContext as sr,useEffect as fr,useMemo as dr,useState as mr}from"react";var _e=ur(void 0),On=({children:t,config:e})=>{let[r,n]=mr(e);fr(()=>{n(e)},[e]);let{collectionsBySlug:o,globalsBySlug:i}=dr(()=>{let a={},u={};for(let l of r.collections)a[l.slug]=l;for(let l of r.globals)u[l.slug]=l;return{collectionsBySlug:a,globalsBySlug:u}},[r]),c=lr(a=>"collectionSlug"in a?o[a.collectionSlug]??null:"globalSlug"in a?i[a.globalSlug]??null:null,[o,i]);return cr(_e.Provider,{value:{config:r,getEntityConfig:c,setConfig:n},children:t})},ke=()=>sr(_e);var br={autoMode:!0,setTheme:()=>null,theme:"light"},Ve=hr(br);function Ne(t,e,r){let n=new Date;n.setTime(n.getTime()+r*24*60*60*1e3);let o="expires="+n.toUTCString();document.cookie=t+"="+e+";"+o+";path=/"}var wr=t=>{let e,r=window.document.cookie.split("; ").find(n=>n.startsWith(`${t}=`))?.split("=")[1];return r==="light"||r==="dark"?e=r:e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e),{theme:e,themeFromCookies:r}},Or="light",Tn=t=>{let e=pr(11),{children:r,theme:n}=t,{config:o}=ke(),i=o.admin.theme,c=`${o.cookiePrefix||"payload"}-theme`,[a,u]=$e(n||Or),[l,m]=$e(),s,S;e[0]!==c||e[1]!==i?(s=()=>{if(i!=="all")return;let{theme:h,themeFromCookies:C}=wr(c);u(h),m(!C)},S=[i,c],e[0]=c,e[1]=i,e[2]=s,e[3]=S):(s=e[2],S=e[3]),yr(s,S);let v;e[4]!==c?(v=h=>{if(h==="light"||h==="dark")u(h),m(!1),Ne(c,h,365),document.documentElement.setAttribute("data-theme",h);else if(h==="auto"){Ne(c,h,-1);let C=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";document.documentElement.setAttribute("data-theme",C),m(!0),u(C)}},e[4]=c,e[5]=v):v=e[5];let x=v,O;return e[6]!==l||e[7]!==r||e[8]!==x||e[9]!==a?(O=gr(Ve.Provider,{value:{autoMode:l,setTheme:x,theme:a},children:r}),e[6]=l,e[7]=r,e[8]=x,e[9]=a,e[10]=O):O=e[10],O},We=()=>vr(Ve);import{c as Mr}from"react/compiler-runtime";import{jsx as U}from"react/jsx-runtime";import"react";import{c as jr}from"react/compiler-runtime";import*as $ from"react";var He=(t,e)=>{let r=jr(9),n=e===void 0?!1:e,[o,i]=$.useState(!1),c=$.useRef(void 0),a;r[0]!==t?(a=()=>(i(!1),clearTimeout(c.current),c.current=setTimeout(()=>{i(!0)},t),()=>{clearTimeout(c.current)}),r[0]=t,r[1]=a):a=r[1];let u=a,l,m;r[2]!==u||r[3]!==n?(l=()=>{n&&u()},m=[u,n],r[2]=u,r[3]=n,r[4]=l,r[5]=m):(l=r[4],m=r[5]),$.useEffect(l,m);let s;return r[6]!==o||r[7]!==u?(s=[o,u],r[6]=o,r[7]=u,r[8]=s):s=r[8],s};var ce=({animationDelay:t="0ms",height:e="60px",width:r="100%"})=>U("div",{className:"shimmer-effect",style:{height:typeof e=="number"?`${e}px`:e,width:typeof r=="number"?`${r}px`:r},children:U("div",{className:"shimmer-effect__shine",style:{animationDelay:t}})}),$n=t=>{let e=Mr(7),{className:r,count:n,height:o,renderDelay:i,shimmerDelay:c,shimmerItemClassName:a,width:u}=t,l=i===void 0?500:i,m=c===void 0?25:c,s=typeof m=="number"?`${m}ms`:m,[S]=He(l,!0);if(!S)return null;let v;return e[0]!==r||e[1]!==n||e[2]!==o||e[3]!==s||e[4]!==a||e[5]!==u?(v=U("div",{className:r,children:[...Array(n)].map((x,O)=>U("div",{className:a,children:U(ce,{animationDelay:`calc(${O} * ${s})`,height:o,width:u})},O))}),e[0]=r,e[1]=n,e[2]=o,e[3]=s,e[4]=a,e[5]=u,e[6]=v):v=e[6],v};var Cr=ae.default||ae,Er="code-editor",Pr=t=>{let e=Sr(24),r,n,o,i,c,a;e[0]!==t?({className:r,maxHeight:n,minHeight:o,options:i,readOnly:c,...a}=t,e[0]=t,e[1]=r,e[2]=n,e[3]=o,e[4]=i,e[5]=c,e[6]=a):(r=e[1],n=e[2],o=e[3],i=e[4],c=e[5],a=e[6]);let u=o??56,[l,m]=xr(u),{theme:s}=We(),S=a?.defaultLanguage?`language--${a.defaultLanguage}`:"",v=c&&"read-only",x;e[7]!==r||e[8]!==S||e[9]!==v?(x=[Er,r,S,v].filter(Boolean),e[7]=r,e[8]=S,e[9]=v,e[10]=x):x=e[10];let O=x.join(" "),h;if(e[11]!==u||e[12]!==O||e[13]!==l||e[14]!==n||e[15]!==i||e[16]!==c||e[17]!==a||e[18]!==s){let C,p;e[20]!==u||e[21]!==a?(C=(P,T)=>{a.onChange?.(P,T),m(Math.max(u,P.split(`
24
+ `).length*18+2))},p=(P,T)=>{a.onMount?.(P,T),m(Math.max(u,P.getValue().split(`
25
+ `).length*18+2))},e[20]=u,e[21]=a,e[22]=C,e[23]=p):(C=e[22],p=e[23]),h=Be(Cr,{className:O,loading:Be(ce,{height:l}),options:{detectIndentation:!0,hideCursorInOverviewRuler:!0,minimap:{enabled:!1},overviewRulerBorder:!1,readOnly:!!c,scrollbar:{alwaysConsumeMouseWheel:!1},scrollBeyondLastLine:!1,tabSize:2,wordWrap:"on",...i},theme:s==="dark"?"vs-dark":"vs",...a,height:n?Math.min(l,n):l,onChange:C,onMount:p}),e[11]=u,e[12]=O,e[13]=l,e[14]=n,e[15]=i,e[16]=c,e[17]=a,e[18]=s,e[19]=h}else h=e[19];return h},Fn=Pr;export{On as a,ke as b,He as c,ce as d,$n as e,Or as f,Tn as g,We as h,Fn as i};
26
+ //# sourceMappingURL=chunk-CQQHQHCB.js.map