@cozeloop/components 0.0.3 → 0.0.4

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 (165) hide show
  1. package/package.json +9 -3
  2. package/.eslintcache +0 -1
  3. package/.rush/temp/shrinkwrap-deps.json +0 -770
  4. package/OWNERS +0 -5
  5. package/config/rush-project.json +0 -8
  6. package/eslint.config.js +0 -7
  7. package/rslib.config.js +0 -7
  8. package/script/publish.js +0 -146
  9. package/src/base-search-select/base-search-form-select.tsx +0 -10
  10. package/src/base-search-select/base-search-select.tsx +0 -200
  11. package/src/base-search-select/index.module.less +0 -16
  12. package/src/base-search-select/index.tsx +0 -3
  13. package/src/base-search-select/types.ts +0 -16
  14. package/src/base-search-select/utils.ts +0 -78
  15. package/src/basic-card/index.tsx +0 -23
  16. package/src/card-pane/index.module.less +0 -14
  17. package/src/card-pane/index.tsx +0 -25
  18. package/src/chip-select/index.module.less +0 -17
  19. package/src/chip-select/index.tsx +0 -7
  20. package/src/code-editor/index.tsx +0 -9
  21. package/src/code-usage/code-item.module.less +0 -32
  22. package/src/code-usage/index.tsx +0 -91
  23. package/src/codemirror-editor/code-editor.tsx +0 -139
  24. package/src/codemirror-editor/index.ts +0 -4
  25. package/src/codemirror-editor/json-editor.tsx +0 -183
  26. package/src/codemirror-editor/raw-text-editor.tsx +0 -68
  27. package/src/codemirror-editor/text-editor.tsx +0 -58
  28. package/src/codemirror-editor/themes/coze-dark.ts +0 -116
  29. package/src/codemirror-editor/themes/coze-light.ts +0 -122
  30. package/src/collapse-card/index.module.less +0 -27
  31. package/src/collapse-card/index.tsx +0 -93
  32. package/src/collapsible-card/index.module.less +0 -63
  33. package/src/collapsible-card/index.tsx +0 -57
  34. package/src/column-manage-storage/index.tsx +0 -64
  35. package/src/columns-select/index.tsx +0 -244
  36. package/src/edit-icon-button/index.tsx +0 -36
  37. package/src/footer-actions/index.tsx +0 -33
  38. package/src/hooks/use-infinite-scroll.ts +0 -183
  39. package/src/hooks/use-mouse-down-offset.ts +0 -50
  40. package/src/hooks/use-unsave-leave-warning.ts +0 -49
  41. package/src/id-render/icon-button-container.tsx +0 -37
  42. package/src/id-render/index.tsx +0 -64
  43. package/src/index-controller/record-navigation.tsx +0 -57
  44. package/src/index-controller/use-item-index-controller.ts +0 -197
  45. package/src/index.ts +0 -208
  46. package/src/infinite-scroll-table/index.tsx +0 -99
  47. package/src/info-tooltip/index.tsx +0 -41
  48. package/src/input-components/radio-button.tsx +0 -63
  49. package/src/input-slider/index.module.less +0 -30
  50. package/src/input-slider/index.tsx +0 -161
  51. package/src/input-with-count/index.tsx +0 -31
  52. package/src/jump-button/jump-icon-button.tsx +0 -12
  53. package/src/large-txt-render/index.tsx +0 -46
  54. package/src/layout/content.tsx +0 -28
  55. package/src/layout/header.tsx +0 -15
  56. package/src/layout/index.module.less +0 -28
  57. package/src/layout/index.tsx +0 -9
  58. package/src/layout/tabs.tsx +0 -11
  59. package/src/lazy-load-component/index.tsx +0 -55
  60. package/src/logic-editor/index.ts +0 -3
  61. package/src/logic-editor/logic-editor.module.less +0 -13
  62. package/src/logic-editor/logic-editor.tsx +0 -200
  63. package/src/logic-editor/logic-left-render.tsx +0 -100
  64. package/src/logic-editor/logic-operator-render.tsx +0 -54
  65. package/src/logic-editor/logic-right-render.tsx +0 -51
  66. package/src/logic-editor/logic-types.tsx +0 -238
  67. package/src/logic-editor/utils.ts +0 -22
  68. package/src/logic-expr/assets/select.svg +0 -1
  69. package/src/logic-expr/consts.ts +0 -6
  70. package/src/logic-expr/expr-group-render.tsx +0 -238
  71. package/src/logic-expr/expr-render.tsx +0 -226
  72. package/src/logic-expr/index.module.less +0 -252
  73. package/src/logic-expr/index.ts +0 -13
  74. package/src/logic-expr/logic-expr.tsx +0 -261
  75. package/src/logic-expr/logic-not.tsx +0 -46
  76. package/src/logic-expr/logic-toggle.tsx +0 -96
  77. package/src/logic-expr/types.ts +0 -95
  78. package/src/loop-radio-group/index.tsx +0 -16
  79. package/src/multi-part-editor/components/image-item-renderer.tsx +0 -134
  80. package/src/multi-part-editor/components/index.module.less +0 -21
  81. package/src/multi-part-editor/components/multipart-item-renderer.tsx +0 -74
  82. package/src/multi-part-editor/components/url-input-modal.tsx +0 -317
  83. package/src/multi-part-editor/components/video-item-renderer.tsx +0 -145
  84. package/src/multi-part-editor/index.module.less +0 -8
  85. package/src/multi-part-editor/index.tsx +0 -571
  86. package/src/multi-part-editor/multi-part-render.tsx +0 -87
  87. package/src/multi-part-editor/type.tsx +0 -103
  88. package/src/multi-part-editor/upload-button.tsx +0 -256
  89. package/src/multi-part-editor/utils.ts +0 -64
  90. package/src/open-detail-button/index.tsx +0 -30
  91. package/src/page-content/index.tsx +0 -99
  92. package/src/primary-page/index.tsx +0 -1
  93. package/src/primary-page/primary-header.tsx +0 -64
  94. package/src/primary-title/index.module.less +0 -14
  95. package/src/primary-title/index.tsx +0 -18
  96. package/src/provider/index.tsx +0 -89
  97. package/src/resizable-side-sheet/index.tsx +0 -69
  98. package/src/resize-sidesheet/index.module.less +0 -14
  99. package/src/resize-sidesheet/index.tsx +0 -68
  100. package/src/resize-sidesheet/use-drag.ts +0 -43
  101. package/src/schema-editor/index.tsx +0 -52
  102. package/src/search-form/index.tsx +0 -134
  103. package/src/semi-schema-form/components/tmpls/array-field-item.tsx +0 -97
  104. package/src/semi-schema-form/components/tmpls/array-field.tsx +0 -127
  105. package/src/semi-schema-form/components/tmpls/base-input.tsx +0 -126
  106. package/src/semi-schema-form/components/tmpls/description-field.tsx +0 -23
  107. package/src/semi-schema-form/components/tmpls/error-list.tsx +0 -44
  108. package/src/semi-schema-form/components/tmpls/field-error.tsx +0 -33
  109. package/src/semi-schema-form/components/tmpls/field.tsx +0 -54
  110. package/src/semi-schema-form/components/tmpls/icon-button.tsx +0 -112
  111. package/src/semi-schema-form/components/tmpls/index.ts +0 -39
  112. package/src/semi-schema-form/components/tmpls/object-field.tsx +0 -173
  113. package/src/semi-schema-form/components/tmpls/submit.tsx +0 -31
  114. package/src/semi-schema-form/components/tmpls/title-field.tsx +0 -30
  115. package/src/semi-schema-form/components/widgets/checkbox.tsx +0 -67
  116. package/src/semi-schema-form/components/widgets/checkboxs.tsx +0 -100
  117. package/src/semi-schema-form/components/widgets/index.ts +0 -17
  118. package/src/semi-schema-form/components/widgets/radio.tsx +0 -105
  119. package/src/semi-schema-form/components/widgets/range.tsx +0 -73
  120. package/src/semi-schema-form/components/widgets/select.tsx +0 -108
  121. package/src/semi-schema-form/components/widgets/textarea.tsx +0 -63
  122. package/src/semi-schema-form/index.tsx +0 -14
  123. package/src/sentinel-form/enum.ts +0 -16
  124. package/src/sentinel-form/index.tsx +0 -382
  125. package/src/step-nav/index.module.less +0 -45
  126. package/src/step-nav/index.tsx +0 -53
  127. package/src/table/index.module.less +0 -144
  128. package/src/table/index.tsx +0 -18
  129. package/src/table/sort-icon.tsx +0 -73
  130. package/src/table/table-with-pagination.tsx +0 -150
  131. package/src/table/table-without-pagniation.tsx +0 -66
  132. package/src/table-batch-operate/table-batch-operation.tsx +0 -47
  133. package/src/table-batch-operate/use-batch-operate.ts +0 -111
  134. package/src/table-col-actions/index.module.less +0 -8
  135. package/src/table-col-actions/index.tsx +0 -149
  136. package/src/table-cols-config/index.module.less +0 -34
  137. package/src/table-cols-config/index.tsx +0 -171
  138. package/src/table-cols-config/type.ts +0 -12
  139. package/src/table-cols-config/use-hidden-col-keys.ts +0 -53
  140. package/src/table-cols-config/util.ts +0 -56
  141. package/src/table-empty/index.tsx +0 -23
  142. package/src/table-header/index.module.less +0 -7
  143. package/src/table-header/index.tsx +0 -70
  144. package/src/tabs/index.module.less +0 -48
  145. package/src/tabs/index.tsx +0 -9
  146. package/src/text-area-pro/index.module.less +0 -5
  147. package/src/text-area-pro/index.tsx +0 -49
  148. package/src/text-with-copy/index.tsx +0 -95
  149. package/src/title-with-sub/index.tsx +0 -27
  150. package/src/tooltip-when-disabled/index.tsx +0 -23
  151. package/src/tooltip-with-disabled/index.tsx +0 -17
  152. package/src/types.d.ts +0 -24
  153. package/src/upload/index.ts +0 -39
  154. package/src/user-profile/index.tsx +0 -49
  155. package/src/utils/basic.ts +0 -29
  156. package/src/version-list/index.module.less +0 -16
  157. package/src/version-list/version-descriptions.tsx +0 -80
  158. package/src/version-list/version-item.tsx +0 -30
  159. package/src/version-list/version-list.tsx +0 -59
  160. package/src/version-list/version-switch-panel.tsx +0 -31
  161. package/tailwind.config.ts +0 -6
  162. package/tsconfig.build.json +0 -44
  163. package/tsconfig.json +0 -17
  164. package/tsconfig.misc.json +0 -28
  165. package/vitest.config.mts +0 -7
@@ -1,67 +0,0 @@
1
- import React, { type FocusEvent } from 'react';
2
-
3
- import {
4
- ariaDescribedByIds,
5
- // labelValue,
6
- type FormContextType,
7
- type RJSFSchema,
8
- type StrictRJSFSchema,
9
- type WidgetProps,
10
- type GenericObjectType,
11
- } from '@rjsf/utils';
12
- import { Checkbox, type CheckboxProps } from '@coze-arch/coze-design';
13
-
14
- /** The `CheckBoxWidget` is a widget for rendering boolean properties.
15
- * It is typically used to represent a boolean.
16
- *
17
- * @param props - The `WidgetProps` for this component
18
- */
19
- export default function CheckboxWidget<
20
- T = unknown,
21
- S extends StrictRJSFSchema = RJSFSchema,
22
- F extends FormContextType = object,
23
- >(props: WidgetProps<T, S, F>) {
24
- const {
25
- autofocus,
26
- disabled,
27
- formContext,
28
- id,
29
- // label,
30
- // hideLabel,
31
- onBlur,
32
- onChange,
33
- onFocus,
34
- readonly,
35
- value,
36
- } = props;
37
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
38
-
39
- const handleChange: CheckboxProps['onChange'] = ({ target }) =>
40
- onChange(target.checked);
41
-
42
- const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) =>
43
- onBlur(id, target && target.checked);
44
-
45
- const handleFocus = ({ target }: FocusEvent<HTMLInputElement>) =>
46
- onFocus(id, target && target.checked);
47
-
48
- // Antd's typescript definitions do not contain the following props that are actually necessary and, if provided,
49
- // they are used, so hacking them in via by spreading `extraProps` on the component to avoid typescript errors
50
- const extraProps = {
51
- onBlur: !readonly ? handleBlur : undefined,
52
- onFocus: !readonly ? handleFocus : undefined,
53
- };
54
- return (
55
- <Checkbox
56
- autoFocus={autofocus}
57
- checked={typeof value === 'undefined' ? false : value}
58
- disabled={disabled || (readonlyAsDisabled && readonly)}
59
- id={id}
60
- onChange={!readonly ? handleChange : undefined}
61
- {...extraProps}
62
- aria-describedby={ariaDescribedByIds<T>(id)}
63
- >
64
- {/* {labelValue(label, hideLabel, '')} */}
65
- </Checkbox>
66
- );
67
- }
@@ -1,100 +0,0 @@
1
- import React, { type FocusEvent } from 'react';
2
-
3
- import {
4
- ariaDescribedByIds,
5
- enumOptionsIndexForValue,
6
- enumOptionsValueForIndex,
7
- optionId,
8
- type FormContextType,
9
- type WidgetProps,
10
- type RJSFSchema,
11
- type StrictRJSFSchema,
12
- type GenericObjectType,
13
- } from '@rjsf/utils';
14
- import { Checkbox, type CheckboxGroupProps } from '@coze-arch/coze-design';
15
-
16
- /** The `CheckboxesWidget` is a widget for rendering checkbox groups.
17
- * It is typically used to represent an array of enums.
18
- *
19
- * @param props - The `WidgetProps` for this component
20
- */
21
- export default function CheckboxesWidget<
22
- T = unknown,
23
- S extends StrictRJSFSchema = RJSFSchema,
24
- F extends FormContextType = object,
25
- >({
26
- autofocus,
27
- disabled,
28
- formContext,
29
- id,
30
- onBlur,
31
- onChange,
32
- onFocus,
33
- options,
34
- readonly,
35
- value,
36
- }: WidgetProps<T, S, F>) {
37
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
38
-
39
- const { enumOptions, enumDisabled, inline, emptyValue } = options;
40
-
41
- const handleChange: CheckboxGroupProps['onChange'] = nextValue =>
42
- onChange(enumOptionsValueForIndex<S>(nextValue, enumOptions, emptyValue));
43
-
44
- const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) =>
45
- onBlur(
46
- id,
47
- enumOptionsValueForIndex<S>(target.value, enumOptions, emptyValue),
48
- );
49
-
50
- const handleFocus = ({ target }: FocusEvent<HTMLInputElement>) =>
51
- onFocus(
52
- id,
53
- enumOptionsValueForIndex<S>(target.value, enumOptions, emptyValue),
54
- );
55
-
56
- // Antd's typescript definitions do not contain the following props that are actually necessary and, if provided,
57
- // they are used, so hacking them in via by spreading `extraProps` on the component to avoid typescript errors
58
- const extraProps = {
59
- id,
60
- onBlur: !readonly ? handleBlur : undefined,
61
- onFocus: !readonly ? handleFocus : undefined,
62
- };
63
-
64
- const selectedIndexes = enumOptionsIndexForValue<S>(
65
- value,
66
- enumOptions,
67
- true,
68
- ) as string[];
69
-
70
- return Array.isArray(enumOptions) && enumOptions.length > 0 ? (
71
- <>
72
- <Checkbox.Group
73
- disabled={disabled || (readonlyAsDisabled && readonly)}
74
- name={id}
75
- onChange={!readonly ? handleChange : undefined}
76
- value={selectedIndexes}
77
- {...extraProps}
78
- aria-describedby={ariaDescribedByIds<T>(id)}
79
- >
80
- {Array.isArray(enumOptions) &&
81
- enumOptions.map((option, i) => (
82
- <span key={i}>
83
- <Checkbox
84
- id={optionId(id, i)}
85
- autoFocus={i === 0 ? autofocus : false}
86
- disabled={
87
- Array.isArray(enumDisabled) &&
88
- enumDisabled.indexOf(option.value) !== -1
89
- }
90
- value={String(i)}
91
- >
92
- {option.label}
93
- </Checkbox>
94
- {!inline && <br />}
95
- </span>
96
- ))}
97
- </Checkbox.Group>
98
- </>
99
- ) : null;
100
- }
@@ -1,17 +0,0 @@
1
- import { type RegistryWidgetsType } from '@rjsf/utils';
2
-
3
- import TextAreaWidget from './textarea';
4
- import SelectWidget from './select';
5
- import RangeWidget from './range';
6
- import RadioWidget from './radio';
7
- import CheckboxesWidget from './checkboxs';
8
- import CheckboxWidget from './checkbox';
9
-
10
- export const widgets: RegistryWidgetsType = {
11
- TextAreaWidget,
12
- SelectWidget,
13
- CheckboxWidget,
14
- CheckboxesWidget,
15
- RadioWidget,
16
- RangeWidget,
17
- };
@@ -1,105 +0,0 @@
1
- import React, { type FocusEvent } from 'react';
2
-
3
- import {
4
- ariaDescribedByIds,
5
- enumOptionsIndexForValue,
6
- enumOptionsValueForIndex,
7
- type FormContextType,
8
- type GenericObjectType,
9
- type RJSFSchema,
10
- type StrictRJSFSchema,
11
- type WidgetProps,
12
- } from '@rjsf/utils';
13
- import { Radio, type RadioGroupProps } from '@coze-arch/coze-design';
14
-
15
- /** The `RadioWidget` is a widget for rendering a radio group.
16
- * It is typically used with a string property constrained with enum options.
17
- *
18
- * @param props - The `WidgetProps` for this component
19
- */
20
- export default function RadioWidget<
21
- T = unknown,
22
- S extends StrictRJSFSchema = RJSFSchema,
23
- F extends FormContextType = object,
24
- >({
25
- autofocus,
26
- disabled,
27
- formContext,
28
- id,
29
- onBlur,
30
- onChange,
31
- onFocus,
32
- options,
33
- readonly,
34
- value,
35
- }: WidgetProps<T, S, F>) {
36
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
37
-
38
- const { enumOptions, enumDisabled, emptyValue } = options;
39
-
40
- const handleChange: RadioGroupProps['onChange'] = ({
41
- target: { value: nextValue },
42
- }) =>
43
- onChange(enumOptionsValueForIndex<S>(nextValue, enumOptions, emptyValue));
44
-
45
- const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) =>
46
- onBlur(
47
- id,
48
- enumOptionsValueForIndex<S>(
49
- target && target.value,
50
- enumOptions,
51
- emptyValue,
52
- ),
53
- );
54
-
55
- const handleFocus = ({ target }: FocusEvent<HTMLInputElement>) =>
56
- onFocus(
57
- id,
58
- enumOptionsValueForIndex<S>(
59
- target && target.value,
60
- enumOptions,
61
- emptyValue,
62
- ),
63
- );
64
-
65
- const selectedIndexes = enumOptionsIndexForValue<S>(
66
- value,
67
- enumOptions,
68
- ) as string;
69
-
70
- // Antd's typescript definitions do not contain the following props that are actually necessary and, if provided,
71
- // they are used, so hacking them in via by spreading `extraProps` on the component to avoid typescript errors
72
- const extraProps = {
73
- onBlur: !readonly ? handleBlur : undefined,
74
- onFocus: !readonly ? handleFocus : undefined,
75
- };
76
-
77
- return (
78
- <Radio.Group
79
- disabled={disabled || (readonlyAsDisabled && readonly)}
80
- id={id}
81
- name={id}
82
- onChange={!readonly ? handleChange : undefined}
83
- {...extraProps}
84
- value={selectedIndexes}
85
- aria-describedby={ariaDescribedByIds<T>(id)}
86
- >
87
- {Array.isArray(enumOptions) &&
88
- enumOptions.map((option, i) => (
89
- <Radio
90
- name={id}
91
- autoFocus={i === 0 ? autofocus : false}
92
- disabled={
93
- disabled ||
94
- (Array.isArray(enumDisabled) &&
95
- enumDisabled.indexOf(option.value) !== -1)
96
- }
97
- key={i}
98
- value={String(i)}
99
- >
100
- {option.label}
101
- </Radio>
102
- ))}
103
- </Radio.Group>
104
- );
105
- }
@@ -1,73 +0,0 @@
1
- import React from 'react';
2
- import {
3
- ariaDescribedByIds,
4
- rangeSpec,
5
- type FormContextType,
6
- type RJSFSchema,
7
- type StrictRJSFSchema,
8
- type WidgetProps,
9
- type GenericObjectType,
10
- } from '@rjsf/utils';
11
- import { Slider, type SliderProps } from '@coze-arch/coze-design';
12
-
13
- /** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result
14
- * in a div, with the value along side it.
15
- *
16
- * @param props - The `WidgetProps` for this component
17
- */
18
- export default function RangeWidget<
19
- T = unknown,
20
- S extends StrictRJSFSchema = RJSFSchema,
21
- F extends FormContextType = object,
22
- >(props: WidgetProps<T, S, F>) {
23
- const {
24
- autofocus,
25
- disabled,
26
- formContext,
27
- id,
28
- onBlur,
29
- onChange,
30
- onFocus,
31
- options,
32
- placeholder,
33
- readonly,
34
- schema,
35
- value,
36
- } = props;
37
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
38
-
39
- const { min, max, step } = rangeSpec(schema);
40
-
41
- const emptyValue = options.emptyValue || '';
42
-
43
- const handleChange: SliderProps['onChange'] = nextValue =>
44
- onChange(typeof nextValue === 'undefined' ? emptyValue : nextValue);
45
-
46
- const handleBlur = () => onBlur(id, value);
47
-
48
- const handleFocus = () => onFocus(id, value);
49
-
50
- // Antd's typescript definitions do not contain the following props that are actually necessary and, if provided,
51
- // they are used, so hacking them in via by spreading `extraProps` on the component to avoid typescript errors
52
- const extraProps = {
53
- placeholder,
54
- onBlur: !readonly ? handleBlur : undefined,
55
- onFocus: !readonly ? handleFocus : undefined,
56
- };
57
-
58
- return (
59
- <Slider
60
- autoFocus={autofocus}
61
- disabled={disabled || (readonlyAsDisabled && readonly)}
62
- id={id}
63
- max={max}
64
- min={min}
65
- onChange={!readonly ? handleChange : undefined}
66
- range={false}
67
- step={step}
68
- value={value}
69
- {...extraProps}
70
- aria-describedby={ariaDescribedByIds<T>(id)}
71
- />
72
- );
73
- }
@@ -1,108 +0,0 @@
1
- import React, { useMemo } from 'react';
2
-
3
- import {
4
- ariaDescribedByIds,
5
- enumOptionsIndexForValue,
6
- enumOptionsValueForIndex,
7
- type FormContextType,
8
- type GenericObjectType,
9
- type RJSFSchema,
10
- type StrictRJSFSchema,
11
- type WidgetProps,
12
- } from '@rjsf/utils';
13
- import {
14
- type SelectProps,
15
- type OptionProps,
16
- Select,
17
- } from '@coze-arch/coze-design';
18
-
19
- const SELECT_STYLE = {
20
- width: '100%',
21
- };
22
-
23
- /** The `SelectWidget` is a widget for rendering dropdowns.
24
- * It is typically used with string properties constrained with enum options.
25
- *
26
- * @param props - The `WidgetProps` for this component
27
- */
28
- export default function SelectWidget<
29
- T = unknown,
30
- S extends StrictRJSFSchema = RJSFSchema,
31
- F extends FormContextType = object,
32
- >({
33
- autofocus,
34
- disabled,
35
- formContext = {} as unknown as F,
36
- id,
37
- multiple,
38
- onBlur,
39
- onChange,
40
- onFocus,
41
- options,
42
- placeholder,
43
- readonly,
44
- value,
45
- }: WidgetProps<T, S, F>) {
46
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
47
-
48
- const { enumOptions, enumDisabled, emptyValue } = options;
49
-
50
- const handleChange: SelectProps['onChange'] = nextValue => {
51
- if (typeof nextValue === 'object' && !Array.isArray(nextValue)) {
52
- throw new Error('Object type value is not supported');
53
- } else {
54
- onChange(
55
- typeof nextValue === 'undefined'
56
- ? undefined
57
- : enumOptionsValueForIndex<S>(nextValue, enumOptions, emptyValue),
58
- );
59
- }
60
- };
61
-
62
- const handleBlur = () =>
63
- onBlur(id, enumOptionsValueForIndex<S>(value, enumOptions, emptyValue));
64
-
65
- const handleFocus = () =>
66
- onFocus(id, enumOptionsValueForIndex<S>(value, enumOptions, emptyValue));
67
-
68
- const selectedIndexes = enumOptionsIndexForValue<S>(
69
- value,
70
- enumOptions,
71
- multiple,
72
- );
73
-
74
- const selectOptions: OptionProps[] | undefined = useMemo(() => {
75
- if (Array.isArray(enumOptions)) {
76
- const opts: OptionProps[] = enumOptions.map(
77
- ({ value: optionValue, label: optionLabel }, index) => ({
78
- disabled:
79
- Array.isArray(enumDisabled) &&
80
- enumDisabled.indexOf(optionValue) !== -1,
81
- key: String(index),
82
- value: String(index),
83
- label: optionLabel,
84
- }),
85
- );
86
-
87
- return opts;
88
- }
89
- return undefined;
90
- }, [enumDisabled, enumOptions]);
91
-
92
- return (
93
- <Select
94
- autoFocus={autofocus}
95
- disabled={disabled || (readonlyAsDisabled && readonly)}
96
- id={id}
97
- multiple={multiple}
98
- onBlur={!readonly ? handleBlur : undefined}
99
- onChange={!readonly ? handleChange : undefined}
100
- onFocus={!readonly ? handleFocus : undefined}
101
- placeholder={placeholder}
102
- style={SELECT_STYLE}
103
- value={selectedIndexes}
104
- aria-describedby={ariaDescribedByIds<T>(id)}
105
- optionList={selectOptions}
106
- />
107
- );
108
- }
@@ -1,63 +0,0 @@
1
- import React, { type FocusEvent } from 'react';
2
-
3
- import {
4
- ariaDescribedByIds,
5
- type FormContextType,
6
- type GenericObjectType,
7
- type RJSFSchema,
8
- type StrictRJSFSchema,
9
- type WidgetProps,
10
- } from '@rjsf/utils';
11
- import { TextArea, type TextAreaProps } from '@coze-arch/coze-design';
12
-
13
- const INPUT_STYLE = {
14
- width: '100%',
15
- };
16
-
17
- /** The `TextareaWidget` is a widget for rendering input fields as textarea.
18
- *
19
- * @param props - The `WidgetProps` for this component
20
- */
21
- export default function TextareaWidget<
22
- T = unknown,
23
- S extends StrictRJSFSchema = RJSFSchema,
24
- F extends FormContextType = object,
25
- >({
26
- disabled,
27
- formContext,
28
- id,
29
- onBlur,
30
- onChange,
31
- onFocus,
32
- options,
33
- placeholder,
34
- readonly,
35
- value,
36
- }: WidgetProps<T, S, F>) {
37
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
38
-
39
- const handleChange: TextAreaProps['onChange'] = nextValue =>
40
- onChange(nextValue === '' ? options.emptyValue : nextValue);
41
-
42
- const handleBlur = ({ target }: FocusEvent<HTMLTextAreaElement>) =>
43
- onBlur(id, target && target.value);
44
-
45
- const handleFocus = ({ target }: FocusEvent<HTMLTextAreaElement>) =>
46
- onFocus(id, target && target.value);
47
-
48
- return (
49
- <TextArea
50
- disabled={disabled || (readonlyAsDisabled && readonly)}
51
- id={id}
52
- name={id}
53
- onBlur={!readonly ? handleBlur : undefined}
54
- onChange={!readonly ? handleChange : undefined}
55
- onFocus={!readonly ? handleFocus : undefined}
56
- placeholder={placeholder}
57
- rows={options.rows || 4}
58
- style={INPUT_STYLE}
59
- value={value}
60
- aria-describedby={ariaDescribedByIds<T>(id)}
61
- />
62
- );
63
- }
@@ -1,14 +0,0 @@
1
- import type Form from '@rjsf/core';
2
- import { withTheme } from '@rjsf/core';
3
-
4
- export { default as schemaValidators } from '@rjsf/validator-ajv8';
5
-
6
- import { widgets } from './components/widgets';
7
- import { templates } from './components/tmpls';
8
-
9
- export const SemiSchemaForm = withTheme({
10
- widgets,
11
- templates,
12
- });
13
-
14
- export type SemiSchemaFormInstance = Form;
@@ -1,16 +0,0 @@
1
- export enum EventNames {
2
- // 进入相关
3
- INIT_LOOP_FORM = 'init_loop_form',
4
- // 保点击保存,表单报错
5
- LOOP_FORM_FIELD_VALIDATE_ERROR = 'loop_form_field_validate_error', // 表单项报错次数
6
-
7
- // 点击保存,接口报错
8
- LOOP_FORM_SUBMIT_INTERFACE_ERROR = 'loop_form_submit_interface_error', // 提交接口报错次数
9
-
10
- // 点击保存,成功
11
- LOOP_FORM_SUBMIT_SUCCESS = 'loop_form_submit_success', // 提交成功
12
-
13
- // 离开表单
14
- LOOP_FORM_FIELD_CHANGE_TIMELINE = 'loop_form_field_change_timeline', // 表单项变更时间轴
15
- LOOP_FORM_CLOSE = 'loop_form_close', // 离开表单
16
- }