@ibiz-template/model-helper 0.7.34 → 0.7.38-alpha.12
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/index.esm.js +1361 -813
- package/dist/index.system.min.js +1 -1
- package/out/model-helper.d.ts +26 -0
- package/out/model-helper.d.ts.map +1 -1
- package/out/model-helper.js +80 -25
- package/out/utils/index.d.ts +1 -2
- package/out/utils/index.d.ts.map +1 -1
- package/out/utils/index.js +1 -2
- package/out/utils/merge-model/merge-app-menu.d.ts +10 -0
- package/out/utils/merge-model/merge-app-menu.d.ts.map +1 -1
- package/out/utils/merge-model/merge-app-menu.js +75 -8
- package/out/utils/merge-model/merge-app-uiaction-group.d.ts +3 -0
- package/out/utils/merge-model/merge-app-uiaction-group.d.ts.map +1 -0
- package/out/utils/merge-model/merge-app-uiaction-group.js +14 -0
- package/out/utils/merge-model/merge-model-helper.d.ts +71 -0
- package/out/utils/merge-model/merge-model-helper.d.ts.map +1 -0
- package/out/utils/merge-model/merge-model-helper.js +222 -0
- package/out/utils/merge-model/merge-treeview.d.ts +12 -0
- package/out/utils/merge-model/merge-treeview.d.ts.map +1 -0
- package/out/utils/merge-model/merge-treeview.js +44 -0
- package/package.json +4 -4
package/out/model-helper.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IAppDataEntity, IAppView, IApplication, IAppLan, ISubAppRef, IAppBIScheme, IAppBICube, IAppBIReport } from '@ibiz/model-core';
|
|
2
2
|
import { DSLHelper } from '@ibiz/rt-model-api';
|
|
3
3
|
import { ModelUtil } from './model-util';
|
|
4
|
+
import { MergeSubModelHelper } from './utils';
|
|
4
5
|
/**
|
|
5
6
|
* 模型加载工具类
|
|
6
7
|
*
|
|
@@ -13,7 +14,22 @@ export declare class ModelHelper {
|
|
|
13
14
|
protected getModel: (url: string, params?: IParams) => Promise<IModel>;
|
|
14
15
|
protected defaultAppId: string;
|
|
15
16
|
protected permission: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* dsl解析包
|
|
19
|
+
*
|
|
20
|
+
* @author tony001
|
|
21
|
+
* @date 2024-09-26 16:09:49
|
|
22
|
+
* @protected
|
|
23
|
+
*/
|
|
16
24
|
protected dsl: DSLHelper;
|
|
25
|
+
/**
|
|
26
|
+
* 子应用模型合并对象
|
|
27
|
+
*
|
|
28
|
+
* @author tony001
|
|
29
|
+
* @date 2024-09-26 16:09:51
|
|
30
|
+
* @protected
|
|
31
|
+
*/
|
|
32
|
+
protected merge: MergeSubModelHelper;
|
|
17
33
|
/**
|
|
18
34
|
* 当前子应用清单
|
|
19
35
|
*
|
|
@@ -70,6 +86,16 @@ export declare class ModelHelper {
|
|
|
70
86
|
* @return {*} {Promise<void>}
|
|
71
87
|
*/
|
|
72
88
|
protected initToHub(appId?: string | IObject): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* 递归填充指定应用标识
|
|
91
|
+
*
|
|
92
|
+
* @author tony001
|
|
93
|
+
* @date 2024-09-09 15:09:20
|
|
94
|
+
* @protected
|
|
95
|
+
* @param {IModel} model
|
|
96
|
+
* @param {string} appId
|
|
97
|
+
*/
|
|
98
|
+
protected deepFillSubAppId(model: IModel, appId: string): void;
|
|
73
99
|
/**
|
|
74
100
|
* 初始化子应用相关内容
|
|
75
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"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"}
|
package/out/model-helper.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DSLHelper, calcUniqueTag } from '@ibiz/rt-model-api';
|
|
2
2
|
import { ModelUtil } from './model-util';
|
|
3
3
|
import { ModelLoader } from './model-loader';
|
|
4
|
-
import {
|
|
4
|
+
import { MergeSubModelHelper, plural } from './utils';
|
|
5
5
|
/**
|
|
6
6
|
* 模型加载工具类
|
|
7
7
|
*
|
|
@@ -23,7 +23,22 @@ export class ModelHelper {
|
|
|
23
23
|
this.getModel = getModel;
|
|
24
24
|
this.defaultAppId = defaultAppId;
|
|
25
25
|
this.permission = permission;
|
|
26
|
+
/**
|
|
27
|
+
* dsl解析包
|
|
28
|
+
*
|
|
29
|
+
* @author tony001
|
|
30
|
+
* @date 2024-09-26 16:09:49
|
|
31
|
+
* @protected
|
|
32
|
+
*/
|
|
26
33
|
this.dsl = new DSLHelper();
|
|
34
|
+
/**
|
|
35
|
+
* 子应用模型合并对象
|
|
36
|
+
*
|
|
37
|
+
* @author tony001
|
|
38
|
+
* @date 2024-09-26 16:09:51
|
|
39
|
+
* @protected
|
|
40
|
+
*/
|
|
41
|
+
this.merge = new MergeSubModelHelper();
|
|
27
42
|
/**
|
|
28
43
|
* 当前子应用清单
|
|
29
44
|
*
|
|
@@ -143,6 +158,34 @@ export class ModelHelper {
|
|
|
143
158
|
}
|
|
144
159
|
}
|
|
145
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* 递归填充指定应用标识
|
|
163
|
+
*
|
|
164
|
+
* @author tony001
|
|
165
|
+
* @date 2024-09-09 15:09:20
|
|
166
|
+
* @protected
|
|
167
|
+
* @param {IModel} model
|
|
168
|
+
* @param {string} appId
|
|
169
|
+
*/
|
|
170
|
+
deepFillSubAppId(model, appId) {
|
|
171
|
+
model.appId = appId;
|
|
172
|
+
const keys = Object.keys(model);
|
|
173
|
+
keys.forEach(key => {
|
|
174
|
+
const value = model[key];
|
|
175
|
+
if (value && typeof value === 'object') {
|
|
176
|
+
if (Array.isArray(value)) {
|
|
177
|
+
value.forEach(item => {
|
|
178
|
+
if (item && typeof item === 'object') {
|
|
179
|
+
this.deepFillSubAppId(item, appId);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.deepFillSubAppId(value, appId);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}
|
|
146
189
|
/**
|
|
147
190
|
* 初始化子应用相关内容
|
|
148
191
|
*
|
|
@@ -169,6 +212,30 @@ export class ModelHelper {
|
|
|
169
212
|
const drCtrl = drCtrls[index];
|
|
170
213
|
ibiz.hub.registerSubAppDrControls(subApp.id || ibiz.env.appId, drCtrl);
|
|
171
214
|
});
|
|
215
|
+
// 设置界面行为组到hub中
|
|
216
|
+
const appDEUIActionGroupIds = subApp.appDEUIActionGroupIds || [];
|
|
217
|
+
const appDEUIActionGroups = sourceSubApp.getAllPSAppDEUIActionGroups || [];
|
|
218
|
+
appDEUIActionGroupIds.forEach((id, index) => {
|
|
219
|
+
const appDEUIActionGroup = appDEUIActionGroups[index];
|
|
220
|
+
this.deepFillSubAppId(appDEUIActionGroup, subApp.id);
|
|
221
|
+
ibiz.hub.registerSubAppDEUIActionGroups(subApp.id || ibiz.env.appId, this.dsl.uiActionGroups(appDEUIActionGroup));
|
|
222
|
+
});
|
|
223
|
+
// 设置菜单模型到hub中
|
|
224
|
+
const appMenuModelIds = subApp.appMenuModelIds || [];
|
|
225
|
+
const appMenuModels = sourceSubApp.getAllPSAppMenuModels || [];
|
|
226
|
+
appMenuModelIds.forEach((id, index) => {
|
|
227
|
+
const appMenuModel = appMenuModels[index];
|
|
228
|
+
this.deepFillSubAppId(appMenuModel, subApp.id);
|
|
229
|
+
ibiz.hub.registerSubAppMenuModels(subApp.id || ibiz.env.appId, this.dsl.control(appMenuModel));
|
|
230
|
+
});
|
|
231
|
+
// 设置部件模型到hub中
|
|
232
|
+
const controlIds = subApp.controlIds || [];
|
|
233
|
+
const appControls = sourceSubApp.getAllPSControls || [];
|
|
234
|
+
controlIds.forEach((id, index) => {
|
|
235
|
+
const appControl = appControls[index];
|
|
236
|
+
this.deepFillSubAppId(appControl, subApp.id);
|
|
237
|
+
ibiz.hub.registerSubAppControls(subApp.id || ibiz.env.appId, this.dsl.control(appControl));
|
|
238
|
+
});
|
|
172
239
|
}
|
|
173
240
|
/**
|
|
174
241
|
* 获取应用模型
|
|
@@ -254,31 +321,18 @@ export class ModelHelper {
|
|
|
254
321
|
const controls = view.controls
|
|
255
322
|
? view.controls
|
|
256
323
|
: (_a = view.viewLayoutPanel) === null || _a === void 0 ? void 0 : _a.controls;
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}));
|
|
262
|
-
if (dstAppMenu) {
|
|
263
|
-
for (let i = 0; i < this.subAppRefs.length; i++) {
|
|
264
|
-
const srcAppMenu = this.subAppRefs[i].appMenuModel;
|
|
265
|
-
if (srcAppMenu) {
|
|
266
|
-
mergeAppMenu(dstAppMenu, srcAppMenu);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
324
|
+
// 合并主菜单
|
|
325
|
+
this.merge.mergeAppMainMenu(view, controls, this.subAppRefs);
|
|
326
|
+
// 合并扩展菜单
|
|
327
|
+
this.merge.mergeSubAppExtendedMenu(view, controls, this.subAppRefs);
|
|
270
328
|
// 合并DrCtrl
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
mergeDEDrControl(dstDRCtrl, srcDRCtrl);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
329
|
+
this.merge.mergeSubAppDRCtrl(view, controls, this.subAppRefs);
|
|
330
|
+
// 合并工具栏界面行为组
|
|
331
|
+
this.merge.mergeSubAppToolbarActionGroup(view, controls, this.subAppRefs);
|
|
332
|
+
// 合并上下文菜单(树视图部件)
|
|
333
|
+
this.merge.mergeSubAppTreeContextMenuActionGroup(view, controls, this.subAppRefs);
|
|
334
|
+
// 合并树视图部件
|
|
335
|
+
this.merge.mergeSubAppTreeView(view, controls, this.subAppRefs);
|
|
282
336
|
}
|
|
283
337
|
/**
|
|
284
338
|
* 根据应用视图 codeName 获取应用视图模型
|
|
@@ -308,6 +362,7 @@ export class ModelHelper {
|
|
|
308
362
|
async loadAppViewModel(viewId, params, appId) {
|
|
309
363
|
const model = await this.getModelUtil(appId).getAppViewModel(viewId, params, true);
|
|
310
364
|
const dsl = this.dsl.appView(model);
|
|
365
|
+
this.calcAppViewSubAppModel(dsl);
|
|
311
366
|
return dsl;
|
|
312
367
|
}
|
|
313
368
|
/**
|
package/out/utils/index.d.ts
CHANGED
|
@@ -2,6 +2,5 @@ export { formatPath } from './format-path/format-path';
|
|
|
2
2
|
export { mergeModel } from './merge-model/merge-model';
|
|
3
3
|
export { plural, pluralLower } from './plural/plural';
|
|
4
4
|
export { ServicePathDeep, ServicePathItem, ServicePathUtil, } from './service-path-util/service-path-util';
|
|
5
|
-
export {
|
|
6
|
-
export { mergeDEDrControl } from './merge-model/merge-de-drcontrol';
|
|
5
|
+
export { MergeSubModelHelper } from './merge-model/merge-model-helper';
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
package/out/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
|
package/out/utils/index.js
CHANGED
|
@@ -2,5 +2,4 @@ export { formatPath } from './format-path/format-path';
|
|
|
2
2
|
export { mergeModel } from './merge-model/merge-model';
|
|
3
3
|
export { plural, pluralLower } from './plural/plural';
|
|
4
4
|
export { ServicePathUtil, } from './service-path-util/service-path-util';
|
|
5
|
-
export {
|
|
6
|
-
export { mergeDEDrControl } from './merge-model/merge-de-drcontrol';
|
|
5
|
+
export { MergeSubModelHelper } from './merge-model/merge-model-helper';
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { IAppMenuModel } from '@ibiz/model-core';
|
|
2
|
+
/**
|
|
3
|
+
* 合并切分菜单
|
|
4
|
+
*
|
|
5
|
+
* @author tony001
|
|
6
|
+
* @date 2024-09-26 18:09:31
|
|
7
|
+
* @export
|
|
8
|
+
* @param {IAppMenuModel} main
|
|
9
|
+
* @param {IAppMenuModel} sub
|
|
10
|
+
*/
|
|
11
|
+
export declare function mergeSplitAppMenu(main: IAppMenuModel, sub: IAppMenuModel, isReverse?: boolean): void;
|
|
2
12
|
/**
|
|
3
13
|
* 合并主菜单和子菜单
|
|
4
14
|
* @author lxm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-app-menu.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-app-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-app-menu.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-app-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0C/D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,aAAa,EAClB,SAAS,GAAE,OAAe,GACzB,IAAI,CAmBN;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CA2C1E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clone } from 'ramda';
|
|
1
2
|
/**
|
|
2
3
|
* 递归合并主菜单项和子菜单项
|
|
3
4
|
* @author lxm
|
|
@@ -5,7 +6,7 @@
|
|
|
5
6
|
* @param {IAppMenuItem} mainItem
|
|
6
7
|
* @param {IAppMenuItem} subItem
|
|
7
8
|
*/
|
|
8
|
-
function mergeMenuItem(mainItem, subItem) {
|
|
9
|
+
function mergeMenuItem(mainItem, subItem, isReverse = false) {
|
|
9
10
|
var _a, _b, _c;
|
|
10
11
|
// 主菜单项没有子菜单项直接合并替换
|
|
11
12
|
if (!((_a = mainItem.appMenuItems) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
@@ -30,24 +31,31 @@ function mergeMenuItem(mainItem, subItem) {
|
|
|
30
31
|
addItems.push(item);
|
|
31
32
|
}
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
+
if (isReverse) {
|
|
35
|
+
mainItem.appMenuItems = addItems.concat(mainItem.appMenuItems);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
mainItem.appMenuItems.push(...addItems);
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
}
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* @
|
|
43
|
+
* 合并切分菜单
|
|
44
|
+
*
|
|
45
|
+
* @author tony001
|
|
46
|
+
* @date 2024-09-26 18:09:31
|
|
47
|
+
* @export
|
|
40
48
|
* @param {IAppMenuModel} main
|
|
41
49
|
* @param {IAppMenuModel} sub
|
|
42
50
|
*/
|
|
43
|
-
export function
|
|
51
|
+
export function mergeSplitAppMenu(main, sub, isReverse = false) {
|
|
44
52
|
var _a;
|
|
45
53
|
const addItems = [];
|
|
46
54
|
(_a = sub.appMenuItems) === null || _a === void 0 ? void 0 : _a.forEach(item => {
|
|
47
55
|
var _a;
|
|
48
56
|
const sameMenu = (_a = main.appMenuItems) === null || _a === void 0 ? void 0 : _a.find(x => x.id === item.id);
|
|
49
57
|
if (sameMenu) {
|
|
50
|
-
mergeMenuItem(sameMenu, item);
|
|
58
|
+
mergeMenuItem(sameMenu, item, isReverse);
|
|
51
59
|
}
|
|
52
60
|
else {
|
|
53
61
|
addItems.push(item);
|
|
@@ -56,5 +64,64 @@ export function mergeAppMenu(main, sub) {
|
|
|
56
64
|
if (!main.appMenuItems) {
|
|
57
65
|
main.appMenuItems = [];
|
|
58
66
|
}
|
|
59
|
-
|
|
67
|
+
if (isReverse) {
|
|
68
|
+
main.appMenuItems = addItems.concat(main.appMenuItems);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
main.appMenuItems.push(...addItems);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 合并主菜单和子菜单
|
|
76
|
+
* @author lxm
|
|
77
|
+
* @date 2023-12-07 03:15:54
|
|
78
|
+
* @param {IAppMenuModel} main
|
|
79
|
+
* @param {IAppMenuModel} sub
|
|
80
|
+
*/
|
|
81
|
+
export function mergeAppMenu(main, sub) {
|
|
82
|
+
var _a, _b, _c, _d;
|
|
83
|
+
if (!main.appMenuItems) {
|
|
84
|
+
main.appMenuItems = [];
|
|
85
|
+
}
|
|
86
|
+
if (!sub.appMenuItems) {
|
|
87
|
+
sub.appMenuItems = [];
|
|
88
|
+
}
|
|
89
|
+
// 主菜单分割下标
|
|
90
|
+
const mainSplitIndex = main.appMenuItems.findIndex(item => {
|
|
91
|
+
return item.itemType === 'SEPERATOR' && item.spanMode;
|
|
92
|
+
});
|
|
93
|
+
// 子菜单分割下标
|
|
94
|
+
const subSplitIndex = sub.appMenuItems.findIndex(item => {
|
|
95
|
+
return item.itemType === 'SEPERATOR' && item.spanMode;
|
|
96
|
+
});
|
|
97
|
+
// 主菜单无分割,子菜单有or无分割,全整添加到主菜单
|
|
98
|
+
if (mainSplitIndex === -1) {
|
|
99
|
+
mergeSplitAppMenu(main, sub);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const topMainAppMenu = clone(main);
|
|
103
|
+
const bottomMainAppMenu = clone(main);
|
|
104
|
+
topMainAppMenu.appMenuItems =
|
|
105
|
+
((_a = topMainAppMenu.appMenuItems) === null || _a === void 0 ? void 0 : _a.slice(0, mainSplitIndex)) || [];
|
|
106
|
+
bottomMainAppMenu.appMenuItems =
|
|
107
|
+
((_b = bottomMainAppMenu.appMenuItems) === null || _b === void 0 ? void 0 : _b.slice(mainSplitIndex + 1)) || [];
|
|
108
|
+
if (subSplitIndex === -1) {
|
|
109
|
+
// 主菜单有分割,子菜单无分割,添加到主菜单头部上
|
|
110
|
+
mergeSplitAppMenu(topMainAppMenu, sub);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// 主菜单有分割,子菜单有分割,隐射添加到主菜单
|
|
114
|
+
const topSubAppMenu = clone(sub);
|
|
115
|
+
const bottomSubAppMenu = clone(sub);
|
|
116
|
+
topSubAppMenu.appMenuItems =
|
|
117
|
+
((_c = topSubAppMenu.appMenuItems) === null || _c === void 0 ? void 0 : _c.slice(0, subSplitIndex)) || [];
|
|
118
|
+
bottomSubAppMenu.appMenuItems =
|
|
119
|
+
((_d = bottomSubAppMenu.appMenuItems) === null || _d === void 0 ? void 0 : _d.slice(subSplitIndex + 1)) || [];
|
|
120
|
+
mergeSplitAppMenu(topMainAppMenu, topSubAppMenu);
|
|
121
|
+
mergeSplitAppMenu(bottomMainAppMenu, bottomSubAppMenu, true);
|
|
122
|
+
}
|
|
123
|
+
main.appMenuItems = topMainAppMenu.appMenuItems
|
|
124
|
+
.concat(main.appMenuItems[mainSplitIndex])
|
|
125
|
+
.concat(bottomMainAppMenu.appMenuItems || []);
|
|
126
|
+
}
|
|
60
127
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-app-uiaction-group.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-app-uiaction-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AAExE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,cAAc,GAAG,SAAS,EAC/B,GAAG,EAAE,cAAc,GAAG,SAAS,GAC9B,IAAI,CAaN"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function mergeAppDEUIActionGroup(dst, src) {
|
|
2
|
+
if (!dst || !src) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
// 合并界面行为组项
|
|
6
|
+
if (src.uiactionGroupDetails) {
|
|
7
|
+
if (!dst.uiactionGroupDetails) {
|
|
8
|
+
dst.uiactionGroupDetails = [];
|
|
9
|
+
}
|
|
10
|
+
src.uiactionGroupDetails.forEach((item) => {
|
|
11
|
+
dst.uiactionGroupDetails.push(item);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { IAppView, IControl, ISubAppRef } from '@ibiz/model-core';
|
|
2
|
+
import { DSLHelper } from '@ibiz/rt-model-api';
|
|
3
|
+
/**
|
|
4
|
+
* 子应用模型合并对象
|
|
5
|
+
*
|
|
6
|
+
* @author tony001
|
|
7
|
+
* @date 2024-09-26 16:09:56
|
|
8
|
+
* @export
|
|
9
|
+
* @class MergeSubModelHelper
|
|
10
|
+
*/
|
|
11
|
+
export declare class MergeSubModelHelper {
|
|
12
|
+
/**
|
|
13
|
+
* dsl解析包
|
|
14
|
+
*
|
|
15
|
+
* @author tony001
|
|
16
|
+
* @date 2024-09-26 16:09:48
|
|
17
|
+
* @protected
|
|
18
|
+
*/
|
|
19
|
+
protected dsl: DSLHelper;
|
|
20
|
+
/**
|
|
21
|
+
* 合并应用主菜单
|
|
22
|
+
*
|
|
23
|
+
* @author tony001
|
|
24
|
+
* @date 2024-09-26 16:09:03
|
|
25
|
+
* @param {(IControl[] | undefined)} controls
|
|
26
|
+
* @param {ISubAppRef[]} subAppRefs
|
|
27
|
+
*/
|
|
28
|
+
mergeAppMainMenu(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
29
|
+
/**
|
|
30
|
+
* 合并扩展菜单
|
|
31
|
+
*
|
|
32
|
+
* @author tony001
|
|
33
|
+
* @date 2024-09-26 16:09:27
|
|
34
|
+
* @param {(IControl[] | undefined)} controls
|
|
35
|
+
* @param {ISubAppRef[]} subAppRefs
|
|
36
|
+
* @return {*} {void}
|
|
37
|
+
*/
|
|
38
|
+
mergeSubAppExtendedMenu(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
39
|
+
/**
|
|
40
|
+
* 合并DRCtrl
|
|
41
|
+
*
|
|
42
|
+
* @author tony001
|
|
43
|
+
* @date 2024-09-26 16:09:01
|
|
44
|
+
* @param {IAppView} view
|
|
45
|
+
* @param {(IControl[] | undefined)} controls
|
|
46
|
+
* @param {ISubAppRef[]} subAppRefs
|
|
47
|
+
*/
|
|
48
|
+
mergeSubAppDRCtrl(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
49
|
+
/**
|
|
50
|
+
* 合并工具栏界面行为组项
|
|
51
|
+
*
|
|
52
|
+
* @author tony001
|
|
53
|
+
* @date 2024-09-26 16:09:23
|
|
54
|
+
* @param {IAppView} view
|
|
55
|
+
* @param {(IControl[] | undefined)} controls
|
|
56
|
+
* @param {ISubAppRef[]} subAppRefs
|
|
57
|
+
*/
|
|
58
|
+
mergeSubAppToolbarActionGroup(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
59
|
+
/**
|
|
60
|
+
* 合并树上下文菜单
|
|
61
|
+
*
|
|
62
|
+
* @author tony001
|
|
63
|
+
* @date 2024-09-26 16:09:02
|
|
64
|
+
* @param {IAppView} view
|
|
65
|
+
* @param {(IControl[] | undefined)} controls
|
|
66
|
+
* @param {ISubAppRef[]} subAppRefs
|
|
67
|
+
*/
|
|
68
|
+
mergeSubAppTreeContextMenuActionGroup(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
69
|
+
mergeSubAppTreeView(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=merge-model-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-model-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-model-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,QAAQ,EAKR,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,YAAmB;IAEhC;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAcP;;;;;;;;OAQG;IACH,uBAAuB,CACrB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuBP;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAiBP;;;;;;;;OAQG;IACH,6BAA6B,CAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IA8CP;;;;;;;;OAQG;IACH,qCAAqC,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuEP,mBAAmB,CACjB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;CAuBR"}
|