@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.
@@ -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":"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"}
1
+ {"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"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"}
@@ -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 { mergeAppMenu, mergeDEDrControl, plural } from './utils';
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
- const dstAppMenu = view.viewType === 'APPINDEXVIEW' &&
259
- (controls === null || controls === void 0 ? void 0 : controls.find(item => {
260
- return item.controlType === 'APPMENU';
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
- const dstDRCtrl = controls === null || controls === void 0 ? void 0 : controls.find(item => {
272
- return item.controlType === 'DRBAR' || item.controlType === 'DRTAB';
273
- });
274
- if (dstDRCtrl) {
275
- for (let i = 0; i < this.subAppRefs.length; i++) {
276
- const srcDRCtrl = ibiz.hub.getSubAppDrControl(dstDRCtrl.uniqueTag, this.subAppRefs[i].appId);
277
- if (srcDRCtrl) {
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
  /**
@@ -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 { mergeAppMenu } from './merge-model/merge-app-menu';
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
@@ -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,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
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"}
@@ -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 { mergeAppMenu } from './merge-model/merge-app-menu';
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;AAiC/D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAe1E"}
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
- mainItem.appMenuItems.push(...addItems);
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
- * @author lxm
39
- * @date 2023-12-07 03:15:54
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 mergeAppMenu(main, sub) {
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
- main.appMenuItems.push(...addItems);
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,3 @@
1
+ import { IUIActionGroup } from '@ibiz/model-core';
2
+ export declare function mergeAppDEUIActionGroup(dst: IUIActionGroup | undefined, src: IUIActionGroup | undefined): void;
3
+ //# sourceMappingURL=merge-app-uiaction-group.d.ts.map
@@ -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"}