@payloadcms/ui 3.23.0-canary.fa36283 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/elements/ListControls/index.d.ts.map +1 -1
  2. package/dist/elements/ListControls/index.js +1 -1
  3. package/dist/elements/ListControls/index.js.map +1 -1
  4. package/dist/elements/ViewDescription/index.d.ts +0 -1
  5. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  6. package/dist/elements/ViewDescription/index.js +1 -2
  7. package/dist/elements/ViewDescription/index.js.map +1 -1
  8. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts +2 -2
  9. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts.map +1 -1
  10. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +1 -0
  11. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  12. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  13. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +59 -43
  14. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  15. package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  16. package/dist/elements/WhereBuilder/Condition/Select/index.js +2 -0
  17. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  18. package/dist/elements/WhereBuilder/Condition/Select/types.d.ts +1 -0
  19. package/dist/elements/WhereBuilder/Condition/Select/types.d.ts.map +1 -1
  20. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  21. package/dist/elements/WhereBuilder/Condition/index.d.ts +5 -16
  22. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  23. package/dist/elements/WhereBuilder/Condition/index.js +114 -276
  24. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  25. package/dist/elements/WhereBuilder/Condition/types.d.ts +2 -2
  26. package/dist/elements/WhereBuilder/Condition/types.d.ts.map +1 -1
  27. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  28. package/dist/elements/WhereBuilder/field-types.d.ts +1 -92
  29. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  30. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  31. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  32. package/dist/elements/WhereBuilder/index.js +168 -259
  33. package/dist/elements/WhereBuilder/index.js.map +1 -1
  34. package/dist/elements/WhereBuilder/{reduceClientFields.d.ts → reduceFields.d.ts} +5 -4
  35. package/dist/elements/WhereBuilder/reduceFields.d.ts.map +1 -0
  36. package/dist/elements/WhereBuilder/{reduceClientFields.js → reduceFields.js} +8 -8
  37. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -0
  38. package/dist/elements/WhereBuilder/types.d.ts +15 -2
  39. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  40. package/dist/elements/WhereBuilder/types.js.map +1 -1
  41. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -1
  42. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  43. package/dist/exports/client/index.js +11 -11
  44. package/dist/exports/client/index.js.map +4 -4
  45. package/dist/styles.css +1 -1
  46. package/package.json +4 -4
  47. package/dist/elements/ViewDescription/index.scss +0 -7
  48. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +0 -1
  49. package/dist/elements/WhereBuilder/reduceClientFields.js.map +0 -1
@@ -9,7 +9,7 @@ import fieldTypes from './field-types.js';
9
9
  * Reduces a field map to a flat array of fields with labels and values.
10
10
  * Used in the WhereBuilder component to render the fields in the dropdown.
11
11
  */
12
- export const reduceClientFields = ({
12
+ export const reduceFields = ({
13
13
  fields,
14
14
  i18n,
15
15
  labelPrefix,
@@ -29,7 +29,7 @@ export const reduceClientFields = ({
29
29
  // Make sure we handle nested tabs
30
30
  const tabPathPrefix = tabHasName(tab) && tab.name ? pathPrefix ? pathPrefix + '.' + tab.name : tab.name : pathPrefix;
31
31
  if (typeof localizedTabLabel === 'string') {
32
- reduced.push(...reduceClientFields({
32
+ reduced.push(...reduceFields({
33
33
  fields: tab.fields,
34
34
  i18n,
35
35
  labelPrefix: labelWithPrefix,
@@ -42,7 +42,7 @@ export const reduceClientFields = ({
42
42
  }
43
43
  // Rows cant have labels, so we need to handle them differently
44
44
  if (field.type === 'row' && 'fields' in field) {
45
- reduced.push(...reduceClientFields({
45
+ reduced.push(...reduceFields({
46
46
  fields: field.fields,
47
47
  i18n,
48
48
  labelPrefix,
@@ -53,7 +53,7 @@ export const reduceClientFields = ({
53
53
  if (field.type === 'collapsible' && 'fields' in field) {
54
54
  const localizedTabLabel = getTranslation(field.label || '', i18n);
55
55
  const labelWithPrefix = labelPrefix ? labelPrefix + ' > ' + localizedTabLabel : localizedTabLabel;
56
- reduced.push(...reduceClientFields({
56
+ reduced.push(...reduceFields({
57
57
  fields: field.fields,
58
58
  i18n,
59
59
  labelPrefix: labelWithPrefix,
@@ -66,7 +66,7 @@ export const reduceClientFields = ({
66
66
  const labelWithPrefix = labelPrefix ? translatedLabel ? labelPrefix + ' > ' + translatedLabel : labelPrefix : translatedLabel;
67
67
  // Make sure we handle deeply nested groups
68
68
  const pathWithPrefix = field.name ? pathPrefix ? pathPrefix + '.' + field.name : field.name : pathPrefix;
69
- reduced.push(...reduceClientFields({
69
+ reduced.push(...reduceFields({
70
70
  fields: field.fields,
71
71
  i18n,
72
72
  labelPrefix: labelWithPrefix,
@@ -92,10 +92,10 @@ export const reduceClientFields = ({
92
92
  field,
93
93
  prefix: labelPrefix
94
94
  }) : localizedLabel;
95
- const formattedValue = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name;
95
+ const fieldPath = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name;
96
96
  const formattedField = {
97
97
  label: formattedLabel,
98
- value: formattedValue,
98
+ value: fieldPath,
99
99
  ...fieldTypes[field.type],
100
100
  field,
101
101
  operators
@@ -106,4 +106,4 @@ export const reduceClientFields = ({
106
106
  return reduced;
107
107
  }, []);
108
108
  };
109
- //# sourceMappingURL=reduceClientFields.js.map
109
+ //# sourceMappingURL=reduceFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceFields.js","names":["getTranslation","fieldIsHiddenOrDisabled","fieldIsID","tabHasName","createNestedClientFieldPath","combineLabel","fieldTypes","reduceFields","fields","i18n","labelPrefix","pathPrefix","reduce","reduced","field","type","tabs","forEach","tab","label","localizedTabLabel","labelWithPrefix","tabPathPrefix","name","push","translatedLabel","pathWithPrefix","operatorKeys","Set","operators","acc","operator","has","value","add","operatorKey","t","localizedLabel","formattedLabel","prefix","fieldPath","formattedField"],"sources":["../../../src/elements/WhereBuilder/reduceFields.tsx"],"sourcesContent":["'use client'\nimport type { ClientTranslationKeys, I18nClient } from '@payloadcms/translations'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldIsHiddenOrDisabled, fieldIsID, tabHasName } from 'payload/shared'\n\nimport type { ReducedField } from './types.js'\n\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { combineLabel } from '../FieldSelect/index.js'\nimport fieldTypes from './field-types.js'\n\ntype ReduceFieldOptionsArgs = {\n fields: ClientField[]\n i18n: I18nClient\n labelPrefix?: string\n pathPrefix?: string\n}\n\n/**\n * Reduces a field map to a flat array of fields with labels and values.\n * Used in the WhereBuilder component to render the fields in the dropdown.\n */\nexport const reduceFields = ({\n fields,\n i18n,\n labelPrefix,\n pathPrefix,\n}: ReduceFieldOptionsArgs): ReducedField[] => {\n return fields.reduce((reduced, field) => {\n // Do not filter out `field.admin.disableListFilter` fields here, as these should still render as disabled if they appear in the URL query\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return reduced\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const tabs = field.tabs\n\n tabs.forEach((tab) => {\n if (typeof tab.label !== 'boolean') {\n const localizedTabLabel = getTranslation(tab.label, i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n // Make sure we handle nested tabs\n const tabPathPrefix =\n tabHasName(tab) && tab.name\n ? pathPrefix\n ? pathPrefix + '.' + tab.name\n : tab.name\n : pathPrefix\n\n if (typeof localizedTabLabel === 'string') {\n reduced.push(\n ...reduceFields({\n fields: tab.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: tabPathPrefix,\n }),\n )\n }\n }\n })\n return reduced\n }\n\n // Rows cant have labels, so we need to handle them differently\n if (field.type === 'row' && 'fields' in field) {\n reduced.push(\n ...reduceFields({\n fields: field.fields,\n i18n,\n labelPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'collapsible' && 'fields' in field) {\n const localizedTabLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n reduced.push(\n ...reduceFields({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'group' && 'fields' in field) {\n const translatedLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? translatedLabel\n ? labelPrefix + ' > ' + translatedLabel\n : labelPrefix\n : translatedLabel\n\n // Make sure we handle deeply nested groups\n const pathWithPrefix = field.name\n ? pathPrefix\n ? pathPrefix + '.' + field.name\n : field.name\n : pathPrefix\n\n reduced.push(\n ...reduceFields({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: pathWithPrefix,\n }),\n )\n\n return reduced\n }\n\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const operators = fieldTypes[field.type].operators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n const operatorKey = `operators:${operator.label}` as ClientTranslationKeys\n acc.push({\n ...operator,\n label: i18n.t(operatorKey),\n })\n }\n\n return acc\n }, [])\n\n const localizedLabel = getTranslation(field.label || '', i18n)\n\n const formattedLabel = labelPrefix\n ? combineLabel({\n field,\n prefix: labelPrefix,\n })\n : localizedLabel\n\n const fieldPath = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name\n\n const formattedField: ReducedField = {\n label: formattedLabel,\n value: fieldPath,\n ...fieldTypes[field.type],\n field,\n operators,\n }\n\n reduced.push(formattedField)\n return reduced\n }\n return reduced\n }, [])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,9 +5,9 @@ export type WhereBuilderProps = {
5
5
  readonly fields?: ClientField[];
6
6
  readonly renderedFilters?: Map<string, React.ReactNode>;
7
7
  };
8
- export type FieldCondition = {
8
+ export type ReducedField = {
9
9
  field: ClientField;
10
- label: string;
10
+ label: React.ReactNode;
11
11
  operators: {
12
12
  label: string;
13
13
  value: Operator;
@@ -39,4 +39,17 @@ export type Action = ADD | REMOVE | UPDATE;
39
39
  export type State = {
40
40
  or: Where[];
41
41
  };
42
+ export type AddCondition = ({ andIndex, field, orIndex, relation, }: {
43
+ andIndex: number;
44
+ field: ReducedField;
45
+ orIndex: number;
46
+ relation: 'and' | 'or';
47
+ }) => void;
48
+ export type UpdateCondition = ({ andIndex, field, operator, orIndex, value, }: {
49
+ andIndex: number;
50
+ field: ReducedField;
51
+ operator: string;
52
+ orIndex: number;
53
+ value: string;
54
+ }) => void;
42
55
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEtF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC7E,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAA;AAEnC,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,KAAK,EAAE,CAAA;CACZ,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEtF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC7E,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAA;AAEnC,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,KAAK,EAAE,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;CACvB,KAAK,IAAI,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,KAAK,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { ClientField, Operator, SanitizedCollectionConfig, Where } from 'payload'\n\nexport type WhereBuilderProps = {\n readonly collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly fields?: ClientField[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\nexport type FieldCondition = {\n field: ClientField\n label: string\n operators: {\n label: string\n value: Operator\n }[]\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n"],"mappings":"AA8CA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/WhereBuilder/types.ts"],"sourcesContent":["import type { ClientField, Operator, SanitizedCollectionConfig, Where } from 'payload'\n\nexport type WhereBuilderProps = {\n readonly collectionPluralLabel: SanitizedCollectionConfig['labels']['plural']\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly fields?: ClientField[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\nexport type ReducedField = {\n field: ClientField\n label: React.ReactNode\n operators: {\n label: string\n value: Operator\n }[]\n value: string\n}\n\nexport type Relation = 'and' | 'or'\n\nexport type ADD = {\n andIndex?: number\n field: string\n orIndex?: number\n relation?: Relation\n type: 'add'\n}\n\nexport type REMOVE = {\n andIndex: number\n orIndex: number\n type: 'remove'\n}\n\nexport type UPDATE = {\n andIndex: number\n field?: string\n operator?: string\n orIndex: number\n type: 'update'\n value?: unknown\n}\n\nexport type Action = ADD | REMOVE | UPDATE\n\nexport type State = {\n or: Where[]\n}\n\nexport type AddCondition = ({\n andIndex,\n field,\n orIndex,\n relation,\n}: {\n andIndex: number\n field: ReducedField\n orIndex: number\n relation: 'and' | 'or'\n}) => void\n\nexport type UpdateCondition = ({\n andIndex,\n field,\n operator,\n orIndex,\n value,\n}: {\n andIndex: number\n field: ReducedField\n operator: string\n orIndex: number\n value: string\n}) => void\n"],"mappings":"AA8DA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,uBAAiB,UAAU,IAAI,KAsCtD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"validateWhereQuery.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/validateWhereQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9C,QAAA,MAAM,kBAAkB,uBAAiB,UAAU,IAAI,KAwCtD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1 +1 @@
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":[]}
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\n const andKeys = Object.keys(andQuery)\n\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;UAEA,MAAMC,OAAA,GAAUC,MAAA,CAAOC,IAAI,CAACH,QAAA;UAE5B;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":[]}