@payloadcms/ui 3.21.0 → 3.23.0-canary.597254e

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 (154) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +20 -10
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/Button/index.d.ts.map +1 -1
  5. package/dist/elements/Button/index.js +3 -2
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/types.d.ts +4 -0
  8. package/dist/elements/Button/types.d.ts.map +1 -1
  9. package/dist/elements/Button/types.js.map +1 -1
  10. package/dist/elements/DatePicker/types.d.ts +1 -1
  11. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  12. package/dist/elements/DatePicker/types.js.map +1 -1
  13. package/dist/elements/ListControls/index.d.ts.map +1 -1
  14. package/dist/elements/ListControls/index.js +0 -1
  15. package/dist/elements/ListControls/index.js.map +1 -1
  16. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/ListDrawer/DrawerContent.js +9 -6
  18. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  19. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  20. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +17 -1
  21. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  22. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  23. package/dist/elements/PublishButton/ScheduleDrawer/index.js +52 -7
  24. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  25. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -0
  26. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  27. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  28. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  29. package/dist/elements/PublishButton/index.js +2 -1
  30. package/dist/elements/PublishButton/index.js.map +1 -1
  31. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  32. package/dist/elements/ReactSelect/MultiValueLabel/index.js +6 -2
  33. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  34. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +5 -0
  35. package/dist/elements/ReactSelect/types.d.ts +6 -1
  36. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  37. package/dist/elements/ReactSelect/types.js.map +1 -1
  38. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  39. package/dist/elements/RelationshipTable/index.js +9 -6
  40. package/dist/elements/RelationshipTable/index.js.map +1 -1
  41. package/dist/elements/TimezonePicker/index.d.ts +5 -0
  42. package/dist/elements/TimezonePicker/index.d.ts.map +1 -0
  43. package/dist/elements/TimezonePicker/index.js +50 -0
  44. package/dist/elements/TimezonePicker/index.js.map +1 -0
  45. package/dist/elements/TimezonePicker/index.scss +51 -0
  46. package/dist/elements/TimezonePicker/types.d.ts +8 -0
  47. package/dist/elements/TimezonePicker/types.d.ts.map +1 -0
  48. package/dist/elements/TimezonePicker/types.js +2 -0
  49. package/dist/elements/TimezonePicker/types.js.map +1 -0
  50. package/dist/elements/Upload/index.d.ts.map +1 -1
  51. package/dist/elements/Upload/index.js +4 -3
  52. package/dist/elements/Upload/index.js.map +1 -1
  53. package/dist/elements/WhereBuilder/Condition/Date/index.d.ts +1 -1
  54. package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
  55. package/dist/elements/WhereBuilder/Condition/Date/index.js +1 -1
  56. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  57. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +6 -6
  58. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  59. package/dist/elements/WhereBuilder/Condition/Number/index.d.ts +1 -1
  60. package/dist/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
  61. package/dist/elements/WhereBuilder/Condition/Number/index.js +1 -1
  62. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  63. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts +1 -1
  64. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  65. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +12 -10
  66. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  67. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts +6 -0
  68. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts.map +1 -0
  69. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +12 -0
  70. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -0
  71. package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  72. package/dist/elements/WhereBuilder/Condition/Select/index.js +1 -9
  73. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  74. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  75. package/dist/elements/WhereBuilder/Condition/index.js +100 -88
  76. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  77. package/dist/exports/client/index.d.ts +6 -4
  78. package/dist/exports/client/index.d.ts.map +1 -1
  79. package/dist/exports/client/index.js +23 -22
  80. package/dist/exports/client/index.js.map +4 -4
  81. package/dist/exports/shared/index.js +2 -2
  82. package/dist/exports/shared/index.js.map +4 -4
  83. package/dist/fields/DateTime/index.d.ts +1 -2
  84. package/dist/fields/DateTime/index.d.ts.map +1 -1
  85. package/dist/fields/DateTime/index.js +73 -8
  86. package/dist/fields/DateTime/index.js.map +1 -1
  87. package/dist/fields/Password/index.d.ts.map +1 -1
  88. package/dist/fields/Password/index.js +1 -0
  89. package/dist/fields/Password/index.js.map +1 -1
  90. package/dist/fields/Relationship/index.d.ts.map +1 -1
  91. package/dist/fields/Relationship/index.js +41 -28
  92. package/dist/fields/Relationship/index.js.map +1 -1
  93. package/dist/fields/Text/Input.d.ts.map +1 -1
  94. package/dist/fields/Text/Input.js +47 -1
  95. package/dist/fields/Text/Input.js.map +1 -1
  96. package/dist/forms/Form/context.d.ts +7 -1
  97. package/dist/forms/Form/context.d.ts.map +1 -1
  98. package/dist/forms/Form/context.js +9 -1
  99. package/dist/forms/Form/context.js.map +1 -1
  100. package/dist/forms/Form/index.d.ts +1 -1
  101. package/dist/forms/Form/index.d.ts.map +1 -1
  102. package/dist/forms/Form/index.js +73 -58
  103. package/dist/forms/Form/index.js.map +1 -1
  104. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  105. package/dist/forms/Form/mergeServerFormState.js +1 -0
  106. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  107. package/dist/forms/Form/types.d.ts +7 -0
  108. package/dist/forms/Form/types.d.ts.map +1 -1
  109. package/dist/forms/Form/types.js.map +1 -1
  110. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +4 -0
  111. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  112. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +9 -0
  113. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  114. package/dist/forms/fieldSchemasToFormState/index.d.ts +23 -1
  115. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  116. package/dist/forms/fieldSchemasToFormState/index.js +10 -1
  117. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  118. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +5 -1
  119. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  120. package/dist/forms/fieldSchemasToFormState/iterateFields.js +3 -0
  121. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  122. package/dist/forms/useField/index.d.ts.map +1 -1
  123. package/dist/forms/useField/index.js +38 -34
  124. package/dist/forms/useField/index.js.map +1 -1
  125. package/dist/hooks/useEffectEvent.d.ts +2 -0
  126. package/dist/hooks/useEffectEvent.d.ts.map +1 -0
  127. package/dist/hooks/useEffectEvent.js +57 -0
  128. package/dist/hooks/useEffectEvent.js.map +1 -0
  129. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  130. package/dist/providers/DocumentInfo/index.js +11 -2
  131. package/dist/providers/DocumentInfo/index.js.map +1 -1
  132. package/dist/styles.css +1 -1
  133. package/dist/utilities/buildFormState.d.ts.map +1 -1
  134. package/dist/utilities/buildFormState.js +13 -0
  135. package/dist/utilities/buildFormState.js.map +1 -1
  136. package/dist/utilities/formatDate.d.ts +2 -1
  137. package/dist/utilities/formatDate.d.ts.map +1 -1
  138. package/dist/utilities/formatDate.js +15 -3
  139. package/dist/utilities/formatDate.js.map +1 -1
  140. package/dist/utilities/schedulePublishHandler.d.ts +2 -1
  141. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  142. package/dist/utilities/schedulePublishHandler.js +3 -1
  143. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  144. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  145. package/dist/views/Edit/Auth/APIKey.js +1 -0
  146. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  147. package/dist/views/Edit/index.d.ts.map +1 -1
  148. package/dist/views/Edit/index.js +1 -0
  149. package/dist/views/Edit/index.js.map +1 -1
  150. package/package.json +5 -4
  151. package/dist/hooks/useIgnoredEffect.d.ts +0 -21
  152. package/dist/hooks/useIgnoredEffect.d.ts.map +0 -1
  153. package/dist/hooks/useIgnoredEffect.js +0 -41
  154. package/dist/hooks/useIgnoredEffect.js.map +0 -1
@@ -11,7 +11,7 @@ import './index.scss';
11
11
  import optionsReducer from './optionsReducer.js';
12
12
  const baseClass = 'condition-value-relationship';
13
13
  const maxResultsPerRequest = 10;
14
- export const RelationshipField = props => {
14
+ export const RelationshipFilter = props => {
15
15
  const {
16
16
  disabled,
17
17
  field: {
@@ -181,15 +181,17 @@ export const RelationshipField = props => {
181
181
  return undefined;
182
182
  }, [hasMany, hasMultipleRelations, value, options]);
183
183
  const handleInputChange = input => {
184
- dispatchOptions({
185
- type: 'CLEAR',
186
- i18n,
187
- required: false
188
- });
189
- const relationSlug_0 = partiallyLoadedRelationshipSlugs.current[0];
190
- partiallyLoadedRelationshipSlugs.current = relationSlugs;
191
- nextPageByRelationshipRef.current.set(relationSlug_0, 1);
192
- setSearch(input);
184
+ if (input !== search) {
185
+ dispatchOptions({
186
+ type: 'CLEAR',
187
+ i18n,
188
+ required: false
189
+ });
190
+ const relationSlug_0 = partiallyLoadedRelationshipSlugs.current[0];
191
+ partiallyLoadedRelationshipSlugs.current = relationSlugs;
192
+ nextPageByRelationshipRef.current.set(relationSlug_0, 1);
193
+ setSearch(input);
194
+ }
193
195
  };
194
196
  const addOptionByID = useCallback(async (id, relation_1) => {
195
197
  if (!errorLoading && id !== 'null' && id && relation_1) {
@@ -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","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
+ {"version":3,"file":"index.js","names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","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 RelationshipFilter: 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\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\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 if (input !== search) {\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\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":[]}
@@ -0,0 +1,6 @@
1
+ import type { Option, OptionObject } from 'payload';
2
+ /**
3
+ * Formats an array of options for use in a select input.
4
+ */
5
+ export declare const formatOptions: (options: Option[]) => OptionObject[];
6
+ //# sourceMappingURL=formatOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatOptions.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/formatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,YAAY,EAU1D,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Formats an array of options for use in a select input.
3
+ */export const formatOptions = options => options.map(option => {
4
+ if (typeof option === 'object' && (option.value || option.value === '')) {
5
+ return option;
6
+ }
7
+ return {
8
+ label: option,
9
+ value: option
10
+ };
11
+ });
12
+ //# sourceMappingURL=formatOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatOptions.js","names":["formatOptions","options","map","option","value","label"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/formatOptions.ts"],"sourcesContent":["import type { Option, OptionObject } from 'payload'\n\n/**\n * Formats an array of options for use in a select input.\n */\nexport const formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n"],"mappings":"AAEA;;GAGA,OAAO,MAAMA,aAAA,GAAiBC,OAAA,IAC5BA,OAAA,CAAQC,GAAG,CAAEC,MAAA;EACX,IAAI,OAAOA,MAAA,KAAW,aAAaA,MAAA,CAAOC,KAAK,IAAID,MAAA,CAAOC,KAAK,KAAK,EAAC,GAAI;IACvE,OAAOD,MAAA;EACT;EAEA,OAAO;IACLE,KAAA,EAAOF,MAAA;IACPC,KAAA,EAAOD;EACT;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAiBvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoElC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoElC,CAAA"}
@@ -6,15 +6,7 @@ import { getTranslation } from '@payloadcms/translations';
6
6
  import React from 'react';
7
7
  import { useTranslation } from '../../../../providers/Translation/index.js';
8
8
  import { ReactSelect } from '../../../ReactSelect/index.js';
9
- const formatOptions = options => options.map(option => {
10
- if (typeof option === 'object' && (option.value || option.value === '')) {
11
- return option;
12
- }
13
- return {
14
- label: option,
15
- value: option
16
- };
17
- });
9
+ import { formatOptions } from './formatOptions.js';
18
10
  export const Select = t0 => {
19
11
  const $ = _c(26);
20
12
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useTranslation","ReactSelect","formatOptions","options","map","option","value","label","Select","t0","$","disabled","onChange","operator","optionsFromProps","i18n","t1","setOptions","useState","t2","Symbol","for","isMulti","includes","valueToRender","Array","isArray","t3","val","matchingOption","find","matchingOption_0","t4","option_0","selectedOption","newValue","_temp","onSelect","t5","useEffect","t6","t7","t8","option_2","_jsx","option_1"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { Option, OptionObject } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useTranslation","ReactSelect","formatOptions","Select","t0","$","disabled","onChange","operator","options","optionsFromProps","value","i18n","t1","setOptions","useState","t2","Symbol","for","isMulti","includes","valueToRender","Array","isArray","t3","val","matchingOption","find","option","label","map","matchingOption_0","t4","option_0","selectedOption","newValue","_temp","onSelect","t5","useEffect","t6","t7","t8","option_2","_jsx","option_1"],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport { formatOptions } from './formatOptions.js'\n\nexport const Select: React.FC<Props> = ({\n disabled,\n onChange,\n operator,\n options: optionsFromProps,\n value,\n}) => {\n const { i18n } = useTranslation()\n const [options, setOptions] = React.useState(formatOptions(optionsFromProps))\n\n const isMulti = ['in', 'not_in'].includes(operator)\n let valueToRender\n\n if (isMulti && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = null\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else {\n newValue = selectedOption.value\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n setOptions(formatOptions(optionsFromProps))\n }, [optionsFromProps])\n\n React.useEffect(() => {\n if (!isMulti && Array.isArray(value)) {\n onChange(value[0])\n }\n }, [isMulti, onChange, value])\n\n return (\n <ReactSelect\n disabled={disabled}\n isMulti={isMulti}\n onChange={onSelect}\n options={options.map((option) => ({ ...option, label: getTranslation(option.label, i18n) }))}\n value={valueToRender}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KACvB,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;CACX,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0JrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KACvB,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;CACX,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmKrC,CAAA"}
@@ -11,7 +11,7 @@ import { DefaultFilter } from './DefaultFilter/index.js';
11
11
  import './index.scss';
12
12
  const baseClass = 'condition';
13
13
  export const Condition = props => {
14
- const $ = _c(65);
14
+ const $ = _c(67);
15
15
  const {
16
16
  addCondition,
17
17
  andIndex,
@@ -41,9 +41,19 @@ export const Condition = props => {
41
41
  const [internalQueryValue, setInternalQueryValue] = useState(initialValue);
42
42
  const debouncedValue = useDebounce(internalQueryValue, 300);
43
43
  let t1;
44
- if ($[3] !== andIndex || $[4] !== debouncedValue || $[5] !== fieldOption || $[6] !== internalOperatorOption || $[7] !== orIndex || $[8] !== updateCondition) {
44
+ if ($[3] !== andIndex || $[4] !== debouncedValue || $[5] !== fieldOption || $[6] !== internalOperatorOption || $[7] !== orIndex || $[8] !== removeCondition || $[9] !== updateCondition) {
45
45
  t1 = () => {
46
- if ((fieldOption?.value || typeof fieldOption?.value === "number") && internalOperatorOption && ![null, undefined].includes(debouncedValue)) {
46
+ if (debouncedValue === undefined) {
47
+ return;
48
+ }
49
+ if (debouncedValue === null) {
50
+ removeCondition({
51
+ andIndex,
52
+ orIndex
53
+ });
54
+ return;
55
+ }
56
+ if ((fieldOption?.value || typeof fieldOption?.value === "number") && internalOperatorOption) {
47
57
  updateCondition({
48
58
  andIndex,
49
59
  fieldName: fieldOption.value,
@@ -58,85 +68,87 @@ export const Condition = props => {
58
68
  $[5] = fieldOption;
59
69
  $[6] = internalOperatorOption;
60
70
  $[7] = orIndex;
61
- $[8] = updateCondition;
62
- $[9] = t1;
71
+ $[8] = removeCondition;
72
+ $[9] = updateCondition;
73
+ $[10] = t1;
63
74
  } else {
64
- t1 = $[9];
75
+ t1 = $[10];
65
76
  }
66
77
  const t2 = fieldOption?.value;
67
78
  let t3;
68
- if ($[10] !== andIndex || $[11] !== debouncedValue || $[12] !== internalOperatorOption || $[13] !== operator || $[14] !== orIndex || $[15] !== t2 || $[16] !== updateCondition) {
69
- t3 = [debouncedValue, andIndex, t2, internalOperatorOption, orIndex, updateCondition, operator];
70
- $[10] = andIndex;
71
- $[11] = debouncedValue;
72
- $[12] = internalOperatorOption;
73
- $[13] = operator;
74
- $[14] = orIndex;
75
- $[15] = t2;
76
- $[16] = updateCondition;
77
- $[17] = t3;
79
+ if ($[11] !== andIndex || $[12] !== debouncedValue || $[13] !== internalOperatorOption || $[14] !== operator || $[15] !== orIndex || $[16] !== removeCondition || $[17] !== t2 || $[18] !== updateCondition) {
80
+ t3 = [debouncedValue, andIndex, t2, internalOperatorOption, orIndex, updateCondition, operator, removeCondition];
81
+ $[11] = andIndex;
82
+ $[12] = debouncedValue;
83
+ $[13] = internalOperatorOption;
84
+ $[14] = operator;
85
+ $[15] = orIndex;
86
+ $[16] = removeCondition;
87
+ $[17] = t2;
88
+ $[18] = updateCondition;
89
+ $[19] = t3;
78
90
  } else {
79
- t3 = $[17];
91
+ t3 = $[19];
80
92
  }
81
93
  useEffect(t1, t3);
82
94
  let t4;
83
- if ($[18] !== fieldOption?.field?.type || $[19] !== internalOperatorOption) {
95
+ if ($[20] !== fieldOption?.field?.type || $[21] !== internalOperatorOption) {
84
96
  t4 = ["exists"].includes(internalOperatorOption) || fieldOption?.field?.type === "checkbox";
85
- $[18] = fieldOption?.field?.type;
86
- $[19] = internalOperatorOption;
87
- $[20] = t4;
97
+ $[20] = fieldOption?.field?.type;
98
+ $[21] = internalOperatorOption;
99
+ $[22] = t4;
88
100
  } else {
89
- t4 = $[20];
101
+ t4 = $[22];
90
102
  }
91
103
  const booleanSelect = t4;
92
104
  let valueOptions;
93
105
  if (booleanSelect) {
94
106
  let t5;
95
- if ($[21] !== t) {
107
+ if ($[23] !== t) {
96
108
  t5 = t("general:true");
97
- $[21] = t;
98
- $[22] = t5;
109
+ $[23] = t;
110
+ $[24] = t5;
99
111
  } else {
100
- t5 = $[22];
112
+ t5 = $[24];
101
113
  }
102
114
  let t6;
103
- if ($[23] !== t5) {
115
+ if ($[25] !== t5) {
104
116
  t6 = {
105
117
  label: t5,
106
118
  value: "true"
107
119
  };
108
- $[23] = t5;
109
- $[24] = t6;
120
+ $[25] = t5;
121
+ $[26] = t6;
110
122
  } else {
111
- t6 = $[24];
123
+ t6 = $[26];
112
124
  }
113
125
  let t7;
114
- if ($[25] !== t) {
126
+ if ($[27] !== t) {
115
127
  t7 = t("general:false");
116
- $[25] = t;
117
- $[26] = t7;
128
+ $[27] = t;
129
+ $[28] = t7;
118
130
  } else {
119
- t7 = $[26];
131
+ t7 = $[28];
120
132
  }
121
133
  let t8;
122
- if ($[27] !== t7) {
134
+ if ($[29] !== t7) {
123
135
  t8 = {
124
136
  label: t7,
125
137
  value: "false"
126
138
  };
127
- $[27] = t7;
128
- $[28] = t8;
139
+ $[29] = t7;
140
+ $[30] = t8;
129
141
  } else {
130
- t8 = $[28];
142
+ t8 = $[30];
131
143
  }
132
144
  let t9;
133
- if ($[29] !== t6 || $[30] !== t8) {
145
+ if ($[31] !== t6 || $[32] !== t8) {
134
146
  t9 = [t6, t8];
135
- $[29] = t6;
136
- $[30] = t8;
137
- $[31] = t9;
147
+ $[31] = t6;
148
+ $[32] = t8;
149
+ $[33] = t9;
138
150
  } else {
139
- t9 = $[31];
151
+ t9 = $[33];
140
152
  }
141
153
  valueOptions = t9;
142
154
  } else {
@@ -146,30 +158,30 @@ export const Condition = props => {
146
158
  }
147
159
  const disabled = !fieldOption?.value && typeof fieldOption?.value !== "number" || fieldOption?.field?.admin?.disableListFilter;
148
160
  let t5;
149
- if ($[32] !== options) {
161
+ if ($[34] !== options) {
150
162
  t5 = field_0 => {
151
163
  setFieldOption(options.find(f => f.value === field_0.value));
152
164
  setInternalOperatorOption(undefined);
153
165
  setInternalQueryValue(undefined);
154
166
  };
155
- $[32] = options;
156
- $[33] = t5;
167
+ $[34] = options;
168
+ $[35] = t5;
157
169
  } else {
158
- t5 = $[33];
170
+ t5 = $[35];
159
171
  }
160
172
  let t6;
161
- if ($[34] !== RenderedFilter || $[35] !== addCondition || $[36] !== andIndex || $[37] !== booleanSelect || $[38] !== disabled || $[39] !== fieldOption || $[40] !== internalOperatorOption || $[41] !== internalQueryValue || $[42] !== options || $[43] !== orIndex || $[44] !== removeCondition || $[45] !== t5 || $[46] !== valueOptions) {
173
+ if ($[36] !== RenderedFilter || $[37] !== addCondition || $[38] !== andIndex || $[39] !== booleanSelect || $[40] !== disabled || $[41] !== fieldOption || $[42] !== internalOperatorOption || $[43] !== internalQueryValue || $[44] !== options || $[45] !== orIndex || $[46] !== removeCondition || $[47] !== t5 || $[48] !== valueOptions) {
162
174
  let t7;
163
- if ($[48] === Symbol.for("react.memo_cache_sentinel")) {
175
+ if ($[50] === Symbol.for("react.memo_cache_sentinel")) {
164
176
  t7 = operator_0 => {
165
177
  setInternalOperatorOption(operator_0.value);
166
178
  };
167
- $[48] = t7;
179
+ $[50] = t7;
168
180
  } else {
169
- t7 = $[48];
181
+ t7 = $[50];
170
182
  }
171
183
  let t8;
172
- if ($[49] !== RenderedFilter || $[50] !== booleanSelect || $[51] !== fieldOption || $[52] !== internalOperatorOption || $[53] !== internalQueryValue || $[54] !== valueOptions) {
184
+ if ($[51] !== RenderedFilter || $[52] !== booleanSelect || $[53] !== fieldOption || $[54] !== internalOperatorOption || $[55] !== internalQueryValue || $[56] !== valueOptions) {
173
185
  t8 = RenderedFilter || _jsx(DefaultFilter, {
174
186
  booleanSelect,
175
187
  disabled: !internalOperatorOption || !fieldOption || fieldOption?.field?.admin?.disableListFilter,
@@ -179,44 +191,44 @@ export const Condition = props => {
179
191
  options: valueOptions,
180
192
  value: internalQueryValue ?? ""
181
193
  });
182
- $[49] = RenderedFilter;
183
- $[50] = booleanSelect;
184
- $[51] = fieldOption;
185
- $[52] = internalOperatorOption;
186
- $[53] = internalQueryValue;
187
- $[54] = valueOptions;
188
- $[55] = t8;
194
+ $[51] = RenderedFilter;
195
+ $[52] = booleanSelect;
196
+ $[53] = fieldOption;
197
+ $[54] = internalOperatorOption;
198
+ $[55] = internalQueryValue;
199
+ $[56] = valueOptions;
200
+ $[57] = t8;
189
201
  } else {
190
- t8 = $[55];
202
+ t8 = $[57];
191
203
  }
192
204
  let t9;
193
- if ($[56] !== andIndex || $[57] !== orIndex || $[58] !== removeCondition) {
205
+ if ($[58] !== andIndex || $[59] !== orIndex || $[60] !== removeCondition) {
194
206
  t9 = () => removeCondition({
195
207
  andIndex,
196
208
  orIndex
197
209
  });
198
- $[56] = andIndex;
199
- $[57] = orIndex;
200
- $[58] = removeCondition;
201
- $[59] = t9;
210
+ $[58] = andIndex;
211
+ $[59] = orIndex;
212
+ $[60] = removeCondition;
213
+ $[61] = t9;
202
214
  } else {
203
- t9 = $[59];
215
+ t9 = $[61];
204
216
  }
205
217
  let t10;
206
- if ($[60] !== addCondition || $[61] !== andIndex || $[62] !== options || $[63] !== orIndex) {
218
+ if ($[62] !== addCondition || $[63] !== andIndex || $[64] !== options || $[65] !== orIndex) {
207
219
  t10 = () => addCondition({
208
220
  andIndex: andIndex + 1,
209
221
  fieldName: options.find(_temp2).value,
210
222
  orIndex,
211
223
  relation: "and"
212
224
  });
213
- $[60] = addCondition;
214
- $[61] = andIndex;
215
- $[62] = options;
216
- $[63] = orIndex;
217
- $[64] = t10;
225
+ $[62] = addCondition;
226
+ $[63] = andIndex;
227
+ $[64] = options;
228
+ $[65] = orIndex;
229
+ $[66] = t10;
218
230
  } else {
219
- t10 = $[64];
231
+ t10 = $[66];
220
232
  }
221
233
  t6 = _jsx("div", {
222
234
  className: baseClass,
@@ -268,22 +280,22 @@ export const Condition = props => {
268
280
  })]
269
281
  })
270
282
  });
271
- $[34] = RenderedFilter;
272
- $[35] = addCondition;
273
- $[36] = andIndex;
274
- $[37] = booleanSelect;
275
- $[38] = disabled;
276
- $[39] = fieldOption;
277
- $[40] = internalOperatorOption;
278
- $[41] = internalQueryValue;
279
- $[42] = options;
280
- $[43] = orIndex;
281
- $[44] = removeCondition;
282
- $[45] = t5;
283
- $[46] = valueOptions;
284
- $[47] = t6;
283
+ $[36] = RenderedFilter;
284
+ $[37] = addCondition;
285
+ $[38] = andIndex;
286
+ $[39] = booleanSelect;
287
+ $[40] = disabled;
288
+ $[41] = fieldOption;
289
+ $[42] = internalOperatorOption;
290
+ $[43] = internalQueryValue;
291
+ $[44] = options;
292
+ $[45] = orIndex;
293
+ $[46] = removeCondition;
294
+ $[47] = t5;
295
+ $[48] = valueOptions;
296
+ $[49] = t6;
285
297
  } else {
286
- t6 = $[47];
298
+ t6 = $[49];
287
299
  }
288
300
  return t6;
289
301
  };