clickgo 3.1.3-dev12 → 3.1.5-dev14

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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/app/demo/app.js +1 -1
  3. package/dist/app/demo/config.json +9 -2
  4. package/dist/app/demo/form/control/text/text.js +1 -0
  5. package/dist/app/demo/form/control/text/text.xml +1 -1
  6. package/dist/app/demo/form/event/other/other.js +29 -0
  7. package/dist/app/demo/form/event/other/other.xml +5 -0
  8. package/dist/app/demo/form/main.js +51 -51
  9. package/dist/app/demo/form/main.xml +1 -0
  10. package/dist/app/demo/form/method/aform/aform.js +2 -13
  11. package/dist/app/demo/form/method/aform/aform.xml +0 -1
  12. package/dist/app/demo/form/method/aform/sd.js +25 -0
  13. package/dist/app/demo/form/method/aform/{test.xml → sd.xml} +3 -2
  14. package/dist/app/demo/form/method/core/core.js +12 -0
  15. package/dist/app/demo/form/method/core/core.xml +4 -0
  16. package/dist/app/demo/form/method/form/form.js +5 -6
  17. package/dist/app/demo/form/method/form/form.xml +1 -0
  18. package/dist/app/demo/form/method/form/test.xml +5 -0
  19. package/dist/app/demo/form/method/fs/fs.js +1 -4
  20. package/dist/app/demo/form/method/task/task.js +9 -1
  21. package/dist/app/demo/form/method/task/task.xml +1 -0
  22. package/dist/app/demo/form/method/tool/tool.js +3 -0
  23. package/dist/app/demo/form/method/tool/tool.xml +1 -0
  24. package/dist/app/demo/form/method/zip/zip.js +1 -4
  25. package/dist/app/task/app.js +1 -1
  26. package/dist/control/common.cgc +0 -0
  27. package/dist/control/form.cgc +0 -0
  28. package/dist/control/monaco.cgc +0 -0
  29. package/dist/control/property.cgc +0 -0
  30. package/dist/control/task.cgc +0 -0
  31. package/dist/global.css +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.ts +6 -0
  34. package/dist/lib/core.js +59 -10
  35. package/dist/lib/core.ts +67 -10
  36. package/dist/lib/dom.js +3 -3
  37. package/dist/lib/dom.ts +4 -4
  38. package/dist/lib/form.js +240 -215
  39. package/dist/lib/form.ts +290 -249
  40. package/dist/lib/fs.js +107 -12
  41. package/dist/lib/fs.ts +111 -20
  42. package/dist/lib/native.js +8 -1
  43. package/dist/lib/native.ts +6 -0
  44. package/dist/lib/task.js +253 -14
  45. package/dist/lib/task.ts +298 -12
  46. package/dist/lib/tool.js +39 -1
  47. package/dist/lib/tool.ts +45 -0
  48. package/dist/theme/familiar.cgt +0 -0
  49. package/package.json +3 -3
  50. package/types/index.d.ts +70 -52
package/types/index.d.ts CHANGED
@@ -83,7 +83,7 @@ export interface IAvailArea {
83
83
  }
84
84
 
85
85
  /** --- 全局事件类型 --- */
86
- export type TGlobalEvent = 'error' | 'screenResize' | 'configChanged' | 'formCreated' | 'formRemoved' | 'formTitleChanged' | 'formIconChanged' | 'formStateMinChanged' | 'formStateMaxChanged' | 'formShowChanged' | 'formFocused' | 'formBlurred' | 'formFlash' | 'taskStarted' | 'taskEnded' | 'launcherFolderNameChanged';
86
+ export type TGlobalEvent = 'error' | 'screenResize' | 'configChanged' | 'formCreated' | 'formRemoved' | 'formTitleChanged' | 'formIconChanged' | 'formStateMinChanged' | 'formStateMaxChanged' | 'formShowChanged' | 'formFocused' | 'formBlurred' | 'formFlash' | 'taskStarted' | 'taskEnded' | 'launcherFolderNameChanged' | 'hashChanged';
87
87
 
88
88
  /** --- 现场下载 app 的参数 --- */
89
89
  export interface ICoreFetchAppOptions {
@@ -99,7 +99,7 @@ export interface IApp {
99
99
  'config': IAppConfig;
100
100
  /** --- 所有已加载的文件内容 --- */
101
101
  'files': Record<string, Blob | string>;
102
- /** --- 应用图标,net 模式下可能为空 --- */
102
+ /** --- 应用图标 --- */
103
103
  'icon': string;
104
104
  }
105
105
 
@@ -119,7 +119,7 @@ export interface IAppConfig {
119
119
  /** --- 将自动加载的主题 --- */
120
120
  'themes'?: string[];
121
121
  /** --- 将自动申请的权限 --- */
122
- 'permissions'?: Record<string, any>;
122
+ 'permissions'?: string[];
123
123
  /** --- 将自动加载的语言包,path: lang --- */
124
124
  'locales'?: Record<string, string>;
125
125
  /** --- 全局样式,不带扩展名,系统会在末尾添加 .css --- */
@@ -129,6 +129,8 @@ export interface IAppConfig {
129
129
 
130
130
  /** --- 将要加载的非 js 文件列表,打包为 cga 模式下此配置可省略 --- */
131
131
  'files'?: string[];
132
+ /** --- import 的目录映射关系 --- */
133
+ 'map'?: Record<string, string>;
132
134
  }
133
135
 
134
136
  // -------------------------
@@ -284,58 +286,68 @@ export interface IFormInfo {
284
286
  'focus': boolean;
285
287
  }
286
288
 
287
- /** --- 窗体创建选项 --- */
288
- export interface IFormCreateOptions {
289
- 'code'?: IFormCreateCode;
290
- 'layout': string;
291
- 'style'?: string;
292
-
293
- /** --- 当前窗体的基准路径,不以 / 结尾,仅用作传值,App 内无法填写 --- */
294
- 'path'?: string;
295
- /** --- 传递到 onMounted 的数据 --- */
296
- 'data'?: Record<string, any>;
297
- /** --- APP 内无法填写 --- */
298
- 'taskId'?: number;
299
- }
300
-
301
- /** --- 窗体的 code 参数 --- */
302
- export interface IFormCreateCode {
303
- 'data'?: Record<string, any>;
304
- 'access'?: Record<string, any>;
305
- 'methods'?: Record<string, any>;
306
- 'computed'?: Record<string, {
307
- 'get'?: any;
308
- 'set'?: any;
309
- }>;
310
- 'beforeCreate'?: any;
311
- 'created'?: any;
312
- 'beforeMount'?: any;
313
- 'mounted'?: any;
314
- 'beforeUpdate'?: any;
315
- 'updated'?: any;
316
- 'beforeUnmount'?: any;
317
- 'unmounted'?: any;
318
- }
319
-
320
289
  // --------------------------
321
290
  // --------- fs lib ---------
322
291
  // --------------------------
323
292
 
293
+ export interface IMountHandler {
294
+ 'taskId'?: number;
295
+ getContent?: (path: string, options?: BufferEncoding | {
296
+ 'encoding'?: BufferEncoding;
297
+ 'start'?: number;
298
+ 'end'?: number;
299
+ 'files'?: Record<string, Blob | string>;
300
+ 'current'?: string;
301
+ 'progress'?: (loaded: number, total: number) => void | Promise<void>;
302
+ }) => Promise<Blob | string | null>;
303
+ putContent?: (path: string, data: string | Blob, options?: {
304
+ 'encoding'?: BufferEncoding | null;
305
+ 'mode'?: string | number;
306
+ 'flag'?: string | number;
307
+ 'current'?: string;
308
+ }) => Promise<boolean>;
309
+ readLink?: (path: string, options?: BufferEncoding | {
310
+ 'encoding'?: BufferEncoding;
311
+ /** --- 不以 / 结尾的路径 --- */
312
+ 'current'?: string;
313
+ }) => Promise<string | null>;
314
+ symlink?: (filePath: string, linkPath: string, options?: {
315
+ 'type'?: 'dir' | 'file' | 'junction';
316
+ 'current'?: string;
317
+ }) => Promise<boolean>;
318
+ unlink?: (path: string, options?: {
319
+ 'current'?: string;
320
+ }) => Promise<boolean>;
321
+ stats: (path: string, options?: {
322
+ 'files'?: Record<string, Blob | string>;
323
+ 'current'?: string;
324
+ }) => Promise<IStats | null>;
325
+ mkdir: (path: string, mode?: number, options?: {
326
+ 'current'?: string;
327
+ }) => Promise<boolean>;
328
+ rmdir: (path: string, options?: {
329
+ 'current'?: string;
330
+ }) => Promise<boolean>;
331
+ chmod: (path: string, mod: string | number, options?: {
332
+ 'current'?: string;
333
+ }) => Promise<boolean>;
334
+ }
335
+
324
336
  /** --- 文件/文件夹信息对象 --- */
325
337
  export interface IStats {
326
338
  isFile(): boolean;
327
339
  isDirectory(): boolean;
328
340
  isSymbolicLink(): boolean;
329
- size: number;
330
- blksize: number;
331
- atimeMs: number;
332
- mtimeMs: number;
333
- ctimeMs: number;
334
- birthtimeMs: number;
335
- atime: Date;
336
- mtime: Date;
337
- ctime: Date;
338
- birthtime: Date;
341
+ 'size': number;
342
+ 'blksize': number;
343
+ 'atimeMs': number;
344
+ 'mtimeMs': number;
345
+ 'ctimeMs': number;
346
+ 'birthtimeMs': number;
347
+ 'atime': Date;
348
+ 'mtime': Date;
349
+ 'ctime': Date;
350
+ 'birthtime': Date;
339
351
  }
340
352
 
341
353
  /** --- 目录下项目 --- */
@@ -343,7 +355,7 @@ export interface IDirent {
343
355
  isFile(): boolean;
344
356
  isDirectory(): boolean;
345
357
  isSymbolicLink(): boolean;
346
- name: string;
358
+ 'name': string;
347
359
  }
348
360
 
349
361
  // --------------------------
@@ -370,7 +382,7 @@ export interface ITask {
370
382
  /** --- 独占窗体序列 --- */
371
383
  'dialogFormIds': number[];
372
384
  /** --- 已申请的权限列表 --- */
373
- 'permissions': Record<string, any>;
385
+ 'permissions': string[];
374
386
  };
375
387
  /** --- 窗体对象列表 --- */
376
388
  'forms': Record<string, IForm>;
@@ -403,8 +415,10 @@ export interface ITaskRunOptions {
403
415
  'notify'?: boolean;
404
416
  /** --- 所属任务,App 模式无法设置 --- */
405
417
  'taskId'?: number;
406
- /** --- 不禁止某些浏览器对象,App 模式下无法设置 --- */
418
+ /** --- 不禁止某些浏览器对象,App 模式下仅能设置基任务中已经 unblock 的值 --- */
407
419
  'unblock'?: string[];
420
+ /** --- 直接赋予此任务相应权限,App 模式下有 "root" 权限的应用才能设置 --- */
421
+ 'permissions'?: string[];
408
422
  }
409
423
 
410
424
  export interface ICreateTimerOptions {
@@ -527,15 +541,19 @@ export interface IZipMetadata {
527
541
 
528
542
  /** --- Dialog 选项 --- */
529
543
  export interface IFormDialogOptions {
530
- /** --- 当前的 taskId,App 模式下无效 --- */
531
- 'taskId'?: number;
532
-
533
544
  'title'?: string;
534
545
  'content': string;
535
546
  'buttons'?: string[];
536
547
  'direction'?: 'h' | 'v';
537
548
 
549
+ 'style'?: string;
550
+ /** --- 路径基,以 / 结束或文件路径则以文件的基路径为准,可留空 --- */
551
+ 'path'?: string;
552
+
538
553
  'select'?: (e: Event, button: string) => void;
554
+
555
+ /** --- 当前的 taskId,App 模式下无效 --- */
556
+ 'taskId'?: number;
539
557
  }
540
558
 
541
559
  /** --- Confirm 选项 --- */