weaver-e10-builder 1.7.0 → 1.7.1
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/dist/cli-register.d.ts.map +1 -1
- package/dist/cli-register.js +16 -3
- package/dist/cli-register.js.map +1 -1
- package/dist/commands/app-manager.d.ts +8 -0
- package/dist/commands/app-manager.d.ts.map +1 -0
- package/dist/commands/app-manager.js +330 -0
- package/dist/commands/app-manager.js.map +1 -0
- package/dist/commands/app-setting.d.ts +8 -0
- package/dist/commands/app-setting.d.ts.map +1 -0
- package/dist/commands/app-setting.js +170 -0
- package/dist/commands/app-setting.js.map +1 -0
- package/dist/commands/connector.d.ts +7 -0
- package/dist/commands/connector.d.ts.map +1 -0
- package/dist/commands/connector.js +163 -0
- package/dist/commands/connector.js.map +1 -0
- package/dist/commands/form-permission.d.ts.map +1 -1
- package/dist/commands/form-permission.js +5 -1
- package/dist/commands/form-permission.js.map +1 -1
- package/dist/commands/menu-config.d.ts +3 -0
- package/dist/commands/menu-config.d.ts.map +1 -0
- package/dist/commands/menu-config.js +93 -0
- package/dist/commands/menu-config.js.map +1 -0
- package/dist/commands/menu-permission.d.ts.map +1 -1
- package/dist/commands/menu-permission.js +6 -7
- package/dist/commands/menu-permission.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +2 -5
- package/dist/commands/menu.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +1 -1
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/date_trigger.js +1 -1
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/meeting_create.js +2 -1
- package/dist/services/actionflow/components/meeting_create.js.map +1 -1
- package/dist/services/actionflow/components/output.d.ts.map +1 -1
- package/dist/services/actionflow/components/output.js +2 -0
- package/dist/services/actionflow/components/output.js.map +1 -1
- package/dist/services/actionflow/context_discovery.d.ts.map +1 -1
- package/dist/services/actionflow/context_discovery.js +3 -0
- package/dist/services/actionflow/context_discovery.js.map +1 -1
- package/dist/services/actionflow/date_trigger_field.d.ts +3 -0
- package/dist/services/actionflow/date_trigger_field.d.ts.map +1 -0
- package/dist/services/actionflow/date_trigger_field.js +23 -0
- package/dist/services/actionflow/date_trigger_field.js.map +1 -0
- package/dist/services/actionflow/form_source.d.ts +1 -1
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +9 -1
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +4 -12
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +2 -1
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/loop_context.d.ts.map +1 -1
- package/dist/services/actionflow/loop_context.js +17 -0
- package/dist/services/actionflow/loop_context.js.map +1 -1
- package/dist/services/actionflow/meeting_secret_level.d.ts +5 -0
- package/dist/services/actionflow/meeting_secret_level.d.ts.map +1 -0
- package/dist/services/actionflow/meeting_secret_level.js +49 -0
- package/dist/services/actionflow/meeting_secret_level.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts +2 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +212 -4
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
- package/dist/services/actionflow/readback_verifier.js +22 -0
- package/dist/services/actionflow/readback_verifier.js.map +1 -1
- package/dist/services/actionflow/runtime_metadata.d.ts +2 -1
- package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
- package/dist/services/actionflow/runtime_metadata.js +6 -1
- package/dist/services/actionflow/runtime_metadata.js.map +1 -1
- package/dist/services/actionflow/update_service.d.ts.map +1 -1
- package/dist/services/actionflow/update_service.js +42 -1
- package/dist/services/actionflow/update_service.js.map +1 -1
- package/dist/services/actionflow/webhook_response_context.d.ts +7 -0
- package/dist/services/actionflow/webhook_response_context.d.ts.map +1 -0
- package/dist/services/actionflow/webhook_response_context.js +82 -0
- package/dist/services/actionflow/webhook_response_context.js.map +1 -0
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +67 -35
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/app-manager.d.ts +128 -0
- package/dist/services/app-manager.d.ts.map +1 -0
- package/dist/services/app-manager.js +420 -0
- package/dist/services/app-manager.js.map +1 -0
- package/dist/services/app-setting.d.ts +109 -0
- package/dist/services/app-setting.d.ts.map +1 -0
- package/dist/services/app-setting.js +410 -0
- package/dist/services/app-setting.js.map +1 -0
- package/dist/services/esb-interface/connector-lock.d.ts +42 -0
- package/dist/services/esb-interface/connector-lock.d.ts.map +1 -0
- package/dist/services/esb-interface/connector-lock.js +79 -0
- package/dist/services/esb-interface/connector-lock.js.map +1 -0
- package/dist/services/esb-interface/connector-update.d.ts +34 -0
- package/dist/services/esb-interface/connector-update.d.ts.map +1 -0
- package/dist/services/esb-interface/connector-update.js +58 -0
- package/dist/services/esb-interface/connector-update.js.map +1 -0
- package/dist/services/form-permission-edit.d.ts +11 -0
- package/dist/services/form-permission-edit.d.ts.map +1 -1
- package/dist/services/form-permission-edit.js +28 -0
- package/dist/services/form-permission-edit.js.map +1 -1
- package/dist/services/menu-config.d.ts +42 -0
- package/dist/services/menu-config.d.ts.map +1 -0
- package/dist/services/menu-config.js +174 -0
- package/dist/services/menu-config.js.map +1 -0
- package/dist/services/menu-permission-config.d.ts +47 -0
- package/dist/services/menu-permission-config.d.ts.map +1 -0
- package/dist/services/menu-permission-config.js +222 -0
- package/dist/services/menu-permission-config.js.map +1 -0
- package/package.json +1 -1
- package/skill-docs/SKILL.md +192 -188
- package/skill-docs/_catalog.md +4 -0
- package/skill-docs/actionflows/SKILL.md +2 -0
- package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +5 -1
- package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +2 -0
- package/skill-docs/actionflows/references/components/trigger/WebHookTrigger.md +2 -0
- package/skill-docs/references/app/guide-app-manager.md +93 -0
- package/skill-docs/references/app/guide-app-settings.md +93 -0
- package/skill-docs/references/common/ref-cli-commands.md +12 -1
- package/skill-docs/references/form/guide-form-permission.md +3 -1
- package/skill-docs/references/menu/guide-menu-config.md +130 -0
- package/skill-docs/references/menu/guide-menu-permission.md +94 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EB 应用「应用设置」——菜单展示方式、默认首页、字段权限开关。
|
|
3
|
+
*
|
|
4
|
+
* 前端实现(线上 `build/ebdapp/static/js`)里这些都挂在同一个 publishInfo 上:
|
|
5
|
+
*
|
|
6
|
+
* GET /api/bs/ebuilder/app/setting/publish/info?appId=
|
|
7
|
+
* POST /api/bs/ebuilder/app/setting/publish/save?appId=
|
|
8
|
+
*
|
|
9
|
+
* `save` 是 **form-urlencoded**;对象值前端会先 JSON.stringify(导航就是对象)。
|
|
10
|
+
* 前端只提交发生变化的键,这里沿用同一语义,避免整份回写把别的设置带坏。
|
|
11
|
+
*
|
|
12
|
+
* 菜单展示的编码(线上 bundle 里的枚举):
|
|
13
|
+
* showType: 1=默认显示、0=隐藏、-1=不显示
|
|
14
|
+
* multiMenu: 1=全部展开、2=全部收起(缺省 2)
|
|
15
|
+
*
|
|
16
|
+
* 默认首页不是一个 `homepage` 对象,而是拍平在 pc/mobile 上的
|
|
17
|
+
* `homepageId / homepageType / homepageName / homepageUrl / homepageParams`。
|
|
18
|
+
*/
|
|
19
|
+
export declare const APP_SETTING_INFO_PATH = "/api/bs/ebuilder/app/setting/publish/info";
|
|
20
|
+
export declare const APP_SETTING_SAVE_PATH = "/api/bs/ebuilder/app/setting/publish/save";
|
|
21
|
+
export declare const APP_SETTING_CHECK_RIGHT_PATH = "/api/bs/ebuilder/app/setting/checkRight";
|
|
22
|
+
export declare const PAGE_LIST_PATH = "/api/bs/ebuilder/page/list";
|
|
23
|
+
export type ShowType = '1' | '0' | '-1';
|
|
24
|
+
export type MultiMenu = '1' | '2';
|
|
25
|
+
export interface HomepageSetting {
|
|
26
|
+
pageId: string;
|
|
27
|
+
pageType: string;
|
|
28
|
+
pageName: string;
|
|
29
|
+
/** 前端把 `homepageParams` 原样写回;没有就不动。 */
|
|
30
|
+
params?: unknown;
|
|
31
|
+
/** 非 PAGE 的页面可能带 pageExtend,缺省不改。 */
|
|
32
|
+
url?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface TerminalChanges {
|
|
35
|
+
showType?: ShowType;
|
|
36
|
+
multiMenu?: MultiMenu;
|
|
37
|
+
/** `null` 表示清除默认首页;`undefined` 表示不改。 */
|
|
38
|
+
homepage?: HomepageSetting | null;
|
|
39
|
+
}
|
|
40
|
+
export interface AppSettingChanges {
|
|
41
|
+
pc?: TerminalChanges;
|
|
42
|
+
mobile?: TerminalChanges;
|
|
43
|
+
fieldPermissionSwitch?: 0 | 1;
|
|
44
|
+
}
|
|
45
|
+
export interface SettingSnapshot {
|
|
46
|
+
appId: string;
|
|
47
|
+
fieldPermissionSwitch: boolean;
|
|
48
|
+
pc: {
|
|
49
|
+
showType: ShowType;
|
|
50
|
+
showTypeName: string;
|
|
51
|
+
multiMenu: MultiMenu;
|
|
52
|
+
multiMenuName: string;
|
|
53
|
+
homepage: HomepageSetting | null;
|
|
54
|
+
};
|
|
55
|
+
mobile: SettingSnapshot['pc'];
|
|
56
|
+
raw: any;
|
|
57
|
+
}
|
|
58
|
+
export declare function showTypeName(v: ShowType): string;
|
|
59
|
+
export declare function multiMenuName(v: MultiMenu): string;
|
|
60
|
+
/** `--pc-show` / `--mobile-show` → 平台编码。认不出直接报错并列可选值。 */
|
|
61
|
+
export declare function parseShowType(input: string): ShowType;
|
|
62
|
+
/** `--pc-multi-menu` / `--mobile-multi-menu` → 平台编码。 */
|
|
63
|
+
export declare function parseMultiMenu(input: string): MultiMenu;
|
|
64
|
+
/** `--field-permission` → 1/0。 */
|
|
65
|
+
export declare function parseFieldPermission(input: string): 0 | 1;
|
|
66
|
+
/** 读应用的 publishInfo。 */
|
|
67
|
+
export declare function readAppSetting(client: any, baseUrl: string, appId: string): Promise<any>;
|
|
68
|
+
/** 当前用户是否有应用设置权限。接口调用失败按“无权限/不可写”处理,避免把失败当成功。 */
|
|
69
|
+
export declare function checkAppSettingRight(client: any, baseUrl: string, appId: string): Promise<boolean>;
|
|
70
|
+
/** 把 publishInfo 归一成给用户看的快照。缺失值按前端默认:showType=1、multiMenu=2。 */
|
|
71
|
+
export declare function snapshotOf(appId: string, data: any): SettingSnapshot;
|
|
72
|
+
/**
|
|
73
|
+
* 把变更写进导航对象。**只改点名的键**,其余(含 menus)原样保留。
|
|
74
|
+
* 返回 null 表示没有任何变化。
|
|
75
|
+
*/
|
|
76
|
+
export declare function applySettingChanges(current: any, changes: AppSettingChanges): any | null;
|
|
77
|
+
/**
|
|
78
|
+
* 本次请求真正发出去的 save 字段(JSON body,不是 form)。
|
|
79
|
+
*
|
|
80
|
+
* 2026-11-06 真机实测:这个接口**必须走 JSON**;form-urlencoded 会 500。
|
|
81
|
+
* `teamworkStatus` 是必填,缺了 500;`manageDetach` 缺了会被重置成 false,
|
|
82
|
+
* 所以即使本次不改它也要带上当前值。`messageInfo` 前端每次都会带,且必须是
|
|
83
|
+
* **JSON 字符串**(直接发对象会 500)。
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildSavePayload(currentData: any, navigation: any | null, fieldPermissionSwitch: 0 | 1 | undefined): Record<string, unknown>;
|
|
86
|
+
/**
|
|
87
|
+
* 回读的菜单里带 `createTime/creator/deleteType/tenantKey/updateTime` 等平台元数据;
|
|
88
|
+
* 前端保存前会剔掉这些键。照抄整份回读会把一堆只读键塞回服务端,这里对齐前端。
|
|
89
|
+
*/
|
|
90
|
+
export declare function sanitizeNavigation(nav: any): any;
|
|
91
|
+
/** 保存。**JSON body**;`navigation` / `messageInfo` 是 JSON 字符串。 */
|
|
92
|
+
export declare function saveAppSetting(client: any, baseUrl: string, appId: string, payload: Record<string, unknown>): Promise<any>;
|
|
93
|
+
/**
|
|
94
|
+
* 回读校验。只核对本次点名的键,另外守护两条底线:
|
|
95
|
+
* 菜单不能被这次保存弄丢;导航记录 id 不能被换掉。
|
|
96
|
+
*/
|
|
97
|
+
export declare function verifySettingReadback(before: SettingSnapshot, after: SettingSnapshot, changes: AppSettingChanges): string[];
|
|
98
|
+
/** 本次变更的可读清单(给 --json / 控制台输出用)。 */
|
|
99
|
+
export declare function describeChanges(changes: AppSettingChanges): string[];
|
|
100
|
+
/** 解析默认首页:支持 pageId、页面名、none;页面名会查应用页面列表。 */
|
|
101
|
+
export declare function resolveHomepage(client: any, baseUrl: string, appId: string, spec: string, opts?: {
|
|
102
|
+
type?: string;
|
|
103
|
+
name?: string;
|
|
104
|
+
params?: string;
|
|
105
|
+
url?: string;
|
|
106
|
+
}): Promise<HomepageSetting | null>;
|
|
107
|
+
/** 应用页面列表(默认首页解析用)。 */
|
|
108
|
+
export declare function listPages(client: any, baseUrl: string, appId: string): Promise<any[]>;
|
|
109
|
+
//# sourceMappingURL=app-setting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-setting.d.ts","sourceRoot":"","sources":["../../src/services/app-setting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EB 应用「应用设置」——菜单展示方式、默认首页、字段权限开关。
|
|
3
|
+
*
|
|
4
|
+
* 前端实现(线上 `build/ebdapp/static/js`)里这些都挂在同一个 publishInfo 上:
|
|
5
|
+
*
|
|
6
|
+
* GET /api/bs/ebuilder/app/setting/publish/info?appId=
|
|
7
|
+
* POST /api/bs/ebuilder/app/setting/publish/save?appId=
|
|
8
|
+
*
|
|
9
|
+
* `save` 是 **form-urlencoded**;对象值前端会先 JSON.stringify(导航就是对象)。
|
|
10
|
+
* 前端只提交发生变化的键,这里沿用同一语义,避免整份回写把别的设置带坏。
|
|
11
|
+
*
|
|
12
|
+
* 菜单展示的编码(线上 bundle 里的枚举):
|
|
13
|
+
* showType: 1=默认显示、0=隐藏、-1=不显示
|
|
14
|
+
* multiMenu: 1=全部展开、2=全部收起(缺省 2)
|
|
15
|
+
*
|
|
16
|
+
* 默认首页不是一个 `homepage` 对象,而是拍平在 pc/mobile 上的
|
|
17
|
+
* `homepageId / homepageType / homepageName / homepageUrl / homepageParams`。
|
|
18
|
+
*/
|
|
19
|
+
export const APP_SETTING_INFO_PATH = '/api/bs/ebuilder/app/setting/publish/info';
|
|
20
|
+
export const APP_SETTING_SAVE_PATH = '/api/bs/ebuilder/app/setting/publish/save';
|
|
21
|
+
export const APP_SETTING_CHECK_RIGHT_PATH = '/api/bs/ebuilder/app/setting/checkRight';
|
|
22
|
+
export const PAGE_LIST_PATH = '/api/bs/ebuilder/page/list';
|
|
23
|
+
const SHOW_TYPE_NAMES = {
|
|
24
|
+
'1': '默认显示',
|
|
25
|
+
'0': '隐藏',
|
|
26
|
+
'-1': '不显示',
|
|
27
|
+
};
|
|
28
|
+
const MULTI_MENU_NAMES = {
|
|
29
|
+
'1': '全部展开',
|
|
30
|
+
'2': '全部收起',
|
|
31
|
+
};
|
|
32
|
+
export function showTypeName(v) {
|
|
33
|
+
return SHOW_TYPE_NAMES[v];
|
|
34
|
+
}
|
|
35
|
+
export function multiMenuName(v) {
|
|
36
|
+
return MULTI_MENU_NAMES[v];
|
|
37
|
+
}
|
|
38
|
+
/** `--pc-show` / `--mobile-show` → 平台编码。认不出直接报错并列可选值。 */
|
|
39
|
+
export function parseShowType(input) {
|
|
40
|
+
const k = norm(input);
|
|
41
|
+
if (['display', 'default', 'show', '显示', '默认显示'].includes(k))
|
|
42
|
+
return '1';
|
|
43
|
+
if (['hide', 'hidden', '隐藏'].includes(k))
|
|
44
|
+
return '0';
|
|
45
|
+
if (['none', 'off', '不显示', '关闭'].includes(k))
|
|
46
|
+
return '-1';
|
|
47
|
+
throw new Error(`认不出菜单展示方式「${input}」。可选:display(默认显示)/ hide(隐藏)/ none(不显示)`);
|
|
48
|
+
}
|
|
49
|
+
/** `--pc-multi-menu` / `--mobile-multi-menu` → 平台编码。 */
|
|
50
|
+
export function parseMultiMenu(input) {
|
|
51
|
+
const k = norm(input);
|
|
52
|
+
if (['expand', 'all', '展开', '全部展开'].includes(k))
|
|
53
|
+
return '1';
|
|
54
|
+
if (['collapse', 'none', '收起', '全部收起'].includes(k))
|
|
55
|
+
return '2';
|
|
56
|
+
throw new Error(`认不出多级菜单方式「${input}」。可选:expand(全部展开)/ collapse(全部收起)`);
|
|
57
|
+
}
|
|
58
|
+
/** `--field-permission` → 1/0。 */
|
|
59
|
+
export function parseFieldPermission(input) {
|
|
60
|
+
const k = norm(input);
|
|
61
|
+
if (['on', '1', 'true', 'enable', '启用', '开启'].includes(k))
|
|
62
|
+
return 1;
|
|
63
|
+
if (['off', '0', 'false', 'disable', '禁用', '关闭'].includes(k))
|
|
64
|
+
return 0;
|
|
65
|
+
throw new Error(`认不出字段权限开关「${input}」。可选:on / off`);
|
|
66
|
+
}
|
|
67
|
+
function norm(input) {
|
|
68
|
+
return String(input ?? '').trim().toLowerCase();
|
|
69
|
+
}
|
|
70
|
+
/** 读应用的 publishInfo。 */
|
|
71
|
+
export async function readAppSetting(client, baseUrl, appId) {
|
|
72
|
+
const res = await client.get(`${baseUrl}${APP_SETTING_INFO_PATH}?appId=${encodeURIComponent(appId)}`, { ebbusinessid: appId, ignoreIndepentDeploy: 'true' });
|
|
73
|
+
if (res?.code !== 200 || res?.status === false) {
|
|
74
|
+
throw new Error(`读取应用设置失败: ${res?.msg || '未知错误'}`);
|
|
75
|
+
}
|
|
76
|
+
return res?.data || {};
|
|
77
|
+
}
|
|
78
|
+
/** 当前用户是否有应用设置权限。接口调用失败按“无权限/不可写”处理,避免把失败当成功。 */
|
|
79
|
+
export async function checkAppSettingRight(client, baseUrl, appId) {
|
|
80
|
+
const res = await client.get(`${baseUrl}${APP_SETTING_CHECK_RIGHT_PATH}?appId=${encodeURIComponent(appId)}`, { ebbusinessid: appId });
|
|
81
|
+
if (res?.code !== 200 || res?.status === false) {
|
|
82
|
+
throw new Error(`校验应用设置权限失败: ${res?.msg || '未知错误'}`);
|
|
83
|
+
}
|
|
84
|
+
return res?.data === true;
|
|
85
|
+
}
|
|
86
|
+
/** 把 publishInfo 归一成给用户看的快照。缺失值按前端默认:showType=1、multiMenu=2。 */
|
|
87
|
+
export function snapshotOf(appId, data) {
|
|
88
|
+
const nav = data?.navigation || {};
|
|
89
|
+
return {
|
|
90
|
+
appId,
|
|
91
|
+
fieldPermissionSwitch: Number(data?.fieldPermissionSwitch ?? 0) === 1,
|
|
92
|
+
pc: terminalSnapshot(nav.pc),
|
|
93
|
+
mobile: terminalSnapshot(nav.mobile),
|
|
94
|
+
raw: data,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function terminalSnapshot(n) {
|
|
98
|
+
const showType = normalizeShowType(n?.showType);
|
|
99
|
+
const multiMenu = normalizeMultiMenu(n?.multiMenu);
|
|
100
|
+
return {
|
|
101
|
+
showType,
|
|
102
|
+
showTypeName: showTypeName(showType),
|
|
103
|
+
multiMenu,
|
|
104
|
+
multiMenuName: multiMenuName(multiMenu),
|
|
105
|
+
homepage: homepageOf(n),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function normalizeShowType(v) {
|
|
109
|
+
const s = String(v ?? '');
|
|
110
|
+
if (s === '0' || s === '-1')
|
|
111
|
+
return s;
|
|
112
|
+
return '1';
|
|
113
|
+
}
|
|
114
|
+
function normalizeMultiMenu(v) {
|
|
115
|
+
return String(v ?? '') === '1' ? '1' : '2';
|
|
116
|
+
}
|
|
117
|
+
function homepageOf(n) {
|
|
118
|
+
const pageId = String(n?.homepageId ?? '');
|
|
119
|
+
if (!pageId)
|
|
120
|
+
return null;
|
|
121
|
+
const out = {
|
|
122
|
+
pageId,
|
|
123
|
+
pageType: String(n?.homepageType ?? ''),
|
|
124
|
+
pageName: String(n?.homepageName ?? ''),
|
|
125
|
+
};
|
|
126
|
+
if (n?.homepageParams !== undefined)
|
|
127
|
+
out.params = n.homepageParams;
|
|
128
|
+
if (n?.homepageUrl !== undefined)
|
|
129
|
+
out.url = String(n.homepageUrl);
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* 把变更写进导航对象。**只改点名的键**,其余(含 menus)原样保留。
|
|
134
|
+
* 返回 null 表示没有任何变化。
|
|
135
|
+
*/
|
|
136
|
+
export function applySettingChanges(current, changes) {
|
|
137
|
+
const nav = deepClone(current?.navigation || {});
|
|
138
|
+
nav.pc = nav.pc || {};
|
|
139
|
+
nav.mobile = nav.mobile || {};
|
|
140
|
+
let changed = false;
|
|
141
|
+
for (const terminal of ['pc', 'mobile']) {
|
|
142
|
+
const tc = changes[terminal];
|
|
143
|
+
if (!tc)
|
|
144
|
+
continue;
|
|
145
|
+
const node = nav[terminal];
|
|
146
|
+
if (tc.showType !== undefined && normalizeShowType(node.showType) !== tc.showType) {
|
|
147
|
+
node.showType = tc.showType;
|
|
148
|
+
changed = true;
|
|
149
|
+
}
|
|
150
|
+
if (tc.multiMenu !== undefined && normalizeMultiMenu(node.multiMenu) !== tc.multiMenu) {
|
|
151
|
+
node.multiMenu = tc.multiMenu;
|
|
152
|
+
changed = true;
|
|
153
|
+
}
|
|
154
|
+
if (tc.homepage !== undefined) {
|
|
155
|
+
if (tc.homepage === null) {
|
|
156
|
+
if (String(node.homepageId ?? '')) {
|
|
157
|
+
clearHomepage(node);
|
|
158
|
+
changed = true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const old = homepageOf(node);
|
|
163
|
+
if (!sameHomepage(old, tc.homepage)) {
|
|
164
|
+
const samePage = old?.pageId === tc.homepage.pageId;
|
|
165
|
+
node.homepageId = tc.homepage.pageId;
|
|
166
|
+
node.homepageType = tc.homepage.pageType;
|
|
167
|
+
node.homepageName = tc.homepage.pageName;
|
|
168
|
+
if (tc.homepage.params !== undefined)
|
|
169
|
+
node.homepageParams = deepClone(tc.homepage.params);
|
|
170
|
+
else if (!samePage)
|
|
171
|
+
delete node.homepageParams;
|
|
172
|
+
if (tc.homepage.url !== undefined)
|
|
173
|
+
node.homepageUrl = tc.homepage.url;
|
|
174
|
+
else if (!samePage)
|
|
175
|
+
delete node.homepageUrl;
|
|
176
|
+
changed = true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return changed ? nav : null;
|
|
182
|
+
}
|
|
183
|
+
function clearHomepage(node) {
|
|
184
|
+
node.homepageId = '';
|
|
185
|
+
node.homepageType = null;
|
|
186
|
+
node.homepageName = '';
|
|
187
|
+
delete node.homepageParams;
|
|
188
|
+
delete node.homepageUrl;
|
|
189
|
+
}
|
|
190
|
+
function sameHomepage(a, b) {
|
|
191
|
+
if (!a)
|
|
192
|
+
return false;
|
|
193
|
+
// params 未显式给 = 不比较,也不清空;要给/要清再传 --*-home-params。
|
|
194
|
+
const paramsSame = b.params === undefined
|
|
195
|
+
|| JSON.stringify(a.params ?? null) === JSON.stringify(b.params ?? null);
|
|
196
|
+
return a.pageId === b.pageId && a.pageType === b.pageType && a.pageName === b.pageName && paramsSame;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 本次请求真正发出去的 save 字段(JSON body,不是 form)。
|
|
200
|
+
*
|
|
201
|
+
* 2026-11-06 真机实测:这个接口**必须走 JSON**;form-urlencoded 会 500。
|
|
202
|
+
* `teamworkStatus` 是必填,缺了 500;`manageDetach` 缺了会被重置成 false,
|
|
203
|
+
* 所以即使本次不改它也要带上当前值。`messageInfo` 前端每次都会带,且必须是
|
|
204
|
+
* **JSON 字符串**(直接发对象会 500)。
|
|
205
|
+
*/
|
|
206
|
+
export function buildSavePayload(currentData, navigation, fieldPermissionSwitch) {
|
|
207
|
+
const body = {
|
|
208
|
+
teamworkStatus: Number(currentData?.teamworkStatus ?? 0),
|
|
209
|
+
fieldPermissionSwitch: fieldPermissionSwitch !== undefined
|
|
210
|
+
? fieldPermissionSwitch
|
|
211
|
+
: (Number(currentData?.fieldPermissionSwitch ?? 0) === 1 ? 1 : 0),
|
|
212
|
+
manageDetach: Boolean(currentData?.manageDetach ?? false),
|
|
213
|
+
enableActionFlowResultTip: Number(currentData?.enableActionFlowResultTip ?? 1),
|
|
214
|
+
};
|
|
215
|
+
if (currentData?.messageInfo !== undefined)
|
|
216
|
+
body.messageInfo = JSON.stringify(currentData.messageInfo);
|
|
217
|
+
if (navigation)
|
|
218
|
+
body.navigation = JSON.stringify(sanitizeNavigation(navigation));
|
|
219
|
+
return body;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 回读的菜单里带 `createTime/creator/deleteType/tenantKey/updateTime` 等平台元数据;
|
|
223
|
+
* 前端保存前会剔掉这些键。照抄整份回读会把一堆只读键塞回服务端,这里对齐前端。
|
|
224
|
+
*/
|
|
225
|
+
export function sanitizeNavigation(nav) {
|
|
226
|
+
const out = deepClone(nav || {});
|
|
227
|
+
const strip = (menus) => (menus || []).map((m) => {
|
|
228
|
+
const rest = deepClone(m || {});
|
|
229
|
+
for (const k of ['createTime', 'creator', 'deleteType', 'tenantKey', 'updateTime'])
|
|
230
|
+
delete rest[k];
|
|
231
|
+
if (Array.isArray(rest.childMenus))
|
|
232
|
+
rest.childMenus = strip(rest.childMenus);
|
|
233
|
+
return rest;
|
|
234
|
+
});
|
|
235
|
+
for (const terminal of ['pc', 'mobile']) {
|
|
236
|
+
if (out[terminal] && Array.isArray(out[terminal].menus)) {
|
|
237
|
+
out[terminal].menus = strip(out[terminal].menus);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return out;
|
|
241
|
+
}
|
|
242
|
+
/** 保存。**JSON body**;`navigation` / `messageInfo` 是 JSON 字符串。 */
|
|
243
|
+
export async function saveAppSetting(client, baseUrl, appId, payload) {
|
|
244
|
+
const res = await client.post(`${baseUrl}${APP_SETTING_SAVE_PATH}?appId=${encodeURIComponent(appId)}`, payload, { ebbusinessid: appId, referer: `${baseUrl}/sp/ebdapp/build/${appId}` });
|
|
245
|
+
if (res?.code !== 200 || res?.status === false) {
|
|
246
|
+
throw new Error(`保存应用设置失败: ${res?.msg || '未知错误'}`);
|
|
247
|
+
}
|
|
248
|
+
return res;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* 回读校验。只核对本次点名的键,另外守护两条底线:
|
|
252
|
+
* 菜单不能被这次保存弄丢;导航记录 id 不能被换掉。
|
|
253
|
+
*/
|
|
254
|
+
export function verifySettingReadback(before, after, changes) {
|
|
255
|
+
const problems = [];
|
|
256
|
+
for (const terminal of ['pc', 'mobile']) {
|
|
257
|
+
const tc = changes[terminal];
|
|
258
|
+
if (!tc)
|
|
259
|
+
continue;
|
|
260
|
+
const b = before[terminal];
|
|
261
|
+
const a = after[terminal];
|
|
262
|
+
if (tc.showType !== undefined && a.showType !== tc.showType) {
|
|
263
|
+
problems.push(`${terminal}.showType 回读为 ${a.showType},请求 ${tc.showType}`);
|
|
264
|
+
}
|
|
265
|
+
if (tc.multiMenu !== undefined && a.multiMenu !== tc.multiMenu) {
|
|
266
|
+
problems.push(`${terminal}.multiMenu 回读为 ${a.multiMenu},请求 ${tc.multiMenu}`);
|
|
267
|
+
}
|
|
268
|
+
if (tc.homepage !== undefined) {
|
|
269
|
+
if (tc.homepage === null) {
|
|
270
|
+
if (a.homepage)
|
|
271
|
+
problems.push(`${terminal}.homepage 未清空,回读仍为 ${a.homepage.pageId}`);
|
|
272
|
+
}
|
|
273
|
+
else if (!a.homepage
|
|
274
|
+
|| a.homepage.pageId !== tc.homepage.pageId
|
|
275
|
+
|| a.homepage.pageType !== tc.homepage.pageType
|
|
276
|
+
|| a.homepage.pageName !== tc.homepage.pageName) {
|
|
277
|
+
problems.push(`${terminal}.homepage 回读为 ${a.homepage ? `${a.homepage.pageId}/${a.homepage.pageType}/${a.homepage.pageName}` : '空'},`
|
|
278
|
+
+ `请求 ${tc.homepage.pageId}/${tc.homepage.pageType}/${tc.homepage.pageName}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (menuSignature(before.raw?.navigation?.[terminal]?.menus)
|
|
282
|
+
!== menuSignature(after.raw?.navigation?.[terminal]?.menus)) {
|
|
283
|
+
problems.push(`${terminal} 菜单被本次保存意外改动(菜单数量/名称不一致)`);
|
|
284
|
+
}
|
|
285
|
+
const beforeId = String(before.raw?.navigation?.[terminal]?.id ?? '');
|
|
286
|
+
const afterId = String(after.raw?.navigation?.[terminal]?.id ?? '');
|
|
287
|
+
if (beforeId && afterId && beforeId !== afterId) {
|
|
288
|
+
problems.push(`${terminal}.navigation.id 从 ${beforeId} 变成了 ${afterId}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (changes.fieldPermissionSwitch !== undefined
|
|
292
|
+
&& (after.fieldPermissionSwitch ? 1 : 0) !== changes.fieldPermissionSwitch) {
|
|
293
|
+
problems.push(`fieldPermissionSwitch 回读为 ${after.fieldPermissionSwitch ? 1 : 0},请求 ${changes.fieldPermissionSwitch}`);
|
|
294
|
+
}
|
|
295
|
+
// 本次没改、但绝不能被顺手清掉的几块:分权开关、管理权限、内联权限分组、访问范围。
|
|
296
|
+
const beforeGuard = unrelatedSignatures(before.raw);
|
|
297
|
+
const afterGuard = unrelatedSignatures(after.raw);
|
|
298
|
+
for (const key of Object.keys(beforeGuard)) {
|
|
299
|
+
if (beforeGuard[key] !== afterGuard[key]) {
|
|
300
|
+
problems.push(`${key} 被本次保存意外改动(保存前 ${beforeGuard[key]},保存后 ${afterGuard[key]})`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return problems;
|
|
304
|
+
}
|
|
305
|
+
/** 本次不修改、但要盯住的配置签名。 */
|
|
306
|
+
function unrelatedSignatures(data) {
|
|
307
|
+
const rows = (arr) => (Array.isArray(arr) ? arr : [])
|
|
308
|
+
.map((r) => `${String(r?.targetType ?? r?.objType ?? '')}:${String(r?.targetId ?? r?.id ?? '')}:${String(r?.content ?? r?.name ?? '')}`)
|
|
309
|
+
.sort()
|
|
310
|
+
.join('|');
|
|
311
|
+
const vr = data?.viewRights || {};
|
|
312
|
+
return {
|
|
313
|
+
manageDetach: String(Boolean(data?.manageDetach)),
|
|
314
|
+
rights: rows(data?.rights?.data),
|
|
315
|
+
rightGroupList: (Array.isArray(data?.rightGroupList) ? data.rightGroupList : [])
|
|
316
|
+
.map((g) => `${String(g?.id ?? g?.uuid ?? '')}:${String(g?.name ?? '')}`).sort().join('|'),
|
|
317
|
+
viewRights: ['pcViewRights', 'disablePcViewRights', 'mobileViewRights', 'disableMobileViewRights']
|
|
318
|
+
.map((k) => `${k}=${rows(vr[k])}`).join(';'),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function menuSignature(menus) {
|
|
322
|
+
const walk = (nodes) => (nodes || []).flatMap((n) => [
|
|
323
|
+
`${String(n?.id ?? '')}:${String(n?.name ?? '')}:${String(n?.pageId ?? '')}`,
|
|
324
|
+
...walk(n?.childMenus || []),
|
|
325
|
+
]);
|
|
326
|
+
return walk(Array.isArray(menus) ? menus : []).join('|');
|
|
327
|
+
}
|
|
328
|
+
/** 本次变更的可读清单(给 --json / 控制台输出用)。 */
|
|
329
|
+
export function describeChanges(changes) {
|
|
330
|
+
const out = [];
|
|
331
|
+
for (const terminal of ['pc', 'mobile']) {
|
|
332
|
+
const tc = changes[terminal];
|
|
333
|
+
if (!tc)
|
|
334
|
+
continue;
|
|
335
|
+
const label = terminal === 'pc' ? '电脑端' : '移动端';
|
|
336
|
+
if (tc.showType !== undefined)
|
|
337
|
+
out.push(`${label}.菜单 → ${showTypeName(tc.showType)}(${tc.showType})`);
|
|
338
|
+
if (tc.multiMenu !== undefined)
|
|
339
|
+
out.push(`${label}.多级菜单 → ${multiMenuName(tc.multiMenu)}(${tc.multiMenu})`);
|
|
340
|
+
if (tc.homepage === null)
|
|
341
|
+
out.push(`${label}.默认首页 → 清除`);
|
|
342
|
+
else if (tc.homepage)
|
|
343
|
+
out.push(`${label}.默认首页 → ${tc.homepage.pageName || tc.homepage.pageId}(${tc.homepage.pageType}/${tc.homepage.pageId})`);
|
|
344
|
+
}
|
|
345
|
+
if (changes.fieldPermissionSwitch !== undefined) {
|
|
346
|
+
out.push(`字段权限 → ${changes.fieldPermissionSwitch ? '开启' : '关闭'}(${changes.fieldPermissionSwitch})`);
|
|
347
|
+
}
|
|
348
|
+
return out;
|
|
349
|
+
}
|
|
350
|
+
/** 解析默认首页:支持 pageId、页面名、none;页面名会查应用页面列表。 */
|
|
351
|
+
export async function resolveHomepage(client, baseUrl, appId, spec, opts = {}) {
|
|
352
|
+
const raw = String(spec ?? '').trim();
|
|
353
|
+
if (!raw)
|
|
354
|
+
throw new Error('默认首页不能为空;要清除请写 none');
|
|
355
|
+
if (['none', 'off', 'clear', '-', '不显示'].includes(norm(raw)))
|
|
356
|
+
return null;
|
|
357
|
+
let pageType = String(opts.type ?? '').trim();
|
|
358
|
+
let pageName = String(opts.name ?? '').trim();
|
|
359
|
+
let pageId = raw;
|
|
360
|
+
// 显式给了类型/名称时按用户给的值走;否则查页面列表。
|
|
361
|
+
if (!pageType || !pageName) {
|
|
362
|
+
const pages = await listPages(client, baseUrl, appId);
|
|
363
|
+
const byId = pages.filter((p) => String(p?.id) === raw);
|
|
364
|
+
const byName = pages.filter((p) => String(p?.name) === raw);
|
|
365
|
+
const hit = byId.length === 1 ? byId[0] : byName.length === 1 ? byName[0] : null;
|
|
366
|
+
if (byName.length > 1 && !byId.length) {
|
|
367
|
+
throw new Error(`页面名「${raw}」匹配到 ${byName.length} 个,请改用 pageId:${byName.map((p) => p.id).join(' / ')}`);
|
|
368
|
+
}
|
|
369
|
+
if (hit) {
|
|
370
|
+
pageId = String(hit.id);
|
|
371
|
+
pageName = pageName || String(hit.name ?? '');
|
|
372
|
+
pageType = pageType || 'PAGE';
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if (!pageType) {
|
|
376
|
+
// 平台内置页:BASE/SHARELIST、BASE/FOLLOWLIST。页面列表里通常没有它们。
|
|
377
|
+
pageType = /^SHARELIST$|^FOLLOWLIST$/i.test(raw) ? 'BASE' : 'PAGE';
|
|
378
|
+
}
|
|
379
|
+
if (!pageName) {
|
|
380
|
+
throw new Error(`找不到页面「${raw}」;可传 pageId,或显式给 --*-home-name / --*-home-type(内置页如 SHARELIST 需 type=BASE)`);
|
|
381
|
+
}
|
|
382
|
+
const out = { pageId, pageType, pageName };
|
|
383
|
+
if (opts.params !== undefined && String(opts.params).trim() !== '') {
|
|
384
|
+
try {
|
|
385
|
+
out.params = JSON.parse(String(opts.params));
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
throw new Error(`默认首页参数不是合法 JSON: ${opts.params}`);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
if (opts.url !== undefined && String(opts.url).trim() !== '')
|
|
392
|
+
out.url = String(opts.url).trim();
|
|
393
|
+
return out;
|
|
394
|
+
}
|
|
395
|
+
/** 应用页面列表(默认首页解析用)。 */
|
|
396
|
+
export async function listPages(client, baseUrl, appId) {
|
|
397
|
+
const res = await client.get(`${baseUrl}${PAGE_LIST_PATH}?appid=${encodeURIComponent(appId)}`, { ebbusinessid: appId });
|
|
398
|
+
if (res?.code !== 200 || res?.status === false) {
|
|
399
|
+
throw new Error(`查询页面列表失败: ${res?.msg || '未知错误'}`);
|
|
400
|
+
}
|
|
401
|
+
if (Array.isArray(res?.data))
|
|
402
|
+
return res.data;
|
|
403
|
+
if (Array.isArray(res?.data?.records))
|
|
404
|
+
return res.data.records;
|
|
405
|
+
return [];
|
|
406
|
+
}
|
|
407
|
+
function deepClone(v) {
|
|
408
|
+
return v === undefined ? v : JSON.parse(JSON.stringify(v));
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=app-setting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-setting.js","sourceRoot":"","sources":["../../src/services/app-setting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,yCAAyC,CAAC;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,4BAA4B,CAAC;AA0C3D,MAAM,eAAe,GAA6B;IAChD,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,gBAAgB,GAA8B;IAClD,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,CAAW;IACtC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAY;IACxC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,yCAAyC,CAAC,CAAC;AAC/E,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/D,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,mCAAmC,CAAC,CAAC;AACzE,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACvE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,eAAe,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAW,EAAE,OAAe,EAAE,KAAa;IAC9E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,GAAG,OAAO,GAAG,qBAAqB,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EACvE,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,CACtD,CAAC;IACF,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAW,EAAE,OAAe,EAAE,KAAa;IAE3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,GAAG,OAAO,GAAG,4BAA4B,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAC9E,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC;IACF,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;AAC5B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,IAAS;IACjD,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IACnC,OAAO;QACL,KAAK;QACL,qBAAqB,EAAE,MAAM,CAAC,IAAI,EAAE,qBAAqB,IAAI,CAAC,CAAC,KAAK,CAAC;QACrE,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;QACpC,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAM;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;QACpC,SAAS;QACT,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC;QACvC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAU;IACpC,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,CAAM;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAoB;QAC3B,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;KACxC,CAAC;IACF,IAAI,CAAC,EAAE,cAAc,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC;IACnE,IAAI,CAAC,EAAE,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAY,EAAE,OAA0B;IAC1E,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IACtB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAU,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAClF,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;YACtF,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;oBAClC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,MAAM,QAAQ,GAAG,GAAG,EAAE,MAAM,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACrC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACzC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACzC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;wBAAE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;yBACrF,IAAI,CAAC,QAAQ;wBAAE,OAAO,IAAI,CAAC,cAAc,CAAC;oBAC/C,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS;wBAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;yBACjE,IAAI,CAAC,QAAQ;wBAAE,OAAO,IAAI,CAAC,WAAW,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,IAAS;IAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,CAAyB,EAAE,CAAkB;IACjE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,kDAAkD;IAClD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS;WACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAC3E,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;AACvG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAgB,EAAE,UAAsB,EAAE,qBAAwC;IAElF,MAAM,IAAI,GAA4B;QACpC,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,IAAI,CAAC,CAAC;QACxD,qBAAqB,EAAE,qBAAqB,KAAK,SAAS;YACxD,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,YAAY,IAAI,KAAK,CAAC;QACzD,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,yBAAyB,IAAI,CAAC,CAAC;KAC/E,CAAC;IACF,IAAI,WAAW,EAAE,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvG,IAAI,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,KAAY,EAAS,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAU,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAW,EAAE,OAAe,EAAE,KAAa,EAAE,OAAgC;IAE7E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAC3B,GAAG,OAAO,GAAG,qBAAqB,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EACvE,OAAO,EACP,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,oBAAoB,KAAK,EAAE,EAAE,CACxE,CAAC;IACF,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EAAE,KAAsB,EAAE,OAA0B;IAE3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAU,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,QAAQ;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,sBAAsB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACtF,CAAC;iBAAM,IAAI,CAAC,CAAC,CAAC,QAAQ;mBACjB,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM;mBACxC,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ;mBAC5C,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAClD,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;sBACpH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACtD,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,0BAA0B,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,oBAAoB,QAAQ,QAAQ,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS;WAC1C,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,2CAA2C;IAC3C,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,kBAAkB,WAAW,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uBAAuB;AACvB,SAAS,mBAAmB,CAAC,IAAS;IACpC,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;SACvI,IAAI,EAAE;SACN,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAClC,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjD,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;QAChC,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QACjG,UAAU,EAAE,CAAC,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC;aAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAU;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAY,EAAY,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE;QAC5E,GAAG,IAAI,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAU,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAChD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtG,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;QAC5G,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;aACpD,IAAI,EAAE,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACjJ,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAW,EAAE,OAAe,EAAE,KAAa,EAC3C,IAAY,EACZ,OAAwE,EAAE;IAE1E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1E,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,MAAM,GAAG,GAAG,CAAC;IAEjB,6BAA6B;IAC7B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,QAAQ,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxB,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9C,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,oDAAoD;QACpD,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,4EAA4E,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,GAAG,GAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChG,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uBAAuB;AACvB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAW,EAAE,OAAe,EAAE,KAAa;IACzE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,GAAG,OAAO,GAAG,cAAc,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAChE,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC;IACF,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAI,CAAI;IACxB,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ApiClient } from '../../core/client.js';
|
|
2
|
+
/** 封存 / 解封 / 列表三个路径共用同一常量,禁止各写一份 */
|
|
3
|
+
export declare const SYSTEM_POOL_PAGE_PATH = "/api/bs/esb/setting/systemPool/getPage";
|
|
4
|
+
export declare const SYSTEM_POOL_LOCK_PATH = "/api/bs/esb/setting/systemPool/lockByIds";
|
|
5
|
+
export declare const SYSTEM_POOL_UNLOCK_PATH = "/api/bs/esb/setting/systemPool/unlockByIds";
|
|
6
|
+
/** 连接系统状态(EsbStatusEnum):0 正常 / 1 封存 / 2 禁用 */
|
|
7
|
+
export declare const SYSTEM_POOL_STATUS: {
|
|
8
|
+
readonly AVAILABLE: 0;
|
|
9
|
+
readonly LOCKED: 1;
|
|
10
|
+
readonly FORBIDDEN: 2;
|
|
11
|
+
};
|
|
12
|
+
export type ConnectorLockClient = Pick<ApiClient, 'get' | 'post' | 'getBaseUrl'>;
|
|
13
|
+
/** 归一化 id 入参:去掉空白项与重复项,保留出现顺序 */
|
|
14
|
+
export declare function normalizeIds(input: Array<string | number>): string[];
|
|
15
|
+
/** 逗号拼接为后端 EsbBatchIDsVO.ids 的字符串格式 */
|
|
16
|
+
export declare function joinIds(ids: string[]): string;
|
|
17
|
+
export interface ConnectorPageQuery {
|
|
18
|
+
/** 按名称模糊搜索 */
|
|
19
|
+
name?: string;
|
|
20
|
+
/** 页码,从 1 开始,默认 1 */
|
|
21
|
+
current?: number;
|
|
22
|
+
/** 每页条数,默认 10 */
|
|
23
|
+
pageSize?: number;
|
|
24
|
+
/** 是否包含默认系统,默认 true(与连接器管理页一致) */
|
|
25
|
+
showDefalt?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** 分页查询连接器(连接系统)列表,返回后端 WeaTable 原始结构 */
|
|
28
|
+
export declare function listConnectors(client: ConnectorLockClient, query?: ConnectorPageQuery): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* 批量封存连接器(级联子系统由后端处理)。
|
|
31
|
+
* 空列表直接抛错——发一个 `ids: ""` 的请求等于什么都没封,还制造一条成功假象。
|
|
32
|
+
*/
|
|
33
|
+
export declare function lockConnectors(client: ConnectorLockClient, ids: Array<string | number>): Promise<any>;
|
|
34
|
+
/** 批量解封连接器 */
|
|
35
|
+
export declare function unlockConnectors(client: ConnectorLockClient, ids: Array<string | number>): Promise<any>;
|
|
36
|
+
/**
|
|
37
|
+
* 按名称解析连接器 id:先按 name 精确匹配,唯一命中直接返回;
|
|
38
|
+
* 多个或零个命中时改用「id 直接就是数字」的兜底(调用方通常也允许直接传 id)。
|
|
39
|
+
* 返回 { matched: 命中的 displayData 项 },调用方据此决定是否继续。
|
|
40
|
+
*/
|
|
41
|
+
export declare function findConnectorsByName(client: ConnectorLockClient, name: string): Promise<Array<Record<string, any>>>;
|
|
42
|
+
//# sourceMappingURL=connector-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-lock.d.ts","sourceRoot":"","sources":["../../../src/services/esb-interface/connector-lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgBtD,oCAAoC;AACpC,eAAO,MAAM,qBAAqB,2CAAgC,CAAC;AACnE,eAAO,MAAM,qBAAqB,6CAAkC,CAAC;AACrE,eAAO,MAAM,uBAAuB,+CAAoC,CAAC;AAEzE,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB;;;;CAAqD,CAAC;AAErF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC;AAEjF,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,EAAE,CAUpE;AAED,uCAAuC;AACvC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7C;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,yCAAyC;AACzC,wBAAsB,cAAc,CAClC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,GAAE,kBAAuB,GAC7B,OAAO,CAAC,GAAG,CAAC,CAOd;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAC1B,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,cAAc;AACd,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAC1B,OAAO,CAAC,GAAG,CAAC,CAEd;AAiBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAQrC"}
|