@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.
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ import { I18nData } from "./i18n";
3
+ import SnackSDK from "../sdk";
4
+ import Core from "../core";
5
+ /**
6
+ * 国际化获取方法
7
+ * @param sdk SnackSDK实例化对象
8
+ * @param ops 国际化取值key参数
9
+ * @param i18nData 国际化数据对象
10
+ * @param params 国际化字符变量对象
11
+ * @param lang 指定国际化语言
12
+ * @param defI18nData 默认国际化数据对象
13
+ */
14
+ export declare function i18nIntl(sdk: SnackSDK | Core, ops: string | {
15
+ id: string;
16
+ }, i18nData: I18nData, params?: object, lang?: string, defI18nData?: I18nData): string | React.JSX.Element;
17
+ /**
18
+ * 获取国际化语言
19
+ * @param sdk
20
+ * @param lang
21
+ */
22
+ export declare function getLocale(sdk: SnackSDK | Core, lang?: string): string;
23
+ export declare const get: (obj: any, path: string, defaultValue?: any) => any;
24
+ /**
25
+ * 替换字符串模版变量
26
+ * @param str
27
+ * @param params
28
+ */
29
+ export declare const replaceStrTemplateVars: (str: string, vars?: any) => string | React.JSX.Element;
30
+ /**
31
+ * 判断[]或者{}
32
+ * */
33
+ export declare const isEmptyObject: (value: any) => boolean;
@@ -0,0 +1,151 @@
1
+ import { ModuleType } from "./verifyJS";
2
+ import { DropChildrenItem } from "../interface";
3
+ declare const types: {
4
+ inFormatJS: string[];
5
+ outFormatJS: string[];
6
+ verifyJS: string[];
7
+ eventJS: string[];
8
+ onCreateBefore: string[];
9
+ };
10
+ /**
11
+ * $this 当前组件对象
12
+ * $key 当前组件的唯一key值
13
+ * $field 当前表单绑定的字段名
14
+ * $fields 当前表单字段键值对
15
+ * $cb 校验回调函数 () => Promise<IError | boolean>
16
+ * $verify 校验方法 (key?: string) => Promise<boolean>
17
+ * $value form组件值
18
+ * $defaultValue 当前form组件默认值
19
+ * $defaultData 渲染表单传入的默认data对象
20
+ * $val 设置指定字段的组件值 $val(key, value);
21
+ * $getData 根据绑定字段获取组件(M)对象的data;
22
+ * $display 设置指定字段组件是否显示 $display(key, true/false);
23
+ * $http paralib http 请求模块
24
+ * $utils paralib 工具方法模块
25
+ * $message paraUi message 提示组件
26
+ */
27
+ interface DataFields {
28
+ $cb?: Function;
29
+ $this: any;
30
+ $fields: any;
31
+ $verify?: any;
32
+ $children: any;
33
+ $defaultData?: {
34
+ [key: string]: any;
35
+ };
36
+ $message?: {
37
+ [key: string]: any;
38
+ };
39
+ [key: string]: any;
40
+ }
41
+ export default function <T extends ModuleType>(type: keyof typeof types, code: string, data: DataFields): any;
42
+ /**
43
+ * 是否显示组件,默认显示
44
+ * @param child
45
+ * @param show 是否显示
46
+ */
47
+ declare function $display(child?: DropChildrenItem, show?: boolean): DropChildrenItem<any, any, any, any> | undefined;
48
+ export declare const DisplayModule: typeof $display;
49
+ /**
50
+ * 返回代monaco代码提示
51
+ * @param monaco monaco编辑器对象
52
+ * @param event 指定过滤事件的参数,可选,默认全量参数
53
+ * @constructor
54
+ */
55
+ export declare const GetParamsDetails: (monaco: any, event?: string, locale?: "en-US" | "zh-CN") => {
56
+ label: string;
57
+ insertText: string;
58
+ detail: string;
59
+ documentation: string | undefined;
60
+ kind: any;
61
+ }[];
62
+ /**
63
+ * 脚本参数描述
64
+ * @param filterEvents string[] 过滤所属事件,默认参数生效与所有脚本
65
+ * @param events string[] 参数所属事件
66
+ * @param label string 参数名
67
+ * @param insertText string 自动补全代码
68
+ * @param detail string 简要描述
69
+ * @param documentation string 详细描述
70
+ * */
71
+ export declare const ParamsDetails: ({
72
+ label: string;
73
+ insertText: string;
74
+ detail: string;
75
+ filterEvents?: undefined;
76
+ events?: undefined;
77
+ documentation?: undefined;
78
+ } | {
79
+ filterEvents: string[];
80
+ label: string;
81
+ insertText: string;
82
+ detail: string;
83
+ events?: undefined;
84
+ documentation?: undefined;
85
+ } | {
86
+ events: string[];
87
+ label: string;
88
+ insertText: string;
89
+ detail: string;
90
+ filterEvents?: undefined;
91
+ documentation?: undefined;
92
+ } | {
93
+ label: string;
94
+ insertText: string;
95
+ detail: string;
96
+ documentation: string;
97
+ filterEvents?: undefined;
98
+ events?: undefined;
99
+ } | {
100
+ events: string[];
101
+ label: string;
102
+ insertText: string;
103
+ detail: string;
104
+ documentation: string;
105
+ filterEvents?: undefined;
106
+ })[];
107
+ export declare const enParamsDetails: ({
108
+ label: string;
109
+ insertText: string;
110
+ detail: string;
111
+ filterEvents?: undefined;
112
+ events?: undefined;
113
+ documentation?: undefined;
114
+ } | {
115
+ filterEvents: string[];
116
+ label: string;
117
+ insertText: string;
118
+ detail: string;
119
+ events?: undefined;
120
+ documentation?: undefined;
121
+ } | {
122
+ events: string[];
123
+ label: string;
124
+ insertText: string;
125
+ detail: string;
126
+ filterEvents?: undefined;
127
+ documentation?: undefined;
128
+ } | {
129
+ label: string;
130
+ insertText: string;
131
+ detail: string;
132
+ documentation: string;
133
+ filterEvents?: undefined;
134
+ events?: undefined;
135
+ } | {
136
+ events: string[];
137
+ label: string;
138
+ insertText: string;
139
+ detail: string;
140
+ documentation: string;
141
+ filterEvents?: undefined;
142
+ })[];
143
+ /**
144
+ * 动态函数
145
+ * @param args 函数入参
146
+ * @param code 函数内容
147
+ * @param isSync 是否async函数
148
+ */
149
+ export declare const evalFunc: (args: string | string[], code: string, isSync?: boolean) => any;
150
+ export declare const replaceVars: (data: any, srcData: any) => any;
151
+ export {};
@@ -0,0 +1,13 @@
1
+ export interface I18nData {
2
+ /**
3
+ * 语言
4
+ */
5
+ [lang: string]: {
6
+ /**
7
+ * 字段键值
8
+ */
9
+ [key: string]: string;
10
+ };
11
+ }
12
+ declare let locale: I18nData;
13
+ export default locale;
@@ -0,0 +1,42 @@
1
+ import { SnackFormAttribute } from "../interface";
2
+ import { FormDataFormatArgs } from "../sdk/index";
3
+ export type ModuleType = {
4
+ data: {
5
+ /**
6
+ * 表单配置属性
7
+ */
8
+ formAttr: SnackFormAttribute;
9
+ /**
10
+ * 表单组件标题
11
+ */
12
+ label: string;
13
+ /**
14
+ * 表单组件值
15
+ */
16
+ value: any;
17
+ /**
18
+ * 默认值
19
+ */
20
+ __defaultvalue: any;
21
+ /**
22
+ * 表单组件错误提示红框
23
+ */
24
+ error: boolean;
25
+ /**
26
+ * 表单组件下方文本
27
+ */
28
+ helperText: string;
29
+ };
30
+ /**
31
+ * 强制渲染组件方法
32
+ */
33
+ $forceUpdate: () => void;
34
+ };
35
+ /**
36
+ * 校验值
37
+ * @param $this M 对象
38
+ * @param cb 回调函数
39
+ * @param sdk sdk
40
+ */
41
+ export default function <T extends ModuleType>(formatAargs: FormDataFormatArgs, M: T): Promise<boolean>;
42
+ export declare const verifyGlobal: (code: string, formatAargs: FormDataFormatArgs, defValue: boolean) => Promise<boolean>;
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@snack-kit/core",
3
+ "version": "0.1.0",
4
+ "main": "dist/cjs/index.js",
5
+ "module": "dist/es/index.js",
6
+ "typings": "dist/types/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/types/index.d.ts",
10
+ "import": "./dist/es/index.js",
11
+ "require": "./dist/cjs/index.js"
12
+ }
13
+ },
14
+ "description": "Snack by Para FED",
15
+ "scripts": {
16
+ "dev": "webpack serve --mode=development --config=webpack.dev.config.js",
17
+ "build": "tsup",
18
+ "build:watch": "tsup --watch",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "test:coverage": "vitest run --coverage",
22
+ "docs": "typedoc",
23
+ "lint": "tsc --noEmit",
24
+ "clean": "rimraf ./dist",
25
+ "prepublishOnly": "npm run build",
26
+ "release": "npm run build && npm publish --access public"
27
+ },
28
+ "snack": {},
29
+ "files": [
30
+ "dist",
31
+ "package.json"
32
+ ],
33
+ "author": "",
34
+ "license": "ISC",
35
+ "dependencies": {
36
+ "@snack-kit/lib": "^0.6.0",
37
+ "react": "^19.2.0",
38
+ "react-dom": "^19.2.0"
39
+ },
40
+ "devDependencies": {
41
+ "@swc/core": "^1.15.18",
42
+ "@types/react": "^19.2.7",
43
+ "@types/react-dom": "^19.2.3",
44
+ "@vitest/coverage-v8": "^2.0.0",
45
+ "css-loader": "^7.1.4",
46
+ "html-webpack-plugin": "^5.6.6",
47
+ "jsdom": "^24.0.0",
48
+ "minimist": "^1.2.8",
49
+ "rimraf": "^5.0.0",
50
+ "sass": "^1.97.3",
51
+ "sass-loader": "^16.0.7",
52
+ "style-loader": "^4.0.0",
53
+ "swc-loader": "^0.2.7",
54
+ "tsup": "^8.0.0",
55
+ "typedoc": "^0.26.0",
56
+ "typescript": "^5.0.0",
57
+ "vitest": "^2.0.0",
58
+ "webpack": "^5.105.3",
59
+ "webpack-cli": "^6.0.1",
60
+ "webpack-dev-server": "^5.2.3"
61
+ }
62
+ }