@strapi/content-type-builder 5.16.1 → 5.17.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 (57) hide show
  1. package/dist/admin/components/ApplyConditionButton.js +34 -0
  2. package/dist/admin/components/ApplyConditionButton.js.map +1 -0
  3. package/dist/admin/components/ApplyConditionButton.mjs +32 -0
  4. package/dist/admin/components/ApplyConditionButton.mjs.map +1 -0
  5. package/dist/admin/components/AttributeRow.js +58 -8
  6. package/dist/admin/components/AttributeRow.js.map +1 -1
  7. package/dist/admin/components/AttributeRow.mjs +59 -9
  8. package/dist/admin/components/AttributeRow.mjs.map +1 -1
  9. package/dist/admin/components/FormModal/FormModal.js +134 -3
  10. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  11. package/dist/admin/components/FormModal/FormModal.mjs +137 -5
  12. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  13. package/dist/admin/components/FormModal/attributes/ConditionForm.js +448 -0
  14. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -0
  15. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +428 -0
  16. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -0
  17. package/dist/admin/components/FormModal/attributes/advancedForm.js +55 -16
  18. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
  19. package/dist/admin/components/FormModal/attributes/advancedForm.mjs +55 -16
  20. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
  21. package/dist/admin/components/FormModal/forms/forms.js +3 -1
  22. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  23. package/dist/admin/components/FormModal/forms/forms.mjs +3 -1
  24. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  25. package/dist/admin/components/GenericInputs.js +5 -2
  26. package/dist/admin/components/GenericInputs.js.map +1 -1
  27. package/dist/admin/components/GenericInputs.mjs +5 -2
  28. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  29. package/dist/admin/components/TabForm.js +88 -0
  30. package/dist/admin/components/TabForm.js.map +1 -1
  31. package/dist/admin/components/TabForm.mjs +89 -1
  32. package/dist/admin/components/TabForm.mjs.map +1 -1
  33. package/dist/admin/src/components/ApplyConditionButton.d.ts +8 -0
  34. package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +23 -0
  35. package/dist/admin/src/components/FormModal/attributes/advancedForm.d.ts +288 -8
  36. package/dist/admin/src/components/FormModal/attributes/form.d.ts +288 -8
  37. package/dist/admin/src/components/GenericInputs.d.ts +30 -3
  38. package/dist/admin/src/utils/conditions.d.ts +17 -0
  39. package/dist/admin/translations/en.json.js +24 -0
  40. package/dist/admin/translations/en.json.js.map +1 -1
  41. package/dist/admin/translations/en.json.mjs +24 -0
  42. package/dist/admin/translations/en.json.mjs.map +1 -1
  43. package/dist/admin/utils/conditions.js +61 -0
  44. package/dist/admin/utils/conditions.js.map +1 -0
  45. package/dist/admin/utils/conditions.mjs +57 -0
  46. package/dist/admin/utils/conditions.mjs.map +1 -0
  47. package/dist/server/controllers/validation/schema.js +11 -2
  48. package/dist/server/controllers/validation/schema.js.map +1 -1
  49. package/dist/server/controllers/validation/schema.mjs +11 -2
  50. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  51. package/dist/server/src/controllers/validation/schema.d.ts +25728 -0
  52. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  53. package/dist/server/src/services/schema.d.ts +1302 -0
  54. package/dist/server/src/services/schema.d.ts.map +1 -1
  55. package/dist/server/src/utils/attributes.d.ts +210 -0
  56. package/dist/server/src/utils/attributes.d.ts.map +1 -1
  57. package/package.json +5 -5
@@ -0,0 +1,428 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useState } from 'react';
4
+ import { ConfirmDialog, createRulesEngine } from '@strapi/admin/strapi-admin';
5
+ import { Box, Flex, Typography, Dialog, IconButton, Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';
6
+ import { Trash } from '@strapi/icons';
7
+ import { useIntl } from 'react-intl';
8
+ import { styled } from 'styled-components';
9
+ import { AttributeIcon } from '../../AttributeIcon.mjs';
10
+ import { getTrad } from '../../../utils/getTrad.mjs';
11
+ import { ApplyConditionButton } from '../../ApplyConditionButton.mjs';
12
+
13
+ const SmallAttributeIcon = styled(AttributeIcon)`
14
+ width: 16px !important;
15
+ height: 16px !important;
16
+ svg {
17
+ width: 16px !important;
18
+ height: 16px !important;
19
+ }
20
+ `;
21
+ const convertFromJsonLogic = (jsonLogic)=>{
22
+ if (!jsonLogic?.visible) {
23
+ return {
24
+ dependsOn: '',
25
+ operator: 'is',
26
+ value: '',
27
+ action: 'show'
28
+ };
29
+ }
30
+ const [[operator, conditions]] = Object.entries(jsonLogic.visible);
31
+ const [fieldVar, value] = conditions;
32
+ return {
33
+ dependsOn: fieldVar.var,
34
+ operator: operator === '==' ? 'is' : 'isNot',
35
+ value: value,
36
+ action: operator === '==' ? 'show' : 'hide'
37
+ };
38
+ };
39
+ const convertToJsonLogic = (value)=>{
40
+ if (!value.dependsOn) {
41
+ return null;
42
+ }
43
+ const rulesEngine = createRulesEngine();
44
+ const condition = {
45
+ dependsOn: value.dependsOn,
46
+ operator: value.operator,
47
+ value: value.value
48
+ };
49
+ try {
50
+ rulesEngine.validate(condition);
51
+ const action = value.action === 'show' ? '==' : '!=';
52
+ return {
53
+ visible: {
54
+ [action]: [
55
+ {
56
+ var: value.dependsOn
57
+ },
58
+ value.value
59
+ ]
60
+ }
61
+ };
62
+ } catch (error) {
63
+ return null;
64
+ }
65
+ };
66
+ const ConditionForm = ({ name, value, onChange, onDelete, attributeName, conditionFields = [] })=>{
67
+ const { formatMessage } = useIntl();
68
+ const [localValue, setLocalValue] = React.useState(convertFromJsonLogic(value));
69
+ const [showConfirmDialog, setShowConfirmDialog] = useState(false);
70
+ const hasCondition = Boolean(value?.visible);
71
+ // Add safety check for conditionFields
72
+ if (!Array.isArray(conditionFields)) {
73
+ conditionFields = [];
74
+ }
75
+ const selectedField = conditionFields.find((field)=>field.name === localValue.dependsOn);
76
+ const isEnumField = selectedField?.type === 'enumeration';
77
+ // Helper to update localValue and propagate JSON Logic
78
+ const updateCondition = (updatedValue)=>{
79
+ setLocalValue(updatedValue);
80
+ const rulesEngine = createRulesEngine();
81
+ const condition = {
82
+ dependsOn: updatedValue.dependsOn,
83
+ operator: updatedValue.operator,
84
+ value: updatedValue.value
85
+ };
86
+ try {
87
+ rulesEngine.validate(condition);
88
+ const action = updatedValue.action === 'show' ? '==' : '!=';
89
+ const jsonLogic = updatedValue.dependsOn ? {
90
+ visible: {
91
+ [action]: [
92
+ {
93
+ var: updatedValue.dependsOn
94
+ },
95
+ updatedValue.value
96
+ ]
97
+ }
98
+ } : null;
99
+ if (jsonLogic) {
100
+ onChange({
101
+ target: {
102
+ name,
103
+ value: jsonLogic
104
+ }
105
+ });
106
+ }
107
+ } catch {
108
+ // Do nothing if invalid
109
+ }
110
+ };
111
+ const handleApplyCondition = ()=>{
112
+ const initialValue = {
113
+ dependsOn: '',
114
+ operator: 'is',
115
+ value: '',
116
+ action: 'show'
117
+ };
118
+ setLocalValue(initialValue);
119
+ onChange({
120
+ target: {
121
+ name,
122
+ value: convertToJsonLogic(initialValue)
123
+ }
124
+ });
125
+ };
126
+ const handleDelete = ()=>{
127
+ setLocalValue({
128
+ dependsOn: '',
129
+ operator: 'is',
130
+ value: '',
131
+ action: 'show'
132
+ });
133
+ onChange({
134
+ target: {
135
+ name,
136
+ value: null
137
+ }
138
+ });
139
+ onDelete();
140
+ setShowConfirmDialog(false);
141
+ };
142
+ const handleFieldChange = (fieldName)=>{
143
+ const newValue = fieldName?.toString() || '';
144
+ const field = conditionFields.find((f)=>f.name === newValue);
145
+ const isNewFieldEnum = field?.type === 'enumeration';
146
+ const updatedValue = {
147
+ ...localValue,
148
+ dependsOn: newValue,
149
+ value: newValue ? isNewFieldEnum ? '' : false : localValue.value
150
+ };
151
+ updateCondition(updatedValue);
152
+ };
153
+ const handleOperatorChange = (operator)=>{
154
+ const newValue = operator?.toString() || 'is';
155
+ const updatedValue = {
156
+ ...localValue,
157
+ operator: newValue
158
+ };
159
+ updateCondition(updatedValue);
160
+ };
161
+ const handleValueChange = (newValue)=>{
162
+ const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';
163
+ const updatedValue = {
164
+ ...localValue,
165
+ value
166
+ };
167
+ updateCondition(updatedValue);
168
+ };
169
+ const handleActionChange = (action)=>{
170
+ const newValue = action?.toString() || 'show';
171
+ const updatedValue = {
172
+ ...localValue,
173
+ action: newValue
174
+ };
175
+ updateCondition(updatedValue);
176
+ };
177
+ if (!hasCondition) {
178
+ return /*#__PURE__*/ jsx(Box, {
179
+ padding: 4,
180
+ margin: 4,
181
+ hasRadius: true,
182
+ background: "neutral0",
183
+ borderColor: "neutral200",
184
+ children: /*#__PURE__*/ jsx(ApplyConditionButton, {
185
+ onClick: handleApplyCondition
186
+ })
187
+ });
188
+ }
189
+ return /*#__PURE__*/ jsx(Box, {
190
+ marginTop: 2,
191
+ children: /*#__PURE__*/ jsxs(Box, {
192
+ background: "neutral0",
193
+ hasRadius: true,
194
+ borderColor: "neutral200",
195
+ borderWidth: 0.5,
196
+ borderStyle: "solid",
197
+ children: [
198
+ /*#__PURE__*/ jsxs(Flex, {
199
+ justifyContent: "space-between",
200
+ alignItems: "center",
201
+ padding: 4,
202
+ children: [
203
+ /*#__PURE__*/ jsx(Typography, {
204
+ variant: "sigma",
205
+ textColor: "neutral800",
206
+ children: formatMessage({
207
+ id: getTrad('form.attribute.condition.title'),
208
+ defaultMessage: 'Condition for {name}'
209
+ }, {
210
+ name: /*#__PURE__*/ jsx("strong", {
211
+ children: attributeName
212
+ })
213
+ })
214
+ }),
215
+ /*#__PURE__*/ jsxs(Dialog.Root, {
216
+ open: showConfirmDialog,
217
+ onOpenChange: setShowConfirmDialog,
218
+ children: [
219
+ /*#__PURE__*/ jsx(Dialog.Trigger, {
220
+ children: /*#__PURE__*/ jsx(IconButton, {
221
+ label: "Delete",
222
+ children: /*#__PURE__*/ jsx(Trash, {})
223
+ })
224
+ }),
225
+ /*#__PURE__*/ jsx(ConfirmDialog, {
226
+ onConfirm: handleDelete,
227
+ children: formatMessage({
228
+ id: getTrad('popUpWarning.bodyMessage.delete-condition'),
229
+ defaultMessage: 'Are you sure you want to delete this condition?'
230
+ })
231
+ })
232
+ ]
233
+ })
234
+ ]
235
+ }),
236
+ /*#__PURE__*/ jsxs(Box, {
237
+ background: "neutral100",
238
+ padding: 4,
239
+ children: [
240
+ /*#__PURE__*/ jsx(Box, {
241
+ paddingBottom: 2,
242
+ children: /*#__PURE__*/ jsx(Typography, {
243
+ variant: "sigma",
244
+ textColor: "neutral600",
245
+ style: {
246
+ textTransform: 'uppercase',
247
+ letterSpacing: 1
248
+ },
249
+ children: formatMessage({
250
+ id: getTrad('form.attribute.condition.if'),
251
+ defaultMessage: 'IF'
252
+ })
253
+ })
254
+ }),
255
+ /*#__PURE__*/ jsxs(Flex, {
256
+ gap: 4,
257
+ children: [
258
+ /*#__PURE__*/ jsx(Box, {
259
+ minWidth: 0,
260
+ flex: 1,
261
+ children: /*#__PURE__*/ jsx(Field.Root, {
262
+ name: `${name}.field`,
263
+ children: /*#__PURE__*/ jsx(SingleSelect, {
264
+ value: localValue.dependsOn,
265
+ onChange: handleFieldChange,
266
+ placeholder: formatMessage({
267
+ id: getTrad('form.attribute.condition.field'),
268
+ defaultMessage: 'field'
269
+ }),
270
+ children: conditionFields.map((field)=>/*#__PURE__*/ jsx(SingleSelectOption, {
271
+ value: field.name,
272
+ children: /*#__PURE__*/ jsxs(Flex, {
273
+ gap: 2,
274
+ alignItems: "center",
275
+ children: [
276
+ /*#__PURE__*/ jsx(SmallAttributeIcon, {
277
+ type: field.type
278
+ }),
279
+ /*#__PURE__*/ jsx("span", {
280
+ children: field.name
281
+ })
282
+ ]
283
+ })
284
+ }, field.name))
285
+ })
286
+ })
287
+ }),
288
+ /*#__PURE__*/ jsx(Box, {
289
+ minWidth: 0,
290
+ flex: 1,
291
+ children: /*#__PURE__*/ jsx(Field.Root, {
292
+ name: `${name}.operator`,
293
+ children: /*#__PURE__*/ jsxs(SingleSelect, {
294
+ value: localValue.operator,
295
+ onChange: handleOperatorChange,
296
+ disabled: !localValue.dependsOn,
297
+ placeholder: formatMessage({
298
+ id: getTrad('form.attribute.condition.operator'),
299
+ defaultMessage: 'condition'
300
+ }),
301
+ children: [
302
+ /*#__PURE__*/ jsx(SingleSelectOption, {
303
+ value: "is",
304
+ children: formatMessage({
305
+ id: getTrad('form.attribute.condition.operator.is'),
306
+ defaultMessage: 'is'
307
+ })
308
+ }),
309
+ /*#__PURE__*/ jsx(SingleSelectOption, {
310
+ value: "isNot",
311
+ children: formatMessage({
312
+ id: getTrad('form.attribute.condition.operator.isNot'),
313
+ defaultMessage: 'is not'
314
+ })
315
+ })
316
+ ]
317
+ })
318
+ })
319
+ }),
320
+ /*#__PURE__*/ jsx(Box, {
321
+ minWidth: 0,
322
+ flex: 1,
323
+ children: /*#__PURE__*/ jsx(Field.Root, {
324
+ name: `${name}.value`,
325
+ children: /*#__PURE__*/ jsx(SingleSelect, {
326
+ value: localValue.value?.toString() || '',
327
+ onChange: handleValueChange,
328
+ disabled: !localValue.dependsOn,
329
+ placeholder: formatMessage({
330
+ id: getTrad('form.attribute.condition.value'),
331
+ defaultMessage: 'value'
332
+ }),
333
+ children: isEnumField && selectedField?.enum ? selectedField.enum.map((enumValue)=>/*#__PURE__*/ jsx(SingleSelectOption, {
334
+ value: enumValue,
335
+ children: enumValue
336
+ }, enumValue)) : /*#__PURE__*/ jsxs(Fragment, {
337
+ children: [
338
+ /*#__PURE__*/ jsx(SingleSelectOption, {
339
+ value: "true",
340
+ children: formatMessage({
341
+ id: getTrad('form.attribute.condition.value.true'),
342
+ defaultMessage: 'true'
343
+ })
344
+ }),
345
+ /*#__PURE__*/ jsx(SingleSelectOption, {
346
+ value: "false",
347
+ children: formatMessage({
348
+ id: getTrad('form.attribute.condition.value.false'),
349
+ defaultMessage: 'false'
350
+ })
351
+ })
352
+ ]
353
+ })
354
+ })
355
+ })
356
+ })
357
+ ]
358
+ })
359
+ ]
360
+ }),
361
+ /*#__PURE__*/ jsxs(Box, {
362
+ background: "neutral100",
363
+ padding: 4,
364
+ children: [
365
+ /*#__PURE__*/ jsx(Box, {
366
+ paddingBottom: 4,
367
+ children: /*#__PURE__*/ jsx(Typography, {
368
+ variant: "sigma",
369
+ textColor: "neutral600",
370
+ style: {
371
+ textTransform: 'uppercase',
372
+ letterSpacing: 1
373
+ },
374
+ children: formatMessage({
375
+ id: getTrad('form.attribute.condition.then'),
376
+ defaultMessage: 'THEN'
377
+ })
378
+ })
379
+ }),
380
+ /*#__PURE__*/ jsx(Box, {
381
+ paddingBottom: 4,
382
+ children: /*#__PURE__*/ jsx(Field.Root, {
383
+ name: `${name}.action`,
384
+ children: /*#__PURE__*/ jsxs(SingleSelect, {
385
+ value: localValue.action,
386
+ onChange: handleActionChange,
387
+ placeholder: formatMessage({
388
+ id: getTrad('form.attribute.condition.action'),
389
+ defaultMessage: 'action'
390
+ }),
391
+ children: [
392
+ /*#__PURE__*/ jsxs(SingleSelectOption, {
393
+ value: "show",
394
+ children: [
395
+ "Show ",
396
+ /*#__PURE__*/ jsx("span", {
397
+ style: {
398
+ fontWeight: 'bold'
399
+ },
400
+ children: attributeName || name
401
+ })
402
+ ]
403
+ }),
404
+ /*#__PURE__*/ jsxs(SingleSelectOption, {
405
+ value: "hide",
406
+ children: [
407
+ "Hide ",
408
+ /*#__PURE__*/ jsx("span", {
409
+ style: {
410
+ fontWeight: 'bold'
411
+ },
412
+ children: attributeName || name
413
+ })
414
+ ]
415
+ })
416
+ ]
417
+ })
418
+ })
419
+ })
420
+ ]
421
+ })
422
+ ]
423
+ })
424
+ });
425
+ };
426
+
427
+ export { ConditionForm };
428
+ //# sourceMappingURL=ConditionForm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionForm.mjs","sources":["../../../../../admin/src/components/FormModal/attributes/ConditionForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\nimport { createRulesEngine, ConfirmDialog, type Condition } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n Field,\n SingleSelect,\n SingleSelectOption,\n Dialog,\n} from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { AttributeIcon } from '../../../components/AttributeIcon';\nimport { getTrad } from '../../../utils/getTrad';\nimport { ApplyConditionButton } from '../../ApplyConditionButton';\n\nconst SmallAttributeIcon = styled(AttributeIcon)`\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n`;\n\ninterface ConditionFormProps {\n name: string;\n value: any;\n onChange: (e: { target: { name: string; value: any } }) => void;\n onDelete: () => void;\n attributeName?: string;\n conditionFields?: Array<{\n name: string;\n type: string;\n enum?: string[];\n }>;\n allAttributes?: Array<{\n name: string;\n type: string;\n }>;\n}\n\ninterface JsonLogicValue {\n visible?: {\n [key: string]: [{ var: string }, any];\n };\n}\n\ninterface LocalValue {\n dependsOn: string;\n operator: 'is' | 'isNot';\n value: string | boolean;\n action: 'show' | 'hide';\n}\n\nconst convertFromJsonLogic = (jsonLogic: JsonLogicValue): LocalValue => {\n if (!jsonLogic?.visible) {\n return {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n }\n\n const [[operator, conditions]] = Object.entries(jsonLogic.visible);\n const [fieldVar, value] = conditions as [{ var: string }, any];\n\n return {\n dependsOn: fieldVar.var,\n operator: operator === '==' ? 'is' : 'isNot',\n value: value,\n action: operator === '==' ? 'show' : 'hide',\n };\n};\n\nconst convertToJsonLogic = (value: LocalValue): JsonLogicValue | null => {\n if (!value.dependsOn) {\n return null;\n }\n\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: value.dependsOn,\n operator: value.operator,\n value: value.value,\n };\n\n try {\n rulesEngine.validate(condition);\n const action = value.action === 'show' ? '==' : '!=';\n return {\n visible: {\n [action]: [{ var: value.dependsOn }, value.value],\n },\n };\n } catch (error) {\n return null;\n }\n};\n\nexport const ConditionForm = ({\n name,\n value,\n onChange,\n onDelete,\n attributeName,\n conditionFields = [],\n}: ConditionFormProps) => {\n const { formatMessage } = useIntl();\n const [localValue, setLocalValue] = React.useState<LocalValue>(convertFromJsonLogic(value));\n const [showConfirmDialog, setShowConfirmDialog] = useState(false);\n const hasCondition = Boolean(value?.visible);\n\n // Add safety check for conditionFields\n if (!Array.isArray(conditionFields)) {\n conditionFields = [];\n }\n\n const selectedField = conditionFields.find((field) => field.name === localValue.dependsOn);\n const isEnumField = selectedField?.type === 'enumeration';\n\n // Helper to update localValue and propagate JSON Logic\n const updateCondition = (updatedValue: LocalValue) => {\n setLocalValue(updatedValue);\n const rulesEngine = createRulesEngine();\n const condition: Condition = {\n dependsOn: updatedValue.dependsOn,\n operator: updatedValue.operator,\n value: updatedValue.value,\n };\n try {\n rulesEngine.validate(condition);\n const action = updatedValue.action === 'show' ? '==' : '!=';\n const jsonLogic = updatedValue.dependsOn\n ? {\n visible: {\n [action]: [{ var: updatedValue.dependsOn }, updatedValue.value],\n },\n }\n : null;\n if (jsonLogic) {\n onChange({\n target: {\n name,\n value: jsonLogic,\n },\n });\n }\n } catch {\n // Do nothing if invalid\n }\n };\n\n const handleApplyCondition = () => {\n const initialValue: LocalValue = {\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n };\n setLocalValue(initialValue);\n onChange({\n target: {\n name,\n value: convertToJsonLogic(initialValue),\n },\n });\n };\n\n const handleDelete = () => {\n setLocalValue({\n dependsOn: '',\n operator: 'is',\n value: '',\n action: 'show',\n });\n onChange({\n target: {\n name,\n value: null,\n },\n });\n onDelete();\n setShowConfirmDialog(false);\n };\n\n const handleFieldChange = (fieldName: string | number) => {\n const newValue = fieldName?.toString() || '';\n const field = conditionFields.find((f) => f.name === newValue);\n const isNewFieldEnum = field?.type === 'enumeration';\n const updatedValue: LocalValue = {\n ...localValue,\n dependsOn: newValue,\n value: newValue ? (isNewFieldEnum ? '' : false) : localValue.value,\n };\n updateCondition(updatedValue);\n };\n\n const handleOperatorChange = (operator: string | number) => {\n const newValue = operator?.toString() || 'is';\n const updatedValue: LocalValue = {\n ...localValue,\n operator: newValue as 'is' | 'isNot',\n };\n updateCondition(updatedValue);\n };\n\n const handleValueChange = (newValue: string | number) => {\n const value = isEnumField ? newValue?.toString() : newValue?.toString() === 'true';\n const updatedValue: LocalValue = { ...localValue, value };\n updateCondition(updatedValue);\n };\n\n const handleActionChange = (action: string | number) => {\n const newValue = action?.toString() || 'show';\n const updatedValue: LocalValue = {\n ...localValue,\n action: newValue as 'show' | 'hide',\n };\n updateCondition(updatedValue);\n };\n\n if (!hasCondition) {\n return (\n <Box padding={4} margin={4} hasRadius background=\"neutral0\" borderColor=\"neutral200\">\n <ApplyConditionButton onClick={handleApplyCondition} />\n </Box>\n );\n }\n\n return (\n <Box marginTop={2}>\n <Box\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderWidth={0.5}\n borderStyle=\"solid\"\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" padding={4}>\n <Typography variant=\"sigma\" textColor=\"neutral800\">\n {formatMessage(\n {\n id: getTrad('form.attribute.condition.title'),\n defaultMessage: 'Condition for {name}',\n },\n {\n name: <strong>{attributeName}</strong>,\n }\n )}\n </Typography>\n <Dialog.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Dialog.Trigger>\n <IconButton label=\"Delete\">\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleDelete}>\n {formatMessage({\n id: getTrad('popUpWarning.bodyMessage.delete-condition'),\n defaultMessage: 'Are you sure you want to delete this condition?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </Flex>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={2}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({ id: getTrad('form.attribute.condition.if'), defaultMessage: 'IF' })}\n </Typography>\n </Box>\n <Flex gap={4}>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.field`}>\n <SingleSelect\n value={localValue.dependsOn}\n onChange={handleFieldChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.field'),\n defaultMessage: 'field',\n })}\n >\n {conditionFields.map((field) => (\n <SingleSelectOption key={field.name} value={field.name}>\n <Flex gap={2} alignItems=\"center\">\n <SmallAttributeIcon type={field.type} />\n <span>{field.name}</span>\n </Flex>\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.operator`}>\n <SingleSelect\n value={localValue.operator}\n onChange={handleOperatorChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.operator'),\n defaultMessage: 'condition',\n })}\n >\n <SingleSelectOption value=\"is\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.is'),\n defaultMessage: 'is',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"isNot\">\n {formatMessage({\n id: getTrad('form.attribute.condition.operator.isNot'),\n defaultMessage: 'is not',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n <Box minWidth={0} flex={1}>\n <Field.Root name={`${name}.value`}>\n <SingleSelect\n value={localValue.value?.toString() || ''}\n onChange={handleValueChange}\n disabled={!localValue.dependsOn}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.value'),\n defaultMessage: 'value',\n })}\n >\n {isEnumField && selectedField?.enum ? (\n selectedField.enum.map((enumValue) => (\n <SingleSelectOption key={enumValue} value={enumValue}>\n {enumValue}\n </SingleSelectOption>\n ))\n ) : (\n <>\n <SingleSelectOption value=\"true\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.true'),\n defaultMessage: 'true',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"false\">\n {formatMessage({\n id: getTrad('form.attribute.condition.value.false'),\n defaultMessage: 'false',\n })}\n </SingleSelectOption>\n </>\n )}\n </SingleSelect>\n </Field.Root>\n </Box>\n </Flex>\n </Box>\n\n <Box background=\"neutral100\" padding={4}>\n <Box paddingBottom={4}>\n <Typography\n variant=\"sigma\"\n textColor=\"neutral600\"\n style={{ textTransform: 'uppercase', letterSpacing: 1 }}\n >\n {formatMessage({\n id: getTrad('form.attribute.condition.then'),\n defaultMessage: 'THEN',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={4}>\n <Field.Root name={`${name}.action`}>\n <SingleSelect\n value={localValue.action}\n onChange={handleActionChange}\n placeholder={formatMessage({\n id: getTrad('form.attribute.condition.action'),\n defaultMessage: 'action',\n })}\n >\n <SingleSelectOption value=\"show\">\n Show <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n <SingleSelectOption value=\"hide\">\n Hide <span style={{ fontWeight: 'bold' }}>{attributeName || name}</span>\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Box>\n </Box>\n </Box>\n </Box>\n );\n};\n"],"names":["SmallAttributeIcon","styled","AttributeIcon","convertFromJsonLogic","jsonLogic","visible","dependsOn","operator","value","action","conditions","Object","entries","fieldVar","var","convertToJsonLogic","rulesEngine","createRulesEngine","condition","validate","error","ConditionForm","name","onChange","onDelete","attributeName","conditionFields","formatMessage","useIntl","localValue","setLocalValue","React","useState","showConfirmDialog","setShowConfirmDialog","hasCondition","Boolean","Array","isArray","selectedField","find","field","isEnumField","type","updateCondition","updatedValue","target","handleApplyCondition","initialValue","handleDelete","handleFieldChange","fieldName","newValue","toString","f","isNewFieldEnum","handleOperatorChange","handleValueChange","handleActionChange","_jsx","Box","padding","margin","hasRadius","background","borderColor","ApplyConditionButton","onClick","marginTop","_jsxs","borderWidth","borderStyle","Flex","justifyContent","alignItems","Typography","variant","textColor","id","getTrad","defaultMessage","strong","Dialog","Root","open","onOpenChange","Trigger","IconButton","label","Trash","ConfirmDialog","onConfirm","paddingBottom","style","textTransform","letterSpacing","gap","minWidth","flex","Field","SingleSelect","placeholder","map","SingleSelectOption","span","disabled","enum","enumValue","_Fragment","fontWeight"],"mappings":"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"}
@@ -4,6 +4,29 @@ var getTrad = require('../../../utils/getTrad.js');
4
4
  var componentForm = require('../component/componentForm.js');
5
5
  var attributeOptions = require('./attributeOptions.js');
6
6
 
7
+ const conditionSection = {
8
+ sectionTitle: {
9
+ id: getTrad.getTrad('form.attribute.condition.title'),
10
+ defaultMessage: 'Condition'
11
+ },
12
+ intlLabel: {
13
+ id: getTrad.getTrad('form.attribute.condition.description'),
14
+ defaultMessage: 'Toggle field settings depending on the value of another boolean or enumeration field.'
15
+ },
16
+ items: [
17
+ {
18
+ name: 'conditions',
19
+ type: 'condition-form',
20
+ intlLabel: {
21
+ id: getTrad.getTrad('form.attribute.condition.label'),
22
+ defaultMessage: 'Conditions'
23
+ },
24
+ validations: {
25
+ required: true
26
+ }
27
+ }
28
+ ]
29
+ };
7
30
  const advancedForm = {
8
31
  blocks () {
9
32
  return {
@@ -17,7 +40,8 @@ const advancedForm = {
17
40
  attributeOptions.attributeOptions.required,
18
41
  attributeOptions.attributeOptions.private
19
42
  ]
20
- }
43
+ },
44
+ conditionSection
21
45
  ]
22
46
  };
23
47
  },
@@ -79,7 +103,8 @@ const advancedForm = {
79
103
  attributeOptions.attributeOptions.required,
80
104
  attributeOptions.attributeOptions.private
81
105
  ]
82
- }
106
+ },
107
+ conditionSection
83
108
  ]
84
109
  };
85
110
  },
@@ -117,7 +142,8 @@ const advancedForm = {
117
142
  minComponentsAttribute,
118
143
  maxComponentsAttribute
119
144
  ]
120
- }
145
+ },
146
+ conditionSection
121
147
  ]
122
148
  };
123
149
  }
@@ -132,7 +158,8 @@ const advancedForm = {
132
158
  attributeOptions.attributeOptions.required,
133
159
  attributeOptions.attributeOptions.private
134
160
  ]
135
- }
161
+ },
162
+ conditionSection
136
163
  ]
137
164
  };
138
165
  },
@@ -162,7 +189,8 @@ const advancedForm = {
162
189
  attributeOptions.attributeOptions.unique,
163
190
  attributeOptions.attributeOptions.private
164
191
  ]
165
- }
192
+ },
193
+ conditionSection
166
194
  ]
167
195
  };
168
196
  },
@@ -179,7 +207,8 @@ const advancedForm = {
179
207
  attributeOptions.attributeOptions.max,
180
208
  attributeOptions.attributeOptions.min
181
209
  ]
182
- }
210
+ },
211
+ conditionSection
183
212
  ]
184
213
  };
185
214
  },
@@ -207,7 +236,8 @@ const advancedForm = {
207
236
  attributeOptions.attributeOptions.minLength,
208
237
  attributeOptions.attributeOptions.private
209
238
  ]
210
- }
239
+ },
240
+ conditionSection
211
241
  ]
212
242
  };
213
243
  },
@@ -274,7 +304,8 @@ const advancedForm = {
274
304
  attributeOptions.attributeOptions.required,
275
305
  attributeOptions.attributeOptions.private
276
306
  ]
277
- }
307
+ },
308
+ conditionSection
278
309
  ]
279
310
  };
280
311
  },
@@ -290,7 +321,8 @@ const advancedForm = {
290
321
  attributeOptions.attributeOptions.required,
291
322
  attributeOptions.attributeOptions.private
292
323
  ]
293
- }
324
+ },
325
+ conditionSection
294
326
  ]
295
327
  };
296
328
  },
@@ -322,7 +354,8 @@ const advancedForm = {
322
354
  attributeOptions.attributeOptions.required,
323
355
  attributeOptions.attributeOptions.private
324
356
  ]
325
- }
357
+ },
358
+ conditionSection
326
359
  ]
327
360
  };
328
361
  },
@@ -358,7 +391,8 @@ const advancedForm = {
358
391
  attributeOptions.attributeOptions.min,
359
392
  attributeOptions.attributeOptions.private
360
393
  ]
361
- }
394
+ },
395
+ conditionSection
362
396
  ]
363
397
  };
364
398
  },
@@ -382,7 +416,8 @@ const advancedForm = {
382
416
  attributeOptions.attributeOptions.minLength,
383
417
  attributeOptions.attributeOptions.private
384
418
  ]
385
- }
419
+ },
420
+ conditionSection
386
421
  ]
387
422
  };
388
423
  },
@@ -397,7 +432,8 @@ const advancedForm = {
397
432
  items: [
398
433
  attributeOptions.attributeOptions.private
399
434
  ]
400
- }
435
+ },
436
+ conditionSection
401
437
  ]
402
438
  };
403
439
  },
@@ -421,7 +457,8 @@ const advancedForm = {
421
457
  attributeOptions.attributeOptions.minLength,
422
458
  attributeOptions.attributeOptions.private
423
459
  ]
424
- }
460
+ },
461
+ conditionSection
425
462
  ]
426
463
  };
427
464
  },
@@ -447,7 +484,8 @@ const advancedForm = {
447
484
  attributeOptions.attributeOptions.minLength,
448
485
  attributeOptions.attributeOptions.private
449
486
  ]
450
- }
487
+ },
488
+ conditionSection
451
489
  ]
452
490
  };
453
491
  },
@@ -476,7 +514,8 @@ const advancedForm = {
476
514
  attributeOptions.attributeOptions.private,
477
515
  attributeOptions.attributeOptions.regex
478
516
  ]
479
- }
517
+ },
518
+ conditionSection
480
519
  ]
481
520
  };
482
521
  }