@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,1236 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface I18nData {
|
|
4
|
+
/**
|
|
5
|
+
* 语言
|
|
6
|
+
*/
|
|
7
|
+
[lang: string]: {
|
|
8
|
+
/**
|
|
9
|
+
* 字段键值
|
|
10
|
+
*/
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** 设置模块属性模型中单个属性的结构 */
|
|
16
|
+
interface SnackSettingModelItem {
|
|
17
|
+
/** 属性当前值 */
|
|
18
|
+
value: unknown;
|
|
19
|
+
[k: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Snack 设置模块基类
|
|
23
|
+
*
|
|
24
|
+
* 继承此类的模块通常作为另一个 Snack 模块的配置面板,
|
|
25
|
+
* 通过 `$setData` 方法同步修改主模块(`main`)的 `data`。
|
|
26
|
+
*/
|
|
27
|
+
declare class SnackSetting extends Snack {
|
|
28
|
+
/**
|
|
29
|
+
* 关联的主模块 Snack 实例
|
|
30
|
+
*/
|
|
31
|
+
main: Snack;
|
|
32
|
+
/**
|
|
33
|
+
* 属性模型,键为数据字段名,值描述该字段的元数据与当前值
|
|
34
|
+
*/
|
|
35
|
+
model: Record<string, SnackSettingModelItem>;
|
|
36
|
+
/**
|
|
37
|
+
* 是否将当前设置按照普通模式渲染,为 `true` 则不以弹窗模式渲染
|
|
38
|
+
*/
|
|
39
|
+
$normal: boolean;
|
|
40
|
+
$model(): any;
|
|
41
|
+
/**
|
|
42
|
+
* this.data 数据赋值,同时渲染页面
|
|
43
|
+
* @param field 字段名字,支持 . 操作符
|
|
44
|
+
* @param value
|
|
45
|
+
* @param isRefresh
|
|
46
|
+
*/
|
|
47
|
+
$setData(field: string, value?: unknown, isRefresh?: boolean): unknown;
|
|
48
|
+
/**
|
|
49
|
+
* 支持 . 操作符设置对象数据
|
|
50
|
+
* @param data
|
|
51
|
+
* @param field
|
|
52
|
+
* @param value
|
|
53
|
+
* @param parseExpr 是否解析表达式
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
private setFieldValue;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
interface ImportModules {
|
|
60
|
+
[type: string]: {
|
|
61
|
+
[name: string]: Snack | SnackSetting;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
interface CoreConfig {
|
|
65
|
+
/**
|
|
66
|
+
* 是否 runtime 模式
|
|
67
|
+
*/
|
|
68
|
+
runtime?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* runtime 模块名称映射对象
|
|
71
|
+
*/
|
|
72
|
+
runtimeMapping?: {
|
|
73
|
+
[name: string]: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* snack 服务端地址
|
|
77
|
+
*/
|
|
78
|
+
service?: string;
|
|
79
|
+
/**
|
|
80
|
+
* snack模块 加载路径,默认 service + modPath
|
|
81
|
+
*/
|
|
82
|
+
modUrl?: string;
|
|
83
|
+
/**
|
|
84
|
+
* snack模块 请求路径
|
|
85
|
+
*/
|
|
86
|
+
modPath?: string;
|
|
87
|
+
/**
|
|
88
|
+
* 单独指定 cnd 请求域名地址,默认为 service + cdnPath
|
|
89
|
+
*/
|
|
90
|
+
cdnUrl?: string;
|
|
91
|
+
/**
|
|
92
|
+
* cdn 请求路径
|
|
93
|
+
*/
|
|
94
|
+
cdnPath?: string;
|
|
95
|
+
/**
|
|
96
|
+
* 设计器页面路径
|
|
97
|
+
*/
|
|
98
|
+
pageUrl?: string;
|
|
99
|
+
/**
|
|
100
|
+
* 设计器页面路径
|
|
101
|
+
*/
|
|
102
|
+
pagePath?: string;
|
|
103
|
+
/**
|
|
104
|
+
* 静态资源cdn路径
|
|
105
|
+
*/
|
|
106
|
+
staticUrl?: string;
|
|
107
|
+
/**
|
|
108
|
+
* 引用包导入
|
|
109
|
+
*/
|
|
110
|
+
importMaps?: {
|
|
111
|
+
[name: string]: any;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* 导入sanck class,加载时候优先从该列表内查询
|
|
115
|
+
*/
|
|
116
|
+
importModules?: ImportModules;
|
|
117
|
+
/**
|
|
118
|
+
* 基础模块分类名称
|
|
119
|
+
*/
|
|
120
|
+
basicsType?: string;
|
|
121
|
+
/**
|
|
122
|
+
* FormAttr全局默认值配置,当组件内部缺少参数时,采用该定义数值
|
|
123
|
+
*/
|
|
124
|
+
defaultFormAttr?: SnackFormAttribute;
|
|
125
|
+
/**
|
|
126
|
+
* i18n国际化数据复写
|
|
127
|
+
*/
|
|
128
|
+
i18n?: I18nData;
|
|
129
|
+
/**
|
|
130
|
+
* 国际化语言Mapping转换关系
|
|
131
|
+
* 例,当国际化语言为zh时,取值时则以zh_CN:
|
|
132
|
+
* { "zh" : "zh_CN" }
|
|
133
|
+
*/
|
|
134
|
+
localeMapping?: {
|
|
135
|
+
[locale: string]: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* 默认国际化语言
|
|
139
|
+
* 当localeMapping或传入语言为找到时,则使用该语言
|
|
140
|
+
*/
|
|
141
|
+
localeDefault?: string;
|
|
142
|
+
/**
|
|
143
|
+
* 消息提示对象由外部传入,用于evalJs使用
|
|
144
|
+
*/
|
|
145
|
+
message?: {
|
|
146
|
+
[key: string]: any;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* argv 环境变量对象,可在表达式中通过 `$.argv` 访问
|
|
150
|
+
*/
|
|
151
|
+
argv?: Record<string, string | boolean | number | null | undefined>;
|
|
152
|
+
}
|
|
153
|
+
interface LoadModuleConfig extends CoreConfig {
|
|
154
|
+
/**
|
|
155
|
+
* 所需加载的模块列表,单个加载可以为对象
|
|
156
|
+
*/
|
|
157
|
+
module: Array<ModuleConfig> | ModuleConfig;
|
|
158
|
+
/**
|
|
159
|
+
* Require 配置参数
|
|
160
|
+
*/
|
|
161
|
+
config?: RequireConfig;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 通过模块名称加载模块方法配置
|
|
165
|
+
*/
|
|
166
|
+
interface ModuleConfig {
|
|
167
|
+
/**
|
|
168
|
+
* 模块名称
|
|
169
|
+
*/
|
|
170
|
+
name: string;
|
|
171
|
+
/**
|
|
172
|
+
* 模块分类,snack.json type属性
|
|
173
|
+
*/
|
|
174
|
+
type?: string;
|
|
175
|
+
/**
|
|
176
|
+
* 是否同时加载setting模块
|
|
177
|
+
*/
|
|
178
|
+
setting?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* 引用包导入
|
|
181
|
+
*/
|
|
182
|
+
importMaps?: {
|
|
183
|
+
[name: string]: any;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Require 配置参数
|
|
187
|
+
*/
|
|
188
|
+
config?: RequireConfig;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 通过模块URL加载模块方法配置
|
|
192
|
+
*/
|
|
193
|
+
interface LoadModuleURLConfig {
|
|
194
|
+
/**
|
|
195
|
+
* snack 模块绝对路径
|
|
196
|
+
*/
|
|
197
|
+
urls: string | Array<string>;
|
|
198
|
+
/**
|
|
199
|
+
* 模块cdn库地址
|
|
200
|
+
*/
|
|
201
|
+
cdnUrl: string;
|
|
202
|
+
/**
|
|
203
|
+
* 静态资源cdn地址
|
|
204
|
+
*/
|
|
205
|
+
staticUrl?: string;
|
|
206
|
+
/**
|
|
207
|
+
* 引用包导入
|
|
208
|
+
*/
|
|
209
|
+
importMaps?: {
|
|
210
|
+
[name: string]: any;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Require 配置参数
|
|
214
|
+
*/
|
|
215
|
+
config?: RequireConfig;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* 放置容器下级对象
|
|
219
|
+
*/
|
|
220
|
+
interface DropChildrenItem<P = any, D = any, M = any, S = any> {
|
|
221
|
+
/**
|
|
222
|
+
* 父级模块
|
|
223
|
+
*/
|
|
224
|
+
parent?: P;
|
|
225
|
+
/**
|
|
226
|
+
* Drag 容器snack实例
|
|
227
|
+
*/
|
|
228
|
+
D: D;
|
|
229
|
+
/**
|
|
230
|
+
* Drag 容器组件实例
|
|
231
|
+
*/
|
|
232
|
+
DFC: React.FunctionComponent | null;
|
|
233
|
+
/**
|
|
234
|
+
* 主模块 snack实例
|
|
235
|
+
*/
|
|
236
|
+
M: M;
|
|
237
|
+
/**
|
|
238
|
+
* 主模块 组件实例
|
|
239
|
+
*/
|
|
240
|
+
MFC: React.FunctionComponent | null;
|
|
241
|
+
/**
|
|
242
|
+
* 设置模块 snack实例
|
|
243
|
+
*/
|
|
244
|
+
S?: S;
|
|
245
|
+
/**
|
|
246
|
+
* 设置模块 组件实例
|
|
247
|
+
*/
|
|
248
|
+
SFC?: React.FunctionComponent | null;
|
|
249
|
+
}
|
|
250
|
+
interface LoadConfig {
|
|
251
|
+
/**
|
|
252
|
+
* snack 模块请求地址
|
|
253
|
+
*/
|
|
254
|
+
url: string;
|
|
255
|
+
/**
|
|
256
|
+
* require 请求配置
|
|
257
|
+
*/
|
|
258
|
+
config?: RequireConfig;
|
|
259
|
+
/**
|
|
260
|
+
* 引用包导入
|
|
261
|
+
*/
|
|
262
|
+
importMaps?: {
|
|
263
|
+
[name: string]: any;
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
interface RequireConfig {
|
|
267
|
+
/**
|
|
268
|
+
* 超时等待时间,默认 50s
|
|
269
|
+
*/
|
|
270
|
+
waitSeconds?: string;
|
|
271
|
+
/**
|
|
272
|
+
* cdn 路径,默认'./'
|
|
273
|
+
*/
|
|
274
|
+
baseUrl?: string;
|
|
275
|
+
/**
|
|
276
|
+
* 指定snack模块静态资源上下文,默认随snack js文件路径
|
|
277
|
+
*/
|
|
278
|
+
staticUrl?: string;
|
|
279
|
+
paths?: {
|
|
280
|
+
[key: string]: any;
|
|
281
|
+
};
|
|
282
|
+
bundles?: {
|
|
283
|
+
[key: string]: any;
|
|
284
|
+
};
|
|
285
|
+
pkgs?: {
|
|
286
|
+
[key: string]: any;
|
|
287
|
+
};
|
|
288
|
+
shim?: {
|
|
289
|
+
[key: string]: any;
|
|
290
|
+
};
|
|
291
|
+
config?: {
|
|
292
|
+
[key: string]: any;
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* 表单校验规则
|
|
297
|
+
*/
|
|
298
|
+
interface SnackFormVerifyRule {
|
|
299
|
+
/**
|
|
300
|
+
* 必须匹配条件,如果为true则整个规则组内无论是否有通过的条件都必定会提示错误,如果为false则整个规则组内有一条规则通过,本条规则则不会提示错误,
|
|
301
|
+
*/
|
|
302
|
+
mustMatch: boolean;
|
|
303
|
+
/**
|
|
304
|
+
* 字段校验正则
|
|
305
|
+
*/
|
|
306
|
+
regExp?: string;
|
|
307
|
+
/**
|
|
308
|
+
* 校验错误文本
|
|
309
|
+
*/
|
|
310
|
+
erorText?: {
|
|
311
|
+
[lang: string]: string;
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* 表单组件属性
|
|
316
|
+
*/
|
|
317
|
+
interface SnackFormAttribute {
|
|
318
|
+
/**
|
|
319
|
+
* 表单字段,默认''
|
|
320
|
+
*/
|
|
321
|
+
field?: string;
|
|
322
|
+
/**
|
|
323
|
+
* 是否禁用,D、M都需要设置,默认false
|
|
324
|
+
*/
|
|
325
|
+
disabled?: boolean;
|
|
326
|
+
/**
|
|
327
|
+
* 是否必填,校验时需要校验是否为空,默认false
|
|
328
|
+
*/
|
|
329
|
+
required?: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* 必填时,校验非空对象性,默认false
|
|
332
|
+
* */
|
|
333
|
+
notEmptyObject?: boolean;
|
|
334
|
+
/**
|
|
335
|
+
* 始终禁止提交该字段,组装json时过滤,默认false
|
|
336
|
+
*/
|
|
337
|
+
noSubmit?: boolean;
|
|
338
|
+
/**
|
|
339
|
+
* 当组件被隐藏时则不提交该字段,同时字段校验也将忽略,默认true
|
|
340
|
+
*/
|
|
341
|
+
hideNoSubmit?: boolean;
|
|
342
|
+
/**
|
|
343
|
+
* 是否对value进行tirm过滤,默认过滤,false禁止过滤
|
|
344
|
+
*/
|
|
345
|
+
trimValue?: boolean;
|
|
346
|
+
/**
|
|
347
|
+
* 校验规则组
|
|
348
|
+
*/
|
|
349
|
+
verifyRules?: SnackFormVerifyRule[];
|
|
350
|
+
/**
|
|
351
|
+
* 入参转换脚本
|
|
352
|
+
*/
|
|
353
|
+
inFormatJS?: string;
|
|
354
|
+
/**
|
|
355
|
+
* 出参转换脚本
|
|
356
|
+
*/
|
|
357
|
+
outFormatJS?: string;
|
|
358
|
+
/**
|
|
359
|
+
* 自定义校验脚本
|
|
360
|
+
*/
|
|
361
|
+
verifyJS?: string;
|
|
362
|
+
/**
|
|
363
|
+
* 密码字段标记,为true时则将会在当前表单getData数据组装时候增加 @password: [f...] 字段对当前字段进行描述,默认true
|
|
364
|
+
*/
|
|
365
|
+
passwordFlag?: boolean;
|
|
366
|
+
/**
|
|
367
|
+
* 校验触发事件,默认['onChange', 'onBlur']f
|
|
368
|
+
*/
|
|
369
|
+
verifyOnEvents?: string[];
|
|
370
|
+
/**
|
|
371
|
+
* 校验防抖时间,默认 300ms
|
|
372
|
+
*/
|
|
373
|
+
verifyASTime?: number;
|
|
374
|
+
/** 是否跳过校验规则列表 */
|
|
375
|
+
skipRegx?: boolean;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* 页面数据结构
|
|
379
|
+
*/
|
|
380
|
+
interface SnackPageData {
|
|
381
|
+
/**
|
|
382
|
+
* 页面唯一id
|
|
383
|
+
*/
|
|
384
|
+
id: string;
|
|
385
|
+
/**
|
|
386
|
+
* 页面名称
|
|
387
|
+
*/
|
|
388
|
+
name: string;
|
|
389
|
+
/**
|
|
390
|
+
* 页面分类
|
|
391
|
+
*/
|
|
392
|
+
type?: string;
|
|
393
|
+
/**
|
|
394
|
+
* 页面描述
|
|
395
|
+
*/
|
|
396
|
+
description?: string;
|
|
397
|
+
/**
|
|
398
|
+
* 页面内容 Base64.encode(Object<SnackPageContent>)
|
|
399
|
+
*/
|
|
400
|
+
content: string | SnackPageContent;
|
|
401
|
+
[name: string]: any;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* 页面内容结构
|
|
405
|
+
*/
|
|
406
|
+
interface SnackPageContent {
|
|
407
|
+
/**
|
|
408
|
+
* 模块唯一id D.key
|
|
409
|
+
*/
|
|
410
|
+
key?: string;
|
|
411
|
+
/** 是否是容器 */
|
|
412
|
+
isContainer?: boolean;
|
|
413
|
+
/**
|
|
414
|
+
* 模块(M)定义
|
|
415
|
+
*/
|
|
416
|
+
module?: SnackPageContentModule;
|
|
417
|
+
/**
|
|
418
|
+
* 下级
|
|
419
|
+
*/
|
|
420
|
+
children?: Array<SnackPageContent>;
|
|
421
|
+
}
|
|
422
|
+
interface SnackPageContentModule {
|
|
423
|
+
/**
|
|
424
|
+
* 模块(D.data.module)id、全小写目录名
|
|
425
|
+
*/
|
|
426
|
+
id: string;
|
|
427
|
+
/**
|
|
428
|
+
* 是否为页面模版
|
|
429
|
+
*/
|
|
430
|
+
template: boolean;
|
|
431
|
+
/**
|
|
432
|
+
* 模块或页面的分类
|
|
433
|
+
*/
|
|
434
|
+
type?: string | null;
|
|
435
|
+
/**
|
|
436
|
+
* 模块data数据
|
|
437
|
+
*/
|
|
438
|
+
data?: {
|
|
439
|
+
/**
|
|
440
|
+
* Drag容器data数据
|
|
441
|
+
*/
|
|
442
|
+
D: {
|
|
443
|
+
[name: string]: any;
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* 模块(M)data数据
|
|
447
|
+
*/
|
|
448
|
+
M: {
|
|
449
|
+
value?: any;
|
|
450
|
+
formAttr?: SnackFormAttribute;
|
|
451
|
+
[name: string]: any;
|
|
452
|
+
};
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
interface SnackEvent<S extends Snack = any> {
|
|
456
|
+
/**
|
|
457
|
+
* 事件名称
|
|
458
|
+
*/
|
|
459
|
+
name: string;
|
|
460
|
+
/**
|
|
461
|
+
* 事件触发对象
|
|
462
|
+
*/
|
|
463
|
+
target: S;
|
|
464
|
+
/**
|
|
465
|
+
* 事件数值
|
|
466
|
+
*/
|
|
467
|
+
value?: any;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* @author 刘佳
|
|
472
|
+
* @date 2021/8/2 1:59 下午
|
|
473
|
+
* @description Snack Core
|
|
474
|
+
*/
|
|
475
|
+
|
|
476
|
+
type SnackMaps = {
|
|
477
|
+
[name: string]: Snack;
|
|
478
|
+
};
|
|
479
|
+
type SDKEvent = 'onComplete' | string;
|
|
480
|
+
/**
|
|
481
|
+
* 事件监听回调
|
|
482
|
+
* 使用 Function 类型是因为事件总线为动态分发系统,回调函数的参数类型由事件名称决定
|
|
483
|
+
*/
|
|
484
|
+
type SDKEventCallback = Function;
|
|
485
|
+
/** 表达式求值上下文 */
|
|
486
|
+
type ExprContext = Record<string, unknown>;
|
|
487
|
+
/** RequireJS require 函数接口 */
|
|
488
|
+
interface SnackRequireFunction {
|
|
489
|
+
(deps: string[], success: (e: Record<string, unknown>) => void, error?: (e: Error) => void): void;
|
|
490
|
+
config: (cfg: Record<string, unknown>) => void;
|
|
491
|
+
}
|
|
492
|
+
/** RequireJS define 函数接口(AMD) */
|
|
493
|
+
type SnackDefineFunction = (name: string, deps: string[], factory: (...args: unknown[]) => unknown) => void;
|
|
494
|
+
declare class Core {
|
|
495
|
+
/** RequireJS require 实例 */
|
|
496
|
+
require: SnackRequireFunction;
|
|
497
|
+
/** RequireJS define 实例 */
|
|
498
|
+
define: SnackDefineFunction;
|
|
499
|
+
runtime: boolean;
|
|
500
|
+
runtimeMapping: {
|
|
501
|
+
[id: string]: string;
|
|
502
|
+
};
|
|
503
|
+
service: string;
|
|
504
|
+
cdnUrl?: string;
|
|
505
|
+
cdnPath: string;
|
|
506
|
+
modUrl?: string;
|
|
507
|
+
modPath: string;
|
|
508
|
+
pageUrl: string;
|
|
509
|
+
pagePath: string;
|
|
510
|
+
staticUrl?: string;
|
|
511
|
+
importMaps: {
|
|
512
|
+
[mod: string]: any;
|
|
513
|
+
};
|
|
514
|
+
basicsType: string;
|
|
515
|
+
moduleMaps: SnackMaps;
|
|
516
|
+
global: {
|
|
517
|
+
[key: string]: any;
|
|
518
|
+
};
|
|
519
|
+
message: {
|
|
520
|
+
[key: string]: any;
|
|
521
|
+
};
|
|
522
|
+
i18n: I18nData;
|
|
523
|
+
defaultFormAttr: SnackFormAttribute;
|
|
524
|
+
importModules: ImportModules;
|
|
525
|
+
localeMapping: {
|
|
526
|
+
[locale: string]: string;
|
|
527
|
+
};
|
|
528
|
+
localeDefault: string;
|
|
529
|
+
argv: CoreConfig['argv'];
|
|
530
|
+
/**
|
|
531
|
+
* Core初始化构造函数
|
|
532
|
+
* @param {CoreConfig}
|
|
533
|
+
* @param importMaps 依赖对象导入
|
|
534
|
+
*/
|
|
535
|
+
constructor({ runtime, runtimeMapping, service, cdnUrl, cdnPath, modUrl, modPath, pageUrl, pagePath, staticUrl, importMaps, basicsType, defaultFormAttr, importModules, i18n, localeMapping, localeDefault, message, argv }: CoreConfig);
|
|
536
|
+
/**
|
|
537
|
+
* 事件存储对象
|
|
538
|
+
* @private
|
|
539
|
+
*/
|
|
540
|
+
private eventList;
|
|
541
|
+
/**
|
|
542
|
+
* 注册事件
|
|
543
|
+
* @param eventName 事件名称
|
|
544
|
+
* @param cb 事件回调函数
|
|
545
|
+
*/
|
|
546
|
+
addEvent(eventName: SDKEvent, cb: SDKEventCallback): boolean;
|
|
547
|
+
/**
|
|
548
|
+
* 移除事件
|
|
549
|
+
* @param eventName 事件名称
|
|
550
|
+
* @param cb 解除绑定的事件回调
|
|
551
|
+
*/
|
|
552
|
+
removeEvent(eventName: SDKEvent, cb?: SDKEventCallback): boolean;
|
|
553
|
+
/**
|
|
554
|
+
* 发送事件
|
|
555
|
+
* @param eventName 事件名称
|
|
556
|
+
* @param args 事件方法参数
|
|
557
|
+
*/
|
|
558
|
+
sendEvent(eventName: SDKEvent, args?: unknown[]): boolean;
|
|
559
|
+
/**
|
|
560
|
+
* 按模块名称加载模块
|
|
561
|
+
* @param {LoadModuleConfig}
|
|
562
|
+
* @param callback 回调方法,存在该参数则Promises失效
|
|
563
|
+
* @return Snack 模块键值对 {snackName:snackClass}
|
|
564
|
+
*/
|
|
565
|
+
module({ module, service, cdnUrl, cdnPath, modUrl, modPath, staticUrl, importMaps, config }: LoadModuleConfig, callback?: (snack: SnackMaps) => void): Promise<void | SnackMaps>;
|
|
566
|
+
/**
|
|
567
|
+
* 按模块地址加载模块
|
|
568
|
+
* @param {LoadModuleURLConfig}
|
|
569
|
+
* @param callback 回调方法,存在该参数则Promises失效
|
|
570
|
+
* @return Snack 模块键值对 {snackName:snackClass}
|
|
571
|
+
*/
|
|
572
|
+
moduleURL({ urls, cdnUrl, staticUrl, importMaps, config }: LoadModuleURLConfig, callback?: (snack: SnackMaps) => void): Promise<SnackMaps | null>;
|
|
573
|
+
private addSnack;
|
|
574
|
+
private loadingPromises;
|
|
575
|
+
/**
|
|
576
|
+
* umd模块加载方法
|
|
577
|
+
* @param {LoadConfig} snack模块js地址
|
|
578
|
+
* @return Snack 模块类对象
|
|
579
|
+
*/
|
|
580
|
+
load({ url, config, importMaps }: LoadConfig): Promise<{} | Error>;
|
|
581
|
+
/**
|
|
582
|
+
* 移除模块
|
|
583
|
+
* @param id snack模块的 $id
|
|
584
|
+
* @param forceUpdate 是否调用$forceUpdate
|
|
585
|
+
*/
|
|
586
|
+
remove(id: string, forceUpdate?: boolean): false | undefined;
|
|
587
|
+
/**
|
|
588
|
+
* 清空挂载在sdk内的所有模块
|
|
589
|
+
* @param forceUpdate 是否调用$forceUpdate
|
|
590
|
+
*/
|
|
591
|
+
empty(forceUpdate?: boolean): void;
|
|
592
|
+
/**
|
|
593
|
+
* 全局Snack模块语言切换方法
|
|
594
|
+
* @param l 语言,默认 'zh'
|
|
595
|
+
*/
|
|
596
|
+
language: (l?: string) => void;
|
|
597
|
+
/**
|
|
598
|
+
* 国际化数据导入
|
|
599
|
+
* @param data
|
|
600
|
+
*/
|
|
601
|
+
setI18n(data: I18nData): void;
|
|
602
|
+
/**
|
|
603
|
+
* 获取国际化文本
|
|
604
|
+
* @param ops
|
|
605
|
+
* @param params
|
|
606
|
+
*/
|
|
607
|
+
intl(ops: string | {
|
|
608
|
+
id: string;
|
|
609
|
+
}, params?: Record<string, unknown>): string | React.ReactNode;
|
|
610
|
+
/**
|
|
611
|
+
* 组件数据解析表达式
|
|
612
|
+
* @param data
|
|
613
|
+
*/
|
|
614
|
+
exprParseByData(data?: SnackPageContentModule): SnackPageContentModule | undefined;
|
|
615
|
+
private exprRegx;
|
|
616
|
+
private checkHasExpr;
|
|
617
|
+
private evaluateExpression;
|
|
618
|
+
processTemplateString(template: string, context: ExprContext): string;
|
|
619
|
+
recursiveParseJson(obj: SnackData, context: ExprContext, filterPrototype?: boolean): SnackData;
|
|
620
|
+
/**
|
|
621
|
+
* 表达式入参
|
|
622
|
+
*/
|
|
623
|
+
getExprArgv(data: unknown): ExprArgv;
|
|
624
|
+
}
|
|
625
|
+
type ExprArgv = {
|
|
626
|
+
/** 全局 argv 环境变量 */
|
|
627
|
+
argv: CoreConfig['argv'];
|
|
628
|
+
/** Core 实例 */
|
|
629
|
+
sdk: Core;
|
|
630
|
+
/** 表达式上下文数据,通常为组件的 data 对象 */
|
|
631
|
+
data: unknown;
|
|
632
|
+
};
|
|
633
|
+
|
|
634
|
+
interface DropOjb<M = any, P = any> {
|
|
635
|
+
data: any;
|
|
636
|
+
$id: string;
|
|
637
|
+
append: (module: M, onComplete?: (c?: DropChildrenItem) => void) => Promise<DropChildrenItem>;
|
|
638
|
+
$forceUpdate: () => void;
|
|
639
|
+
FC: (props: P) => void;
|
|
640
|
+
}
|
|
641
|
+
interface CompleteEvent {
|
|
642
|
+
/**
|
|
643
|
+
* 表单字段键值对
|
|
644
|
+
*/
|
|
645
|
+
fields: SnackFormFields;
|
|
646
|
+
/**
|
|
647
|
+
* 所有子元素数组
|
|
648
|
+
*/
|
|
649
|
+
children: DropChildrenItem[];
|
|
650
|
+
/**
|
|
651
|
+
* 所有子元素data.key键值对
|
|
652
|
+
*/
|
|
653
|
+
childrenMaps: SnackChildMaps;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* 表单字段map对象
|
|
657
|
+
*/
|
|
658
|
+
type SnackFormFields = {
|
|
659
|
+
[field: string]: DropChildrenItem;
|
|
660
|
+
};
|
|
661
|
+
type SnackChildMaps = {
|
|
662
|
+
[key: string]: DropChildrenItem;
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* 是否显示组件,默认显示
|
|
667
|
+
* @param child
|
|
668
|
+
* @param show 是否显示
|
|
669
|
+
*/
|
|
670
|
+
declare function $display(child?: DropChildrenItem, show?: boolean): DropChildrenItem<any, any, any, any> | undefined;
|
|
671
|
+
declare const DisplayModule: typeof $display;
|
|
672
|
+
/**
|
|
673
|
+
* 返回代monaco代码提示
|
|
674
|
+
* @param monaco monaco编辑器对象
|
|
675
|
+
* @param event 指定过滤事件的参数,可选,默认全量参数
|
|
676
|
+
* @constructor
|
|
677
|
+
*/
|
|
678
|
+
declare const GetParamsDetails: (monaco: any, event?: string, locale?: "en-US" | "zh-CN") => {
|
|
679
|
+
label: string;
|
|
680
|
+
insertText: string;
|
|
681
|
+
detail: string;
|
|
682
|
+
documentation: string | undefined;
|
|
683
|
+
kind: any;
|
|
684
|
+
}[];
|
|
685
|
+
/**
|
|
686
|
+
* 脚本参数描述
|
|
687
|
+
* @param filterEvents string[] 过滤所属事件,默认参数生效与所有脚本
|
|
688
|
+
* @param events string[] 参数所属事件
|
|
689
|
+
* @param label string 参数名
|
|
690
|
+
* @param insertText string 自动补全代码
|
|
691
|
+
* @param detail string 简要描述
|
|
692
|
+
* @param documentation string 详细描述
|
|
693
|
+
* */
|
|
694
|
+
declare const ParamsDetails: ({
|
|
695
|
+
label: string;
|
|
696
|
+
insertText: string;
|
|
697
|
+
detail: string;
|
|
698
|
+
filterEvents?: undefined;
|
|
699
|
+
events?: undefined;
|
|
700
|
+
documentation?: undefined;
|
|
701
|
+
} | {
|
|
702
|
+
filterEvents: string[];
|
|
703
|
+
label: string;
|
|
704
|
+
insertText: string;
|
|
705
|
+
detail: string;
|
|
706
|
+
events?: undefined;
|
|
707
|
+
documentation?: undefined;
|
|
708
|
+
} | {
|
|
709
|
+
events: string[];
|
|
710
|
+
label: string;
|
|
711
|
+
insertText: string;
|
|
712
|
+
detail: string;
|
|
713
|
+
filterEvents?: undefined;
|
|
714
|
+
documentation?: undefined;
|
|
715
|
+
} | {
|
|
716
|
+
label: string;
|
|
717
|
+
insertText: string;
|
|
718
|
+
detail: string;
|
|
719
|
+
documentation: string;
|
|
720
|
+
filterEvents?: undefined;
|
|
721
|
+
events?: undefined;
|
|
722
|
+
} | {
|
|
723
|
+
events: string[];
|
|
724
|
+
label: string;
|
|
725
|
+
insertText: string;
|
|
726
|
+
detail: string;
|
|
727
|
+
documentation: string;
|
|
728
|
+
filterEvents?: undefined;
|
|
729
|
+
})[];
|
|
730
|
+
declare const enParamsDetails: ({
|
|
731
|
+
label: string;
|
|
732
|
+
insertText: string;
|
|
733
|
+
detail: string;
|
|
734
|
+
filterEvents?: undefined;
|
|
735
|
+
events?: undefined;
|
|
736
|
+
documentation?: undefined;
|
|
737
|
+
} | {
|
|
738
|
+
filterEvents: string[];
|
|
739
|
+
label: string;
|
|
740
|
+
insertText: string;
|
|
741
|
+
detail: string;
|
|
742
|
+
events?: undefined;
|
|
743
|
+
documentation?: undefined;
|
|
744
|
+
} | {
|
|
745
|
+
events: string[];
|
|
746
|
+
label: string;
|
|
747
|
+
insertText: string;
|
|
748
|
+
detail: string;
|
|
749
|
+
filterEvents?: undefined;
|
|
750
|
+
documentation?: undefined;
|
|
751
|
+
} | {
|
|
752
|
+
label: string;
|
|
753
|
+
insertText: string;
|
|
754
|
+
detail: string;
|
|
755
|
+
documentation: string;
|
|
756
|
+
filterEvents?: undefined;
|
|
757
|
+
events?: undefined;
|
|
758
|
+
} | {
|
|
759
|
+
events: string[];
|
|
760
|
+
label: string;
|
|
761
|
+
insertText: string;
|
|
762
|
+
detail: string;
|
|
763
|
+
documentation: string;
|
|
764
|
+
filterEvents?: undefined;
|
|
765
|
+
})[];
|
|
766
|
+
/**
|
|
767
|
+
* 动态函数
|
|
768
|
+
* @param args 函数入参
|
|
769
|
+
* @param code 函数内容
|
|
770
|
+
* @param isSync 是否async函数
|
|
771
|
+
*/
|
|
772
|
+
declare const evalFunc: (args: string | string[], code: string, isSync?: boolean) => any;
|
|
773
|
+
declare const replaceVars: (data: any, srcData: any) => any;
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* @author 刘佳
|
|
777
|
+
* @date 2021/8/31 7:29 下午
|
|
778
|
+
* @description 包含Core内核的额外增强功能SDK类
|
|
779
|
+
*/
|
|
780
|
+
|
|
781
|
+
interface SnackPageParams {
|
|
782
|
+
/**
|
|
783
|
+
* 页面id
|
|
784
|
+
*/
|
|
785
|
+
id: string;
|
|
786
|
+
/**
|
|
787
|
+
* 页面分类
|
|
788
|
+
*/
|
|
789
|
+
type?: string;
|
|
790
|
+
}
|
|
791
|
+
interface RenderPageConfig {
|
|
792
|
+
/**
|
|
793
|
+
* 表单回填数据
|
|
794
|
+
*/
|
|
795
|
+
data?: {
|
|
796
|
+
[key: string]: any;
|
|
797
|
+
};
|
|
798
|
+
/**
|
|
799
|
+
* 渲染规则
|
|
800
|
+
*/
|
|
801
|
+
rules?: {
|
|
802
|
+
[key: string]: RenderPageRule;
|
|
803
|
+
};
|
|
804
|
+
/**
|
|
805
|
+
* root容器参数
|
|
806
|
+
*/
|
|
807
|
+
rootProps?: {};
|
|
808
|
+
/**
|
|
809
|
+
* 页面事件对象
|
|
810
|
+
*/
|
|
811
|
+
snackPageEvent?: SnackPageCompleteEvent;
|
|
812
|
+
/**
|
|
813
|
+
* 页面渲染完成事件
|
|
814
|
+
*/
|
|
815
|
+
onComplete?: (e: SnackPageCompleteEvent, config?: SnackPageConfig) => void;
|
|
816
|
+
}
|
|
817
|
+
interface RenderPageRule {
|
|
818
|
+
/**
|
|
819
|
+
* 字段名
|
|
820
|
+
*/
|
|
821
|
+
key: string;
|
|
822
|
+
/**
|
|
823
|
+
* 字段名称
|
|
824
|
+
*/
|
|
825
|
+
label: string;
|
|
826
|
+
/**
|
|
827
|
+
* 是否有隐藏该字段绑定的组件
|
|
828
|
+
*/
|
|
829
|
+
hide?: boolean;
|
|
830
|
+
/**
|
|
831
|
+
* 是否禁用该字段绑定的组件
|
|
832
|
+
*/
|
|
833
|
+
disabled?: boolean;
|
|
834
|
+
}
|
|
835
|
+
interface SnackPageCompleteEvent extends CompleteEvent {
|
|
836
|
+
/**
|
|
837
|
+
* 清空表单数据填充
|
|
838
|
+
*/
|
|
839
|
+
empty?: () => void;
|
|
840
|
+
/**
|
|
841
|
+
* 获取表单数据
|
|
842
|
+
* @param key 指定字段获取表单数据,不传则返回全量json
|
|
843
|
+
*/
|
|
844
|
+
getData?: (key?: string) => any;
|
|
845
|
+
/**
|
|
846
|
+
* 设置表单数据
|
|
847
|
+
* @param kv 指定字段赋值或传入对象多个字段赋值
|
|
848
|
+
* @param value kv为对象时该参数将被忽略
|
|
849
|
+
*/
|
|
850
|
+
setData?: (kv: string | {
|
|
851
|
+
[key: string]: any;
|
|
852
|
+
}, value?: any) => void;
|
|
853
|
+
/**
|
|
854
|
+
* 表单校验
|
|
855
|
+
* @param key 指定校验字段,不传则校验所有字段
|
|
856
|
+
*/
|
|
857
|
+
verify?: (key?: string) => Promise<boolean>;
|
|
858
|
+
/**
|
|
859
|
+
* 页面内部事件回调方法
|
|
860
|
+
* @param e
|
|
861
|
+
*/
|
|
862
|
+
snackEventCallback?: (e: SnackEvent) => void;
|
|
863
|
+
/**
|
|
864
|
+
* 页面销毁方法
|
|
865
|
+
*/
|
|
866
|
+
destroy?: () => void;
|
|
867
|
+
/**
|
|
868
|
+
* 页面原始渲染数据
|
|
869
|
+
*/
|
|
870
|
+
pageData?: SnackPageData | null;
|
|
871
|
+
}
|
|
872
|
+
interface SnackCreateModule {
|
|
873
|
+
main?: typeof Snack;
|
|
874
|
+
name: string;
|
|
875
|
+
type: string;
|
|
876
|
+
setting?: boolean;
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* form 自定义脚本所需参数
|
|
880
|
+
*/
|
|
881
|
+
interface FormDataFormatArgs {
|
|
882
|
+
fields: SnackFormFields;
|
|
883
|
+
childrenMaps: SnackChildMaps;
|
|
884
|
+
rules?: {
|
|
885
|
+
[key: string]: RenderPageRule;
|
|
886
|
+
};
|
|
887
|
+
verify?: (key?: string) => Promise<boolean>;
|
|
888
|
+
defaultData?: {
|
|
889
|
+
[key: string]: any;
|
|
890
|
+
};
|
|
891
|
+
}
|
|
892
|
+
type SnackPageConfig = SnackPageParams | SnackPageParams[] | SnackPageData | SnackPageData[];
|
|
893
|
+
declare class SnackSDK extends Core {
|
|
894
|
+
constructor(config: CoreConfig);
|
|
895
|
+
/**
|
|
896
|
+
* 创建Snack模块实例
|
|
897
|
+
* @param snackClass Snack模块Class
|
|
898
|
+
* @param main 如果创建的是setting模块则需要传入main主模块Snack对象
|
|
899
|
+
* @param data
|
|
900
|
+
*/
|
|
901
|
+
createModule<T extends Snack = any>({ main, name, type, setting }: SnackCreateModule, data?: SnackData): Promise<T | null>;
|
|
902
|
+
/**
|
|
903
|
+
* 渲染设计器页面
|
|
904
|
+
* @param params {SnackPageParams | SnackPageData} 页面加载参数 参数非法则创建空容器
|
|
905
|
+
* @param config {RenderPageConfig} 页面渲染参数
|
|
906
|
+
* @param root 根容器
|
|
907
|
+
* @param filter 过滤渲染组件列表
|
|
908
|
+
* @private
|
|
909
|
+
*/
|
|
910
|
+
private createPage;
|
|
911
|
+
/** 校验防抖计时器 Map,key 为组件 $id */
|
|
912
|
+
private verifyTimeout;
|
|
913
|
+
/**
|
|
914
|
+
* 渲染多个页面,当页面为表单时会过滤相同字段的表单组件
|
|
915
|
+
* @param params
|
|
916
|
+
* @param config
|
|
917
|
+
*/
|
|
918
|
+
renderPage(params: SnackPageConfig, config?: RenderPageConfig): Promise<DropOjb<any, any> | null>;
|
|
919
|
+
/**
|
|
920
|
+
* 卸载页面
|
|
921
|
+
* @private
|
|
922
|
+
*/
|
|
923
|
+
destroy(event: SnackPageCompleteEvent | null, root: DropOjb | null): void;
|
|
924
|
+
/**
|
|
925
|
+
* 设置表单字段数据
|
|
926
|
+
* @param formatArag
|
|
927
|
+
* @param kv 所要设置的字段名,当value为空,key为对象则覆盖整个data对象
|
|
928
|
+
* @param value 所要设置的字段值
|
|
929
|
+
* @private
|
|
930
|
+
*/
|
|
931
|
+
private formSetData;
|
|
932
|
+
/**
|
|
933
|
+
* 表单入参转换
|
|
934
|
+
* @param M
|
|
935
|
+
* @param verify
|
|
936
|
+
* @param fields
|
|
937
|
+
* @param defaultData
|
|
938
|
+
* @param childrenMaps
|
|
939
|
+
* @private
|
|
940
|
+
*/
|
|
941
|
+
private formFormatValue;
|
|
942
|
+
/**
|
|
943
|
+
* 获取表单数据
|
|
944
|
+
* @param verify
|
|
945
|
+
* @param childrenMaps
|
|
946
|
+
* @param fields 表单字段对象
|
|
947
|
+
* @param defaultData
|
|
948
|
+
* @param key 指定获取字段值
|
|
949
|
+
* @private
|
|
950
|
+
*/
|
|
951
|
+
private formGetData;
|
|
952
|
+
/**
|
|
953
|
+
* 表单校验
|
|
954
|
+
* @private
|
|
955
|
+
* @param formatArag
|
|
956
|
+
* @param key
|
|
957
|
+
* @param pageData
|
|
958
|
+
*/
|
|
959
|
+
private formVerify;
|
|
960
|
+
/**
|
|
961
|
+
* 清空表单填充数据
|
|
962
|
+
* @param children
|
|
963
|
+
* @private
|
|
964
|
+
*/
|
|
965
|
+
private formEmpty;
|
|
966
|
+
/**
|
|
967
|
+
* 格式化Form入参数据
|
|
968
|
+
* @param defaultData
|
|
969
|
+
* @param moduleData 组件初始化入参
|
|
970
|
+
* @param fields
|
|
971
|
+
* @private
|
|
972
|
+
*/
|
|
973
|
+
private formatData;
|
|
974
|
+
/**
|
|
975
|
+
* 解码页面内容base64
|
|
976
|
+
* @param data
|
|
977
|
+
*/
|
|
978
|
+
private pageContentDecode;
|
|
979
|
+
/**
|
|
980
|
+
* 获取页面数据
|
|
981
|
+
*/
|
|
982
|
+
getPage(params: SnackPageParams): Promise<SnackPageData | null>;
|
|
983
|
+
/**
|
|
984
|
+
* 渲染设计器页面 - React FC组件
|
|
985
|
+
* @param params {SnackPageConfig}
|
|
986
|
+
* @param config {RenderPageConfig}
|
|
987
|
+
*/
|
|
988
|
+
createPageComponent<T>(params: SnackPageConfig, config?: RenderPageConfig): Promise<React.FunctionComponent>;
|
|
989
|
+
/**
|
|
990
|
+
* 渲染页面到dom元素内
|
|
991
|
+
* @param el
|
|
992
|
+
* @param params
|
|
993
|
+
* @param config
|
|
994
|
+
*/
|
|
995
|
+
createPageForElement<T extends SnackData = SnackData>(el: HTMLElement, params: SnackPageConfig, config?: RenderPageConfig): Promise<DropOjb | null | undefined>;
|
|
996
|
+
/**
|
|
997
|
+
* 渲染模块 - React FC组件
|
|
998
|
+
* @param args 模块装载参数
|
|
999
|
+
* @param data 模块初始数据
|
|
1000
|
+
*/
|
|
1001
|
+
createModuleComponent<T extends SnackData>(args: SnackCreateModule, data?: T): Promise<React.FunctionComponent>;
|
|
1002
|
+
/**
|
|
1003
|
+
* 渲染模块到dom元素内
|
|
1004
|
+
* @param el 所要渲染模块的容器
|
|
1005
|
+
* @param args 模块装载参数
|
|
1006
|
+
* @param data 模块初始数据
|
|
1007
|
+
*/
|
|
1008
|
+
createModuleForElement<T extends SnackData, S extends Snack = any>(el: HTMLElement, args: SnackCreateModule, data?: T): Promise<S | null>;
|
|
1009
|
+
/**
|
|
1010
|
+
* 通过模块Class渲染模块
|
|
1011
|
+
* @param SnackClass sanck 模块 Class
|
|
1012
|
+
* @param data snack对象参数
|
|
1013
|
+
* @param main 如果为设置模块,传入主模块对象
|
|
1014
|
+
*/
|
|
1015
|
+
createClassModule<T extends SnackData, S extends Snack | SnackSetting>(SnackClass: new (...args: unknown[]) => S, data?: T, main?: Snack): S;
|
|
1016
|
+
/**
|
|
1017
|
+
* 通过模块Class渲染模块
|
|
1018
|
+
* @param SnackClass snack 模块 Class
|
|
1019
|
+
* @param data snack对象参数
|
|
1020
|
+
* @param main 如果为设置模块,传入主模块对象
|
|
1021
|
+
*/
|
|
1022
|
+
createClassModuleComponent<T extends SnackData, S extends Snack | SnackSetting>(SnackClass: new (...args: unknown[]) => S, data?: T, main?: Snack): React.FunctionComponent;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* 设计器事件列表
|
|
1027
|
+
* @param language {boolean} 当前语言*
|
|
1028
|
+
*/
|
|
1029
|
+
declare const GetDefaultEvents: (language?: "zh-CN" | "en-US") => ({
|
|
1030
|
+
name: string;
|
|
1031
|
+
label: string;
|
|
1032
|
+
default: boolean;
|
|
1033
|
+
verify: boolean;
|
|
1034
|
+
} | {
|
|
1035
|
+
name: string;
|
|
1036
|
+
label: string;
|
|
1037
|
+
default: boolean;
|
|
1038
|
+
verify?: undefined;
|
|
1039
|
+
} | {
|
|
1040
|
+
name: string;
|
|
1041
|
+
label: string;
|
|
1042
|
+
default?: undefined;
|
|
1043
|
+
verify?: undefined;
|
|
1044
|
+
})[];
|
|
1045
|
+
|
|
1046
|
+
interface SnackMapItem {
|
|
1047
|
+
[name: string]: Snack;
|
|
1048
|
+
}
|
|
1049
|
+
/**
|
|
1050
|
+
* 国际化对象结构
|
|
1051
|
+
*/
|
|
1052
|
+
interface I18nMap {
|
|
1053
|
+
[name: string]: {
|
|
1054
|
+
[name: string]: string;
|
|
1055
|
+
};
|
|
1056
|
+
}
|
|
1057
|
+
interface SnackData {
|
|
1058
|
+
$snackSDK?: SnackSDK;
|
|
1059
|
+
$i18n?: I18nMap;
|
|
1060
|
+
style?: React.CSSProperties;
|
|
1061
|
+
eventScripts?: {
|
|
1062
|
+
[eventName: string]: {
|
|
1063
|
+
script: string;
|
|
1064
|
+
};
|
|
1065
|
+
};
|
|
1066
|
+
formAttr?: SnackFormAttribute;
|
|
1067
|
+
/** drag/drop 容器父级 Snack 实例 */
|
|
1068
|
+
parent?: Snack;
|
|
1069
|
+
/** drag 容器渲染内容 */
|
|
1070
|
+
content?: unknown;
|
|
1071
|
+
/** drop 容器子节点列表 */
|
|
1072
|
+
children?: Snack[];
|
|
1073
|
+
[key: string]: any;
|
|
1074
|
+
}
|
|
1075
|
+
declare class Snack<T extends SnackData = any> {
|
|
1076
|
+
data?: T | undefined;
|
|
1077
|
+
/**
|
|
1078
|
+
* 当前模块名称
|
|
1079
|
+
*/
|
|
1080
|
+
$name: string;
|
|
1081
|
+
/**
|
|
1082
|
+
* 页面事件对象
|
|
1083
|
+
*/
|
|
1084
|
+
$page?: SnackPageCompleteEvent;
|
|
1085
|
+
/**
|
|
1086
|
+
* 当前模块唯一id,每次实例化随机生成
|
|
1087
|
+
*/
|
|
1088
|
+
$id: string;
|
|
1089
|
+
/**
|
|
1090
|
+
* 国际化语言map集合
|
|
1091
|
+
*/
|
|
1092
|
+
private $i18nMap;
|
|
1093
|
+
/**
|
|
1094
|
+
* 构造函数初始化传入的国际化,当他存在时则优先从此国际化获取数据
|
|
1095
|
+
* @private
|
|
1096
|
+
*/
|
|
1097
|
+
private $i18nMapExternal?;
|
|
1098
|
+
/**
|
|
1099
|
+
* react重绘hook,由 FC 方法中的 useState setter 赋值
|
|
1100
|
+
*/
|
|
1101
|
+
private $forceUpdateHook;
|
|
1102
|
+
/**
|
|
1103
|
+
* 父级容器Snack对象,通常为M的父级容器Drag
|
|
1104
|
+
*/
|
|
1105
|
+
$parent?: Snack;
|
|
1106
|
+
/**
|
|
1107
|
+
* 重绘标识,每次 reload 重绘时更新
|
|
1108
|
+
*/
|
|
1109
|
+
private $forceUpdateId;
|
|
1110
|
+
/**
|
|
1111
|
+
* 是否基础模块
|
|
1112
|
+
*/
|
|
1113
|
+
isBasic: boolean;
|
|
1114
|
+
/**
|
|
1115
|
+
* 是否容器
|
|
1116
|
+
*/
|
|
1117
|
+
isContainer: boolean;
|
|
1118
|
+
/**
|
|
1119
|
+
* 是否放置容器
|
|
1120
|
+
*/
|
|
1121
|
+
isDrop: boolean;
|
|
1122
|
+
/**
|
|
1123
|
+
* 是否拖拽容器
|
|
1124
|
+
*/
|
|
1125
|
+
isDrag: boolean;
|
|
1126
|
+
/**
|
|
1127
|
+
* 是否页面模版容器
|
|
1128
|
+
*/
|
|
1129
|
+
isTemplate: boolean;
|
|
1130
|
+
/**
|
|
1131
|
+
* 是否form组件
|
|
1132
|
+
*/
|
|
1133
|
+
isForm: boolean;
|
|
1134
|
+
/**
|
|
1135
|
+
* 设置模式
|
|
1136
|
+
*/
|
|
1137
|
+
settingMode: boolean;
|
|
1138
|
+
/**
|
|
1139
|
+
* @para-snack/sdk 实列对象
|
|
1140
|
+
*/
|
|
1141
|
+
sdk: SnackSDK | undefined;
|
|
1142
|
+
/**
|
|
1143
|
+
* 优先渲染属性
|
|
1144
|
+
*/
|
|
1145
|
+
props?: T;
|
|
1146
|
+
/**
|
|
1147
|
+
*
|
|
1148
|
+
* @param data 统一数据管理对象
|
|
1149
|
+
* @param defData data默认值
|
|
1150
|
+
*/
|
|
1151
|
+
constructor(data?: T | undefined, defData?: T);
|
|
1152
|
+
/**
|
|
1153
|
+
* 浅克隆数据对象(JSON可序列化的字段深克隆,不可序列化的字段浅引用)
|
|
1154
|
+
* @param obj 待克隆的数据对象
|
|
1155
|
+
*/
|
|
1156
|
+
cloneData<T>(obj: T): T;
|
|
1157
|
+
/**
|
|
1158
|
+
* React组件方法
|
|
1159
|
+
* @param data 统一数据管理对象(解构覆盖构造函数data参数)
|
|
1160
|
+
* @return FunctionComponent
|
|
1161
|
+
*/
|
|
1162
|
+
private $lastUpdateId;
|
|
1163
|
+
FC(data: T): React.ReactNode;
|
|
1164
|
+
/**
|
|
1165
|
+
* 模块渲染方法,子类重写此方法实现 UI
|
|
1166
|
+
* @param data 当前数据对象
|
|
1167
|
+
*/
|
|
1168
|
+
$component(data?: T): React.ReactNode;
|
|
1169
|
+
/**
|
|
1170
|
+
* 强制渲染JSX内容
|
|
1171
|
+
* @param reload 是否强制重绘
|
|
1172
|
+
*/
|
|
1173
|
+
$forceUpdate(reload?: boolean): void;
|
|
1174
|
+
/**
|
|
1175
|
+
* this.style 样式赋值方法,同时渲染页面
|
|
1176
|
+
* @param key
|
|
1177
|
+
* @param value
|
|
1178
|
+
*/
|
|
1179
|
+
$style(key?: keyof React.CSSProperties | Record<keyof React.CSSProperties, any>, value?: any): any;
|
|
1180
|
+
/**
|
|
1181
|
+
* 外部复写,统一销毁方法
|
|
1182
|
+
*/
|
|
1183
|
+
$destroy(): void;
|
|
1184
|
+
/**
|
|
1185
|
+
* 国际化切换方法
|
|
1186
|
+
* @param lang 语言
|
|
1187
|
+
*/
|
|
1188
|
+
$language(lang: string): void;
|
|
1189
|
+
get $lang(): string;
|
|
1190
|
+
set $lang(lang: string);
|
|
1191
|
+
/**
|
|
1192
|
+
* 国际化语言包返回
|
|
1193
|
+
*/
|
|
1194
|
+
get $i18n(): I18nMap;
|
|
1195
|
+
/**
|
|
1196
|
+
* 国际化语言包设置
|
|
1197
|
+
* @param map 语言包对象
|
|
1198
|
+
*/
|
|
1199
|
+
set $i18n(map: I18nMap);
|
|
1200
|
+
/**
|
|
1201
|
+
* 返回外部导入与默认国际化数据
|
|
1202
|
+
*/
|
|
1203
|
+
$getI18n(): {
|
|
1204
|
+
external: I18nMap | null;
|
|
1205
|
+
default: I18nMap;
|
|
1206
|
+
};
|
|
1207
|
+
/**
|
|
1208
|
+
* 国际化语言获取
|
|
1209
|
+
* @param ops 语言变量
|
|
1210
|
+
*/
|
|
1211
|
+
$intl(ops: {
|
|
1212
|
+
id: string;
|
|
1213
|
+
} | string, params?: Record<string, unknown>): string | React.JSX.Element;
|
|
1214
|
+
$display(b: boolean): DropChildrenItem<any, any, any, any> | undefined;
|
|
1215
|
+
protected cloneDeep(data: any, re?: any): any;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
interface Props$1 {
|
|
1219
|
+
content?: string | React.ReactNode;
|
|
1220
|
+
sub?: string | React.ReactNode;
|
|
1221
|
+
info?: string | React.ReactNode;
|
|
1222
|
+
}
|
|
1223
|
+
declare const Error$1: (props: Props$1) => React.JSX.Element;
|
|
1224
|
+
|
|
1225
|
+
interface Props {
|
|
1226
|
+
text?: string | React.ReactNode;
|
|
1227
|
+
className?: string;
|
|
1228
|
+
size?: number;
|
|
1229
|
+
}
|
|
1230
|
+
declare const Loading: (props: Props) => React.JSX.Element;
|
|
1231
|
+
|
|
1232
|
+
declare const _default: {
|
|
1233
|
+
version: string;
|
|
1234
|
+
};
|
|
1235
|
+
|
|
1236
|
+
export { Core, type CoreConfig, DisplayModule, type DropChildrenItem, Error$1 as Error, type ExprArgv, type FormDataFormatArgs, GetDefaultEvents, GetParamsDetails, type I18nMap, type ImportModules, type LoadConfig, type LoadModuleConfig, type LoadModuleURLConfig, Loading, type ModuleConfig, ParamsDetails, type RenderPageConfig, type RenderPageRule, type RequireConfig, Snack, type SnackCreateModule, type SnackData, type SnackDefineFunction, type SnackEvent, type SnackFormAttribute, type SnackFormVerifyRule, type SnackMapItem, type SnackPageCompleteEvent, type SnackPageConfig, type SnackPageContent, type SnackPageContentModule, type SnackPageData, type SnackPageParams, type SnackRequireFunction, SnackSDK, SnackSetting, type SnackSettingModelItem, _default as default, enParamsDetails, evalFunc, replaceVars };
|