@cozeloop/components 0.0.3 → 0.0.5

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 (169) hide show
  1. package/dist/es/index.js +1 -1
  2. package/dist/lib/code-editor/index.js +3 -1
  3. package/dist/lib/code-editor/index.js.map +1 -1
  4. package/dist/lib/tsconfig.build.tsbuildinfo +1 -1
  5. package/package.json +9 -3
  6. package/.eslintcache +0 -1
  7. package/.rush/temp/shrinkwrap-deps.json +0 -770
  8. package/OWNERS +0 -5
  9. package/config/rush-project.json +0 -8
  10. package/eslint.config.js +0 -7
  11. package/rslib.config.js +0 -7
  12. package/script/publish.js +0 -146
  13. package/src/base-search-select/base-search-form-select.tsx +0 -10
  14. package/src/base-search-select/base-search-select.tsx +0 -200
  15. package/src/base-search-select/index.module.less +0 -16
  16. package/src/base-search-select/index.tsx +0 -3
  17. package/src/base-search-select/types.ts +0 -16
  18. package/src/base-search-select/utils.ts +0 -78
  19. package/src/basic-card/index.tsx +0 -23
  20. package/src/card-pane/index.module.less +0 -14
  21. package/src/card-pane/index.tsx +0 -25
  22. package/src/chip-select/index.module.less +0 -17
  23. package/src/chip-select/index.tsx +0 -7
  24. package/src/code-editor/index.tsx +0 -9
  25. package/src/code-usage/code-item.module.less +0 -32
  26. package/src/code-usage/index.tsx +0 -91
  27. package/src/codemirror-editor/code-editor.tsx +0 -139
  28. package/src/codemirror-editor/index.ts +0 -4
  29. package/src/codemirror-editor/json-editor.tsx +0 -183
  30. package/src/codemirror-editor/raw-text-editor.tsx +0 -68
  31. package/src/codemirror-editor/text-editor.tsx +0 -58
  32. package/src/codemirror-editor/themes/coze-dark.ts +0 -116
  33. package/src/codemirror-editor/themes/coze-light.ts +0 -122
  34. package/src/collapse-card/index.module.less +0 -27
  35. package/src/collapse-card/index.tsx +0 -93
  36. package/src/collapsible-card/index.module.less +0 -63
  37. package/src/collapsible-card/index.tsx +0 -57
  38. package/src/column-manage-storage/index.tsx +0 -64
  39. package/src/columns-select/index.tsx +0 -244
  40. package/src/edit-icon-button/index.tsx +0 -36
  41. package/src/footer-actions/index.tsx +0 -33
  42. package/src/hooks/use-infinite-scroll.ts +0 -183
  43. package/src/hooks/use-mouse-down-offset.ts +0 -50
  44. package/src/hooks/use-unsave-leave-warning.ts +0 -49
  45. package/src/id-render/icon-button-container.tsx +0 -37
  46. package/src/id-render/index.tsx +0 -64
  47. package/src/index-controller/record-navigation.tsx +0 -57
  48. package/src/index-controller/use-item-index-controller.ts +0 -197
  49. package/src/index.ts +0 -208
  50. package/src/infinite-scroll-table/index.tsx +0 -99
  51. package/src/info-tooltip/index.tsx +0 -41
  52. package/src/input-components/radio-button.tsx +0 -63
  53. package/src/input-slider/index.module.less +0 -30
  54. package/src/input-slider/index.tsx +0 -161
  55. package/src/input-with-count/index.tsx +0 -31
  56. package/src/jump-button/jump-icon-button.tsx +0 -12
  57. package/src/large-txt-render/index.tsx +0 -46
  58. package/src/layout/content.tsx +0 -28
  59. package/src/layout/header.tsx +0 -15
  60. package/src/layout/index.module.less +0 -28
  61. package/src/layout/index.tsx +0 -9
  62. package/src/layout/tabs.tsx +0 -11
  63. package/src/lazy-load-component/index.tsx +0 -55
  64. package/src/logic-editor/index.ts +0 -3
  65. package/src/logic-editor/logic-editor.module.less +0 -13
  66. package/src/logic-editor/logic-editor.tsx +0 -200
  67. package/src/logic-editor/logic-left-render.tsx +0 -100
  68. package/src/logic-editor/logic-operator-render.tsx +0 -54
  69. package/src/logic-editor/logic-right-render.tsx +0 -51
  70. package/src/logic-editor/logic-types.tsx +0 -238
  71. package/src/logic-editor/utils.ts +0 -22
  72. package/src/logic-expr/assets/select.svg +0 -1
  73. package/src/logic-expr/consts.ts +0 -6
  74. package/src/logic-expr/expr-group-render.tsx +0 -238
  75. package/src/logic-expr/expr-render.tsx +0 -226
  76. package/src/logic-expr/index.module.less +0 -252
  77. package/src/logic-expr/index.ts +0 -13
  78. package/src/logic-expr/logic-expr.tsx +0 -261
  79. package/src/logic-expr/logic-not.tsx +0 -46
  80. package/src/logic-expr/logic-toggle.tsx +0 -96
  81. package/src/logic-expr/types.ts +0 -95
  82. package/src/loop-radio-group/index.tsx +0 -16
  83. package/src/multi-part-editor/components/image-item-renderer.tsx +0 -134
  84. package/src/multi-part-editor/components/index.module.less +0 -21
  85. package/src/multi-part-editor/components/multipart-item-renderer.tsx +0 -74
  86. package/src/multi-part-editor/components/url-input-modal.tsx +0 -317
  87. package/src/multi-part-editor/components/video-item-renderer.tsx +0 -145
  88. package/src/multi-part-editor/index.module.less +0 -8
  89. package/src/multi-part-editor/index.tsx +0 -571
  90. package/src/multi-part-editor/multi-part-render.tsx +0 -87
  91. package/src/multi-part-editor/type.tsx +0 -103
  92. package/src/multi-part-editor/upload-button.tsx +0 -256
  93. package/src/multi-part-editor/utils.ts +0 -64
  94. package/src/open-detail-button/index.tsx +0 -30
  95. package/src/page-content/index.tsx +0 -99
  96. package/src/primary-page/index.tsx +0 -1
  97. package/src/primary-page/primary-header.tsx +0 -64
  98. package/src/primary-title/index.module.less +0 -14
  99. package/src/primary-title/index.tsx +0 -18
  100. package/src/provider/index.tsx +0 -89
  101. package/src/resizable-side-sheet/index.tsx +0 -69
  102. package/src/resize-sidesheet/index.module.less +0 -14
  103. package/src/resize-sidesheet/index.tsx +0 -68
  104. package/src/resize-sidesheet/use-drag.ts +0 -43
  105. package/src/schema-editor/index.tsx +0 -52
  106. package/src/search-form/index.tsx +0 -134
  107. package/src/semi-schema-form/components/tmpls/array-field-item.tsx +0 -97
  108. package/src/semi-schema-form/components/tmpls/array-field.tsx +0 -127
  109. package/src/semi-schema-form/components/tmpls/base-input.tsx +0 -126
  110. package/src/semi-schema-form/components/tmpls/description-field.tsx +0 -23
  111. package/src/semi-schema-form/components/tmpls/error-list.tsx +0 -44
  112. package/src/semi-schema-form/components/tmpls/field-error.tsx +0 -33
  113. package/src/semi-schema-form/components/tmpls/field.tsx +0 -54
  114. package/src/semi-schema-form/components/tmpls/icon-button.tsx +0 -112
  115. package/src/semi-schema-form/components/tmpls/index.ts +0 -39
  116. package/src/semi-schema-form/components/tmpls/object-field.tsx +0 -173
  117. package/src/semi-schema-form/components/tmpls/submit.tsx +0 -31
  118. package/src/semi-schema-form/components/tmpls/title-field.tsx +0 -30
  119. package/src/semi-schema-form/components/widgets/checkbox.tsx +0 -67
  120. package/src/semi-schema-form/components/widgets/checkboxs.tsx +0 -100
  121. package/src/semi-schema-form/components/widgets/index.ts +0 -17
  122. package/src/semi-schema-form/components/widgets/radio.tsx +0 -105
  123. package/src/semi-schema-form/components/widgets/range.tsx +0 -73
  124. package/src/semi-schema-form/components/widgets/select.tsx +0 -108
  125. package/src/semi-schema-form/components/widgets/textarea.tsx +0 -63
  126. package/src/semi-schema-form/index.tsx +0 -14
  127. package/src/sentinel-form/enum.ts +0 -16
  128. package/src/sentinel-form/index.tsx +0 -382
  129. package/src/step-nav/index.module.less +0 -45
  130. package/src/step-nav/index.tsx +0 -53
  131. package/src/table/index.module.less +0 -144
  132. package/src/table/index.tsx +0 -18
  133. package/src/table/sort-icon.tsx +0 -73
  134. package/src/table/table-with-pagination.tsx +0 -150
  135. package/src/table/table-without-pagniation.tsx +0 -66
  136. package/src/table-batch-operate/table-batch-operation.tsx +0 -47
  137. package/src/table-batch-operate/use-batch-operate.ts +0 -111
  138. package/src/table-col-actions/index.module.less +0 -8
  139. package/src/table-col-actions/index.tsx +0 -149
  140. package/src/table-cols-config/index.module.less +0 -34
  141. package/src/table-cols-config/index.tsx +0 -171
  142. package/src/table-cols-config/type.ts +0 -12
  143. package/src/table-cols-config/use-hidden-col-keys.ts +0 -53
  144. package/src/table-cols-config/util.ts +0 -56
  145. package/src/table-empty/index.tsx +0 -23
  146. package/src/table-header/index.module.less +0 -7
  147. package/src/table-header/index.tsx +0 -70
  148. package/src/tabs/index.module.less +0 -48
  149. package/src/tabs/index.tsx +0 -9
  150. package/src/text-area-pro/index.module.less +0 -5
  151. package/src/text-area-pro/index.tsx +0 -49
  152. package/src/text-with-copy/index.tsx +0 -95
  153. package/src/title-with-sub/index.tsx +0 -27
  154. package/src/tooltip-when-disabled/index.tsx +0 -23
  155. package/src/tooltip-with-disabled/index.tsx +0 -17
  156. package/src/types.d.ts +0 -24
  157. package/src/upload/index.ts +0 -39
  158. package/src/user-profile/index.tsx +0 -49
  159. package/src/utils/basic.ts +0 -29
  160. package/src/version-list/index.module.less +0 -16
  161. package/src/version-list/version-descriptions.tsx +0 -80
  162. package/src/version-list/version-item.tsx +0 -30
  163. package/src/version-list/version-list.tsx +0 -59
  164. package/src/version-list/version-switch-panel.tsx +0 -31
  165. package/tailwind.config.ts +0 -6
  166. package/tsconfig.build.json +0 -44
  167. package/tsconfig.json +0 -17
  168. package/tsconfig.misc.json +0 -28
  169. package/vitest.config.mts +0 -7
@@ -1,238 +0,0 @@
1
- import {
2
- CozInputNumber,
3
- DatePicker,
4
- Input,
5
- Select,
6
- TextArea,
7
- } from '@coze-arch/coze-design';
8
-
9
- import { type Expr, type ExprGroup } from '../logic-expr';
10
-
11
- export interface LogicOperation {
12
- label: string;
13
- value: string;
14
- }
15
-
16
- export type LogicFilterLeft = string | string[];
17
-
18
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
- export type LogicFilter = ExprGroup<LogicFilterLeft, string, any>;
20
-
21
- export interface RenderProps {
22
- disabled?: boolean;
23
- fields: LogicField[];
24
- /** 开启级联模式,佐治会变成数组 */
25
- enableCascadeMode?: boolean;
26
- }
27
-
28
- /** 逻辑编辑器的字段 */
29
- export interface LogicField {
30
- /** 字段标题 */
31
- title: React.ReactNode;
32
- /** 字段名称 */
33
- name: string;
34
- /** 字段类型 */
35
- type: 'string' | 'number' | 'options' | 'custom';
36
- /* 自定义操作符右边的输入编辑器的属性,例如给下拉框传递optionList */
37
- setterProps?: Record<string, unknown>;
38
- /** 自定义操作符右边的输入编辑器 */
39
- setter?: LogicSetter;
40
- /** 禁用操作符列表 */
41
- disabledOperations?: string[];
42
- /** operator 自定义属性 */
43
- operatorProps?: Record<string, unknown>;
44
- /** 自定义操作符列表,会覆盖原有列表 */
45
- customOperations?: LogicOperation[];
46
- /** 子字段 */
47
- children?: LogicField[];
48
- }
49
-
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- export interface DataTypeSetterProps<T = any> {
52
- [key: string]: unknown;
53
- value: T;
54
- expr: Expr | undefined;
55
- field: LogicField;
56
- disabled: boolean;
57
- onChange: (val: T) => void;
58
- }
59
-
60
- export type LogicSetter = (props: DataTypeSetterProps) => JSX.Element | null;
61
-
62
- export interface LogicDataType {
63
- type: 'string' | 'number' | 'date' | 'options';
64
- operations: LogicOperation[];
65
- setter: LogicSetter;
66
- }
67
-
68
- export const baseOperations: LogicOperation[] = [
69
- {
70
- label: '包含',
71
- value: 'contains',
72
- },
73
- {
74
- label: '不包含',
75
- value: 'not-contains',
76
- },
77
- {
78
- label: '等于',
79
- value: 'equals',
80
- },
81
- {
82
- label: '不等于',
83
- value: 'not-equals',
84
- },
85
- ];
86
-
87
- const stringOperations: LogicOperation[] = [
88
- // 注意:字符串类型的包含不包含和选项类的包含不包含枚举值不同,需要like模式
89
- {
90
- label: '包含',
91
- value: 'like',
92
- },
93
- {
94
- label: '不包含',
95
- value: 'not-like',
96
- },
97
- {
98
- label: '等于',
99
- value: 'equals',
100
- },
101
- {
102
- label: '不等于',
103
- value: 'not-equals',
104
- },
105
- ];
106
-
107
- const numberOperations: LogicOperation[] = [
108
- {
109
- label: '等于',
110
- value: 'equals',
111
- },
112
- {
113
- label: '不等于',
114
- value: 'not-equals',
115
- },
116
- {
117
- label: '大于',
118
- value: 'greater-than',
119
- },
120
- {
121
- label: '大于等于',
122
- value: 'greater-than-equals',
123
- },
124
- {
125
- label: '小于',
126
- value: 'less-than',
127
- },
128
- {
129
- label: '小于等于',
130
- value: 'less-than-equals',
131
- },
132
- ];
133
-
134
- const dateOperations: LogicOperation[] = [
135
- {
136
- label: '等于',
137
- value: 'equals',
138
- },
139
- {
140
- label: '不等于',
141
- value: 'not-equals',
142
- },
143
- {
144
- label: '晚于',
145
- value: 'greater-than',
146
- },
147
- {
148
- label: '早于',
149
- value: 'less-than',
150
- },
151
- ];
152
-
153
- const selectOperations: LogicOperation[] = [
154
- {
155
- label: '包含',
156
- value: 'contains',
157
- },
158
- {
159
- label: '不包含',
160
- value: 'not-contains',
161
- },
162
- ];
163
-
164
- function StringSetter({
165
- /** 默认为多行文本模式 */
166
- textAreaMode = true,
167
- ...props
168
- }: DataTypeSetterProps<string> & { textAreaMode?: boolean }) {
169
- if (textAreaMode === false) {
170
- return <Input placeholder="请输入" {...props} />;
171
- }
172
- return <TextArea placeholder="请输入" rows={1} {...props} />;
173
- }
174
-
175
- function NumberSetter(props: DataTypeSetterProps<number>) {
176
- const { value, onChange, ...rest } = props;
177
- return (
178
- <CozInputNumber
179
- placeholder="请输入"
180
- {...rest}
181
- className={`w-full ${(props as { className?: string }).className ?? ''}`}
182
- value={value ?? ''}
183
- onChange={onChange as (val: number | string) => void}
184
- />
185
- );
186
- }
187
- function DateSetter(props: DataTypeSetterProps<string>) {
188
- const { value, onChange, ...rest } = props;
189
- return (
190
- <DatePicker
191
- {...rest}
192
- value={value}
193
- onChange={val => onChange(val as string)}
194
- />
195
- );
196
- }
197
-
198
- function SelectSetter(
199
- props: DataTypeSetterProps<string> & {
200
- className?: string;
201
- optionList?: { label: string; value: string }[];
202
- },
203
- ) {
204
- const { value, onChange, optionList = [], className = '', ...rest } = props;
205
- return (
206
- <Select
207
- placeholder="请选择"
208
- {...rest}
209
- className={`w-full ${className}`}
210
- optionList={optionList}
211
- value={value}
212
- onChange={val => onChange(val as string)}
213
- />
214
- );
215
- }
216
-
217
- export const dataTypeList: LogicDataType[] = [
218
- {
219
- type: 'string',
220
- operations: stringOperations,
221
- setter: StringSetter,
222
- },
223
- {
224
- type: 'number',
225
- operations: numberOperations,
226
- setter: NumberSetter as unknown as LogicSetter,
227
- },
228
- {
229
- type: 'date',
230
- operations: dateOperations,
231
- setter: DateSetter,
232
- },
233
- {
234
- type: 'options',
235
- operations: selectOperations,
236
- setter: SelectSetter,
237
- },
238
- ];
@@ -1,22 +0,0 @@
1
- import { type LogicField } from './logic-types';
2
-
3
- export function findFieldByPath(
4
- fields: LogicField[],
5
- fieldPaths: string | string[],
6
- ): LogicField | undefined {
7
- if (!fieldPaths) {
8
- return undefined;
9
- }
10
- const fieldPath = Array.isArray(fieldPaths)
11
- ? fieldPaths
12
- : fieldPaths
13
- ? [fieldPaths]
14
- : [];
15
- let field: LogicField | undefined;
16
- let targetFields: LogicField[] = fields;
17
- fieldPath?.forEach(fieldName => {
18
- field = targetFields.find(item => item.name === fieldName);
19
- targetFields = field?.children ?? [];
20
- });
21
- return field;
22
- }
@@ -1 +0,0 @@
1
- <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" focusable="false" aria-hidden="true"><path d="M6.45127 8.34152L11.2475 1.86011C11.6459 1.40478 12.3542 1.40478 12.7527 1.86011L17.5489 8.34152C18.1147 8.9881 17.6555 10 16.7963 10H7.20385C6.34469 10 5.88551 8.9881 6.45127 8.34152Z" fill="currentColor"></path><path d="M17.5489 15.6585L12.7527 22.1399C12.3542 22.5952 11.6459 22.5952 11.2475 22.1399L6.45127 15.6585C5.88551 15.0119 6.34469 14 7.20385 14H16.7963C17.6555 14 18.1147 15.0119 17.5489 15.6585Z" fill="currentColor"></path></svg>
@@ -1,6 +0,0 @@
1
- import { type OptionProps } from '@coze-arch/coze-design';
2
-
3
- export const LOGIC_OPTIONS: OptionProps[] = [
4
- { label: 'fornax_components_logic_expr_and', value: 'and' },
5
- { label: 'fornax_components_logic_expr_or', value: 'or' },
6
- ];
@@ -1,238 +0,0 @@
1
- /* eslint-disable @coze-arch/max-line-per-function */
2
- /* eslint-disable complexity */
3
-
4
- import { isNumber } from 'lodash-es';
5
- import classNames from 'classnames';
6
- import { IconCozPlus, IconCozPlusCircle } from '@coze-arch/coze-design/icons';
7
- import { Button, Divider, type ButtonProps } from '@coze-arch/coze-design';
8
-
9
- import { useI18n } from '../provider';
10
- import type { ExprGroup, ExprGroupRenderProps } from './types';
11
- import { LogicToggle } from './logic-toggle';
12
- import { ExprRender } from './expr-render';
13
-
14
- import styles from './index.module.less';
15
-
16
- const ToolButton = (props: ButtonProps) => (
17
- <Button
18
- className={styles['expr-render-tool-btn']}
19
- theme="borderless"
20
- type="primary"
21
- size="small"
22
- {...props}
23
- >
24
- {props.children}
25
- </Button>
26
- );
27
-
28
- function genPath(path: string, index: number) {
29
- return path ? `${path}-${index}` : `${index}`;
30
- }
31
-
32
- export function ExprGroupRender<L, O, R>({
33
- value,
34
- readonly,
35
- singleTag,
36
- enableNot,
37
- className,
38
- exprGroupRenderContentItemsClassName,
39
- style,
40
- path,
41
- leftRender,
42
- operatorRender,
43
- rightRender,
44
- allowLogicOperators,
45
- maxNestingDepth,
46
- elementSize = 'default',
47
- logicToggleReadonly,
48
- onExprChange,
49
- onExprGroupChange,
50
- onAddItem,
51
- onAddGroup,
52
- onDeleteExpr,
53
- onDeleteExprGroup,
54
- errorMsgRender,
55
- }: ExprGroupRenderProps<L, O, R>) {
56
- const I18n = useI18n();
57
- const isEdit = !readonly;
58
-
59
- const patchExpr = (expr: Partial<ExprGroup<L, O, R>>) => {
60
- if (!value) {
61
- return;
62
- }
63
-
64
- const newExpr = { ...value, ...expr };
65
-
66
- onExprGroupChange?.(newExpr, path);
67
- };
68
-
69
- const renderTool = () => {
70
- if (!isEdit) {
71
- return null;
72
- }
73
-
74
- const currentNestingDepth = path ? path.split('-').length + 1 : 1;
75
-
76
- const showAddGroupButton = isNumber(maxNestingDepth)
77
- ? currentNestingDepth < (maxNestingDepth as number)
78
- : true;
79
-
80
- return (
81
- <div
82
- className={styles['expr-render-tool']}
83
- style={value ? undefined : { marginTop: 0 }}
84
- >
85
- <ToolButton
86
- className="add-filter-btn"
87
- icon={
88
- <span className="text-brand-9 flex items-center justify-center text-[14px]">
89
- <IconCozPlus className="w-[14px] h-[14px]" />
90
- </span>
91
- }
92
- onClick={() => onAddItem?.(path)}
93
- color="secondary"
94
- type="primary"
95
- >
96
- <span className="text-brand-9 text-[14px] leading-[20px]">
97
- {I18n.t('fornax_components_logic_expr_add_filter')}
98
- </span>
99
- </ToolButton>
100
- {showAddGroupButton ? (
101
- <>
102
- <Divider layout="vertical" />
103
- <ToolButton
104
- icon={<IconCozPlusCircle />}
105
- onClick={() => onAddGroup?.(path)}
106
- >
107
- {I18n.t('fornax_components_logic_expr_add_filter_group')}
108
- </ToolButton>
109
- </>
110
- ) : null}
111
- </div>
112
- );
113
- };
114
-
115
- if (!value) {
116
- return isEdit ? (
117
- renderTool()
118
- ) : (
119
- <div className={styles['expr-render-text']}>-</div>
120
- );
121
- }
122
-
123
- const exprItemsNumber =
124
- (value.exprs?.length || 0) + (value.childExprGroups?.length || 0);
125
-
126
- if (
127
- !path &&
128
- value.exprs &&
129
- value.exprs.length === 1 &&
130
- singleTag &&
131
- (!value.childExprGroups || value.childExprGroups.length === 0)
132
- ) {
133
- return (
134
- <>
135
- <ExprRender
136
- path={path}
137
- value={value.exprs[0]}
138
- readonly={readonly}
139
- enableNot={enableNot}
140
- leftRender={leftRender}
141
- rightRender={rightRender}
142
- errorMsgRender={errorMsgRender}
143
- operatorRender={operatorRender}
144
- elementSize={elementSize}
145
- onChange={(itemExpr, itemPath) => {
146
- onExprChange?.(itemExpr, itemPath, 0);
147
- }}
148
- onDelete={itemPath => {
149
- onDeleteExpr?.(itemPath, 0);
150
- }}
151
- />
152
- {renderTool()}
153
- </>
154
- );
155
- }
156
-
157
- return (
158
- <div
159
- className={classNames(
160
- styles['expr-render-group'],
161
- // {
162
- // [styles['expr-render-group_delete']]: deleteButtonHover,
163
- // },
164
- className,
165
- )}
166
- style={style}
167
- >
168
- <div className={styles['expr-render-group-content']}>
169
- {exprItemsNumber >= 1 ? (
170
- <LogicToggle
171
- operator={value.logicOperator}
172
- enableNot={enableNot}
173
- not={value.not}
174
- readonly={readonly || logicToggleReadonly}
175
- hideLine={exprItemsNumber === 1}
176
- allowLogicOperators={allowLogicOperators}
177
- onChange={(v1, v2) => patchExpr({ logicOperator: v1, not: v2 })}
178
- />
179
- ) : null}
180
- <div
181
- className={classNames(
182
- styles['expr-render-expr-items'],
183
- exprGroupRenderContentItemsClassName,
184
- )}
185
- >
186
- {value?.exprs?.map((expr, index) => (
187
- <ExprRender
188
- path={path}
189
- key={index}
190
- value={expr}
191
- readonly={readonly}
192
- enableNot={enableNot}
193
- leftRender={leftRender}
194
- rightRender={rightRender}
195
- errorMsgRender={errorMsgRender}
196
- operatorRender={operatorRender}
197
- elementSize={elementSize}
198
- onChange={(itemExpr, itemPath) => {
199
- onExprChange?.(itemExpr, itemPath, index);
200
- }}
201
- onDelete={itemPath => {
202
- onDeleteExpr?.(itemPath, index);
203
- }}
204
- />
205
- ))}
206
- {value?.childExprGroups?.map((subExprGroup, index) => (
207
- <ExprGroupRender
208
- path={genPath(path, index)}
209
- key={index}
210
- value={subExprGroup}
211
- readonly={readonly}
212
- enableNot={enableNot}
213
- leftRender={leftRender}
214
- rightRender={rightRender}
215
- errorMsgRender={errorMsgRender}
216
- operatorRender={operatorRender}
217
- allowLogicOperators={allowLogicOperators}
218
- maxNestingDepth={maxNestingDepth}
219
- elementSize={elementSize}
220
- onExprChange={onExprChange}
221
- onExprGroupChange={onExprGroupChange}
222
- onAddItem={onAddItem}
223
- onAddGroup={onAddGroup}
224
- onDeleteExpr={onDeleteExpr}
225
- onDeleteExprGroup={onDeleteExprGroup}
226
- className={className}
227
- style={style}
228
- exprGroupRenderContentItemsClassName={
229
- exprGroupRenderContentItemsClassName
230
- }
231
- />
232
- ))}
233
- </div>
234
- </div>
235
- {renderTool()}
236
- </div>
237
- );
238
- }