@8btc/xcanvas 0.0.14-beta.2 → 0.0.14-beta.20

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.
package/README.md CHANGED
@@ -20,6 +20,8 @@ export interface XCanvasAPI {
20
20
  insertImgs: (url: string[]) => Promise<void>;
21
21
  /** 追加多张图片到画布末尾, 如果画布中存在对应图片(url相同),则不做任何操作 */
22
22
  appendImgs: (urls: string[]) => Promise<void>;
23
+ // 插入的图片后缀会自动带上时间戳后缀,用于解决maze跨域问题 `${url}?t=${Date.now()}`
24
+ appendImgsForMaze: (urls: string[]) => Promise<void>;
23
25
  /** 保存canvas数据 */
24
26
  save: () => any;
25
27
  /** 从数据中恢复canvas画布 */
@@ -39,18 +41,22 @@ export interface XCanvasAPI {
39
41
  reset: () => void;
40
42
  /**
41
43
  * 导出当前选区为图片(dataUrl), 特殊情况:当前选区为单张外部传入图片,则直接返回外部图片url
44
+ *
45
+ * @param tryToSplit 是否尝试拆分选区内的图片元素(当选区内全是图片时生效)
46
+ * 如果选区内的元素都是图片,则返回选区内图片url数组
47
+ * 如果选区内有非图片元素,则返回选区区域的dataUrl
42
48
  * @returns dataUrl | url
43
49
  * @throws 如果没有选区,调用这个函数会抛出错误
44
50
  */
45
- exportSelection: () => Promise<string>;
51
+ exportSelection: (tryToSplit?: boolean) => Promise<string | string[]>;
46
52
  /**
47
- * 插入embeddableElement元素
53
+ * 在当前旁边插入embeddableElement元素
48
54
  *
49
55
  * @param data 调用 renderEmbeddable 时, 可以从 element.data 访问到这里传入的数据
50
56
  * @param positonCalculator 入参为当前选区左上角x,y 和宽高,返回值为插入元素的左上角x,y,w,h
51
57
  * @returns 如果成功插入返回元素id,否则返回undefined
52
58
  */
53
- insertCustomElement: (
59
+ insertCustomElementBesideSelection: (
54
60
  data: {
55
61
  component: string,
56
62
  link?: string,
@@ -70,5 +76,19 @@ export interface XCanvasAPI {
70
76
  height: number,
71
77
  }
72
78
  ) => string | undefined;
79
+ /**
80
+ * 判断当前是否可以裁切图片
81
+ */
82
+ predicateCropImage: () => boolean;
83
+ /**
84
+ * 裁切图片
85
+ */
86
+ cropImage: () => void;
87
+ /**
88
+ * 删除选区里的全部元素
89
+ */
90
+ deleteSelection: () => void;
91
+ /** 插入多个视频 */
92
+ insertVideos: (urls: string[]) => Promise<void>;
73
93
  }
74
94
  ```
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export declare interface XCanvasAPI {
13
13
  insertImgs: (url: string[]) => Promise<void>;
14
14
  /** 追加多张图片到画布末尾, 如果画布中存在对应图片(url相同),则不做任何操作 */
15
15
  appendImgs: (urls: string[]) => Promise<void>;
16
+ appendImgsForMaze: (urls: string[]) => Promise<void>;
16
17
  /** 保存canvas数据 */
17
18
  save: () => any;
18
19
  /** 从数据中恢复canvas画布 */
@@ -32,18 +33,22 @@ export declare interface XCanvasAPI {
32
33
  reset: () => void;
33
34
  /**
34
35
  * 导出当前选区为图片(dataUrl), 特殊情况:当前选区为单张外部传入图片,则直接返回外部图片url
36
+ *
37
+ * @param tryToSplit 是否尝试拆分选区内的图片元素(当选区内全是图片时生效)
38
+ * 如果选区内的元素都是图片,则返回选区内图片url数组
39
+ * 如果选区内有非图片元素,则返回选区区域的dataUrl
35
40
  * @returns dataUrl | url
36
41
  * @throws 如果没有选区,调用这个函数会抛出错误
37
42
  */
38
- exportSelection: () => Promise<string>;
43
+ exportSelection: (tryToSplit?: boolean) => Promise<string | string[]>;
39
44
  /**
40
- * 插入embeddableElement元素
45
+ * 在当前旁边插入embeddableElement元素
41
46
  *
42
47
  * @param data 调用 renderEmbeddable 时, 可以从 element.data 访问到这里传入的数据
43
48
  * @param positonCalculator 入参为当前选区左上角x,y 和宽高,返回值为插入元素的左上角x,y,w,h
44
49
  * @returns 如果成功插入返回元素id,否则返回undefined
45
50
  */
46
- insertCustomElement: (data: {
51
+ insertCustomElementBesideSelection: (data: {
47
52
  component: string;
48
53
  link?: string;
49
54
  [key: string]: any;
@@ -70,6 +75,10 @@ export declare interface XCanvasAPI {
70
75
  * 删除选区里的全部元素
71
76
  */
72
77
  deleteSelection: () => void;
78
+ /** 插入一个视频 */
79
+ insertVideo: (urls: string) => Promise<void>;
80
+ /** 插入一个SVG */
81
+ insertSvg: (urls: string) => Promise<void>;
73
82
  }
74
83
 
75
84
  export declare interface XcanvasProps extends ExcalidrawProps {