@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
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/types.ts"],"sourcesContent":["import type { Option, SelectFieldClient } from 'payload'\n\nimport type { DefaultFilterProps } from '../types.js'\n\nexport type Props = {\n readonly field: SelectFieldClient\n readonly onChange: (val: string) => void\n readonly options: Option[]\n readonly value: string\n} & DefaultFilterProps\n"],"mappings":"AAIA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/elements/WhereBuilder/Condition/Select/types.ts"],"sourcesContent":["import type { Option, SelectFieldClient } from 'payload'\n\nimport type { DefaultFilterProps } from '../types.js'\n\nexport type Props = {\n readonly field: SelectFieldClient\n readonly isClearable?: boolean\n readonly onChange: (val: string) => void\n readonly options: Option[]\n readonly value: string\n} & DefaultFilterProps\n"],"mappings":"AAIA","ignoreList":[]}
@@ -1,30 +1,19 @@
1
1
  import React from 'react';
2
- import type { FieldCondition } from '../types.js';
2
+ import type { AddCondition, ReducedField, UpdateCondition } from '../types.js';
3
3
  export type Props = {
4
- readonly addCondition: ({ andIndex, fieldName, orIndex, relation, }: {
5
- andIndex: number;
6
- fieldName: string;
7
- orIndex: number;
8
- relation: 'and' | 'or';
9
- }) => void;
4
+ readonly addCondition: AddCondition;
10
5
  readonly andIndex: number;
11
6
  readonly fieldName: string;
12
- readonly initialValue: string;
13
7
  readonly operator: Operator;
14
- readonly options: FieldCondition[];
15
8
  readonly orIndex: number;
9
+ readonly reducedFields: ReducedField[];
16
10
  readonly removeCondition: ({ andIndex, orIndex }: {
17
11
  andIndex: number;
18
12
  orIndex: number;
19
13
  }) => void;
20
14
  readonly RenderedFilter: React.ReactNode;
21
- readonly updateCondition: ({ andIndex, fieldName, operator, orIndex, value, }: {
22
- andIndex: number;
23
- fieldName: string;
24
- operator: string;
25
- orIndex: number;
26
- value: string;
27
- }) => void;
15
+ readonly updateCondition: UpdateCondition;
16
+ readonly value: string;
28
17
  };
29
18
  import type { Operator } from 'payload';
30
19
  import './index.scss';
@@ -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,CAmKrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,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,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,SAAS,CAAA;AAUhE,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6JrC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import React, { useEffect, useState } from 'react';
4
+ import React, { useCallback, useEffect, useState } from 'react';
6
5
  import { useDebounce } from '../../../hooks/useDebounce.js';
6
+ import { useEffectEvent } from '../../../hooks/useEffectEvent.js';
7
7
  import { useTranslation } from '../../../providers/Translation/index.js';
8
8
  import { Button } from '../../Button/index.js';
9
9
  import { ReactSelect } from '../../ReactSelect/index.js';
@@ -11,298 +11,136 @@ 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(67);
15
14
  const {
16
15
  addCondition,
17
16
  andIndex,
18
17
  fieldName,
19
- initialValue,
20
18
  operator,
21
- options,
22
19
  orIndex,
20
+ reducedFields,
23
21
  removeCondition,
24
22
  RenderedFilter,
25
- updateCondition
23
+ updateCondition,
24
+ value
26
25
  } = props;
27
- let t0;
28
- if ($[0] !== fieldName || $[1] !== options) {
29
- t0 = () => options.find(field => fieldName === field.value);
30
- $[0] = fieldName;
31
- $[1] = options;
32
- $[2] = t0;
33
- } else {
34
- t0 = $[2];
35
- }
36
- const [fieldOption, setFieldOption] = useState(t0);
37
26
  const {
38
27
  t
39
28
  } = useTranslation();
40
- const [internalOperatorOption, setInternalOperatorOption] = useState(operator);
41
- const [internalQueryValue, setInternalQueryValue] = useState(initialValue);
42
- const debouncedValue = useDebounce(internalQueryValue, 300);
43
- let t1;
44
- if ($[3] !== andIndex || $[4] !== debouncedValue || $[5] !== fieldOption || $[6] !== internalOperatorOption || $[7] !== orIndex || $[8] !== removeCondition || $[9] !== updateCondition) {
45
- t1 = () => {
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) {
57
- updateCondition({
58
- andIndex,
59
- fieldName: fieldOption.value,
60
- operator: internalOperatorOption,
61
- orIndex,
62
- value: debouncedValue
63
- });
64
- }
65
- };
66
- $[3] = andIndex;
67
- $[4] = debouncedValue;
68
- $[5] = fieldOption;
69
- $[6] = internalOperatorOption;
70
- $[7] = orIndex;
71
- $[8] = removeCondition;
72
- $[9] = updateCondition;
73
- $[10] = t1;
74
- } else {
75
- t1 = $[10];
76
- }
77
- const t2 = fieldOption?.value;
78
- let 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;
90
- } else {
91
- t3 = $[19];
92
- }
93
- useEffect(t1, t3);
94
- let t4;
95
- if ($[20] !== fieldOption?.field?.type || $[21] !== internalOperatorOption) {
96
- t4 = ["exists"].includes(internalOperatorOption) || fieldOption?.field?.type === "checkbox";
97
- $[20] = fieldOption?.field?.type;
98
- $[21] = internalOperatorOption;
99
- $[22] = t4;
100
- } else {
101
- t4 = $[22];
102
- }
103
- const booleanSelect = t4;
104
- let valueOptions;
29
+ const reducedField = reducedFields.find(field => field.value === fieldName);
30
+ const [internalValue, setInternalValue] = useState(value);
31
+ const debouncedValue = useDebounce(internalValue, 300);
32
+ const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox';
33
+ let valueOptions = [];
105
34
  if (booleanSelect) {
106
- let t5;
107
- if ($[23] !== t) {
108
- t5 = t("general:true");
109
- $[23] = t;
110
- $[24] = t5;
111
- } else {
112
- t5 = $[24];
113
- }
114
- let t6;
115
- if ($[25] !== t5) {
116
- t6 = {
117
- label: t5,
118
- value: "true"
119
- };
120
- $[25] = t5;
121
- $[26] = t6;
122
- } else {
123
- t6 = $[26];
124
- }
125
- let t7;
126
- if ($[27] !== t) {
127
- t7 = t("general:false");
128
- $[27] = t;
129
- $[28] = t7;
130
- } else {
131
- t7 = $[28];
132
- }
133
- let t8;
134
- if ($[29] !== t7) {
135
- t8 = {
136
- label: t7,
137
- value: "false"
138
- };
139
- $[29] = t7;
140
- $[30] = t8;
141
- } else {
142
- t8 = $[30];
143
- }
144
- let t9;
145
- if ($[31] !== t6 || $[32] !== t8) {
146
- t9 = [t6, t8];
147
- $[31] = t6;
148
- $[32] = t8;
149
- $[33] = t9;
150
- } else {
151
- t9 = $[33];
152
- }
153
- valueOptions = t9;
154
- } else {
155
- if (fieldOption?.field && "options" in fieldOption.field) {
156
- valueOptions = fieldOption.field.options;
157
- }
158
- }
159
- const disabled = !fieldOption?.value && typeof fieldOption?.value !== "number" || fieldOption?.field?.admin?.disableListFilter;
160
- let t5;
161
- if ($[34] !== options) {
162
- t5 = field_0 => {
163
- setFieldOption(options.find(f => f.value === field_0.value));
164
- setInternalOperatorOption(undefined);
165
- setInternalQueryValue(undefined);
166
- };
167
- $[34] = options;
168
- $[35] = t5;
169
- } else {
170
- t5 = $[35];
35
+ valueOptions = [{
36
+ label: t('general:true'),
37
+ value: 'true'
38
+ }, {
39
+ label: t('general:false'),
40
+ value: 'false'
41
+ }];
42
+ } else if (reducedField?.field && 'options' in reducedField.field) {
43
+ valueOptions = reducedField.field.options;
171
44
  }
172
- let t6;
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) {
174
- let t7;
175
- if ($[50] === Symbol.for("react.memo_cache_sentinel")) {
176
- t7 = operator_0 => {
177
- setInternalOperatorOption(operator_0.value);
178
- };
179
- $[50] = t7;
180
- } else {
181
- t7 = $[50];
182
- }
183
- let t8;
184
- if ($[51] !== RenderedFilter || $[52] !== booleanSelect || $[53] !== fieldOption || $[54] !== internalOperatorOption || $[55] !== internalQueryValue || $[56] !== valueOptions) {
185
- t8 = RenderedFilter || _jsx(DefaultFilter, {
186
- booleanSelect,
187
- disabled: !internalOperatorOption || !fieldOption || fieldOption?.field?.admin?.disableListFilter,
188
- internalField: fieldOption,
189
- onChange: setInternalQueryValue,
190
- operator: internalOperatorOption,
191
- options: valueOptions,
192
- value: internalQueryValue ?? ""
193
- });
194
- $[51] = RenderedFilter;
195
- $[52] = booleanSelect;
196
- $[53] = fieldOption;
197
- $[54] = internalOperatorOption;
198
- $[55] = internalQueryValue;
199
- $[56] = valueOptions;
200
- $[57] = t8;
201
- } else {
202
- t8 = $[57];
203
- }
204
- let t9;
205
- if ($[58] !== andIndex || $[59] !== orIndex || $[60] !== removeCondition) {
206
- t9 = () => removeCondition({
45
+ const updateValue = useEffectEvent(debouncedValue_0 => {
46
+ if (operator) {
47
+ updateCondition({
207
48
  andIndex,
208
- orIndex
209
- });
210
- $[58] = andIndex;
211
- $[59] = orIndex;
212
- $[60] = removeCondition;
213
- $[61] = t9;
214
- } else {
215
- t9 = $[61];
216
- }
217
- let t10;
218
- if ($[62] !== addCondition || $[63] !== andIndex || $[64] !== options || $[65] !== orIndex) {
219
- t10 = () => addCondition({
220
- andIndex: andIndex + 1,
221
- fieldName: options.find(_temp2).value,
49
+ field: reducedField,
50
+ operator,
222
51
  orIndex,
223
- relation: "and"
52
+ value: debouncedValue_0 === null ? '' : debouncedValue_0
224
53
  });
225
- $[62] = addCondition;
226
- $[63] = andIndex;
227
- $[64] = options;
228
- $[65] = orIndex;
229
- $[66] = t10;
230
- } else {
231
- t10 = $[66];
232
54
  }
233
- t6 = _jsx("div", {
234
- className: baseClass,
235
- children: _jsxs("div", {
236
- className: `${baseClass}__wrap`,
237
- children: [_jsxs("div", {
238
- className: `${baseClass}__inputs`,
239
- children: [_jsx("div", {
240
- className: `${baseClass}__field`,
241
- children: _jsx(ReactSelect, {
242
- disabled,
243
- isClearable: false,
244
- onChange: t5,
245
- options: options.filter(_temp),
246
- value: options.find(field_2 => fieldOption?.value === field_2.value) || {
247
- value: fieldOption?.value
248
- }
249
- })
250
- }), _jsx("div", {
251
- className: `${baseClass}__operator`,
252
- children: _jsx(ReactSelect, {
253
- disabled,
254
- isClearable: false,
255
- onChange: t7,
256
- options: fieldOption?.operators,
257
- value: fieldOption?.operators.find(operator_1 => internalOperatorOption === operator_1.value) || null
258
- })
259
- }), _jsx("div", {
260
- className: `${baseClass}__value`,
261
- children: t8
262
- })]
263
- }), _jsxs("div", {
264
- className: `${baseClass}__actions`,
265
- children: [_jsx(Button, {
266
- buttonStyle: "icon-label",
267
- className: `${baseClass}__actions-remove`,
268
- icon: "x",
269
- iconStyle: "with-border",
270
- onClick: t9,
271
- round: true
272
- }), _jsx(Button, {
273
- buttonStyle: "icon-label",
274
- className: `${baseClass}__actions-add`,
275
- icon: "plus",
276
- iconStyle: "with-border",
277
- onClick: t10,
278
- round: true
279
- })]
280
- })]
281
- })
55
+ });
56
+ useEffect(() => {
57
+ updateValue(debouncedValue);
58
+ }, [debouncedValue]);
59
+ const disabled = !reducedField?.value && typeof reducedField?.value !== 'number' || reducedField?.field?.admin?.disableListFilter;
60
+ const handleFieldChange = useCallback(field_0 => {
61
+ setInternalValue(undefined);
62
+ updateCondition({
63
+ andIndex,
64
+ field: reducedFields.find(option => option.value === field_0.value),
65
+ operator,
66
+ orIndex,
67
+ value: undefined
282
68
  });
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;
297
- } else {
298
- t6 = $[49];
299
- }
300
- return t6;
69
+ }, [andIndex, operator, orIndex, reducedFields, updateCondition]);
70
+ const handleOperatorChange = useCallback(operator_0 => {
71
+ updateCondition({
72
+ andIndex,
73
+ field: reducedField,
74
+ operator: operator_0.value,
75
+ orIndex,
76
+ value
77
+ });
78
+ }, [andIndex, reducedField, orIndex, updateCondition, value]);
79
+ return /*#__PURE__*/_jsx("div", {
80
+ className: baseClass,
81
+ children: /*#__PURE__*/_jsxs("div", {
82
+ className: `${baseClass}__wrap`,
83
+ children: [/*#__PURE__*/_jsxs("div", {
84
+ className: `${baseClass}__inputs`,
85
+ children: [/*#__PURE__*/_jsx("div", {
86
+ className: `${baseClass}__field`,
87
+ children: /*#__PURE__*/_jsx(ReactSelect, {
88
+ disabled: disabled,
89
+ isClearable: false,
90
+ onChange: handleFieldChange,
91
+ options: reducedFields.filter(field_1 => !field_1.field.admin.disableListFilter),
92
+ value: reducedField || {
93
+ value: reducedField?.value
94
+ }
95
+ })
96
+ }), /*#__PURE__*/_jsx("div", {
97
+ className: `${baseClass}__operator`,
98
+ children: /*#__PURE__*/_jsx(ReactSelect, {
99
+ disabled: disabled,
100
+ isClearable: false,
101
+ onChange: handleOperatorChange,
102
+ options: reducedField?.operators,
103
+ value: reducedField?.operators.find(o => operator === o.value) || null
104
+ })
105
+ }), /*#__PURE__*/_jsx("div", {
106
+ className: `${baseClass}__value`,
107
+ children: RenderedFilter || /*#__PURE__*/_jsx(DefaultFilter, {
108
+ booleanSelect: booleanSelect,
109
+ disabled: !operator || !reducedField || reducedField?.field?.admin?.disableListFilter,
110
+ internalField: reducedField,
111
+ onChange: setInternalValue,
112
+ operator: operator,
113
+ options: valueOptions,
114
+ value: internalValue ?? ''
115
+ })
116
+ })]
117
+ }), /*#__PURE__*/_jsxs("div", {
118
+ className: `${baseClass}__actions`,
119
+ children: [/*#__PURE__*/_jsx(Button, {
120
+ buttonStyle: "icon-label",
121
+ className: `${baseClass}__actions-remove`,
122
+ icon: "x",
123
+ iconStyle: "with-border",
124
+ onClick: () => removeCondition({
125
+ andIndex,
126
+ orIndex
127
+ }),
128
+ round: true
129
+ }), /*#__PURE__*/_jsx(Button, {
130
+ buttonStyle: "icon-label",
131
+ className: `${baseClass}__actions-add`,
132
+ icon: "plus",
133
+ iconStyle: "with-border",
134
+ onClick: () => addCondition({
135
+ andIndex: andIndex + 1,
136
+ field: reducedFields.find(field_2 => !field_2.field.admin?.disableListFilter),
137
+ orIndex,
138
+ relation: 'and'
139
+ }),
140
+ round: true
141
+ })]
142
+ })]
143
+ })
144
+ });
301
145
  };
302
- function _temp(field_1) {
303
- return !field_1.field.admin.disableListFilter;
304
- }
305
- function _temp2(field_3) {
306
- return !field_3.field.admin?.disableListFilter;
307
- }
308
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useState","useDebounce","useTranslation","Button","ReactSelect","DefaultFilter","baseClass","Condition","props","$","addCondition","andIndex","fieldName","initialValue","operator","options","orIndex","removeCondition","RenderedFilter","updateCondition","t0","find","field","value","fieldOption","setFieldOption","t","internalOperatorOption","setInternalOperatorOption","internalQueryValue","setInternalQueryValue","debouncedValue","t1","undefined","t2","t3","t4","type","includes","booleanSelect","valueOptions","t5","t6","label","t7","t8","t9","disabled","admin","disableListFilter","field_0","f","Symbol","for","operator_0","_jsx","internalField","onChange","t10","_temp2","relation","className","children","_jsxs","isClearable","filter","_temp","field_2","operators","operator_1","buttonStyle","icon","iconStyle","onClick","round","field_1","field_3"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useState } from 'react'\n\nimport type { FieldCondition } from '../types.js'\n\nexport type Props = {\n readonly addCondition: ({\n andIndex,\n fieldName,\n orIndex,\n relation,\n }: {\n andIndex: number\n fieldName: string\n orIndex: number\n relation: 'and' | 'or'\n }) => void\n readonly andIndex: number\n readonly fieldName: string\n readonly initialValue: string\n readonly operator: Operator\n readonly options: FieldCondition[]\n readonly orIndex: number\n readonly removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n readonly RenderedFilter: React.ReactNode\n readonly updateCondition: ({\n andIndex,\n fieldName,\n operator,\n orIndex,\n value,\n }: {\n andIndex: number\n fieldName: string\n operator: string\n orIndex: number\n value: string\n }) => void\n}\n\nimport type { Operator } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DefaultFilter } from './DefaultFilter/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n initialValue,\n operator,\n options,\n orIndex,\n removeCondition,\n RenderedFilter,\n updateCondition,\n } = props\n\n const [fieldOption, setFieldOption] = useState<FieldCondition>(() =>\n options.find((field) => fieldName === field.value),\n )\n\n const { t } = useTranslation()\n const [internalOperatorOption, setInternalOperatorOption] = useState<Operator>(operator)\n const [internalQueryValue, setInternalQueryValue] = useState<string>(initialValue)\n\n const debouncedValue = useDebounce(internalQueryValue, 300)\n\n useEffect(() => {\n if (debouncedValue === undefined) {\n return\n }\n\n if (debouncedValue === null) {\n removeCondition({\n andIndex,\n orIndex,\n })\n\n return\n }\n\n if ((fieldOption?.value || typeof fieldOption?.value === 'number') && internalOperatorOption) {\n updateCondition({\n andIndex,\n fieldName: fieldOption.value,\n operator: internalOperatorOption,\n orIndex,\n value: debouncedValue,\n })\n }\n }, [\n debouncedValue,\n andIndex,\n fieldOption?.value,\n internalOperatorOption,\n orIndex,\n updateCondition,\n operator,\n removeCondition,\n ])\n\n const booleanSelect =\n ['exists'].includes(internalOperatorOption) || fieldOption?.field?.type === 'checkbox'\n\n let valueOptions\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (fieldOption?.field && 'options' in fieldOption.field) {\n valueOptions = fieldOption.field.options\n }\n\n const disabled =\n (!fieldOption?.value && typeof fieldOption?.value !== 'number') ||\n fieldOption?.field?.admin?.disableListFilter\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={(field: Option) => {\n setFieldOption(options.find((f) => f.value === field.value))\n setInternalOperatorOption(undefined)\n setInternalQueryValue(undefined)\n }}\n options={options.filter((field) => !field.field.admin.disableListFilter)}\n value={\n options.find((field) => fieldOption?.value === field.value) || {\n value: fieldOption?.value,\n }\n }\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={(operator: Option<Operator>) => {\n setInternalOperatorOption(operator.value)\n }}\n options={fieldOption?.operators}\n value={\n fieldOption?.operators.find(\n (operator) => internalOperatorOption === operator.value,\n ) || null\n }\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !internalOperatorOption ||\n !fieldOption ||\n fieldOption?.field?.admin?.disableListFilter\n }\n internalField={fieldOption}\n onChange={setInternalQueryValue}\n operator={internalOperatorOption}\n options={valueOptions}\n value={internalQueryValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n fieldName: options.find((field) => !field.field.admin?.disableListFilter).value,\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useState","useDebounce","useEffectEvent","useTranslation","Button","ReactSelect","DefaultFilter","baseClass","Condition","props","addCondition","andIndex","fieldName","operator","orIndex","reducedFields","removeCondition","RenderedFilter","updateCondition","value","t","reducedField","find","field","internalValue","setInternalValue","debouncedValue","booleanSelect","includes","type","valueOptions","label","options","updateValue","disabled","admin","disableListFilter","handleFieldChange","undefined","option","handleOperatorChange","_jsx","className","_jsxs","isClearable","onChange","filter","operators","o","internalField","buttonStyle","icon","iconStyle","onClick","round","relation"],"sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { AddCondition, ReducedField, UpdateCondition } from '../types.js'\n\nexport type Props = {\n readonly addCondition: AddCondition\n readonly andIndex: number\n readonly fieldName: string\n readonly operator: Operator\n readonly orIndex: number\n readonly reducedFields: ReducedField[]\n readonly removeCondition: ({ andIndex, orIndex }: { andIndex: number; orIndex: number }) => void\n readonly RenderedFilter: React.ReactNode\n readonly updateCondition: UpdateCondition\n readonly value: string\n}\n\nimport type { Operator, Option as PayloadOption } from 'payload'\n\nimport type { Option } from '../../ReactSelect/index.js'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { DefaultFilter } from './DefaultFilter/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition'\n\nexport const Condition: React.FC<Props> = (props) => {\n const {\n addCondition,\n andIndex,\n fieldName,\n operator,\n orIndex,\n reducedFields,\n removeCondition,\n RenderedFilter,\n updateCondition,\n value,\n } = props\n\n const { t } = useTranslation()\n\n const reducedField = reducedFields.find((field) => field.value === fieldName)\n\n const [internalValue, setInternalValue] = useState<string>(value)\n\n const debouncedValue = useDebounce(internalValue, 300)\n\n const booleanSelect = ['exists'].includes(operator) || reducedField?.field?.type === 'checkbox'\n\n let valueOptions: PayloadOption[] = []\n\n if (booleanSelect) {\n valueOptions = [\n { label: t('general:true'), value: 'true' },\n { label: t('general:false'), value: 'false' },\n ]\n } else if (reducedField?.field && 'options' in reducedField.field) {\n valueOptions = reducedField.field.options\n }\n\n const updateValue = useEffectEvent((debouncedValue) => {\n if (operator) {\n updateCondition({\n andIndex,\n field: reducedField,\n operator,\n orIndex,\n value: debouncedValue === null ? '' : debouncedValue,\n })\n }\n })\n\n useEffect(() => {\n updateValue(debouncedValue)\n }, [debouncedValue])\n\n const disabled =\n (!reducedField?.value && typeof reducedField?.value !== 'number') ||\n reducedField?.field?.admin?.disableListFilter\n\n const handleFieldChange = useCallback(\n (field: Option<string>) => {\n setInternalValue(undefined)\n updateCondition({\n andIndex,\n field: reducedFields.find((option) => option.value === field.value),\n operator,\n orIndex,\n value: undefined,\n })\n },\n [andIndex, operator, orIndex, reducedFields, updateCondition],\n )\n\n const handleOperatorChange = useCallback(\n (operator: Option<Operator>) => {\n updateCondition({\n andIndex,\n field: reducedField,\n operator: operator.value,\n orIndex,\n value,\n })\n },\n [andIndex, reducedField, orIndex, updateCondition, value],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__inputs`}>\n <div className={`${baseClass}__field`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleFieldChange}\n options={reducedFields.filter((field) => !field.field.admin.disableListFilter)}\n value={\n reducedField || {\n value: reducedField?.value,\n }\n }\n />\n </div>\n <div className={`${baseClass}__operator`}>\n <ReactSelect\n disabled={disabled}\n isClearable={false}\n onChange={handleOperatorChange}\n options={reducedField?.operators}\n value={reducedField?.operators.find((o) => operator === o.value) || null}\n />\n </div>\n <div className={`${baseClass}__value`}>\n {RenderedFilter || (\n <DefaultFilter\n booleanSelect={booleanSelect}\n disabled={\n !operator || !reducedField || reducedField?.field?.admin?.disableListFilter\n }\n internalField={reducedField}\n onChange={setInternalValue}\n operator={operator}\n options={valueOptions}\n value={internalValue ?? ''}\n />\n )}\n </div>\n </div>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() =>\n removeCondition({\n andIndex,\n orIndex,\n })\n }\n round\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__actions-add`}\n icon=\"plus\"\n iconStyle=\"with-border\"\n onClick={() =>\n addCondition({\n andIndex: andIndex + 1,\n field: reducedFields.find((field) => !field.field.admin?.disableListFilter),\n orIndex,\n relation: 'and',\n })\n }\n round\n />\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import type { Operator, Where } from 'payload';
2
- import type { Action, FieldCondition } from '../types.js';
2
+ import type { Action, ReducedField } from '../types.js';
3
3
  export type Props = {
4
4
  andIndex: number;
5
5
  dispatch: (action: Action) => void;
6
- fields: FieldCondition[];
6
+ fields: ReducedField[];
7
7
  orIndex: number;
8
8
  value: Where;
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Operator, Where } from 'payload'\n\nimport type { Action, FieldCondition } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: FieldCondition[]\n orIndex: number\n value: Where\n}\n\nexport type DefaultFilterProps = {\n readonly disabled: boolean\n readonly onChange: (val: any) => void\n readonly operator: Operator\n readonly value: unknown\n}\n"],"mappings":"AAYA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/WhereBuilder/Condition/types.ts"],"sourcesContent":["import type { Operator, Where } from 'payload'\n\nimport type { Action, ReducedField } from '../types.js'\n\nexport type Props = {\n andIndex: number\n dispatch: (action: Action) => void\n fields: ReducedField[]\n orIndex: number\n value: Where\n}\n\nexport type DefaultFilterProps = {\n readonly disabled: boolean\n readonly onChange: (val: any) => void\n readonly operator: Operator\n readonly value: unknown\n}\n"],"mappings":"AAYA","ignoreList":[]}
@@ -1,96 +1,5 @@
1
1
  declare const fieldTypeConditions: {
2
- checkbox: {
3
- component: string;
4
- operators: {
5
- label: string;
6
- value: string;
7
- }[];
8
- };
9
- code: {
10
- component: string;
11
- operators: {
12
- label: string;
13
- value: string;
14
- }[];
15
- };
16
- date: {
17
- component: string;
18
- operators: {
19
- label: string;
20
- value: string;
21
- }[];
22
- };
23
- email: {
24
- component: string;
25
- operators: {
26
- label: string;
27
- value: string;
28
- }[];
29
- };
30
- json: {
31
- component: string;
32
- operators: {
33
- label: string;
34
- value: string;
35
- }[];
36
- };
37
- number: {
38
- component: string;
39
- operators: {
40
- label: string;
41
- value: string;
42
- }[];
43
- };
44
- point: {
45
- component: string;
46
- operators: {
47
- label: string;
48
- value: string;
49
- }[];
50
- };
51
- radio: {
52
- component: string;
53
- operators: {
54
- label: string;
55
- value: string;
56
- }[];
57
- };
58
- relationship: {
59
- component: string;
60
- operators: {
61
- label: string;
62
- value: string;
63
- }[];
64
- };
65
- richText: {
66
- component: string;
67
- operators: {
68
- label: string;
69
- value: string;
70
- }[];
71
- };
72
- select: {
73
- component: string;
74
- operators: {
75
- label: string;
76
- value: string;
77
- }[];
78
- };
79
- text: {
80
- component: string;
81
- operators: {
82
- label: string;
83
- value: string;
84
- }[];
85
- };
86
- textarea: {
87
- component: string;
88
- operators: {
89
- label: string;
90
- value: string;
91
- }[];
92
- };
93
- upload: {
2
+ [key: string]: {
94
3
  component: string;
95
4
  operators: {
96
5
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"AAgFA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDxB,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"field-types.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/field-types.tsx"],"names":[],"mappings":"AAgFA,QAAA,MAAM,mBAAmB,EAAE;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC9C,CAAA;CA0DF,CAAA;AAED,eAAe,mBAAmB,CAAA"}