bi-sdk-react 0.0.72 → 0.0.73

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.
@@ -283,6 +283,7 @@ export const InputPlugin: PluginType = {
283
283
  },
284
284
  cascadeIds: [],
285
285
  },
286
+ events: [{name: "内容变化", handler: "change"}]
286
287
  };
287
288
 
288
289
  export const InputNumberPlugin: PluginType = {
@@ -307,6 +308,7 @@ export const InputNumberPlugin: PluginType = {
307
308
  },
308
309
  cascadeIds: [],
309
310
  },
311
+ events: [{name: "内容变化", handler: "change"}]
310
312
  };
311
313
 
312
314
  export const SelectPlugin: PluginType = {
@@ -329,6 +331,7 @@ export const SelectPlugin: PluginType = {
329
331
  },
330
332
  cascadeIds: [],
331
333
  },
334
+ events: [{name: "内容变化", handler: "change"}]
332
335
  };
333
336
 
334
337
  export const CapsulePlugin: PluginType = {
@@ -351,6 +354,7 @@ export const CapsulePlugin: PluginType = {
351
354
  },
352
355
  cascadeIds: [],
353
356
  },
357
+ events: [{name: "内容变化", handler: "change"}]
354
358
  };
355
359
 
356
360
  export const CheckboxPlugin: PluginType = {
@@ -372,6 +376,7 @@ export const CheckboxPlugin: PluginType = {
372
376
  },
373
377
  cascadeIds: [],
374
378
  },
379
+ events: [{name: "内容变化", handler: "change"}]
375
380
  };
376
381
 
377
382
  export const DatePickerPlugin: PluginType = {
@@ -391,6 +396,7 @@ export const DatePickerPlugin: PluginType = {
391
396
  },
392
397
  cascadeIds: [],
393
398
  },
399
+ events: [{name: "内容变化", handler: "change"}]
394
400
  };
395
401
 
396
402
  export const SwitchPlugin: PluginType = {
@@ -409,6 +415,7 @@ export const SwitchPlugin: PluginType = {
409
415
  },
410
416
  cascadeIds: [],
411
417
  },
418
+ events: [{name: "内容变化", handler: "change"}]
412
419
  };
413
420
 
414
421
  export const SpacePlugin: PluginType = {
@@ -2,11 +2,11 @@ import { Radio, type RadioGroupProps } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
-
5
+ import { useEvent } from "../../../hooks/event";
6
6
 
7
7
  export type CapsuleRenderProps = {
8
8
  var?: string;
9
- size?: RadioGroupProps['size']
9
+ size?: RadioGroupProps["size"];
10
10
  options?: { label: string; value: any }[];
11
11
  item: SchemaItemType;
12
12
  onChange?: (v: any) => void;
@@ -23,10 +23,12 @@ export const CapsuleRender: React.FC<CapsuleRenderProps> = ({
23
23
  className,
24
24
  }) => {
25
25
  const { handleCallback, setVar } = useContext(PageContext);
26
+ const { handleEvent } = useEvent(item);
26
27
  const change = (v: any) => {
27
28
  if (onChange) onChange(v);
28
29
  if (item && varName) setVar(item, varName, v);
29
30
  handleCallback(item);
31
+ handleEvent("change", v);
30
32
  };
31
33
  return (
32
34
  <span id={id}>
@@ -2,7 +2,7 @@ import { Checkbox } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
-
5
+ import { useEvent } from "../../../hooks/event";
6
6
 
7
7
  export type CheckboxRenderProps = {
8
8
  var?: string;
@@ -25,6 +25,7 @@ export const CheckboxRender: React.FC<CheckboxRenderProps> = ({
25
25
  className,
26
26
  }) => {
27
27
  const { handleCallback, setVar } = useContext(PageContext);
28
+ const { handleEvent } = useEvent(item);
28
29
  const groupStyle: React.CSSProperties = {
29
30
  ...style,
30
31
  display: layout === "grid" ? "grid" : "flex",
@@ -37,6 +38,7 @@ export const CheckboxRender: React.FC<CheckboxRenderProps> = ({
37
38
  if (onChange) onChange(v);
38
39
  if (item && varName) setVar(item, varName, v);
39
40
  handleCallback(item);
41
+ handleEvent("change", v);
40
42
  };
41
43
  return (
42
44
  <span id={id}>
@@ -3,7 +3,7 @@ import dayjs, { Dayjs } from "dayjs";
3
3
  import React, { useContext } from "react";
4
4
  import { PageContext } from "../../../context/PageContext";
5
5
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
6
-
6
+ import { useEvent } from "../../../hooks/event";
7
7
 
8
8
  export type DatePickerRenderProps = {
9
9
  var?: string;
@@ -30,10 +30,12 @@ export const DatePickerRender: React.FC<DatePickerRenderProps> = ({
30
30
  className,
31
31
  }) => {
32
32
  const { handleCallback, setVar } = useContext(PageContext);
33
+ const { handleEvent } = useEvent(item);
33
34
  const change = (val?: string | [string, string]) => {
34
35
  if (onChange) onChange(val);
35
36
  if (item && varName) setVar(item, varName, val as any);
36
37
  handleCallback(item);
38
+ handleEvent("change", val);
37
39
  };
38
40
  if (type === "time") {
39
41
  const v =
@@ -90,7 +92,9 @@ export const DatePickerRender: React.FC<DatePickerRenderProps> = ({
90
92
  showTime={showTime}
91
93
  onChange={(d) =>
92
94
  change(
93
- d && d[0] && d[1] ? [d[0].format(fmt), d[1].format(fmt)] : undefined
95
+ d && d[0] && d[1]
96
+ ? [d[0].format(fmt), d[1].format(fmt)]
97
+ : undefined,
94
98
  )
95
99
  }
96
100
  style={{ ...(item?.style || {}), ...style }}
@@ -2,6 +2,7 @@ import { InputNumber, type InputNumberProps } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
+ import { useEvent } from "../../../hooks/event";
5
6
 
6
7
  export type InputNumberRenderProps = {
7
8
  var?: string;
@@ -33,10 +34,12 @@ export const InputNumberRender: React.FC<InputNumberRenderProps> = ({
33
34
  className,
34
35
  }) => {
35
36
  const { handleCallback, setVar } = useContext(PageContext);
37
+ const { handleEvent } = useEvent(item);
36
38
  const change = (v?: number) => {
37
39
  if (onChange) onChange(v);
38
40
  if (item && varName) setVar(item, varName, v);
39
41
  handleCallback(item);
42
+ handleEvent("change", v);
40
43
  };
41
44
  return (
42
45
  <InputNumber
@@ -2,6 +2,7 @@ import { Input, type InputProps } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
+ import { useEvent } from "../../../hooks/event";
5
6
 
6
7
  export type InputRenderProps = {
7
8
  var?: string;
@@ -34,9 +35,11 @@ export const InputRender: React.FC<InputRenderProps> = ({
34
35
  className,
35
36
  }) => {
36
37
  const { handleCallback, setVar } = useContext(PageContext);
38
+ const { handleEvent } = useEvent(item);
37
39
  const change = (v: string) => {
38
40
  if (onChange) onChange(v);
39
41
  if (item && varName) setVar(item, varName, v);
42
+ handleEvent("change", v);
40
43
  };
41
44
  const searchClick = () => {
42
45
  if (onSearch) onSearch(value || "");
@@ -2,6 +2,7 @@ import { Select, type SelectProps } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
+ import { useEvent } from "../../../hooks/event";
5
6
 
6
7
  export type SelectRenderProps = {
7
8
  var?: string;
@@ -30,10 +31,12 @@ export const SelectRender: React.FC<SelectRenderProps> = ({
30
31
  className,
31
32
  }) => {
32
33
  const { handleCallback, setVar } = useContext(PageContext);
34
+ const { handleEvent } = useEvent(item);
33
35
  const change = (v: any) => {
34
36
  if (onChange) onChange(v);
35
37
  if (item && varName) setVar(item, varName, v);
36
38
  handleCallback(item);
39
+ handleEvent("change", v);
37
40
  };
38
41
  return (
39
42
  <Select
@@ -2,6 +2,7 @@ import { Switch, type SwitchProps } from "antd";
2
2
  import React, { useContext } from "react";
3
3
  import { PageContext } from "../../../context/PageContext";
4
4
  import { HtmlBaseProps, SchemaItemType } from "../../../typing";
5
+ import { useEvent } from "../../../hooks/event";
5
6
 
6
7
  export type SwitchRenderProps = {
7
8
  var?: string;
@@ -28,10 +29,12 @@ export const SwitchRender: React.FC<SwitchRenderProps> = ({
28
29
  className,
29
30
  }) => {
30
31
  const { handleCallback, setVar } = useContext(PageContext);
32
+ const { handleEvent } = useEvent(item);
31
33
  const change = (v: boolean) => {
32
34
  if (onChange) onChange(v);
33
35
  if (item && varName) setVar(item, varName, v);
34
36
  handleCallback(item);
37
+ handleEvent("change", v);
35
38
  };
36
39
  return (
37
40
  <span>
@@ -1,4 +1,4 @@
1
- import React, { MouseEventHandler } from "react";
1
+ import React, { Key, MouseEventHandler } from "react";
2
2
 
3
3
  export type ChatRequestType = {
4
4
  message: string;
@@ -61,8 +61,32 @@ export type ChatMessageType = {
61
61
  sending?: boolean;
62
62
  };
63
63
 
64
+ export type ExampleItemType = {
65
+ id: Key;
66
+ name: string;
67
+ description?: string | null;
68
+ cover?: string;
69
+ item: SchemaItemType;
70
+ };
71
+ export type TemplateItemType = {
72
+ id: Key;
73
+ name: string;
74
+ description?: string | null;
75
+ cover?: string;
76
+ schema: PageSchema;
77
+ };
78
+
79
+ export type PaginationType<T> = {
80
+ total: number;
81
+ list: T[];
82
+ }
83
+
64
84
  export type FetchType = {
65
85
  upload?: (file: File) => Promise<{ id: string; name: string }>;
86
+ exampleList?: (current?: number, size?: number, keyword?: string) => Promise<Omit<ExampleItemType, "item">[] | PaginationType<Omit<ExampleItemType, "item">>>;
87
+ exampleDetail?: (id: Key) => Promise<ExampleItemType>;
88
+ templateList?: (current?: number, size?: number, keyword?: string) => Promise<Omit<TemplateItemType, "schema">[] | PaginationType<Omit<TemplateItemType, "schema">>>;
89
+ templateDetail?: (id: Key) => Promise<TemplateItemType>;
66
90
  ai?: {
67
91
  chat: (
68
92
  bizType: string,
@@ -75,11 +99,18 @@ export type FetchType = {
75
99
  bizId: string,
76
100
  ) => Promise<ChatConversationType[]>;
77
101
  activateConversation?: (conversationId: string) => Promise<boolean>;
78
- messageList: (conversationId: string, prevId?: string) => Promise<ChatMessageType[]>;
102
+ messageList: (
103
+ conversationId: string,
104
+ prevId?: string,
105
+ ) => Promise<ChatMessageType[]>;
79
106
  removeConversation: (conversationId: string) => Promise<boolean>;
80
107
  removeMessage: (messageId: string) => Promise<boolean>;
81
108
  };
82
- dataset?: (dataSetId: string, params: Record<string, any>, aiPrompt?: string) => Promise<any>;
109
+ dataset?: (
110
+ dataSetId: string,
111
+ params: Record<string, any>,
112
+ aiPrompt?: string,
113
+ ) => Promise<any>;
83
114
  };
84
115
 
85
116
  export type HtmlBaseProps = {
@@ -109,7 +140,7 @@ export type SchemaItemType = {
109
140
  events?: {
110
141
  name: string;
111
142
  script: string;
112
- }[]
143
+ }[];
113
144
  };
114
145
 
115
146
  export type PluginType = {
@@ -198,7 +229,7 @@ export type PageSchema = {
198
229
  aiPrompt?: string;
199
230
  output: DataSetOutput;
200
231
  dependencies?: string[];
201
- }[]
232
+ }[];
202
233
  };
203
234
 
204
235
  export type EnvType = {
package/src/example.tsx CHANGED
@@ -15,6 +15,8 @@ import {
15
15
  DatasetAddFunction,
16
16
  DatasetSelectorFunction,
17
17
  FieldType,
18
+ PageSchema,
19
+ SchemaItemType,
18
20
  } from "./components/typing";
19
21
  import { uuid } from "./components/utils";
20
22
 
@@ -194,8 +196,7 @@ export const Example: React.FC = () => {
194
196
  ),
195
197
  removeConversation: async (conversationId) =>
196
198
  Promise.resolve(true),
197
- removeMessage: async (messageId) =>
198
- Promise.resolve(true),
199
+ removeMessage: async (messageId) => Promise.resolve(true),
199
200
  },
200
201
  dataset: async (dataSetId, params, aiPrompt) => {
201
202
  console.log("dataset", dataSetId, params, aiPrompt);
@@ -203,11 +204,42 @@ export const Example: React.FC = () => {
203
204
  code: "OK",
204
205
  data: {
205
206
  ...params,
206
- }
207
+ },
207
208
  });
208
209
  },
209
210
  upload: async (file) =>
210
211
  Promise.resolve({ id: uuid(), name: file.name }),
212
+ exampleList: async () =>
213
+ Promise.resolve({
214
+ total: 1,
215
+ list: [
216
+ {
217
+ id: 1,
218
+ name: "example",
219
+ description: "exampleexampleexampleexampleexampleexample",
220
+ },
221
+ ],
222
+ }),
223
+ exampleDetail: async (id) =>
224
+ Promise.resolve({
225
+ id,
226
+ name: "test",
227
+ item: schema.items[0] as SchemaItemType,
228
+ }),
229
+ templateList: async () =>
230
+ Promise.resolve([
231
+ {
232
+ id: 1,
233
+ name: "example",
234
+ description: "exampleexampleexampleexampleexampleexample",
235
+ },
236
+ ]),
237
+ templateDetail: async (id) =>
238
+ Promise.resolve({
239
+ id,
240
+ name: "test",
241
+ schema: schema as PageSchema,
242
+ }),
211
243
  }}
212
244
  />
213
245
  </EditDrawer>
@@ -301,7 +333,9 @@ function datasetAdd(): DatasetAddFunction {
301
333
  onClose();
302
334
  }}
303
335
  >
304
- <Button onClick={() => onAdd({...dataset, id: uuid()})}>添加数据集</Button>
336
+ <Button onClick={() => onAdd({ ...dataset, id: uuid() })}>
337
+ 添加数据集
338
+ </Button>
305
339
  </Drawer>
306
340
  );
307
341
  };