@sl-material/sl-import 1.0.0-beta0
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/LICENSE +21 -0
- package/README.md +486 -0
- package/index.d.ts +456 -0
- package/package.json +38 -0
- package/sl-import.cjs.js +2 -0
- package/sl-import.es.js +4095 -0
- package/sl-import.umd.umd.js +1573 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
export declare interface BrandOption {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string | number;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 分片上传配置
|
|
8
|
+
* 业务侧提供:initUpload, getResumableConfig, mergeChunks
|
|
9
|
+
*/
|
|
10
|
+
export declare interface ChunkedUploadConfig {
|
|
11
|
+
/**
|
|
12
|
+
* 初始化分片上传
|
|
13
|
+
* @param fileName 文件名
|
|
14
|
+
* @param fileSize 文件大小
|
|
15
|
+
* @returns 初始化结果
|
|
16
|
+
*/
|
|
17
|
+
initUpload: (fileName: string, fileSize: number) => Promise<ChunkUploadInitResult>;
|
|
18
|
+
/**
|
|
19
|
+
* 获取Resumable配置(业务侧可自定义,组件提供默认值)
|
|
20
|
+
* @param initResult 初始化结果
|
|
21
|
+
* @returns Resumable配置(会与默认配置合并)
|
|
22
|
+
*/
|
|
23
|
+
getResumableConfig: (initResult: ChunkUploadInitResult) => ResumableConfig;
|
|
24
|
+
/**
|
|
25
|
+
* 合并分片
|
|
26
|
+
* @param uploadSessionId 上传会话ID
|
|
27
|
+
* @returns 合并结果(任意业务数据)
|
|
28
|
+
*/
|
|
29
|
+
mergeChunks: (uploadSessionId: string) => Promise<any>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 分片上传初始化结果
|
|
34
|
+
*/
|
|
35
|
+
export declare interface ChunkUploadInitResult {
|
|
36
|
+
/** 上传会话ID */
|
|
37
|
+
uploadSessionId: string;
|
|
38
|
+
/** 分片大小(字节) */
|
|
39
|
+
partSize: number;
|
|
40
|
+
/** 总分片数 */
|
|
41
|
+
totalParts: number;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export declare interface DateRangeShortcut {
|
|
45
|
+
text: string;
|
|
46
|
+
value: () => [Date, Date];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare const DEFAULT_IMAGE_RATIOS: ImageRatioOption[];
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 默认语言
|
|
53
|
+
*/
|
|
54
|
+
export declare const DEFAULT_LOCALE: I18nLocale;
|
|
55
|
+
|
|
56
|
+
declare const DEFAULT_TEMPLATE_CONFIGS: Record<TemplateTypeEnum, TemplateConfig>;
|
|
57
|
+
|
|
58
|
+
export declare enum ExportTypeEnum {
|
|
59
|
+
image = "image",
|
|
60
|
+
excel = "excel"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export declare interface FileUploadItem {
|
|
64
|
+
id: string;
|
|
65
|
+
file: File;
|
|
66
|
+
name: string;
|
|
67
|
+
size: number;
|
|
68
|
+
progress: number;
|
|
69
|
+
status: FileUploadStatus;
|
|
70
|
+
errorMessage?: string;
|
|
71
|
+
uploadSessionId?: string;
|
|
72
|
+
response?: any;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export declare type FileUploadStatus = "pending" | "uploading" | "success" | "error";
|
|
76
|
+
|
|
77
|
+
declare const getImageRatioOptions: (t: (key: string) => string) => ImageRatioOption[];
|
|
78
|
+
|
|
79
|
+
export declare const getLocale: () => I18nLocaleEnum;
|
|
80
|
+
|
|
81
|
+
declare const getTranslatedTemplateConfigs: (t: (key: keyof LocaleMessages) => string) => Record<TemplateTypeEnum, TemplateConfig>;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* 支持的语言类型
|
|
85
|
+
*/
|
|
86
|
+
export declare type I18nLocale = I18nLocaleEnum;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 支持的语言枚举
|
|
90
|
+
*/
|
|
91
|
+
export declare enum I18nLocaleEnum {
|
|
92
|
+
ZH_CN = "zh-CN",// 中文(简体)
|
|
93
|
+
ZH_TW = "zh-TW",// 中文(繁体)
|
|
94
|
+
JA = "ja",// 日语
|
|
95
|
+
ID = "id",// 印尼语
|
|
96
|
+
EN_US = "en-US"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export declare interface ImageRatioOption {
|
|
100
|
+
label: string;
|
|
101
|
+
value: string;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
declare class ImportDialog {
|
|
105
|
+
private static instance;
|
|
106
|
+
private container;
|
|
107
|
+
private modalElement;
|
|
108
|
+
private styleElement;
|
|
109
|
+
private dateRangePicker;
|
|
110
|
+
private activeTabIndex;
|
|
111
|
+
private brandList;
|
|
112
|
+
private brandLoading;
|
|
113
|
+
private confirmLoading;
|
|
114
|
+
private formData;
|
|
115
|
+
private modalOptions;
|
|
116
|
+
private renderer;
|
|
117
|
+
/**
|
|
118
|
+
* 文件上传管理器 - 负责处理所有文件上传相关的逻辑
|
|
119
|
+
*
|
|
120
|
+
* 功能:
|
|
121
|
+
* 1. 文件状态管理:维护上传文件列表、进度、状态等
|
|
122
|
+
* 2. 文件操作:添加、删除、重置文件
|
|
123
|
+
* 3. 上传控制:开始/停止上传、进度跟踪
|
|
124
|
+
* 4. 错误处理:失败文件管理、错误消息显示
|
|
125
|
+
* 5. 配置管理:动态更新上传参数(多文件、分块、大小限制等)
|
|
126
|
+
*
|
|
127
|
+
* 避免了在 ImportDialog 中直接处理复杂的文件上传逻辑,实现了职责分离
|
|
128
|
+
*/
|
|
129
|
+
private uploader;
|
|
130
|
+
private onTabChangeCallback?;
|
|
131
|
+
private onBrandChangeCallback?;
|
|
132
|
+
constructor(container?: HTMLElement);
|
|
133
|
+
private injectStyles;
|
|
134
|
+
/**
|
|
135
|
+
* 上传相关的逻辑处理
|
|
136
|
+
*/
|
|
137
|
+
private initUploader;
|
|
138
|
+
private get currentConfig();
|
|
139
|
+
private get dialogTitle();
|
|
140
|
+
private get dialogWidth();
|
|
141
|
+
private getRenderContext;
|
|
142
|
+
private createModal;
|
|
143
|
+
/**
|
|
144
|
+
* 更新模态框界面 - 核心UI更新机制
|
|
145
|
+
*
|
|
146
|
+
* 功能:
|
|
147
|
+
* 1. 保存当前日期选择器的状态(避免用户输入丢失)
|
|
148
|
+
* 2. 更新渲染器上下文并重新生成HTML
|
|
149
|
+
* 3. 重新绑定所有事件监听器(DOM被替换后需要重新绑定)
|
|
150
|
+
* 4. 如果启用了日期范围选择器,重新初始化并恢复状态
|
|
151
|
+
*
|
|
152
|
+
* 调用场景:
|
|
153
|
+
* - 文件上传状态变化时
|
|
154
|
+
* - 品牌数据加载时
|
|
155
|
+
* - Tab切换时
|
|
156
|
+
* - 确认按钮加载状态变化时
|
|
157
|
+
* - 语言切换时等
|
|
158
|
+
*/
|
|
159
|
+
private updateModal;
|
|
160
|
+
private initDateRangePicker;
|
|
161
|
+
/**
|
|
162
|
+
* 给 dom 绑定事件
|
|
163
|
+
* @returns
|
|
164
|
+
*/
|
|
165
|
+
private bindEvents;
|
|
166
|
+
private bindFormEvents;
|
|
167
|
+
private bindCustomSelectEvents;
|
|
168
|
+
private closeAllSelects;
|
|
169
|
+
private resetForm;
|
|
170
|
+
private loadBrandData;
|
|
171
|
+
private handleTabChange;
|
|
172
|
+
/**
|
|
173
|
+
* 取消按钮事件
|
|
174
|
+
*/
|
|
175
|
+
private handleCancel;
|
|
176
|
+
/**
|
|
177
|
+
* 确认按钮事件
|
|
178
|
+
* @returns
|
|
179
|
+
*/
|
|
180
|
+
private handleConfirm;
|
|
181
|
+
private showMessage;
|
|
182
|
+
/**
|
|
183
|
+
* 内部方法:打开模态框的核心逻辑
|
|
184
|
+
*/
|
|
185
|
+
private _openModalCore;
|
|
186
|
+
openModal(options?: OpenModalOptions): void;
|
|
187
|
+
closeModal(): void;
|
|
188
|
+
setConfirmLoading(loading: boolean): void;
|
|
189
|
+
hide(): void;
|
|
190
|
+
destroy(): void;
|
|
191
|
+
private handleDocumentClick;
|
|
192
|
+
onTabChange(callback: (data: {
|
|
193
|
+
index: number;
|
|
194
|
+
tab: TabConfig;
|
|
195
|
+
}) => void): void;
|
|
196
|
+
onBrandChange(callback: (value: string | number) => void): void;
|
|
197
|
+
private static getInstance;
|
|
198
|
+
static open(options?: OpenModalOptions): Promise<ImportSubmitData>;
|
|
199
|
+
static close(): void;
|
|
200
|
+
static setLoading(loading: boolean): void;
|
|
201
|
+
static isReady(): boolean;
|
|
202
|
+
static setLocale(locale: I18nLocale): void;
|
|
203
|
+
static getLocale(): I18nLocale;
|
|
204
|
+
static destroyInstance(): void;
|
|
205
|
+
static install(): void;
|
|
206
|
+
}
|
|
207
|
+
export { ImportDialog }
|
|
208
|
+
export default ImportDialog;
|
|
209
|
+
|
|
210
|
+
export declare interface ImportDialogProps {
|
|
211
|
+
type: ExportTypeEnum;
|
|
212
|
+
visible: boolean;
|
|
213
|
+
title?: string;
|
|
214
|
+
width?: string;
|
|
215
|
+
templateType?: TemplateTypeEnum;
|
|
216
|
+
tabs?: TabConfig[];
|
|
217
|
+
defaultActiveTab?: number;
|
|
218
|
+
brandData?: BrandOption[] | (() => Promise<BrandOption[]>);
|
|
219
|
+
brandPlaceholder?: string;
|
|
220
|
+
imageRatios?: ImageRatioOption[];
|
|
221
|
+
extendImageRatios?: ImageRatioOption[];
|
|
222
|
+
tips?: string[];
|
|
223
|
+
templateUrl?: string;
|
|
224
|
+
uploadTitle?: string;
|
|
225
|
+
uploadLinkText?: string;
|
|
226
|
+
uploadHint?: string;
|
|
227
|
+
acceptTypes?: string;
|
|
228
|
+
showBrand?: boolean;
|
|
229
|
+
showImageRatio?: boolean;
|
|
230
|
+
showMonth?: boolean;
|
|
231
|
+
showDateRange?: boolean;
|
|
232
|
+
dateRangeShortcuts?: DateRangeShortcut[];
|
|
233
|
+
disabledDate?: (date: Date) => boolean;
|
|
234
|
+
locale?: I18nLocale;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export declare const importDialogService: typeof ImportDialog;
|
|
238
|
+
|
|
239
|
+
export declare interface ImportFormData {
|
|
240
|
+
brandId: string | number | undefined;
|
|
241
|
+
imageRatio: string;
|
|
242
|
+
month: number;
|
|
243
|
+
dateRange: [Date | null, Date | null];
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export declare interface ImportSubmitData {
|
|
247
|
+
files: File[];
|
|
248
|
+
formData: ImportFormData;
|
|
249
|
+
activeTab: TabConfig | undefined;
|
|
250
|
+
activeTabIndex: number;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export declare const installImportDialog: () => void;
|
|
254
|
+
|
|
255
|
+
export declare interface LocaleMessages {
|
|
256
|
+
loadingText: string;
|
|
257
|
+
cancel: string;
|
|
258
|
+
confirm: string;
|
|
259
|
+
download: string;
|
|
260
|
+
select: string;
|
|
261
|
+
required: string;
|
|
262
|
+
batchImport: string;
|
|
263
|
+
downloadTemplateTitle: string;
|
|
264
|
+
downloadTemplateText: string;
|
|
265
|
+
importSettingsTitle: string;
|
|
266
|
+
selectBrand: string;
|
|
267
|
+
defaultBrand: string;
|
|
268
|
+
selectImageRatio: string;
|
|
269
|
+
selectMonth: string;
|
|
270
|
+
selectDate: string;
|
|
271
|
+
uploadTitle: string;
|
|
272
|
+
dragFileHere: string;
|
|
273
|
+
or: string;
|
|
274
|
+
uploadLinkText: string;
|
|
275
|
+
uploadHint: string;
|
|
276
|
+
tipsTitle: string;
|
|
277
|
+
month: string;
|
|
278
|
+
startDate: string;
|
|
279
|
+
endDate: string;
|
|
280
|
+
to: string;
|
|
281
|
+
fileTypeError: string;
|
|
282
|
+
fileSizeError: string;
|
|
283
|
+
uploadFailed: string;
|
|
284
|
+
uploadSuccess: string;
|
|
285
|
+
uploading: string;
|
|
286
|
+
uploadTitleBase: string;
|
|
287
|
+
uploadTitleTemplate1: string;
|
|
288
|
+
uploadTitleTemplate2: string;
|
|
289
|
+
uploadTitleTemplate3: string;
|
|
290
|
+
uploadTitleTemplate4: string;
|
|
291
|
+
uploadTitleTemplate5: string;
|
|
292
|
+
uploadLinkTextDefault: string;
|
|
293
|
+
uploadLinkTextImport: string;
|
|
294
|
+
uploadHintExcel: string;
|
|
295
|
+
uploadHintImage: string;
|
|
296
|
+
tipsDefault: string[];
|
|
297
|
+
tipsTemplate1: string[];
|
|
298
|
+
tipsTemplate2: string[];
|
|
299
|
+
tipsTemplate3: string[];
|
|
300
|
+
tipsTemplate4: string[];
|
|
301
|
+
tipsTemplate5: string[];
|
|
302
|
+
tabCoverImport: string;
|
|
303
|
+
tabIncrementImport: string;
|
|
304
|
+
tabInPrice: string;
|
|
305
|
+
tabOutPrice: string;
|
|
306
|
+
imageRatioOriginal: string;
|
|
307
|
+
imageRatio4to3: string;
|
|
308
|
+
imageRatio3to4: string;
|
|
309
|
+
imageRatio1to1: string;
|
|
310
|
+
imageRatio16to9: string;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
export declare interface OpenModalOptions {
|
|
314
|
+
type?: ExportTypeEnum;
|
|
315
|
+
title?: string;
|
|
316
|
+
width?: string;
|
|
317
|
+
templateType?: TemplateTypeEnum;
|
|
318
|
+
tabs?: TabConfig[];
|
|
319
|
+
defaultActiveTab?: number;
|
|
320
|
+
brandData?: BrandOption[] | (() => Promise<BrandOption[]>);
|
|
321
|
+
brandPlaceholder?: string;
|
|
322
|
+
imageRatios?: ImageRatioOption[];
|
|
323
|
+
extendImageRatios?: ImageRatioOption[];
|
|
324
|
+
tips?: string[];
|
|
325
|
+
templateUrl?: string;
|
|
326
|
+
uploadTitle?: string;
|
|
327
|
+
uploadLinkText?: string;
|
|
328
|
+
uploadHint?: string;
|
|
329
|
+
acceptTypes?: string;
|
|
330
|
+
showBrand?: boolean;
|
|
331
|
+
showImageRatio?: boolean;
|
|
332
|
+
showMonth?: boolean;
|
|
333
|
+
showDateRange?: boolean;
|
|
334
|
+
dateRangeShortcuts?: DateRangeShortcut[];
|
|
335
|
+
disabledDate?: (date: Date) => boolean;
|
|
336
|
+
locale?: I18nLocale;
|
|
337
|
+
uploadConfig?: UploadConfig;
|
|
338
|
+
onBeforeConfirm?: (data: ImportSubmitData) => void | Promise<void>;
|
|
339
|
+
onConfirm?: (data: ImportSubmitData) => void;
|
|
340
|
+
onBeforeCancel?: () => void | Promise<void>;
|
|
341
|
+
onCancel?: () => void;
|
|
342
|
+
onTabChange?: (data: {
|
|
343
|
+
index: number;
|
|
344
|
+
tab: TabConfig;
|
|
345
|
+
}) => void;
|
|
346
|
+
onDownloadTemplate?: (data: {
|
|
347
|
+
url: string;
|
|
348
|
+
activeTab?: TabConfig;
|
|
349
|
+
}) => void;
|
|
350
|
+
onFileChange?: (files: FileUploadItem[]) => void;
|
|
351
|
+
onUploadProgress?: (file: FileUploadItem, progress: number) => void;
|
|
352
|
+
onUploadSuccess?: (file: FileUploadItem, response: any) => void;
|
|
353
|
+
onUploadError?: (file: FileUploadItem, error: Error) => void;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Resumable.js 配置选项
|
|
358
|
+
*/
|
|
359
|
+
export declare interface ResumableConfig {
|
|
360
|
+
/** 上传目标URL */
|
|
361
|
+
target: string;
|
|
362
|
+
/** 请求头 */
|
|
363
|
+
headers?: Record<string, string>;
|
|
364
|
+
/** 查询参数 */
|
|
365
|
+
query?: Record<string, any>;
|
|
366
|
+
/** 分片大小(可选,默认使用initResult.partSize) */
|
|
367
|
+
chunkSize?: number;
|
|
368
|
+
/** 并发上传数(默认3) */
|
|
369
|
+
simultaneousUploads?: number;
|
|
370
|
+
/** 最大重试次数(默认3) */
|
|
371
|
+
maxChunkRetries?: number;
|
|
372
|
+
/** 重试间隔毫秒(默认1000) */
|
|
373
|
+
chunkRetryInterval?: number;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export declare const setLocale: (locale: I18nLocale) => void;
|
|
377
|
+
|
|
378
|
+
export declare const t: (key: keyof LocaleMessages, params?: Record<string, string | number>) => string;
|
|
379
|
+
|
|
380
|
+
export declare interface TabConfig {
|
|
381
|
+
label: string;
|
|
382
|
+
key: string;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export declare interface TemplateConfig {
|
|
386
|
+
type: ExportTypeEnum;
|
|
387
|
+
tabs: TabConfig[];
|
|
388
|
+
showBrand: boolean;
|
|
389
|
+
showImageRatio: boolean;
|
|
390
|
+
showMonth: boolean;
|
|
391
|
+
showDateRange: boolean;
|
|
392
|
+
uploadTitle: string;
|
|
393
|
+
uploadLinkText: string;
|
|
394
|
+
uploadHint: string;
|
|
395
|
+
acceptTypes: string;
|
|
396
|
+
tips: string[];
|
|
397
|
+
templateUrl: string;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export declare enum TemplateTypeEnum {
|
|
401
|
+
BASE = "base",
|
|
402
|
+
TEMPLATE1 = "template1",
|
|
403
|
+
TEMPLATE2 = "template2",
|
|
404
|
+
TEMPLATE3 = "template3",
|
|
405
|
+
TEMPLATE4 = "template4",
|
|
406
|
+
TEMPLATE5 = "template5"
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
declare namespace types {
|
|
410
|
+
export {
|
|
411
|
+
TabConfig,
|
|
412
|
+
TemplateConfig,
|
|
413
|
+
BrandOption,
|
|
414
|
+
ImageRatioOption,
|
|
415
|
+
ImportFormData,
|
|
416
|
+
FileUploadStatus,
|
|
417
|
+
FileUploadItem,
|
|
418
|
+
ChunkUploadInitResult,
|
|
419
|
+
ResumableConfig,
|
|
420
|
+
ChunkedUploadConfig,
|
|
421
|
+
UploadConfig,
|
|
422
|
+
ImportSubmitData,
|
|
423
|
+
ImportDialogProps,
|
|
424
|
+
OpenModalOptions,
|
|
425
|
+
DEFAULT_IMAGE_RATIOS,
|
|
426
|
+
getImageRatioOptions,
|
|
427
|
+
getTranslatedTemplateConfigs,
|
|
428
|
+
DEFAULT_TEMPLATE_CONFIGS
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
export { types }
|
|
432
|
+
|
|
433
|
+
export declare interface UploadConfig {
|
|
434
|
+
/** 最大文件数量,默认 10 */
|
|
435
|
+
maxFiles?: number;
|
|
436
|
+
/** 是否支持多文件上传,默认 false */
|
|
437
|
+
multiple?: boolean;
|
|
438
|
+
/** 单文件最大大小(字节),默认 100MB */
|
|
439
|
+
maxFileSize?: number;
|
|
440
|
+
/** 自定义上传函数(普通上传时使用)主要用于自定义上传参数 */
|
|
441
|
+
customUpload?: (file: File, onProgress?: (progress: number) => void) => Promise<any>;
|
|
442
|
+
/**
|
|
443
|
+
* 分片上传配置
|
|
444
|
+
* 配置此项后自动启用分片上传(仅单文件模式生效)
|
|
445
|
+
*/
|
|
446
|
+
chunkedUpload?: ChunkedUploadConfig;
|
|
447
|
+
/**
|
|
448
|
+
* 上传时机控制
|
|
449
|
+
* - true: 选择文件后立即上传(默认)
|
|
450
|
+
* - false: 点击确定时才开始上传
|
|
451
|
+
* 适用于 customUpload 和 chunkedUpload
|
|
452
|
+
*/
|
|
453
|
+
autoUpload?: boolean;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export { }
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sl-material/sl-import",
|
|
3
|
+
"version": "1.0.0-beta0",
|
|
4
|
+
"description": "导入组件 - 支持批量导入文件,提供多种模板配置",
|
|
5
|
+
"main": "./sl-import.cjs.js",
|
|
6
|
+
"module": "./sl-import.es.js",
|
|
7
|
+
"types": "./index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./sl-import.es.js",
|
|
11
|
+
"require": "./sl-import.cjs.js",
|
|
12
|
+
"types": "./index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"sl-import.cjs.js",
|
|
17
|
+
"sl-import.es.js",
|
|
18
|
+
"sl-import.umd.umd.js",
|
|
19
|
+
"index.d.ts",
|
|
20
|
+
"package.json",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"import",
|
|
26
|
+
"upload",
|
|
27
|
+
"dialog",
|
|
28
|
+
"typescript",
|
|
29
|
+
"javascript"
|
|
30
|
+
],
|
|
31
|
+
"author": "",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@sl-ui-pc/theme-chalk": "0.1.0-beta1",
|
|
35
|
+
"flatpickr": "^4.6.13",
|
|
36
|
+
"resumablejs": "^1.1.0"
|
|
37
|
+
}
|
|
38
|
+
}
|