@snack-kit/core 0.1.0
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 +514 -0
- package/dist/cjs/index.js +4877 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/class/snack.d.ts +164 -0
- package/dist/class/snackSetting.d.ts +32 -0
- package/dist/class/snackVue.d.ts +27 -0
- package/dist/class/snackVueSetting.d.ts +30 -0
- package/dist/components/error/index.d.ts +9 -0
- package/dist/components/loading/index.d.ts +9 -0
- package/dist/core/index.d.ts +150 -0
- package/dist/core.js +4 -0
- package/dist/es/index.mjs +4760 -0
- package/dist/es/index.mjs.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +22 -0
- package/dist/interface.d.ts +416 -0
- package/dist/lib/require.d.ts +5 -0
- package/dist/sdk/index.d.ts +277 -0
- package/dist/sdk/renderSnack.d.ts +57 -0
- package/dist/sdk.js +22 -0
- package/dist/types/index.d.ts +1236 -0
- package/dist/utils/common.d.ts +33 -0
- package/dist/utils/evalJS.d.ts +151 -0
- package/dist/utils/i18n.d.ts +13 -0
- package/dist/utils/verifyJS.d.ts +42 -0
- package/package.json +62 -0
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Snack from './class/snack';
|
|
3
|
+
import SnackVue from './class/snackVue';
|
|
4
|
+
import { SnackSetting } from './class/snackSetting';
|
|
5
|
+
import { SnackVueSetting } from './class/snackVueSetting';
|
|
6
|
+
import { I18nData } from './utils/i18n';
|
|
7
|
+
export interface ImportModules {
|
|
8
|
+
[type: string]: {
|
|
9
|
+
[name: string]: Snack | SnackVue | SnackSetting | SnackVueSetting;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface CoreConfig {
|
|
13
|
+
/**
|
|
14
|
+
* 是否 runtime 模式
|
|
15
|
+
*/
|
|
16
|
+
runtime?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* runtime 模块名称映射对象
|
|
19
|
+
*/
|
|
20
|
+
runtimeMapping?: {
|
|
21
|
+
[name: string]: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* snack 服务端地址
|
|
25
|
+
*/
|
|
26
|
+
service?: string;
|
|
27
|
+
/**
|
|
28
|
+
* snack模块 加载路径,默认 service + modPath
|
|
29
|
+
*/
|
|
30
|
+
modUrl?: string;
|
|
31
|
+
/**
|
|
32
|
+
* snack模块 请求路径
|
|
33
|
+
*/
|
|
34
|
+
modPath?: string;
|
|
35
|
+
/**
|
|
36
|
+
* 单独指定 cnd 请求域名地址,默认为 service + cdnPath
|
|
37
|
+
*/
|
|
38
|
+
cdnUrl?: string;
|
|
39
|
+
/**
|
|
40
|
+
* cdn 请求路径
|
|
41
|
+
*/
|
|
42
|
+
cdnPath?: string;
|
|
43
|
+
/**
|
|
44
|
+
* 设计器页面路径
|
|
45
|
+
*/
|
|
46
|
+
pageUrl?: string;
|
|
47
|
+
/**
|
|
48
|
+
* 设计器页面路径
|
|
49
|
+
*/
|
|
50
|
+
pagePath?: string;
|
|
51
|
+
/**
|
|
52
|
+
* 静态资源cdn路径
|
|
53
|
+
*/
|
|
54
|
+
staticUrl?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 引用包导入
|
|
57
|
+
*/
|
|
58
|
+
importMaps?: {
|
|
59
|
+
[name: string]: any;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* 导入sanck class,加载时候优先从该列表内查询
|
|
63
|
+
*/
|
|
64
|
+
importModules?: ImportModules;
|
|
65
|
+
/**
|
|
66
|
+
* 基础模块分类名称
|
|
67
|
+
*/
|
|
68
|
+
basicsType?: string;
|
|
69
|
+
/**
|
|
70
|
+
* FormAttr全局默认值配置,当组件内部缺少参数时,采用该定义数值
|
|
71
|
+
*/
|
|
72
|
+
defaultFormAttr?: SnackFormAttribute;
|
|
73
|
+
/**
|
|
74
|
+
* i18n国际化数据复写
|
|
75
|
+
*/
|
|
76
|
+
i18n?: I18nData;
|
|
77
|
+
/**
|
|
78
|
+
* 国际化语言Mapping转换关系
|
|
79
|
+
* 例,当国际化语言为zh时,取值时则以zh_CN:
|
|
80
|
+
* { "zh" : "zh_CN" }
|
|
81
|
+
*/
|
|
82
|
+
localeMapping?: {
|
|
83
|
+
[locale: string]: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* 默认国际化语言
|
|
87
|
+
* 当localeMapping或传入语言为找到时,则使用该语言
|
|
88
|
+
*/
|
|
89
|
+
localeDefault?: string;
|
|
90
|
+
/**
|
|
91
|
+
* 消息提示对象由外部传入,用于evalJs使用
|
|
92
|
+
*/
|
|
93
|
+
message?: {
|
|
94
|
+
[key: string]: any;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* argv 环境变量对象
|
|
98
|
+
*/
|
|
99
|
+
argv?: Record<string, string | boolean | number | null | undefined | any>;
|
|
100
|
+
}
|
|
101
|
+
export interface LoadModuleConfig extends CoreConfig {
|
|
102
|
+
/**
|
|
103
|
+
* 所需加载的模块列表,单个加载可以为对象
|
|
104
|
+
*/
|
|
105
|
+
module: Array<ModuleConfig> | ModuleConfig;
|
|
106
|
+
/**
|
|
107
|
+
* Require 配置参数
|
|
108
|
+
*/
|
|
109
|
+
config?: RequireConfig;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 通过模块名称加载模块方法配置
|
|
113
|
+
*/
|
|
114
|
+
export interface ModuleConfig {
|
|
115
|
+
/**
|
|
116
|
+
* 模块名称
|
|
117
|
+
*/
|
|
118
|
+
name: string;
|
|
119
|
+
/**
|
|
120
|
+
* 模块分类,snack.json type属性
|
|
121
|
+
*/
|
|
122
|
+
type?: string;
|
|
123
|
+
/**
|
|
124
|
+
* 是否同时加载setting模块
|
|
125
|
+
*/
|
|
126
|
+
setting?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* 引用包导入
|
|
129
|
+
*/
|
|
130
|
+
importMaps?: {
|
|
131
|
+
[name: string]: any;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Require 配置参数
|
|
135
|
+
*/
|
|
136
|
+
config?: RequireConfig;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* 通过模块URL加载模块方法配置
|
|
140
|
+
*/
|
|
141
|
+
export interface LoadModuleURLConfig {
|
|
142
|
+
/**
|
|
143
|
+
* snack 模块绝对路径
|
|
144
|
+
*/
|
|
145
|
+
urls: string | Array<string>;
|
|
146
|
+
/**
|
|
147
|
+
* 模块cdn库地址
|
|
148
|
+
*/
|
|
149
|
+
cdnUrl: string;
|
|
150
|
+
/**
|
|
151
|
+
* 静态资源cdn地址
|
|
152
|
+
*/
|
|
153
|
+
staticUrl?: string;
|
|
154
|
+
/**
|
|
155
|
+
* 引用包导入
|
|
156
|
+
*/
|
|
157
|
+
importMaps?: {
|
|
158
|
+
[name: string]: any;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Require 配置参数
|
|
162
|
+
*/
|
|
163
|
+
config?: RequireConfig;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* 放置容器下级对象
|
|
167
|
+
*/
|
|
168
|
+
export interface DropChildrenItem<P = any, D = any, M = any, S = any> {
|
|
169
|
+
/**
|
|
170
|
+
* 父级模块
|
|
171
|
+
*/
|
|
172
|
+
parent?: P;
|
|
173
|
+
/**
|
|
174
|
+
* Drag 容器snack实例
|
|
175
|
+
*/
|
|
176
|
+
D: D;
|
|
177
|
+
/**
|
|
178
|
+
* Drag 容器组件实例
|
|
179
|
+
*/
|
|
180
|
+
DFC: React.FunctionComponent | null;
|
|
181
|
+
/**
|
|
182
|
+
* 主模块 snack实例
|
|
183
|
+
*/
|
|
184
|
+
M: M;
|
|
185
|
+
/**
|
|
186
|
+
* 主模块 组件实例
|
|
187
|
+
*/
|
|
188
|
+
MFC: React.FunctionComponent | null;
|
|
189
|
+
/**
|
|
190
|
+
* 设置模块 snack实例
|
|
191
|
+
*/
|
|
192
|
+
S?: S;
|
|
193
|
+
/**
|
|
194
|
+
* 设置模块 组件实例
|
|
195
|
+
*/
|
|
196
|
+
SFC?: React.FunctionComponent | null;
|
|
197
|
+
}
|
|
198
|
+
export interface LoadConfig {
|
|
199
|
+
/**
|
|
200
|
+
* snack 模块请求地址
|
|
201
|
+
*/
|
|
202
|
+
url: string;
|
|
203
|
+
/**
|
|
204
|
+
* require 请求配置
|
|
205
|
+
*/
|
|
206
|
+
config?: RequireConfig;
|
|
207
|
+
/**
|
|
208
|
+
* 引用包导入
|
|
209
|
+
*/
|
|
210
|
+
importMaps?: {
|
|
211
|
+
[name: string]: any;
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
export interface RequireConfig {
|
|
215
|
+
/**
|
|
216
|
+
* 超时等待时间,默认 50s
|
|
217
|
+
*/
|
|
218
|
+
waitSeconds?: string;
|
|
219
|
+
/**
|
|
220
|
+
* cdn 路径,默认'./'
|
|
221
|
+
*/
|
|
222
|
+
baseUrl?: string;
|
|
223
|
+
/**
|
|
224
|
+
* 指定snack模块静态资源上下文,默认随snack js文件路径
|
|
225
|
+
*/
|
|
226
|
+
staticUrl?: string;
|
|
227
|
+
paths?: {
|
|
228
|
+
[key: string]: any;
|
|
229
|
+
};
|
|
230
|
+
bundles?: {
|
|
231
|
+
[key: string]: any;
|
|
232
|
+
};
|
|
233
|
+
pkgs?: {
|
|
234
|
+
[key: string]: any;
|
|
235
|
+
};
|
|
236
|
+
shim?: {
|
|
237
|
+
[key: string]: any;
|
|
238
|
+
};
|
|
239
|
+
config?: {
|
|
240
|
+
[key: string]: any;
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* 表单校验规则
|
|
245
|
+
*/
|
|
246
|
+
export interface SnackFormVerifyRule {
|
|
247
|
+
/**
|
|
248
|
+
* 必须匹配条件,如果为true则整个规则组内无论是否有通过的条件都必定会提示错误,如果为false则整个规则组内有一条规则通过,本条规则则不会提示错误,
|
|
249
|
+
*/
|
|
250
|
+
mustMatch: boolean;
|
|
251
|
+
/**
|
|
252
|
+
* 字段校验正则
|
|
253
|
+
*/
|
|
254
|
+
regExp?: string;
|
|
255
|
+
/**
|
|
256
|
+
* 校验错误文本
|
|
257
|
+
*/
|
|
258
|
+
erorText?: {
|
|
259
|
+
[lang: string]: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* 表单组件属性
|
|
264
|
+
*/
|
|
265
|
+
export interface SnackFormAttribute {
|
|
266
|
+
/**
|
|
267
|
+
* 表单字段,默认''
|
|
268
|
+
*/
|
|
269
|
+
field?: string;
|
|
270
|
+
/**
|
|
271
|
+
* 是否禁用,D、M都需要设置,默认false
|
|
272
|
+
*/
|
|
273
|
+
disabled?: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* 是否必填,校验时需要校验是否为空,默认false
|
|
276
|
+
*/
|
|
277
|
+
required?: boolean;
|
|
278
|
+
/**
|
|
279
|
+
* 必填时,校验非空对象性,默认false
|
|
280
|
+
* */
|
|
281
|
+
notEmptyObject?: boolean;
|
|
282
|
+
/**
|
|
283
|
+
* 始终禁止提交该字段,组装json时过滤,默认false
|
|
284
|
+
*/
|
|
285
|
+
noSubmit?: boolean;
|
|
286
|
+
/**
|
|
287
|
+
* 当组件被隐藏时则不提交该字段,同时字段校验也将忽略,默认true
|
|
288
|
+
*/
|
|
289
|
+
hideNoSubmit?: boolean;
|
|
290
|
+
/**
|
|
291
|
+
* 是否对value进行tirm过滤,默认过滤,false禁止过滤
|
|
292
|
+
*/
|
|
293
|
+
trimValue?: boolean;
|
|
294
|
+
/**
|
|
295
|
+
* 校验规则组
|
|
296
|
+
*/
|
|
297
|
+
verifyRules?: SnackFormVerifyRule[];
|
|
298
|
+
/**
|
|
299
|
+
* 入参转换脚本
|
|
300
|
+
*/
|
|
301
|
+
inFormatJS?: string;
|
|
302
|
+
/**
|
|
303
|
+
* 出参转换脚本
|
|
304
|
+
*/
|
|
305
|
+
outFormatJS?: string;
|
|
306
|
+
/**
|
|
307
|
+
* 自定义校验脚本
|
|
308
|
+
*/
|
|
309
|
+
verifyJS?: string;
|
|
310
|
+
/**
|
|
311
|
+
* 密码字段标记,为true时则将会在当前表单getData数据组装时候增加 @password: [f...] 字段对当前字段进行描述,默认true
|
|
312
|
+
*/
|
|
313
|
+
passwordFlag?: boolean;
|
|
314
|
+
/**
|
|
315
|
+
* 校验触发事件,默认['onChange', 'onBlur']f
|
|
316
|
+
*/
|
|
317
|
+
verifyOnEvents?: string[];
|
|
318
|
+
/**
|
|
319
|
+
* 校验防抖时间,默认 300ms
|
|
320
|
+
*/
|
|
321
|
+
verifyASTime?: number;
|
|
322
|
+
/** 是否跳过校验规则列表 */
|
|
323
|
+
skipRegx?: boolean;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* 页面数据结构
|
|
327
|
+
*/
|
|
328
|
+
export interface SnackPageData {
|
|
329
|
+
/**
|
|
330
|
+
* 页面唯一id
|
|
331
|
+
*/
|
|
332
|
+
id: string;
|
|
333
|
+
/**
|
|
334
|
+
* 页面名称
|
|
335
|
+
*/
|
|
336
|
+
name: string;
|
|
337
|
+
/**
|
|
338
|
+
* 页面分类
|
|
339
|
+
*/
|
|
340
|
+
type?: string;
|
|
341
|
+
/**
|
|
342
|
+
* 页面描述
|
|
343
|
+
*/
|
|
344
|
+
description?: string;
|
|
345
|
+
/**
|
|
346
|
+
* 页面内容 Base64.encode(Object<SnackPageContent>)
|
|
347
|
+
*/
|
|
348
|
+
content: string | SnackPageContent;
|
|
349
|
+
[name: string]: any;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* 页面内容结构
|
|
353
|
+
*/
|
|
354
|
+
export interface SnackPageContent {
|
|
355
|
+
/**
|
|
356
|
+
* 模块唯一id D.key
|
|
357
|
+
*/
|
|
358
|
+
key?: string;
|
|
359
|
+
/** 是否是容器 */
|
|
360
|
+
isContainer?: boolean;
|
|
361
|
+
/**
|
|
362
|
+
* 模块(M)定义
|
|
363
|
+
*/
|
|
364
|
+
module?: SnackPageContentModule;
|
|
365
|
+
/**
|
|
366
|
+
* 下级
|
|
367
|
+
*/
|
|
368
|
+
children?: Array<SnackPageContent>;
|
|
369
|
+
}
|
|
370
|
+
export interface SnackPageContentModule {
|
|
371
|
+
/**
|
|
372
|
+
* 模块(D.data.module)id、全小写目录名
|
|
373
|
+
*/
|
|
374
|
+
id: string;
|
|
375
|
+
/**
|
|
376
|
+
* 是否为页面模版
|
|
377
|
+
*/
|
|
378
|
+
template: boolean;
|
|
379
|
+
/**
|
|
380
|
+
* 模块或页面的分类
|
|
381
|
+
*/
|
|
382
|
+
type?: string | null;
|
|
383
|
+
/**
|
|
384
|
+
* 模块data数据
|
|
385
|
+
*/
|
|
386
|
+
data?: {
|
|
387
|
+
/**
|
|
388
|
+
* Drag容器data数据
|
|
389
|
+
*/
|
|
390
|
+
D: {
|
|
391
|
+
[name: string]: any;
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* 模块(M)data数据
|
|
395
|
+
*/
|
|
396
|
+
M: {
|
|
397
|
+
value?: any;
|
|
398
|
+
formAttr?: SnackFormAttribute;
|
|
399
|
+
[name: string]: any;
|
|
400
|
+
};
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
export interface SnackEvent<S extends Snack = any> {
|
|
404
|
+
/**
|
|
405
|
+
* 事件名称
|
|
406
|
+
*/
|
|
407
|
+
name: string;
|
|
408
|
+
/**
|
|
409
|
+
* 事件触发对象
|
|
410
|
+
*/
|
|
411
|
+
target: S;
|
|
412
|
+
/**
|
|
413
|
+
* 事件数值
|
|
414
|
+
*/
|
|
415
|
+
value?: any;
|
|
416
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export default function _default(global: any, importMaps: any): {
|
|
2
|
+
requirejs: (deps: any, callback: any, errback: any, optional: any) => any;
|
|
3
|
+
require: (deps: any, callback: any, errback: any, optional: any) => any;
|
|
4
|
+
define: (name: any, re: any, callback: any) => void;
|
|
5
|
+
} | undefined;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author 刘佳
|
|
3
|
+
* @date 2021/8/31 7:29 下午
|
|
4
|
+
* @description 包含Core内核的额外增强功能SDK类
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import Core from '../core';
|
|
8
|
+
import { SnackPageData, SnackEvent, CoreConfig } from '../interface';
|
|
9
|
+
import { DropOjb, CompleteEvent, SnackFormFields, SnackChildMaps } from './renderSnack';
|
|
10
|
+
import Snack, { SnackData } from '../class/snack';
|
|
11
|
+
import { SnackSetting } from '../class/snackSetting';
|
|
12
|
+
import SnackVue from '../class/snackVue';
|
|
13
|
+
import { SnackVueSetting } from '../class/snackVueSetting';
|
|
14
|
+
export * from '../utils/evalJS';
|
|
15
|
+
export interface SnackPageParams {
|
|
16
|
+
/**
|
|
17
|
+
* 页面id
|
|
18
|
+
*/
|
|
19
|
+
id: string;
|
|
20
|
+
/**
|
|
21
|
+
* 页面分类
|
|
22
|
+
*/
|
|
23
|
+
type?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface RenderPageConfig {
|
|
26
|
+
/**
|
|
27
|
+
* 表单回填数据
|
|
28
|
+
*/
|
|
29
|
+
data?: {
|
|
30
|
+
[key: string]: any;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* 渲染规则
|
|
34
|
+
*/
|
|
35
|
+
rules?: {
|
|
36
|
+
[key: string]: RenderPageRule;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* root容器参数
|
|
40
|
+
*/
|
|
41
|
+
rootProps?: {};
|
|
42
|
+
/**
|
|
43
|
+
* 页面事件对象
|
|
44
|
+
*/
|
|
45
|
+
snackPageEvent?: SnackPageCompleteEvent;
|
|
46
|
+
/**
|
|
47
|
+
* 页面渲染完成事件
|
|
48
|
+
*/
|
|
49
|
+
onComplete?: (e: SnackPageCompleteEvent, config?: SnackPageConfig) => void;
|
|
50
|
+
}
|
|
51
|
+
export interface RenderPageRule {
|
|
52
|
+
/**
|
|
53
|
+
* 字段名
|
|
54
|
+
*/
|
|
55
|
+
key: string;
|
|
56
|
+
/**
|
|
57
|
+
* 字段名称
|
|
58
|
+
*/
|
|
59
|
+
label: string;
|
|
60
|
+
/**
|
|
61
|
+
* 是否有隐藏该字段绑定的组件
|
|
62
|
+
*/
|
|
63
|
+
hide?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* 是否禁用该字段绑定的组件
|
|
66
|
+
*/
|
|
67
|
+
disabled?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface SnackPageCompleteEvent extends CompleteEvent {
|
|
70
|
+
/**
|
|
71
|
+
* 清空表单数据填充
|
|
72
|
+
*/
|
|
73
|
+
empty?: () => void;
|
|
74
|
+
/**
|
|
75
|
+
* 获取表单数据
|
|
76
|
+
* @param key 指定字段获取表单数据,不传则返回全量json
|
|
77
|
+
*/
|
|
78
|
+
getData?: (key?: string) => any;
|
|
79
|
+
/**
|
|
80
|
+
* 设置表单数据
|
|
81
|
+
* @param kv 指定字段赋值或传入对象多个字段赋值
|
|
82
|
+
* @param value kv为对象时该参数将被忽略
|
|
83
|
+
*/
|
|
84
|
+
setData?: (kv: string | {
|
|
85
|
+
[key: string]: any;
|
|
86
|
+
}, value?: any) => void;
|
|
87
|
+
/**
|
|
88
|
+
* 表单校验
|
|
89
|
+
* @param key 指定校验字段,不传则校验所有字段
|
|
90
|
+
*/
|
|
91
|
+
verify?: (key?: string) => Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* 页面内部事件回调方法
|
|
94
|
+
* @param e
|
|
95
|
+
*/
|
|
96
|
+
snackEventCallback?: (e: SnackEvent) => void;
|
|
97
|
+
/**
|
|
98
|
+
* 页面销毁方法
|
|
99
|
+
*/
|
|
100
|
+
destroy?: () => void;
|
|
101
|
+
/**
|
|
102
|
+
* 页面原始渲染数据
|
|
103
|
+
*/
|
|
104
|
+
pageData?: SnackPageData | null;
|
|
105
|
+
}
|
|
106
|
+
export interface SnackCreateModule {
|
|
107
|
+
main?: typeof Snack;
|
|
108
|
+
name: string;
|
|
109
|
+
type: string;
|
|
110
|
+
setting?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* form 自定义脚本所需参数
|
|
114
|
+
*/
|
|
115
|
+
export interface FormDataFormatArgs {
|
|
116
|
+
fields: SnackFormFields;
|
|
117
|
+
childrenMaps: SnackChildMaps;
|
|
118
|
+
rules?: {
|
|
119
|
+
[key: string]: RenderPageRule;
|
|
120
|
+
};
|
|
121
|
+
verify?: (key?: string) => Promise<boolean>;
|
|
122
|
+
defaultData?: {
|
|
123
|
+
[key: string]: any;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export type SnackPageConfig = SnackPageParams | SnackPageParams[] | SnackPageData | SnackPageData[];
|
|
127
|
+
export declare class SnackSDK extends Core {
|
|
128
|
+
constructor(config: CoreConfig);
|
|
129
|
+
/**
|
|
130
|
+
* 创建Snack模块实例
|
|
131
|
+
* @param snackClass Snack模块Class
|
|
132
|
+
* @param main 如果创建的是setting模块则需要传入main主模块Snack对象
|
|
133
|
+
* @param data
|
|
134
|
+
*/
|
|
135
|
+
createModule<T extends Snack = any>({ main, name, type, setting }: SnackCreateModule, data?: SnackData): Promise<T | null>;
|
|
136
|
+
/**
|
|
137
|
+
* 渲染设计器页面
|
|
138
|
+
* @param params {SnackPageParams | SnackPageData} 页面加载参数 参数非法则创建空容器
|
|
139
|
+
* @param config {RenderPageConfig} 页面渲染参数
|
|
140
|
+
* @param root 根容器
|
|
141
|
+
* @param filter 过滤渲染组件列表
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
private createPage;
|
|
145
|
+
private verifyTimeout;
|
|
146
|
+
/**
|
|
147
|
+
* 渲染多个页面,当页面为表单时会过滤相同字段的表单组件
|
|
148
|
+
* @param params
|
|
149
|
+
* @param config
|
|
150
|
+
*/
|
|
151
|
+
renderPage(params: SnackPageConfig, config?: RenderPageConfig): Promise<any>;
|
|
152
|
+
/**
|
|
153
|
+
* 卸载页面
|
|
154
|
+
* @private
|
|
155
|
+
*/
|
|
156
|
+
destroy(event: SnackPageCompleteEvent | null, root: DropOjb | null): void;
|
|
157
|
+
/**
|
|
158
|
+
* 设置表单字段数据
|
|
159
|
+
* @param formatArag
|
|
160
|
+
* @param kv 所要设置的字段名,当value为空,key为对象则覆盖整个data对象
|
|
161
|
+
* @param value 所要设置的字段值
|
|
162
|
+
* @private
|
|
163
|
+
*/
|
|
164
|
+
private formSetData;
|
|
165
|
+
/**
|
|
166
|
+
* 表单入参转换
|
|
167
|
+
* @param M
|
|
168
|
+
* @param verify
|
|
169
|
+
* @param fields
|
|
170
|
+
* @param defaultData
|
|
171
|
+
* @param childrenMaps
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
private formFormatValue;
|
|
175
|
+
/**
|
|
176
|
+
* 获取表单数据
|
|
177
|
+
* @param verify
|
|
178
|
+
* @param childrenMaps
|
|
179
|
+
* @param fields 表单字段对象
|
|
180
|
+
* @param defaultData
|
|
181
|
+
* @param key 指定获取字段值
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
private formGetData;
|
|
185
|
+
/**
|
|
186
|
+
* 表单校验
|
|
187
|
+
* @private
|
|
188
|
+
* @param formatArag
|
|
189
|
+
* @param key
|
|
190
|
+
* @param pageData
|
|
191
|
+
*/
|
|
192
|
+
private formVerify;
|
|
193
|
+
/**
|
|
194
|
+
* 清空表单填充数据
|
|
195
|
+
* @param children
|
|
196
|
+
* @private
|
|
197
|
+
*/
|
|
198
|
+
private formEmpty;
|
|
199
|
+
/**
|
|
200
|
+
* 格式化Form入参数据
|
|
201
|
+
* @param defaultData
|
|
202
|
+
* @param moduleData 组件初始化入参
|
|
203
|
+
* @param fields
|
|
204
|
+
* @private
|
|
205
|
+
*/
|
|
206
|
+
private formatData;
|
|
207
|
+
/**
|
|
208
|
+
* 解码页面内容base64
|
|
209
|
+
* @param data
|
|
210
|
+
*/
|
|
211
|
+
private pageContentDecode;
|
|
212
|
+
/**
|
|
213
|
+
* 获取页面数据
|
|
214
|
+
*/
|
|
215
|
+
getPage(params: SnackPageParams): Promise<SnackPageData | null>;
|
|
216
|
+
/**
|
|
217
|
+
* 渲染设计器页面 - React FC组件
|
|
218
|
+
* @param params {SnackPageConfig}
|
|
219
|
+
* @param config {RenderPageConfig}
|
|
220
|
+
*/
|
|
221
|
+
createPageComponent<T>(params: SnackPageConfig, config?: RenderPageConfig): Promise<React.FunctionComponent>;
|
|
222
|
+
/**
|
|
223
|
+
* 渲染页面到dom元素内
|
|
224
|
+
* @param el
|
|
225
|
+
* @param params
|
|
226
|
+
* @param config
|
|
227
|
+
*/
|
|
228
|
+
createPageForElement<T>(el: HTMLElement, params: SnackPageConfig, config?: RenderPageConfig): Promise<DropOjb | null | undefined>;
|
|
229
|
+
/**
|
|
230
|
+
* 渲染模块 - React FC组件
|
|
231
|
+
* @param args 模块装载参数
|
|
232
|
+
* @param data 模块初始数据
|
|
233
|
+
*/
|
|
234
|
+
createModuleComponent<T extends SnackData>(args: SnackCreateModule, data?: T): Promise<React.FunctionComponent>;
|
|
235
|
+
/**
|
|
236
|
+
* 渲染模块到dom元素内
|
|
237
|
+
* @param el 所要渲染模块的容器
|
|
238
|
+
* @param args 模块装载参数
|
|
239
|
+
* @param data 模块初始数据
|
|
240
|
+
*/
|
|
241
|
+
createModuleForElement<T extends SnackData, S extends Snack = any>(el: HTMLElement, args: SnackCreateModule, data?: T): Promise<S | null>;
|
|
242
|
+
/**
|
|
243
|
+
* 通过模块Class渲染模块
|
|
244
|
+
* @param SnackClass sanck 模块 Class
|
|
245
|
+
* @param data snack对象参数
|
|
246
|
+
* @param main 如果为设置模块,传入主模块对象
|
|
247
|
+
*/
|
|
248
|
+
createClassModule<T extends SnackData, S extends Snack | SnackSetting | SnackVue | SnackVueSetting>(SnackClass: S, data?: T, main?: Snack): S;
|
|
249
|
+
/**
|
|
250
|
+
* 通过模块Class渲染模块
|
|
251
|
+
* @param SnackClass snack 模块 Class
|
|
252
|
+
* @param data snack对象参数
|
|
253
|
+
* @param main 如果为设置模块,传入主模块对象
|
|
254
|
+
*/
|
|
255
|
+
createClassModuleComponent<T extends SnackData, S extends Snack | SnackSetting | SnackVue | SnackVueSetting>(SnackClass: S, data?: T, main?: Snack): React.FunctionComponent;
|
|
256
|
+
}
|
|
257
|
+
export default SnackSDK;
|
|
258
|
+
/**
|
|
259
|
+
* 设计器事件列表
|
|
260
|
+
* @param language {boolean} 当前语言*
|
|
261
|
+
*/
|
|
262
|
+
export declare const GetDefaultEvents: (language?: 'zh-CN' | 'en-US') => ({
|
|
263
|
+
name: string;
|
|
264
|
+
label: string;
|
|
265
|
+
default: boolean;
|
|
266
|
+
verify: boolean;
|
|
267
|
+
} | {
|
|
268
|
+
name: string;
|
|
269
|
+
label: string;
|
|
270
|
+
default: boolean;
|
|
271
|
+
verify?: undefined;
|
|
272
|
+
} | {
|
|
273
|
+
name: string;
|
|
274
|
+
label: string;
|
|
275
|
+
default?: undefined;
|
|
276
|
+
verify?: undefined;
|
|
277
|
+
})[];
|