@ibiz-template-plugin/ibiz-file-previewer 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 (42) hide show
  1. package/README.md +97 -25
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.es.js +925 -488
  4. package/dist/index.umd.js +1 -1
  5. package/dist/style.css +2 -2
  6. package/dist/types/component/file-preview-item/file-preview-html/file-preview-html.d.ts +20 -0
  7. package/dist/types/component/file-preview-item/file-preview-image/file-preview-image.d.ts +22 -0
  8. package/dist/types/component/file-preview-item/file-preview-image-group/file-preview-image-group.d.ts +17 -5
  9. package/dist/types/component/file-preview-item/file-preview-image-group/image-page/image-page.d.ts +21 -4
  10. package/dist/types/component/file-preview-item/file-preview-md/file-preview-md.d.ts +10 -6
  11. package/dist/types/component/file-preview-item/file-preview-text/file-preview-text.d.ts +6 -2
  12. package/dist/types/component/file-preview-item/file-preview-unknown/file-preview-unkown.d.ts +7 -3
  13. package/dist/types/component/file-preview-item/index.d.ts +6 -0
  14. package/dist/types/component/file-preview-shell/file-preview-shell.d.ts +6 -3
  15. package/dist/types/component/index.d.ts +3 -0
  16. package/dist/types/component/loading/loading.d.ts +14 -0
  17. package/dist/types/const/constant.d.ts +6 -5
  18. package/dist/types/const/index.d.ts +2 -0
  19. package/dist/types/const/{file-type.d.ts → type.d.ts} +30 -2
  20. package/dist/types/controller/file-preview-item/file-preview-image-controller.d.ts +42 -0
  21. package/dist/types/controller/{file-preview-image-group-controller.d.ts → file-preview-item/file-preview-image-group-controller.d.ts} +12 -3
  22. package/dist/types/controller/{file-preview-item-controller.d.ts → file-preview-item/file-preview-item-controller.d.ts} +2 -11
  23. package/dist/types/controller/{file-preview-md-controller.d.ts → file-preview-item/file-preview-md-controller.d.ts} +1 -1
  24. package/dist/types/controller/{file-preview-text-controller.d.ts → file-preview-item/file-preview-text-controller.d.ts} +1 -1
  25. package/dist/types/controller/file-preview-item/file-prview-html-controller.d.ts +7 -0
  26. package/dist/types/controller/file-preview-item/index.d.ts +6 -0
  27. package/dist/types/controller/file-preview-item-dispatcher.d.ts +4 -3
  28. package/dist/types/controller/file-preview-shell-controller.d.ts +16 -2
  29. package/dist/types/controller/index.d.ts +5 -3
  30. package/dist/types/icon/index.d.ts +8 -0
  31. package/dist/types/index.d.ts +1 -1
  32. package/dist/types/interface/i-file-preview-item-controller.d.ts +27 -20
  33. package/dist/types/interface/i-file-preview-shell-controller.d.ts +14 -12
  34. package/dist/types/interface/i-file-previewer-option.d.ts +8 -4
  35. package/dist/types/interface/index.d.ts +1 -1
  36. package/dist/types/util/util.d.ts +2 -1
  37. package/package.json +1 -1
  38. package/dist/types/component/file-preview-item/file-preview-img/file-preview-img.d.ts +0 -19
  39. package/dist/types/component/file-preview-item/file-preview-json/file-preview-json.d.ts +0 -18
  40. package/dist/types/component/file-preview-item/file-preview-xml/file-preview-xml.d.ts +0 -18
  41. package/dist/types/const/action-type.d.ts +0 -6
  42. package/dist/types/controller/file-preview-image-controller.d.ts +0 -18
@@ -1,4 +1,4 @@
1
- import { IInitializeParam, IFilePreviewItemState, IFilePreviewItemController, IFilePreviewShellController } from '../interface';
1
+ import { IFilePreviewItemState, IFilePreviewItemController, IFilePreviewShellController } from '../../interface';
2
2
  /**
3
3
  * 文件预览项控制器
4
4
  */
@@ -19,19 +19,10 @@ export declare class FilePreviewItemController<S extends IFilePreviewItemState =
19
19
  protected initState(): void;
20
20
  /**
21
21
  * 初始化
22
- * @param param 初始化参数
23
22
  */
24
- initialize(param: IInitializeParam): Promise<void>;
23
+ initialize(): Promise<void>;
25
24
  /**
26
25
  * 获取内容
27
26
  */
28
27
  getContent(): Promise<string | object>;
29
- /**
30
- * 缩小预览
31
- */
32
- zoomOutPreview(event: MouseEvent): void;
33
- /**
34
- * 放大预览
35
- */
36
- zoomInPreview(event: MouseEvent): void;
37
28
  }
@@ -1,6 +1,6 @@
1
1
  import { FilePreviewTextController } from './file-preview-text-controller';
2
2
  /**
3
- * HTML预览控制器
3
+ * MD预览控制器
4
4
  */
5
5
  export declare class FilePreviewMDController extends FilePreviewTextController {
6
6
  /**
@@ -1,4 +1,4 @@
1
- import { IFilePreviewItemState } from '../interface';
1
+ import { IFilePreviewItemState } from '../../interface';
2
2
  import { FilePreviewItemController } from './file-preview-item-controller';
3
3
  /**
4
4
  * 文本类预览控制器
@@ -0,0 +1,7 @@
1
+ import { IFilePreviewItemState } from '../../interface';
2
+ import { FilePreviewTextController } from './file-preview-text-controller';
3
+ /**
4
+ * HTML文件预览控制器
5
+ */
6
+ export declare class FilePreviewHtmlController<S extends IFilePreviewItemState = IFilePreviewItemState> extends FilePreviewTextController<S> {
7
+ }
@@ -0,0 +1,6 @@
1
+ export { FilePreviewImageController } from './file-preview-image-controller';
2
+ export { FilePreviewImageGroupController } from './file-preview-image-group-controller';
3
+ export { FilePreviewMDController } from './file-preview-md-controller';
4
+ export { FilePreviewTextController } from './file-preview-text-controller';
5
+ export { FilePreviewHtmlController } from './file-prview-html-controller';
6
+ export { FilePreviewItemController } from './file-preview-item-controller';
@@ -1,13 +1,14 @@
1
1
  import { Component } from 'vue';
2
2
  import { IFilePreviewItemConstructor } from '../interface';
3
+ import { EngineType } from '../const';
3
4
  /**
4
5
  * 文件预览分发器
5
6
  */
6
7
  export declare class FilePreviewItemDispatcher {
7
8
  /**
8
- * 文件预览组件映射表
9
+ * 引擎预览组件映射表
9
10
  */
10
- private static filePreviewMap;
11
+ private static enginePreviewMap;
11
12
  /**
12
13
  * 注册文件预览项
13
14
  * @param type 文件类型
@@ -24,7 +25,7 @@ export declare class FilePreviewItemDispatcher {
24
25
  * @param type
25
26
  * @returns
26
27
  */
27
- static getItem(type: string): {
28
+ static getItem(type: EngineType): {
28
29
  component: Component;
29
30
  controller: IFilePreviewItemConstructor;
30
31
  } | null;
@@ -1,5 +1,6 @@
1
- import { Ref } from 'vue';
2
- import { IFilePreviewerOption, IFilePreviewShellController, IFilePreviewerData, IFilePreviewShellState } from '../interface';
1
+ import { Component, Ref } from 'vue';
2
+ import { IFilePreviewerData, IFilePreviewerOption, IFilePreviewShellState, IFilePreviewItemController, IFilePreviewShellController } from '../interface';
3
+ import { EngineType } from '../const';
3
4
  /**
4
5
  * 文件预览器控制器
5
6
  */
@@ -9,6 +10,14 @@ export declare class FilePreviewShellController implements IFilePreviewShellCont
9
10
  * 当前 Vue 应用
10
11
  */
11
12
  private currentApp;
13
+ /**
14
+ * 文件预览组件
15
+ */
16
+ preViewComp: Component | undefined;
17
+ /**
18
+ * 文件预览控制器
19
+ */
20
+ preViewController: IFilePreviewItemController | undefined;
12
21
  /**
13
22
  * 文件预览器状态对象
14
23
  */
@@ -74,4 +83,9 @@ export declare class FilePreviewShellController implements IFilePreviewShellCont
74
83
  * @param event
75
84
  */
76
85
  exportToMd(event: MouseEvent): Promise<void>;
86
+ /**
87
+ * 切换引擎类型
88
+ * @param engineType
89
+ */
90
+ switchEngineType(engineType: EngineType): Promise<void>;
77
91
  }
@@ -1,4 +1,6 @@
1
1
  export { FilePreviewShellController } from './file-preview-shell-controller';
2
- export { FilePreviewTextController } from './file-preview-text-controller';
3
- export { FilePreviewImageController } from './file-preview-image-controller';
4
- export { FilePreviewImageGroupController } from './file-preview-image-group-controller';
2
+ export { FilePreviewMDController } from './file-preview-item/file-preview-md-controller';
3
+ export { FilePreviewHtmlController } from './file-preview-item/file-prview-html-controller';
4
+ export { FilePreviewTextController } from './file-preview-item/file-preview-text-controller';
5
+ export { FilePreviewImageController } from './file-preview-item/file-preview-image-controller';
6
+ export { FilePreviewImageGroupController } from './file-preview-item/file-preview-image-group-controller';
@@ -7,3 +7,11 @@ export declare const CounterClockwiseSvg: () => JSX.Element;
7
7
  export declare const ThumbnailSvg: () => JSX.Element;
8
8
  export declare const UpPageSvg: () => JSX.Element;
9
9
  export declare const DownPageSvg: () => JSX.Element;
10
+ export declare const DownSvg: () => JSX.Element;
11
+ export declare const ResetSvg: () => JSX.Element;
12
+ /**
13
+ * loadding图标
14
+ */
15
+ export declare const LoaddingSvg: (props: {
16
+ size: number;
17
+ }) => JSX.Element;
@@ -1,3 +1,3 @@
1
1
  export { FilePreviewShellController } from './controller';
2
2
  export type { IFilePreviewerData, IFilePreviewerOption } from './interface';
3
- export { ActionType } from './const/action-type';
3
+ export { ActionType, FileType } from './const';
@@ -1,3 +1,4 @@
1
+ import { FileType, ImageMode } from '../const';
1
2
  import { IFilePreviewShellController } from './i-file-preview-shell-controller';
2
3
  /**
3
4
  * 文件预览项状态
@@ -8,9 +9,9 @@ export interface IFilePreviewItemState {
8
9
  */
9
10
  content: string | object;
10
11
  /**
11
- * 放大倍数
12
+ * 文件类型
12
13
  */
13
- scale: number;
14
+ fileType: FileType;
14
15
  /**
15
16
  * 主题
16
17
  */
@@ -20,15 +21,35 @@ export interface IFilePreviewItemState {
20
21
  * 文件预览图片状态
21
22
  */
22
23
  export interface IFilePreviewImageState extends IFilePreviewItemState {
24
+ /**
25
+ * 放大倍数
26
+ */
27
+ scale: number;
23
28
  /**
24
29
  * 旋转角度
25
30
  */
26
31
  rotate: number;
32
+ /**
33
+ * X轴偏移
34
+ */
35
+ offsetX: number;
36
+ /**
37
+ * Y轴偏移
38
+ */
39
+ offsetY: number;
40
+ /**
41
+ * 启用转换
42
+ */
43
+ enableTransition: boolean;
44
+ /**
45
+ * 图片模式
46
+ */
47
+ mode: ImageMode;
27
48
  }
28
49
  /**
29
50
  * 文件预览图片组状态
30
51
  */
31
- export interface IFilePreviewImageGroupState extends IFilePreviewItemState {
52
+ export interface IFilePreviewImageGroupState extends IFilePreviewImageState {
32
53
  /**
33
54
  * 缩略图面板是否显示
34
55
  */
@@ -49,15 +70,10 @@ export interface IFilePreviewImageGroupState extends IFilePreviewItemState {
49
70
  * 总数
50
71
  */
51
72
  total: number;
52
- }
53
- /**
54
- * 文件预览初始化参数
55
- */
56
- export interface IInitializeParam {
57
73
  /**
58
- * 主题
74
+ * 旋转角度映射,key是图片组索引,value是旋转角度
59
75
  */
60
- theme: 'light' | 'dark';
76
+ rotateMap: Record<string, number>;
61
77
  }
62
78
  /**
63
79
  * 文件预览控制器
@@ -69,21 +85,12 @@ export interface IFilePreviewItemController {
69
85
  state: Record<string, any>;
70
86
  /**
71
87
  * 初始化
72
- * @param param 初始化参数
73
88
  */
74
- initialize(param: IInitializeParam): Promise<void>;
89
+ initialize(): Promise<void>;
75
90
  /**
76
91
  * 获取内容
77
92
  */
78
93
  getContent(): Promise<string | object>;
79
- /**
80
- * 缩小预览
81
- */
82
- zoomOutPreview(event: MouseEvent): void;
83
- /**
84
- * 放大预览
85
- */
86
- zoomInPreview(event: MouseEvent): void;
87
94
  }
88
95
  /**
89
96
  * 文件预览构造函数
@@ -1,7 +1,5 @@
1
- import { Component } from 'vue';
2
1
  import { IFilePreviewerData, IFilePreviewerOption } from './i-file-previewer-option';
3
- import { IFilePreviewItemController } from './i-file-preview-item-controller';
4
- import { EngineType } from '../const/file-type';
2
+ import { EngineType, FileType } from '../const';
5
3
  /**
6
4
  * 文件预览壳状态
7
5
  */
@@ -17,19 +15,11 @@ export interface IFilePreviewShellState {
17
15
  /**
18
16
  * 文件类型
19
17
  */
20
- fileType: string;
18
+ fileType: FileType;
21
19
  /**
22
20
  * 文件分类
23
21
  */
24
22
  fileCat: string;
25
- /**
26
- * 预览组件
27
- */
28
- preViewComp: Component | undefined;
29
- /**
30
- * 预览控制器
31
- */
32
- preViewController: IFilePreviewItemController | undefined;
33
23
  /**
34
24
  * 主题
35
25
  */
@@ -38,6 +28,18 @@ export interface IFilePreviewShellState {
38
28
  * 引擎类型
39
29
  */
40
30
  engineType: EngineType;
31
+ /**
32
+ * 引擎选项
33
+ */
34
+ engineOptions: string[];
35
+ /**
36
+ * 加载状态
37
+ */
38
+ isLoading: boolean;
39
+ /**
40
+ * 创建状态
41
+ */
42
+ isCreated: boolean;
41
43
  }
42
44
  /**
43
45
  * 文件预览壳控制器接口
@@ -1,3 +1,4 @@
1
+ import { FileType } from '../const';
1
2
  /**
2
3
  * 文件预览组件配置项 - 通过 URL 预览
3
4
  */
@@ -60,12 +61,15 @@ export interface IFilePreviewerOption {
60
61
  */
61
62
  getContent(id: string, type: string, cat: string): Promise<string | object | undefined>;
62
63
  /**
63
- * 获取文件路径
64
- * @param id
65
- * @param cat
64
+ * 获取图片内容
65
+ * - 标准图片返回值必须为 图片url路径 | 图片Base64内容
66
+ * - SVG图片必须返回 图片html内容
67
+ * @param id 标识
68
+ * @param type 类型
69
+ * @param cat 分类
66
70
  * @returns
67
71
  */
68
- getUrl: (id: string, cat: string) => Promise<string>;
72
+ getImgContent: (id: string, type: FileType, cat: string) => Promise<string>;
69
73
  /**
70
74
  * 上传文件至oss
71
75
  * @param file
@@ -1,3 +1,3 @@
1
1
  export type { IFilePreviewerData, IFilePreviewerOption, } from './i-file-previewer-option';
2
2
  export type { IFilePreviewShellState, IFilePreviewShellController, } from './i-file-preview-shell-controller';
3
- export type { IInitializeParam, IFilePreviewItemState, IFilePreviewImageState, IFilePreviewImageGroupState, IFilePreviewItemController, IFilePreviewItemConstructor, } from './i-file-preview-item-controller';
3
+ export type { IFilePreviewItemState, IFilePreviewImageState, IFilePreviewImageGroupState, IFilePreviewItemController, IFilePreviewItemConstructor, } from './i-file-preview-item-controller';
@@ -1,9 +1,10 @@
1
+ import { FileType } from '../const';
1
2
  /**
2
3
  * 文件名转为文件类型
3
4
  * @param fileName
4
5
  * @returns
5
6
  */
6
- export declare const fileNameToFileType: (fileName: string) => string;
7
+ export declare const fileNameToFileType: (fileName: string) => FileType;
7
8
  /**
8
9
  * 节流函数
9
10
  * @param func
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template-plugin/ibiz-file-previewer",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "iBiz文件预览器",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.es.js",
@@ -1,19 +0,0 @@
1
- import { PropType, CSSProperties } from 'vue';
2
- import { FilePreviewImageController } from '../../../controller';
3
- import './file-preview-img.scss';
4
- export declare const FilePreviewImg: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
- controller: {
6
- type: PropType<FilePreviewImageController>;
7
- required: true;
8
- };
9
- }>, {
10
- c: FilePreviewImageController<import("../../../interface").IFilePreviewImageState>;
11
- style: import("vue").ComputedRef<CSSProperties>;
12
- previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
13
- shouldRender: import("vue").Ref<boolean, boolean>;
14
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
15
- controller: {
16
- type: PropType<FilePreviewImageController>;
17
- required: true;
18
- };
19
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,18 +0,0 @@
1
- import { PropType } from 'vue';
2
- import { FilePreviewTextController } from '../../../controller';
3
- import './file-preview-json.scss';
4
- export declare const FilePreviewJson: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
- controller: {
6
- type: PropType<FilePreviewTextController>;
7
- required: true;
8
- };
9
- }>, {
10
- c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
11
- previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
12
- shouldRender: import("vue").Ref<boolean, boolean>;
13
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
14
- controller: {
15
- type: PropType<FilePreviewTextController>;
16
- required: true;
17
- };
18
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,18 +0,0 @@
1
- import { PropType } from 'vue';
2
- import { FilePreviewTextController } from '../../../controller';
3
- import './file-preview-xml.scss';
4
- export declare const FilePreviewXml: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
- controller: {
6
- type: PropType<FilePreviewTextController>;
7
- required: true;
8
- };
9
- }>, {
10
- c: FilePreviewTextController<import("../../../interface").IFilePreviewItemState>;
11
- previewRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
12
- shouldRender: import("vue").Ref<boolean, boolean>;
13
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
14
- controller: {
15
- type: PropType<FilePreviewTextController>;
16
- required: true;
17
- };
18
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,6 +0,0 @@
1
- export declare enum ActionType {
2
- DOWNORIGINAL = "DOWNORIGINAL",// 下载原始文件
3
- COPYTEXTCONTENT = "COPYTEXTCONTENT",// 复制文本内容
4
- DOWNPDF = "DOWNPDF",// 下载PDF文件
5
- DOWNMD = "DOWNMD"
6
- }
@@ -1,18 +0,0 @@
1
- import { IFilePreviewImageState } from '../interface';
2
- import { FilePreviewItemController } from './file-preview-item-controller';
3
- /**
4
- * 图片预览控制器
5
- */
6
- export declare class FilePreviewImageController<S extends IFilePreviewImageState = IFilePreviewImageState> extends FilePreviewItemController<S> {
7
- protected initState(): void;
8
- /**
9
- * 获取内容
10
- */
11
- getContent(): Promise<string | object>;
12
- /**
13
- * 改变旋转角度
14
- *
15
- * @param value
16
- */
17
- onRotateChange(value: number): void;
18
- }