@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,126 +0,0 @@
1
- /* eslint-disable complexity */
2
- import React, { type FocusEvent } from 'react';
3
-
4
- import {
5
- ariaDescribedByIds,
6
- type BaseInputTemplateProps,
7
- examplesId,
8
- getInputProps,
9
- type FormContextType,
10
- type GenericObjectType,
11
- type RJSFSchema,
12
- type StrictRJSFSchema,
13
- } from '@rjsf/utils';
14
- import {
15
- Input,
16
- CozInputNumber,
17
- type InputNumberProps,
18
- type InputProps,
19
- } from '@coze-arch/coze-design';
20
-
21
- const INPUT_STYLE = {
22
- width: '100%',
23
- };
24
-
25
- /** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.
26
- * It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.
27
- * It can be customized/overridden for other themes or individual implementations as needed.
28
- *
29
- * @param props - The `WidgetProps` for this template
30
- */
31
- export default function BaseInputTemplate<
32
- T = unknown,
33
- S extends StrictRJSFSchema = RJSFSchema,
34
- F extends FormContextType = object,
35
- >(props: BaseInputTemplateProps<T, S, F>) {
36
- const {
37
- disabled,
38
- formContext,
39
- id,
40
- onBlur,
41
- onChange,
42
- onChangeOverride,
43
- onFocus,
44
- options,
45
- placeholder,
46
- readonly,
47
- schema,
48
- value,
49
- type,
50
- } = props;
51
- const {
52
- step,
53
- type: fieldType,
54
- ...inputProps
55
- } = getInputProps<T, S, F>(schema, type, options, false);
56
-
57
- const { readonlyAsDisabled = true } = formContext as GenericObjectType;
58
-
59
- const handleNumberChange: InputNumberProps['onChange'] = nextValue =>
60
- onChange(nextValue);
61
-
62
- const handleTextChange: InputProps['onChange'] = (nextValue, e) => {
63
- onChangeOverride
64
- ? onChangeOverride(e)
65
- : onChange(nextValue === '' ? options.emptyValue : nextValue);
66
- };
67
-
68
- const handleBlur = ({ target }: FocusEvent<HTMLInputElement>) =>
69
- onBlur(id, target && target.value);
70
-
71
- const handleFocus = ({ target }: FocusEvent<HTMLInputElement>) =>
72
- onFocus(id, target && target.value);
73
-
74
- const input =
75
- fieldType === 'number' || fieldType === 'integer' ? (
76
- <CozInputNumber
77
- disabled={disabled || (readonlyAsDisabled && readonly)}
78
- id={id}
79
- name={id}
80
- onBlur={!readonly ? handleBlur : undefined}
81
- onChange={!readonly ? handleNumberChange : undefined}
82
- onFocus={!readonly ? handleFocus : undefined}
83
- placeholder={placeholder}
84
- style={INPUT_STYLE}
85
- list={schema.examples ? examplesId<T>(id) : undefined}
86
- {...inputProps}
87
- step={step as number | undefined}
88
- value={value}
89
- aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}
90
- />
91
- ) : (
92
- <Input
93
- disabled={disabled || (readonlyAsDisabled && readonly)}
94
- id={id}
95
- name={id}
96
- onBlur={!readonly ? handleBlur : undefined}
97
- onChange={!readonly ? handleTextChange : undefined}
98
- onFocus={!readonly ? handleFocus : undefined}
99
- placeholder={placeholder}
100
- style={INPUT_STYLE}
101
- list={schema.examples ? examplesId<T>(id) : undefined}
102
- {...inputProps}
103
- value={value}
104
- aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}
105
- />
106
- );
107
-
108
- return (
109
- <>
110
- {input}
111
- {Array.isArray(schema.examples) && (
112
- <datalist id={examplesId<T>(id)}>
113
- {(schema.examples as string[])
114
- .concat(
115
- schema.default && !schema.examples.includes(schema.default)
116
- ? ([schema.default] as string[])
117
- : [],
118
- )
119
- .map(example => (
120
- <option key={example} value={example} />
121
- ))}
122
- </datalist>
123
- )}
124
- </>
125
- );
126
- }
@@ -1,23 +0,0 @@
1
- import {
2
- type DescriptionFieldProps,
3
- type FormContextType,
4
- type RJSFSchema,
5
- type StrictRJSFSchema,
6
- } from '@rjsf/utils';
7
-
8
- /** The `DescriptionField` is the template to use to render the description of a field
9
- *
10
- * @param props - The `DescriptionFieldProps` for this component
11
- */
12
- export default function DescriptionField<
13
- T = unknown,
14
- S extends StrictRJSFSchema = RJSFSchema,
15
- F extends FormContextType = object,
16
- >(props: DescriptionFieldProps<T, S, F>) {
17
- const { id, description } = props;
18
-
19
- if (!description) {
20
- return null;
21
- }
22
- return <span id={id}>{description}</span>;
23
- }
@@ -1,44 +0,0 @@
1
- import React from 'react';
2
-
3
- import {
4
- type ErrorListProps,
5
- type FormContextType,
6
- type RJSFSchema,
7
- type StrictRJSFSchema,
8
- TranslatableString,
9
- } from '@rjsf/utils';
10
- import { IconCozWarningCircle } from '@coze-arch/coze-design/icons';
11
- import { Banner, List, Space } from '@coze-arch/coze-design';
12
-
13
- /** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`
14
- *
15
- * @param props - The `ErrorListProps` for this component
16
- */
17
- export default function ErrorList<
18
- T = unknown,
19
- S extends StrictRJSFSchema = RJSFSchema,
20
- F extends FormContextType = object,
21
- >({ errors, registry }: ErrorListProps<T, S, F>) {
22
- const { translateString } = registry;
23
- const renderErrors = () => (
24
- <List className="list-group" size="small">
25
- {errors.map((error, index) => (
26
- <List.Item key={index}>
27
- <Space>
28
- <IconCozWarningCircle />
29
- {error.stack}
30
- </Space>
31
- </List.Item>
32
- ))}
33
- </List>
34
- );
35
-
36
- return (
37
- <Banner
38
- type="danger"
39
- className="panel panel-danger errors"
40
- title={translateString(TranslatableString.ErrorsLabel)}
41
- description={renderErrors()}
42
- />
43
- );
44
- }
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import {
3
- type FieldErrorProps,
4
- type FormContextType,
5
- type RJSFSchema,
6
- type StrictRJSFSchema,
7
- errorId,
8
- } from '@rjsf/utils';
9
- import { Form } from '@coze-arch/coze-design';
10
-
11
- /** The `FieldErrorTemplate` component renders the errors local to the particular field
12
- *
13
- * @param props - The `FieldErrorProps` for the errors being rendered
14
- */
15
- export default function FieldErrorTemplate<
16
- T = unknown,
17
- S extends StrictRJSFSchema = RJSFSchema,
18
- F extends FormContextType = object,
19
- >(props: FieldErrorProps<T, S, F>) {
20
- const { errors = [], idSchema } = props;
21
- if (errors.length === 0) {
22
- return null;
23
- }
24
- const id = errorId<T>(idSchema);
25
-
26
- return (
27
- <div id={id}>
28
- {errors.map(error => (
29
- <Form.ErrorMessage key={`field-${id}-error-${error}`} error={error} />
30
- ))}
31
- </div>
32
- );
33
- }
@@ -1,54 +0,0 @@
1
- import React from 'react';
2
- import {
3
- type FieldTemplateProps,
4
- type FormContextType,
5
- type RJSFSchema,
6
- type StrictRJSFSchema,
7
- } from '@rjsf/utils';
8
- import { Form, Typography } from '@coze-arch/coze-design';
9
-
10
- /** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field
11
- * content, (label, description, children, errors and help) inside of a `WrapIfAdditional` component.
12
- *
13
- * @param props - The `FieldTemplateProps` for this component
14
- */
15
- export default function FieldTemplate<
16
- T = unknown,
17
- S extends StrictRJSFSchema = RJSFSchema,
18
- F extends FormContextType = object,
19
- >(props: FieldTemplateProps<T, S, F>) {
20
- const {
21
- children,
22
- description,
23
- rawErrors,
24
- hidden,
25
- label,
26
- rawDescription,
27
- required,
28
- } = props;
29
-
30
- if (hidden) {
31
- return <div className="field-hidden">{children}</div>;
32
- }
33
-
34
- // check to see if there is rawDescription(string) before using description(ReactNode)
35
- // to prevent showing a blank description area
36
- const descriptionNode = rawDescription ? description : undefined;
37
-
38
- return (
39
- <Form.Slot
40
- label={{ text: label, required }}
41
- className="mb-4"
42
- error={{
43
- error: rawErrors,
44
- validateStatus: rawErrors?.length ? 'error' : undefined,
45
- }}
46
- >
47
- {children}
48
-
49
- <Typography.Paragraph className="text-xs w-full text-gray-500">
50
- {descriptionNode}
51
- </Typography.Paragraph>
52
- </Form.Slot>
53
- );
54
- }
@@ -1,112 +0,0 @@
1
- import React from 'react';
2
-
3
- import {
4
- type FormContextType,
5
- type IconButtonProps,
6
- type RJSFSchema,
7
- type StrictRJSFSchema,
8
- TranslatableString,
9
- } from '@rjsf/utils';
10
- import {
11
- IconCozCopy,
12
- IconCozLongArrowUp,
13
- IconCozPlusCircle,
14
- IconCozTrashCan,
15
- } from '@coze-arch/coze-design/icons';
16
- import {
17
- IconButton,
18
- type IconButtonProps as SemiIconBaseButtonProps,
19
- } from '@coze-arch/coze-design';
20
-
21
- // The `type` and `color` for IconButtonProps collides with props of `ButtonProps` so omit it to avoid Typescript issue
22
- export type BaseIconButtonProps<
23
- T = unknown,
24
- S extends StrictRJSFSchema = RJSFSchema,
25
- F extends FormContextType = object,
26
- > = Omit<IconButtonProps<T, S, F>, 'type' | 'color'>;
27
- type IconButtonComponent = <
28
- T = unknown,
29
- S extends StrictRJSFSchema = RJSFSchema,
30
- F extends FormContextType = object,
31
- >(
32
- props: BaseIconButtonProps<T, S, F>,
33
- ) => JSX.Element;
34
-
35
- export default function BaseIconButton<
36
- T = unknown,
37
- S extends StrictRJSFSchema = RJSFSchema,
38
- F extends FormContextType = object,
39
- >(props: BaseIconButtonProps<T, S, F> & SemiIconBaseButtonProps) {
40
- const { iconType, icon, onClick, uiSchema, registry, style, ...otherProps } =
41
- props;
42
-
43
- return (
44
- <IconButton onClick={onClick} icon={icon} {...otherProps} size="small" />
45
- );
46
- }
47
-
48
- export const AddButton: IconButtonComponent = props => {
49
- const {
50
- registry: { translateString },
51
- } = props;
52
- return (
53
- <BaseIconButton
54
- title={translateString(TranslatableString.AddItemButton)}
55
- {...props}
56
- icon={<IconCozPlusCircle />}
57
- />
58
- );
59
- };
60
-
61
- export const CopyButton: IconButtonComponent = props => {
62
- const {
63
- registry: { translateString },
64
- } = props;
65
- return (
66
- <BaseIconButton
67
- title={translateString(TranslatableString.CopyButton)}
68
- {...props}
69
- icon={<IconCozCopy />}
70
- />
71
- );
72
- };
73
-
74
- export const MoveDownButton: IconButtonComponent = props => {
75
- const {
76
- registry: { translateString },
77
- } = props;
78
- return (
79
- <BaseIconButton
80
- title={translateString(TranslatableString.MoveDownButton)}
81
- {...props}
82
- icon={<IconCozLongArrowUp className="rotate-180" />}
83
- />
84
- );
85
- };
86
-
87
- export const MoveUpButton: IconButtonComponent = props => {
88
- const {
89
- registry: { translateString },
90
- } = props;
91
- return (
92
- <BaseIconButton
93
- title={translateString(TranslatableString.MoveUpButton)}
94
- {...props}
95
- icon={<IconCozLongArrowUp />}
96
- />
97
- );
98
- };
99
-
100
- export const RemoveButton: IconButtonComponent = props => {
101
- const {
102
- registry: { translateString },
103
- } = props;
104
- return (
105
- <BaseIconButton
106
- title={translateString(TranslatableString.RemoveButton)}
107
- {...props}
108
- type="danger"
109
- icon={<IconCozTrashCan />}
110
- />
111
- );
112
- };
@@ -1,39 +0,0 @@
1
- import { type TemplatesType } from '@rjsf/utils';
2
-
3
- import TitleFieldTemplate from './title-field';
4
- import SubmitButton from './submit';
5
- import ObjectFieldTemplate from './object-field';
6
- import {
7
- AddButton,
8
- CopyButton,
9
- MoveDownButton,
10
- MoveUpButton,
11
- RemoveButton,
12
- } from './icon-button';
13
- import FieldErrorTemplate from './field-error';
14
- import FieldTemplate from './field';
15
- import ErrorListTemplate from './error-list';
16
- import DescriptionFieldTemplate from './description-field';
17
- import BaseInputTemplate from './base-input';
18
- import ArrayFieldItemTemplate from './array-field-item';
19
- import ArrayFieldTemplate from './array-field';
20
-
21
- export const templates: Partial<TemplatesType> = {
22
- ArrayFieldTemplate,
23
- ArrayFieldItemTemplate,
24
- BaseInputTemplate,
25
- FieldTemplate,
26
- ObjectFieldTemplate,
27
- ButtonTemplates: {
28
- AddButton,
29
- CopyButton,
30
- MoveDownButton,
31
- MoveUpButton,
32
- RemoveButton,
33
- SubmitButton,
34
- },
35
- TitleFieldTemplate,
36
- DescriptionFieldTemplate,
37
- FieldErrorTemplate,
38
- ErrorListTemplate,
39
- };
@@ -1,173 +0,0 @@
1
- import React from 'react';
2
-
3
- import { isString, isObject, isNumber } from 'lodash-es';
4
- import {
5
- type FormContextType,
6
- type GenericObjectType,
7
- type ObjectFieldTemplateProps,
8
- type ObjectFieldTemplatePropertyType,
9
- type RJSFSchema,
10
- type StrictRJSFSchema,
11
- type UiSchema,
12
- canExpand,
13
- // descriptionId,
14
- // getTemplate,
15
- getUiOptions,
16
- // titleId,
17
- } from '@rjsf/utils';
18
- import { Col, Row, TextArea } from '@coze-arch/coze-design';
19
-
20
- // const DESCRIPTION_COL_STYLE = {
21
- // paddingBottom: '8px',
22
- // };
23
-
24
- /** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the
25
- * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all
26
- * the properties.
27
- *
28
- * @param props - The `ObjectFieldTemplateProps` for this component
29
- */
30
- export default function ObjectFieldTemplate<
31
- T = unknown,
32
- S extends StrictRJSFSchema = RJSFSchema,
33
- F extends FormContextType = object,
34
- >(props: ObjectFieldTemplateProps<T, S, F>) {
35
- const {
36
- // description,
37
- disabled,
38
- formContext,
39
- formData,
40
- idSchema,
41
- onAddClick,
42
- properties,
43
- readonly,
44
- // required,
45
- registry,
46
- schema,
47
- // title,
48
- uiSchema,
49
- } = props;
50
- // const uiOptions = getUiOptions<T, S, F>(uiSchema);
51
- // const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>(
52
- // 'TitleFieldTemplate',
53
- // registry,
54
- // uiOptions,
55
- // );
56
- // const DescriptionFieldTemplate = getTemplate<
57
- // 'DescriptionFieldTemplate',
58
- // T,
59
- // S,
60
- // F
61
- // >('DescriptionFieldTemplate', registry, uiOptions);
62
- // Button templates are not overridden in the uiSchema
63
- const {
64
- ButtonTemplates: { AddButton },
65
- } = registry.templates;
66
- const { colSpan = 24, rowGutter = 24 } = formContext as GenericObjectType;
67
-
68
- const findSchema = (element: ObjectFieldTemplatePropertyType): S =>
69
- element.content.props.schema;
70
-
71
- const findSchemaType = (element: ObjectFieldTemplatePropertyType) =>
72
- findSchema(element).type;
73
-
74
- const findUiSchema = (
75
- element: ObjectFieldTemplatePropertyType,
76
- ): UiSchema<T, S, F> | undefined => element.content.props.uiSchema;
77
-
78
- const findUiSchemaField = (element: ObjectFieldTemplatePropertyType) =>
79
- getUiOptions(findUiSchema(element)).field;
80
-
81
- const findUiSchemaWidget = (element: ObjectFieldTemplatePropertyType) =>
82
- getUiOptions(findUiSchema(element)).widget;
83
-
84
- const calculateColSpan = (element: ObjectFieldTemplatePropertyType) => {
85
- const type = findSchemaType(element);
86
- const field = findUiSchemaField(element);
87
- const widget = findUiSchemaWidget(element);
88
-
89
- const defaultColSpan =
90
- properties.length < 2 || // Single or no field in object.
91
- type === 'object' ||
92
- type === 'array' ||
93
- widget === 'textarea'
94
- ? 24
95
- : 12;
96
-
97
- if (isObject(colSpan)) {
98
- const colSpanObj: GenericObjectType = colSpan;
99
- if (isString(widget)) {
100
- return colSpanObj[widget as string];
101
- }
102
- if (isString(field)) {
103
- return colSpanObj[field as string];
104
- }
105
- if (isString(type)) {
106
- return colSpanObj[type as string];
107
- }
108
- }
109
- if (isNumber(colSpan)) {
110
- return colSpan;
111
- }
112
- return defaultColSpan;
113
- };
114
-
115
- if (!props.properties.length) {
116
- return <TextArea id={idSchema.$id} />;
117
- }
118
- return (
119
- <fieldset
120
- id={idSchema.$id}
121
- className={'p-3 semi-card-bordered rounded-[4px]'}
122
- >
123
- <Row gutter={rowGutter}>
124
- {/* {title ? (
125
- <Col span={24}>
126
- <TitleFieldTemplate
127
- id={titleId<T>(idSchema)}
128
- title={title}
129
- required={required}
130
- schema={schema}
131
- uiSchema={uiSchema}
132
- registry={registry}
133
- />
134
- </Col>
135
- ) : null}
136
- {description ? (
137
- <Col span={24} style={DESCRIPTION_COL_STYLE}>
138
- <DescriptionFieldTemplate
139
- id={descriptionId<T>(idSchema)}
140
- description={description}
141
- schema={schema}
142
- uiSchema={uiSchema}
143
- registry={registry}
144
- />
145
- </Col>
146
- ) : null} */}
147
- {properties
148
- .filter(e => !e.hidden)
149
- .map((element: ObjectFieldTemplatePropertyType) => (
150
- <Col key={element.name} span={calculateColSpan(element)}>
151
- {element.content}
152
- </Col>
153
- ))}
154
- </Row>
155
-
156
- {canExpand(schema, uiSchema, formData) && (
157
- <Col span={24}>
158
- <Row gutter={rowGutter} justify="end">
159
- <Col span={6}>
160
- <AddButton
161
- className="object-property-expand"
162
- disabled={disabled || readonly}
163
- onClick={onAddClick(schema)}
164
- uiSchema={uiSchema}
165
- registry={registry}
166
- />
167
- </Col>
168
- </Row>
169
- </Col>
170
- )}
171
- </fieldset>
172
- );
173
- }
@@ -1,31 +0,0 @@
1
- import React from 'react';
2
- import {
3
- getSubmitButtonOptions,
4
- type FormContextType,
5
- type RJSFSchema,
6
- type StrictRJSFSchema,
7
- type SubmitButtonProps,
8
- } from '@rjsf/utils';
9
- import { Button } from '@coze-arch/coze-design';
10
-
11
- /** The `SubmitButton` renders a button that represent the `Submit` action on a form
12
- */
13
- export default function SubmitButton<
14
- T = unknown,
15
- S extends StrictRJSFSchema = RJSFSchema,
16
- F extends FormContextType = object,
17
- >({ uiSchema }: SubmitButtonProps<T, S, F>) {
18
- const {
19
- submitText,
20
- norender,
21
- props: submitButtonProps,
22
- } = getSubmitButtonOptions(uiSchema);
23
- if (norender) {
24
- return null;
25
- }
26
- return (
27
- <Button type="primary" {...submitButtonProps} htmlType="submit">
28
- {submitText}
29
- </Button>
30
- );
31
- }
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import {
3
- type FormContextType,
4
- type TitleFieldProps,
5
- type RJSFSchema,
6
- type StrictRJSFSchema,
7
- getUiOptions,
8
- } from '@rjsf/utils';
9
- import { Typography } from '@coze-arch/coze-design';
10
-
11
- /** The `TitleField` is the template to use to render the title of a field
12
- *
13
- * @param props - The `TitleFieldProps` for this component
14
- */
15
- export default function TitleField<
16
- T = unknown,
17
- S extends StrictRJSFSchema = RJSFSchema,
18
- F extends FormContextType = object,
19
- >({ id, uiSchema, title }: TitleFieldProps<T, S, F>) {
20
- const uiOptions = getUiOptions<T, S, F>(uiSchema);
21
-
22
- return (
23
- <div id={id} className="my-1">
24
- <Typography.Title heading={5}>
25
- {uiOptions.title || title}
26
- </Typography.Title>
27
- <hr className="border-0 bg-secondary" style={{ height: '1px' }} />
28
- </div>
29
- );
30
- }