@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,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
- }