@duxweb/dvha-core 0.1.11 → 0.1.13

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 (36) hide show
  1. package/dist/cjs/components/auth/can.cjs +1 -1
  2. package/dist/cjs/directive/permission.cjs +1 -1
  3. package/dist/cjs/hooks/exportCsv.cjs +2 -0
  4. package/dist/cjs/hooks/importCsv.cjs +2 -0
  5. package/dist/cjs/hooks/overlay.cjs +1 -1
  6. package/dist/cjs/hooks/upload/local.cjs +1 -0
  7. package/dist/cjs/hooks/upload/s3.cjs +1 -0
  8. package/dist/cjs/hooks/upload.cjs +1 -0
  9. package/dist/cjs/index.cjs +1 -1
  10. package/dist/cjs/preset/dataProvider.cjs +1 -1
  11. package/dist/cjs/provider/app.cjs +1 -1
  12. package/dist/esm/components/auth/can.js +7 -5
  13. package/dist/esm/directive/permission.js +4 -2
  14. package/dist/esm/hooks/exportCsv.js +55 -0
  15. package/dist/esm/hooks/importCsv.js +56 -0
  16. package/dist/esm/hooks/overlay.js +6 -4
  17. package/dist/esm/hooks/upload/local.js +31 -0
  18. package/dist/esm/hooks/upload/s3.js +72 -0
  19. package/dist/esm/hooks/upload.js +269 -0
  20. package/dist/esm/index.js +66 -56
  21. package/dist/esm/preset/dataProvider.js +67 -48
  22. package/dist/esm/provider/app.js +4 -2
  23. package/dist/types/hooks/data.d.ts +1 -1
  24. package/dist/types/hooks/export.d.ts +1 -2
  25. package/dist/types/hooks/exportCsv.d.ts +17 -0
  26. package/dist/types/hooks/import.d.ts +1 -1
  27. package/dist/types/hooks/importCsv.d.ts +26 -0
  28. package/dist/types/hooks/index.d.ts +4 -0
  29. package/dist/types/hooks/theme.d.ts +0 -4
  30. package/dist/types/hooks/upload/index.d.ts +3 -0
  31. package/dist/types/hooks/upload/local.d.ts +2 -0
  32. package/dist/types/hooks/upload/s3.d.ts +12 -0
  33. package/dist/types/hooks/upload/types.d.ts +14 -0
  34. package/dist/types/hooks/upload.d.ts +141 -0
  35. package/dist/types/types/data.d.ts +8 -0
  36. package/package.json +2 -1
@@ -0,0 +1,17 @@
1
+ import type { IUseExportProps } from './export';
2
+ export interface IUseExportCsvProps extends IUseExportProps {
3
+ filename?: string;
4
+ headers?: string[] | boolean;
5
+ csvOptions?: {
6
+ delimiter?: string;
7
+ quote?: string | boolean;
8
+ escape?: string;
9
+ eol?: string;
10
+ writeBOM?: boolean;
11
+ };
12
+ }
13
+ export declare function useExportCsv(props: IUseExportCsvProps): {
14
+ data: import("vue").Ref<undefined, undefined> | import("vue").Ref<import("@tanstack/query-core").InfiniteData<import("..").IDataProviderResponse | undefined, unknown>, import("@tanstack/query-core").InfiniteData<import("..").IDataProviderResponse | undefined, unknown>>;
15
+ isLoading: import("vue").ComputedRef<boolean>;
16
+ trigger: () => Promise<void>;
17
+ };
@@ -7,7 +7,7 @@ interface IImportProgress {
7
7
  processedBatches: number;
8
8
  percentage: number;
9
9
  }
10
- interface IUseImportProps extends IDataProviderCustomOptions {
10
+ export interface IUseImportProps extends IDataProviderCustomOptions {
11
11
  options?: UseMutationOptions<IDataProviderResponse, DefaultError, IDataProviderCustomOptions>;
12
12
  onComplete?: (progress: IImportProgress) => void;
13
13
  onProgress?: (progress: IImportProgress) => void;
@@ -0,0 +1,26 @@
1
+ import type { IUseImportProps } from './import';
2
+ export interface IUseImportCsvProps extends IUseImportProps {
3
+ csvOptions?: {
4
+ delimiter?: string;
5
+ wrap?: string;
6
+ eol?: string;
7
+ excelBOM?: boolean;
8
+ headerFields?: string[];
9
+ keys?: string[];
10
+ trimHeaderFields?: boolean;
11
+ trimFieldValues?: boolean;
12
+ };
13
+ }
14
+ export declare function useImportCsv(props: IUseImportCsvProps): {
15
+ open: () => void;
16
+ readFile: (file: File) => Promise<void>;
17
+ isLoading: import("vue").ComputedRef<boolean>;
18
+ progress: import("vue").ComputedRef<{
19
+ totalItems: number;
20
+ processedItems: number;
21
+ totalBatches: number;
22
+ processedBatches: number;
23
+ percentage: number;
24
+ }>;
25
+ trigger: (data: Record<string, any>[]) => Promise<void>;
26
+ };
@@ -10,3 +10,7 @@ export * from './select';
10
10
  export * from './form';
11
11
  export * from './export';
12
12
  export * from './import';
13
+ export * from './exportCsv';
14
+ export * from './importCsv';
15
+ export * from './upload';
16
+ export * from './upload/index';
@@ -1,9 +1,5 @@
1
1
  import type { UseColorModeOptions } from '@vueuse/core';
2
2
  import type { ITheme } from '../types';
3
- export interface RippleOptions {
4
- duration?: number;
5
- easing?: string;
6
- }
7
3
  export declare function useTheme(options?: UseColorModeOptions): {
8
4
  toggle: (n?: number) => "light" | "dark" | "auto";
9
5
  mode: import("vue").ShallowRef<"light" | "dark" | "auto">;
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './local';
3
+ export * from './s3';
@@ -0,0 +1,2 @@
1
+ import type { IUploadDriver } from './types';
2
+ export declare const createLocalUploadDriver: () => IUploadDriver;
@@ -0,0 +1,12 @@
1
+ import type { IDataProviderResponse } from '../../types';
2
+ import type { IUploadDriver } from './types';
3
+ export interface IS3SignData {
4
+ uploadUrl: string;
5
+ url: string;
6
+ params?: Record<string, string>;
7
+ }
8
+ export declare function createS3UploadDriver(config: {
9
+ signPath: string;
10
+ signCallback?: (response: IDataProviderResponse) => IS3SignData;
11
+ [key: string]: any;
12
+ }): IUploadDriver;
@@ -0,0 +1,14 @@
1
+ import type { IDataProviderCustomOptions, IDataProviderResponse } from '../../types';
2
+ export interface IUploadDriver {
3
+ upload(file: File, options: IUploadDriverOptions): Promise<IDataProviderResponse>;
4
+ }
5
+ export interface IUploadDriverOptions extends Omit<IDataProviderCustomOptions, 'onUploadProgress' | 'onDownloadProgress'> {
6
+ method?: 'POST' | 'PUT';
7
+ signal?: AbortSignal;
8
+ onUploadProgress?: (progressData: {
9
+ loaded: number;
10
+ total?: number;
11
+ percent?: number;
12
+ }) => void;
13
+ params?: Record<string, string>;
14
+ }
@@ -0,0 +1,141 @@
1
+ import type { UseMutationOptions } from '@tanstack/vue-query';
2
+ import type { IDataProviderCustomOptions, IDataProviderError, IDataProviderResponse } from '../types';
3
+ import type { IUploadDriver } from './upload/types';
4
+ export interface IUseUploadProps extends Omit<IDataProviderCustomOptions, 'onUploadProgress' | 'onDownloadProgress'> {
5
+ method?: 'POST' | 'PUT';
6
+ maxFileSize?: number;
7
+ maxFileCount?: number;
8
+ accept?: string;
9
+ multiple?: boolean;
10
+ autoUpload?: boolean;
11
+ driver?: IUploadDriver;
12
+ options?: UseMutationOptions<IDataProviderResponse, IDataProviderError, IDataProviderCustomOptions>;
13
+ onSuccess?: (data: IDataProviderResponse) => void;
14
+ onError?: (error: IDataProviderError) => void;
15
+ onDataCallback?: (data: IDataProviderResponse, file: IUseUploadFile) => Partial<IUseUploadFileData>;
16
+ onProgress?: (progress: IOverallProgress) => void;
17
+ onCancel?: (id: string) => void;
18
+ onComplete?: (data: IUseUploadFile[]) => void;
19
+ }
20
+ export type IUseUploadType = 'file' | 'blob' | 'base64' | 'arrayBuffer';
21
+ export type IUseUploadPayload = File | Blob | string | ArrayBuffer;
22
+ export interface IUseUploadFileData {
23
+ url?: string;
24
+ filename?: string;
25
+ filesize?: number;
26
+ filetype?: string;
27
+ }
28
+ export interface IUseUploadFile extends IUseUploadFileData {
29
+ id: string;
30
+ progress?: IUploadProgress;
31
+ file?: File;
32
+ filesizeText?: string;
33
+ status?: 'pending' | 'uploading' | 'success' | 'error' | 'cancelled';
34
+ error?: string;
35
+ data?: IDataProviderResponse;
36
+ }
37
+ export interface IUploadProgress {
38
+ loaded: number;
39
+ total?: number;
40
+ percent?: number;
41
+ speed?: number;
42
+ speedText?: string;
43
+ uploadTime?: number;
44
+ remainingTime?: number;
45
+ }
46
+ export interface IOverallProgress {
47
+ index: number;
48
+ totalFiles: number;
49
+ currentFile?: IUseUploadFile;
50
+ totalPercent: number;
51
+ totalLoaded: number;
52
+ totalSize: number;
53
+ }
54
+ export declare function useUpload(props: IUseUploadProps): {
55
+ isUploading: import("vue").Ref<boolean, boolean>;
56
+ uploadFiles: import("vue").Ref<{
57
+ id: string;
58
+ progress?: {
59
+ loaded: number;
60
+ total?: number | undefined;
61
+ percent?: number | undefined;
62
+ speed?: number | undefined;
63
+ speedText?: string | undefined;
64
+ uploadTime?: number | undefined;
65
+ remainingTime?: number | undefined;
66
+ } | undefined;
67
+ file?: {
68
+ readonly lastModified: number;
69
+ readonly name: string;
70
+ readonly webkitRelativePath: string;
71
+ readonly size: number;
72
+ readonly type: string;
73
+ arrayBuffer: () => Promise<ArrayBuffer>;
74
+ bytes: () => Promise<Uint8Array>;
75
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
76
+ stream: () => ReadableStream<Uint8Array>;
77
+ text: () => Promise<string>;
78
+ } | undefined;
79
+ filesizeText?: string | undefined;
80
+ status?: "pending" | "uploading" | "success" | "error" | "cancelled" | undefined;
81
+ error?: string | undefined;
82
+ data?: {
83
+ [x: string]: any;
84
+ message?: string | undefined;
85
+ data?: any;
86
+ meta?: Record<string, any> | undefined;
87
+ raw?: any;
88
+ } | undefined;
89
+ url?: string | undefined;
90
+ filename?: string | undefined;
91
+ filesize?: number | undefined;
92
+ filetype?: string | undefined;
93
+ }[], IUseUploadFile[] | {
94
+ id: string;
95
+ progress?: {
96
+ loaded: number;
97
+ total?: number | undefined;
98
+ percent?: number | undefined;
99
+ speed?: number | undefined;
100
+ speedText?: string | undefined;
101
+ uploadTime?: number | undefined;
102
+ remainingTime?: number | undefined;
103
+ } | undefined;
104
+ file?: {
105
+ readonly lastModified: number;
106
+ readonly name: string;
107
+ readonly webkitRelativePath: string;
108
+ readonly size: number;
109
+ readonly type: string;
110
+ arrayBuffer: () => Promise<ArrayBuffer>;
111
+ bytes: () => Promise<Uint8Array>;
112
+ slice: (start?: number, end?: number, contentType?: string) => Blob;
113
+ stream: () => ReadableStream<Uint8Array>;
114
+ text: () => Promise<string>;
115
+ } | undefined;
116
+ filesizeText?: string | undefined;
117
+ status?: "pending" | "uploading" | "success" | "error" | "cancelled" | undefined;
118
+ error?: string | undefined;
119
+ data?: {
120
+ [x: string]: any;
121
+ message?: string | undefined;
122
+ data?: any;
123
+ meta?: Record<string, any> | undefined;
124
+ raw?: any;
125
+ } | undefined;
126
+ url?: string | undefined;
127
+ filename?: string | undefined;
128
+ filesize?: number | undefined;
129
+ filetype?: string | undefined;
130
+ }[]>;
131
+ dataFiles: import("vue").ComputedRef<IUseUploadFileData[]>;
132
+ progress: import("vue").ComputedRef<IOverallProgress>;
133
+ open: (localOptions?: Partial<import("@vueuse/core").UseFileDialogOptions>) => void;
134
+ trigger: () => Promise<void>;
135
+ resetFiles: () => void;
136
+ clearFiles: () => void;
137
+ removeFiles: (ids?: string[]) => void;
138
+ addFiles: (files: IUseUploadPayload[], type?: IUseUploadType) => Promise<void>;
139
+ addDataFiles: (dataFiles: IUseUploadFileData[]) => void;
140
+ cancelFiles: (ids?: string[]) => void;
141
+ };
@@ -82,6 +82,11 @@ export interface IDataProviderDeleteOptions {
82
82
  meta?: Record<string, any>;
83
83
  id: string | number;
84
84
  }
85
+ export interface IDataProviderProgress {
86
+ loaded: number;
87
+ total?: number;
88
+ percent?: number;
89
+ }
85
90
  export interface IDataProviderCustomOptions {
86
91
  path?: string;
87
92
  method?: string;
@@ -91,4 +96,7 @@ export interface IDataProviderCustomOptions {
91
96
  headers?: Record<string, string>;
92
97
  meta?: Record<string, any>;
93
98
  payload?: any;
99
+ signal?: AbortSignal;
100
+ onUploadProgress?: (progress: IDataProviderProgress) => void;
101
+ onDownloadProgress?: (progress: IDataProviderProgress) => void;
94
102
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duxweb/dvha-core",
3
3
  "type": "module",
4
- "version": "0.1.11",
4
+ "version": "0.1.13",
5
5
  "author": "DuxWeb",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -43,6 +43,7 @@
43
43
  "@vueuse/integrations": "^13.0.0",
44
44
  "axios": "^1.9.0",
45
45
  "clsx": "^2.1.1",
46
+ "json-2-csv": "^5.5.9",
46
47
  "lodash-es": "^4.17.21",
47
48
  "petite-vue-i18n": "^11.1.4",
48
49
  "pinia": "^3.0.0",