@ibiz-template/runtime 0.7.26-alpha.1 → 0.7.26
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 +962 -350
- package/dist/index.system.min.js +1 -1
- package/out/app-hub.d.ts +1 -0
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +5 -0
- package/out/controller/common/control/md-control.controller.js +2 -1
- package/out/controller/control/calendar/calendar.controller.d.ts +15 -0
- package/out/controller/control/calendar/calendar.controller.d.ts.map +1 -1
- package/out/controller/control/calendar/calendar.controller.js +85 -16
- package/out/controller/control/calendar/calendar.service.d.ts +10 -0
- package/out/controller/control/calendar/calendar.service.d.ts.map +1 -1
- package/out/controller/control/calendar/calendar.service.js +21 -1
- package/out/controller/control/chart/generator/base-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/base-series-generator.js +3 -1
- package/out/controller/control/chart/generator/chart-options-generator.d.ts +39 -0
- package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/chart-options-generator.js +242 -80
- package/out/controller/control/chart/generator/radar-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/radar-series-generator.js +5 -2
- package/out/controller/control/dashboard/custom-dashboard.controller.d.ts +1 -8
- package/out/controller/control/dashboard/custom-dashboard.controller.d.ts.map +1 -1
- package/out/controller/control/dashboard/custom-dashboard.controller.js +1 -9
- package/out/controller/control/dashboard/dashboard.controller.d.ts +25 -0
- package/out/controller/control/dashboard/dashboard.controller.d.ts.map +1 -1
- package/out/controller/control/dashboard/dashboard.controller.js +52 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts +14 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.js +29 -1
- package/out/controller/control/grid/grid/entity-schema.d.ts.map +1 -1
- package/out/controller/control/grid/grid/entity-schema.js +1 -0
- package/out/controller/control/grid/grid/grid.controller.d.ts +15 -2
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +32 -2
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +2 -1
- package/out/controller/control/report-panel/generator/base-generator.d.ts +4 -4
- package/out/controller/control/report-panel/generator/base-generator.d.ts.map +1 -1
- package/out/controller/control/report-panel/generator/base-generator.js +4 -5
- package/out/controller/control/report-panel/generator/bi-generator.d.ts +14 -4
- package/out/controller/control/report-panel/generator/bi-generator.d.ts.map +1 -1
- package/out/controller/control/report-panel/generator/bi-generator.js +66 -16
- package/out/controller/control/report-panel/generator/user-generator.d.ts +2 -2
- package/out/controller/control/report-panel/generator/user-generator.d.ts.map +1 -1
- package/out/controller/control/report-panel/generator/user-generator.js +2 -2
- package/out/controller/control/report-panel/report-panel.controller.d.ts.map +1 -1
- package/out/controller/control/report-panel/report-panel.controller.js +3 -0
- package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -1
- package/out/controller/control/toolbar/toolbar.controllerr.js +7 -0
- package/out/controller/notification/internal-message.controller.d.ts.map +1 -1
- package/out/controller/notification/internal-message.controller.js +7 -1
- package/out/global/global-util/global-util.d.ts +8 -1
- package/out/global/global-util/global-util.d.ts.map +1 -1
- package/out/global/global-util/global-util.js +8 -1
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +10 -0
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-report-panel.controller.d.ts +8 -0
- package/out/interface/controller/controller/control/i-report-panel.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-calendar.state.d.ts +21 -0
- package/out/interface/controller/state/control/i-calendar.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-grid.state.d.ts +7 -0
- package/out/interface/controller/state/control/i-grid.state.d.ts.map +1 -1
- package/out/interface/provider/model-loader.provider.d.ts +10 -0
- package/out/interface/provider/model-loader.provider.d.ts.map +1 -1
- package/out/interface/service/i-data-entity/i-data-entity.d.ts +7 -0
- package/out/interface/service/i-data-entity/i-data-entity.d.ts.map +1 -1
- package/out/service/app-data-entity/app-data-entity.d.ts +1 -0
- package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
- package/out/service/app-data-entity/app-data-entity.js +2 -0
- package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
- package/out/service/vo/tree-node-data/tree-data-set-node-data.js +2 -1
- package/out/ui-action/provider/front-ui-action-provider.js +1 -1
- package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts +15 -0
- package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.js +17 -2
- package/out/utils/bi-report-util/bi-report-util.d.ts +59 -0
- package/out/utils/bi-report-util/bi-report-util.d.ts.map +1 -0
- package/out/utils/bi-report-util/bi-report-util.js +108 -0
- package/out/utils/bi-report-util/index.d.ts +2 -0
- package/out/utils/bi-report-util/index.d.ts.map +1 -0
- package/out/utils/bi-report-util/index.js +1 -0
- package/out/utils/index.d.ts +1 -0
- package/out/utils/index.d.ts.map +1 -1
- package/out/utils/index.js +1 -0
- package/out/utils/script/script-factory.d.ts +12 -0
- package/out/utils/script/script-factory.d.ts.map +1 -1
- package/out/utils/script/script-factory.js +15 -0
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mergeDeepRight } from 'ramda';
|
|
1
|
+
import { clone, mergeDeepRight } from 'ramda';
|
|
2
2
|
import { isObject, isString } from 'qx-util';
|
|
3
3
|
import { RuntimeError } from '@ibiz-template/core';
|
|
4
4
|
import { LineSeriesGenerator } from './line-series-generator';
|
|
@@ -246,6 +246,113 @@ export class ChartOptionsGenerator {
|
|
|
246
246
|
});
|
|
247
247
|
return AxisOption;
|
|
248
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* 处理轴布局位置
|
|
251
|
+
*
|
|
252
|
+
* @param {CodeListItem[]} items
|
|
253
|
+
* @param {number} padding
|
|
254
|
+
* @param {number} total
|
|
255
|
+
* @param {number} index
|
|
256
|
+
* @param {boolean} isRow 是否横向
|
|
257
|
+
* @return {*}
|
|
258
|
+
* @memberof ChartOptionsGenerator
|
|
259
|
+
*/
|
|
260
|
+
handleAxisLayout(items, padding, total, index, isRow = true) {
|
|
261
|
+
const axisData = items.map((code) => {
|
|
262
|
+
if (isRow) {
|
|
263
|
+
return {
|
|
264
|
+
value: code.text,
|
|
265
|
+
textStyle: {
|
|
266
|
+
padding: [0, padding * (total - 1 - index), 0, 0],
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
value: code.text,
|
|
272
|
+
textStyle: {
|
|
273
|
+
padding: [padding * (total - 1 - index), 0, 0, 0],
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
});
|
|
277
|
+
return axisData;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* 处理轴层级
|
|
281
|
+
*
|
|
282
|
+
* @param {IData[]} tempaxis
|
|
283
|
+
* @param {number} index
|
|
284
|
+
* @param {IData[]} axisData
|
|
285
|
+
* @return {*}
|
|
286
|
+
* @memberof ChartOptionsGenerator
|
|
287
|
+
*/
|
|
288
|
+
handleAxisLevel(tempaxis, index, axisData) {
|
|
289
|
+
const tempAxisData = [];
|
|
290
|
+
if (index === 0) {
|
|
291
|
+
return axisData;
|
|
292
|
+
}
|
|
293
|
+
let length = 1;
|
|
294
|
+
for (let i = 0; i < tempaxis.length; i++) {
|
|
295
|
+
length *= tempaxis[i].data.length;
|
|
296
|
+
}
|
|
297
|
+
for (let i = 0; i < length; i++) {
|
|
298
|
+
tempAxisData.push(...axisData);
|
|
299
|
+
}
|
|
300
|
+
return tempAxisData;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* 合并轴参数
|
|
304
|
+
*
|
|
305
|
+
* @param {(IData[] | IData)} axisData
|
|
306
|
+
* @param {IData[]} tempAxis
|
|
307
|
+
* @return {*}
|
|
308
|
+
* @memberof ChartOptionsGenerator
|
|
309
|
+
*/
|
|
310
|
+
mergeAxisData(axisData, tempAxis) {
|
|
311
|
+
if (axisData && Array.isArray(axisData)) {
|
|
312
|
+
return [...axisData, ...tempAxis];
|
|
313
|
+
}
|
|
314
|
+
return [axisData, ...tempAxis];
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* 处理分区模式下序列模型的坐标轴位置
|
|
318
|
+
*
|
|
319
|
+
* @param {IData[]} seriesModel
|
|
320
|
+
* @param {IData} opts
|
|
321
|
+
* @memberof ChartOptionsGenerator
|
|
322
|
+
*/
|
|
323
|
+
handleSeriesModelCoordinateAxis(seriesModel, opts) {
|
|
324
|
+
const { xAxisParam, yAxisParam } = opts;
|
|
325
|
+
const xaxis = [];
|
|
326
|
+
const yaxis = [];
|
|
327
|
+
for (let i = 0; i < seriesModel.length; i++) {
|
|
328
|
+
const tempXAxis = clone(xAxisParam);
|
|
329
|
+
const tempYAxis = clone(yAxisParam);
|
|
330
|
+
Object.assign(tempXAxis, { gridIndex: i });
|
|
331
|
+
Object.assign(tempYAxis, { gridIndex: i });
|
|
332
|
+
// 需要模板支持解析数组参数
|
|
333
|
+
tempYAxis.axisLabel.formatter = function (_param) {
|
|
334
|
+
if (_param === 0) {
|
|
335
|
+
return `{top|${_param}}`;
|
|
336
|
+
}
|
|
337
|
+
return `{bottom|${_param}}`;
|
|
338
|
+
};
|
|
339
|
+
if (i !== seriesModel.length - 1) {
|
|
340
|
+
tempXAxis.name = '';
|
|
341
|
+
tempXAxis.axisLine.show = false;
|
|
342
|
+
tempXAxis.axisLabel.show = false;
|
|
343
|
+
tempXAxis.axisTick.show = false;
|
|
344
|
+
}
|
|
345
|
+
if (tempYAxis.showTitle) {
|
|
346
|
+
Object.assign(tempYAxis, {
|
|
347
|
+
name: seriesModel[i].serieText,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
xaxis.push(tempXAxis);
|
|
351
|
+
yaxis.push(tempYAxis);
|
|
352
|
+
}
|
|
353
|
+
this.chartUserParam.xAxis = xaxis;
|
|
354
|
+
this.chartUserParam.yAxis = yaxis;
|
|
355
|
+
}
|
|
249
356
|
/**
|
|
250
357
|
* 初始化多分类的X轴配置
|
|
251
358
|
*
|
|
@@ -253,78 +360,109 @@ export class ChartOptionsGenerator {
|
|
|
253
360
|
* @memberof ChartOptionsGenerator
|
|
254
361
|
*/
|
|
255
362
|
async initMultiCatalogxAxis(context, params) {
|
|
256
|
-
var _a, _b, _c, _d, _e;
|
|
363
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
257
364
|
const { controlParam } = this.model;
|
|
258
|
-
|
|
365
|
+
// 分区模式 ,计算多个图表位置
|
|
366
|
+
if (controlParam && ((_a = controlParam.ctrlParams) === null || _a === void 0 ? void 0 : _a.ZONE)) {
|
|
367
|
+
const length = (_b = this.model.dechartSerieses) === null || _b === void 0 ? void 0 : _b.length;
|
|
368
|
+
if (length) {
|
|
369
|
+
const height = 90 / length;
|
|
370
|
+
const items = [];
|
|
371
|
+
for (let i = 0; i < length; i++) {
|
|
372
|
+
const top = i * height + 5;
|
|
373
|
+
const bottom = 100 - (height + top);
|
|
374
|
+
items.push({
|
|
375
|
+
top: `${top}%`,
|
|
376
|
+
bottom: `${bottom}%`,
|
|
377
|
+
containLabel: true,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
if (this.chartUserParam) {
|
|
381
|
+
this.chartUserParam.grid = items;
|
|
382
|
+
this.handleSeriesModelCoordinateAxis(this.model.dechartSerieses, {
|
|
383
|
+
xAxisParam: ((_c = this.chartUserParam) === null || _c === void 0 ? void 0 : _c.xAxis) || {},
|
|
384
|
+
yAxisParam: ((_d = this.chartUserParam) === null || _d === void 0 ? void 0 : _d.yAxis) || {},
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
// 判断是否为多分类模式
|
|
390
|
+
if (controlParam && ((_e = controlParam.ctrlParams) === null || _e === void 0 ? void 0 : _e.CATALOGFIELDS)) {
|
|
259
391
|
try {
|
|
260
392
|
// 获取分类分层配置
|
|
261
393
|
const tempCatalogFields = JSON.parse(controlParam.ctrlParams.CATALOGFIELDS);
|
|
262
394
|
const tempaxis = [];
|
|
263
395
|
let titleshow = true;
|
|
264
|
-
let
|
|
396
|
+
let labelshow = true;
|
|
265
397
|
let gridIndex = 0;
|
|
398
|
+
// 需要一个分类属性组成的JSON数组
|
|
266
399
|
if (Array.isArray(tempCatalogFields)) {
|
|
267
400
|
const app = ibiz.hub.getApp(context.srfappid);
|
|
268
|
-
if (this.chartUserParam
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
401
|
+
if (this.chartUserParam) {
|
|
402
|
+
let tempconfig = {};
|
|
403
|
+
// 判断图表是否为横向条形图
|
|
404
|
+
if (((_f = controlParam.ctrlParams) === null || _f === void 0 ? void 0 : _f.MODE) === 'ROW') {
|
|
405
|
+
// 获取yAxis配置数据
|
|
406
|
+
if (Array.isArray(this.chartUserParam.yAxis)) {
|
|
407
|
+
tempconfig =
|
|
408
|
+
this.chartUserParam.yAxis[this.chartUserParam.yAxis.length - 1];
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
// 计算轴标题和轴标签是否显示
|
|
412
|
+
tempconfig = this.chartUserParam.yAxis;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
else if (Array.isArray(this.chartUserParam.xAxis)) {
|
|
416
|
+
// 获取xAxis配置数据
|
|
417
|
+
tempconfig =
|
|
418
|
+
this.chartUserParam.xAxis[this.chartUserParam.xAxis.length - 1];
|
|
277
419
|
}
|
|
278
420
|
else {
|
|
421
|
+
tempconfig = this.chartUserParam.xAxis;
|
|
422
|
+
}
|
|
423
|
+
// 计算轴标题和轴标签是否显示
|
|
424
|
+
if (tempconfig) {
|
|
279
425
|
titleshow =
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
labelshoww =
|
|
284
|
-
((_d = this.chartUserParam.xAxis.axisLabel) === null || _d === void 0 ? void 0 : _d.show) === undefined
|
|
426
|
+
tempconfig.name === undefined ? true : !!tempconfig.name;
|
|
427
|
+
labelshow =
|
|
428
|
+
((_g = tempconfig.axisLabel) === null || _g === void 0 ? void 0 : _g.show) === undefined
|
|
285
429
|
? true
|
|
286
|
-
: (
|
|
430
|
+
: (_h = tempconfig.axisLabel) === null || _h === void 0 ? void 0 : _h.show;
|
|
287
431
|
}
|
|
288
432
|
}
|
|
433
|
+
// 计算图表使用的grid配置
|
|
289
434
|
if (this.chartUserParam &&
|
|
290
435
|
this.chartUserParam.grid &&
|
|
291
436
|
Array.isArray(this.chartUserParam.grid)) {
|
|
292
437
|
gridIndex = this.chartUserParam.grid.length - 1;
|
|
293
438
|
}
|
|
439
|
+
// 获取分类代码表,最后一个分类是作为序列分类处理的,
|
|
294
440
|
await Promise.all(tempCatalogFields
|
|
295
441
|
.slice(0, -1)
|
|
296
442
|
.map(async (catalog, index) => {
|
|
443
|
+
var _a;
|
|
297
444
|
if (catalog.mode === 'codelist' && catalog.codelistId) {
|
|
298
445
|
const codeListItems = await app.codeList.get(catalog.codelistId, context, params);
|
|
299
446
|
if (codeListItems) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
lineHeight: 45 * (tempCatalogFields.length - 1 - index),
|
|
306
|
-
},
|
|
307
|
-
};
|
|
308
|
-
});
|
|
309
|
-
if (index === 0) {
|
|
447
|
+
if (((_a = controlParam.ctrlParams) === null || _a === void 0 ? void 0 : _a.MODE) === 'ROW') {
|
|
448
|
+
// 计算条形图时yAxis的配置以及图表的四周间隔
|
|
449
|
+
const yAxisData = this.handleAxisLayout(codeListItems, 40, tempCatalogFields.length, index);
|
|
450
|
+
// 开始计算每一层的标签刻度个数,并动态生成相应个数的配置数据
|
|
451
|
+
const tempxAxisData = this.handleAxisLevel(tempaxis, index, yAxisData);
|
|
310
452
|
tempaxis.push({
|
|
311
|
-
show:
|
|
453
|
+
show: labelshow,
|
|
312
454
|
gridIndex,
|
|
313
455
|
type: 'category',
|
|
314
|
-
data:
|
|
315
|
-
position: '
|
|
456
|
+
data: tempxAxisData,
|
|
457
|
+
position: 'left',
|
|
316
458
|
});
|
|
317
459
|
}
|
|
318
460
|
else {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
for (let i = 0; i < length; i++) {
|
|
324
|
-
tempxAxisData.push(...xAxisData);
|
|
325
|
-
}
|
|
461
|
+
// 计算横轴在分层下的xAxis配置以及图表四周间隔
|
|
462
|
+
const xAxisData = this.handleAxisLayout(codeListItems, 24, tempCatalogFields.length, index, false);
|
|
463
|
+
const tempxAxisData = this.handleAxisLevel(tempaxis, index, xAxisData);
|
|
326
464
|
tempaxis.push({
|
|
327
|
-
show:
|
|
465
|
+
show: labelshow,
|
|
328
466
|
gridIndex,
|
|
329
467
|
type: 'category',
|
|
330
468
|
data: tempxAxisData,
|
|
@@ -334,63 +472,87 @@ export class ChartOptionsGenerator {
|
|
|
334
472
|
}
|
|
335
473
|
}
|
|
336
474
|
}));
|
|
475
|
+
// 计算分类分层显示情况下的轴标题
|
|
337
476
|
const mergeName = tempCatalogFields
|
|
338
477
|
.map((catalog) => {
|
|
339
478
|
return catalog.name;
|
|
340
479
|
})
|
|
341
480
|
.join('/');
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
textStyle: {
|
|
350
|
-
lineHeight: labelshoww ? 45 * tempCatalogFields.length : 45,
|
|
351
|
-
},
|
|
352
|
-
},
|
|
353
|
-
],
|
|
354
|
-
position: 'bottom',
|
|
355
|
-
});
|
|
481
|
+
let catalogLength = tempCatalogFields.length;
|
|
482
|
+
if (!labelshow) {
|
|
483
|
+
catalogLength = 1;
|
|
484
|
+
}
|
|
485
|
+
if (!titleshow) {
|
|
486
|
+
catalogLength -= 1;
|
|
487
|
+
}
|
|
356
488
|
if (this.chartUserParam) {
|
|
357
|
-
if (this.chartUserParam.xAxis &&
|
|
358
|
-
Array.isArray(this.chartUserParam.xAxis)) {
|
|
359
|
-
this.chartUserParam.xAxis = [
|
|
360
|
-
...this.chartUserParam.xAxis,
|
|
361
|
-
...tempaxis,
|
|
362
|
-
];
|
|
363
|
-
}
|
|
364
|
-
else if (this.chartUserParam.xAxis) {
|
|
365
|
-
this.chartUserParam.xAxis = [
|
|
366
|
-
this.chartUserParam.xAxis,
|
|
367
|
-
...tempaxis,
|
|
368
|
-
];
|
|
369
|
-
}
|
|
370
489
|
if (!this.chartUserParam.grid) {
|
|
371
490
|
this.chartUserParam.grid = {};
|
|
372
491
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
492
|
+
if (((_j = controlParam.ctrlParams) === null || _j === void 0 ? void 0 : _j.MODE) === 'ROW') {
|
|
493
|
+
// 动态计算条形图四周的间隙
|
|
494
|
+
if (catalogLength === 0) {
|
|
495
|
+
Object.assign(this.chartUserParam.grid, {
|
|
496
|
+
bottom: 45,
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
Object.assign(this.chartUserParam.grid, {
|
|
501
|
+
left: (catalogLength + 1) * 40,
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
// 计算完纵轴分层布局数据并合并用户参数
|
|
505
|
+
tempaxis.push({
|
|
506
|
+
type: 'category',
|
|
507
|
+
gridIndex,
|
|
508
|
+
show: titleshow,
|
|
509
|
+
data: [
|
|
510
|
+
{
|
|
511
|
+
value: mergeName.split('').join('\n'),
|
|
512
|
+
textStyle: {
|
|
513
|
+
padding: [0, catalogLength * 40, 0, 0],
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
],
|
|
517
|
+
position: 'left',
|
|
383
518
|
});
|
|
519
|
+
if (this.chartUserParam.yAxis) {
|
|
520
|
+
this.chartUserParam.yAxis = this.mergeAxisData(this.chartUserParam.yAxis, tempaxis);
|
|
521
|
+
}
|
|
384
522
|
}
|
|
385
523
|
else {
|
|
386
|
-
|
|
387
|
-
|
|
524
|
+
if (catalogLength === 0) {
|
|
525
|
+
Object.assign(this.chartUserParam.grid, {
|
|
526
|
+
bottom: 30,
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
Object.assign(this.chartUserParam.grid, {
|
|
531
|
+
bottom: (catalogLength + 1) * 24,
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
tempaxis.push({
|
|
535
|
+
type: 'category',
|
|
536
|
+
gridIndex,
|
|
537
|
+
show: titleshow,
|
|
538
|
+
data: [
|
|
539
|
+
{
|
|
540
|
+
value: mergeName,
|
|
541
|
+
textStyle: {
|
|
542
|
+
padding: [24 * catalogLength, 0, 0, 0],
|
|
543
|
+
},
|
|
544
|
+
},
|
|
545
|
+
],
|
|
546
|
+
position: 'bottom',
|
|
388
547
|
});
|
|
548
|
+
if (this.chartUserParam.xAxis) {
|
|
549
|
+
this.chartUserParam.xAxis = this.mergeAxisData(this.chartUserParam.xAxis, tempaxis);
|
|
550
|
+
}
|
|
389
551
|
}
|
|
390
552
|
}
|
|
391
553
|
}
|
|
392
554
|
}
|
|
393
|
-
catch (
|
|
555
|
+
catch (_k) {
|
|
394
556
|
throw new Error(ibiz.i18n.t('runtime.control.chart.errorJson'));
|
|
395
557
|
}
|
|
396
558
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radar-series-generator.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/chart/generator/radar-series-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAiB,MAAM,yBAAyB,CAAC;AAG7E;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC9E,SAAS,CAAC,iBAAiB,IAAI,YAAY;IAM3C;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"radar-series-generator.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/chart/generator/radar-series-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAiB,MAAM,yBAAyB,CAAC;AAG7E;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC9E,SAAS,CAAC,iBAAiB,IAAI,YAAY;IAM3C;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI;IAuBzC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,GAAG,YAAY,EAAE;CA4B1D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mergeDeepRight } from 'ramda';
|
|
1
|
+
import { clone, mergeDeepRight } from 'ramda';
|
|
2
2
|
import { BaseSeriesGenerator, DEFAULT_GROUP } from './base-series-generator';
|
|
3
3
|
import { RadarCoordSystem } from './radar-coord-system';
|
|
4
4
|
/**
|
|
@@ -21,7 +21,10 @@ export class RadarSeriesGenerator extends BaseSeriesGenerator {
|
|
|
21
21
|
* @param {IData[]} data
|
|
22
22
|
*/
|
|
23
23
|
calcRadarCoordSystem(data) {
|
|
24
|
-
const
|
|
24
|
+
const tempItems = data.map((item) => {
|
|
25
|
+
return clone(item);
|
|
26
|
+
});
|
|
27
|
+
const groupData = this.calcGroupData(tempItems);
|
|
25
28
|
// 创建雷达坐标系对象
|
|
26
29
|
if (!this.chartGenerator.radarMap.has(this.catalogField)) {
|
|
27
30
|
this.chartGenerator.radarMap.set(this.catalogField, new RadarCoordSystem(this.chartGenerator.radarMap.size));
|
|
@@ -73,7 +73,7 @@ export declare class CustomDashboardController implements ICustomDesign {
|
|
|
73
73
|
*/
|
|
74
74
|
params: IParams;
|
|
75
75
|
/**
|
|
76
|
-
* 自定义定制范围类型(public:公开,personal:个人,data
|
|
76
|
+
* 自定义定制范围类型(public:公开,personal:个人,data:数据,dynamic: 自定义动态,默认是按照个人区分,配置了应用功能组件才生效)
|
|
77
77
|
*
|
|
78
78
|
* @author tony001
|
|
79
79
|
* @date 2024-04-24 19:04:47
|
|
@@ -96,13 +96,6 @@ export declare class CustomDashboardController implements ICustomDesign {
|
|
|
96
96
|
* @type {string}
|
|
97
97
|
*/
|
|
98
98
|
ownerId: string;
|
|
99
|
-
/**
|
|
100
|
-
* 是否多模式
|
|
101
|
-
*
|
|
102
|
-
* @type {boolean}
|
|
103
|
-
* @memberof CustomDashboardController
|
|
104
|
-
*/
|
|
105
|
-
multiMode: boolean;
|
|
106
99
|
/**
|
|
107
100
|
* Creates an instance of BaseController.
|
|
108
101
|
* @author lxm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-dashboard.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/dashboard/custom-dashboard.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"custom-dashboard.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/dashboard/custom-dashboard.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,aAAa;IAuGpD,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,mBAAmB;IAvGvC;;;;;OAKG;IACH,eAAe,EAAE,KAAK,EAAE,CAAM;IAE9B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAM;IAE1B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;;;;OAKG;IACH,aAAa,EAAE,KAAK,CAAM;IAE1B;;;;;;OAMG;IACH,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAElC;;;;;;OAMG;IACH,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAE9B;;;;;;OAMG;IACH,OAAO,EAAE,QAAQ,CAAC;IAElB;;;;;;OAMG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAc;IAE9D;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAM;IAEvB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAM;IAErB;;;;;OAKG;gBAEM,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,mBAAmB;IAOvC;;;;;;OAMG;IACH,OAAO,CAAC,IAAI;IAkCZ;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,CAAC;IA0B3C;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,KAAK,CAAC;IAK5C;;;;;OAKG;IACG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAE,KAAU,GAAG,OAAO,CAAC,KAAK,CAAC;CA8B5E"}
|
|
@@ -45,7 +45,7 @@ export class CustomDashboardController {
|
|
|
45
45
|
*/
|
|
46
46
|
this.portletConfig = {};
|
|
47
47
|
/**
|
|
48
|
-
* 自定义定制范围类型(public:公开,personal:个人,data
|
|
48
|
+
* 自定义定制范围类型(public:公开,personal:个人,data:数据,dynamic: 自定义动态,默认是按照个人区分,配置了应用功能组件才生效)
|
|
49
49
|
*
|
|
50
50
|
* @author tony001
|
|
51
51
|
* @date 2024-04-24 19:04:47
|
|
@@ -68,13 +68,6 @@ export class CustomDashboardController {
|
|
|
68
68
|
* @type {string}
|
|
69
69
|
*/
|
|
70
70
|
this.ownerId = '';
|
|
71
|
-
/**
|
|
72
|
-
* 是否多模式
|
|
73
|
-
*
|
|
74
|
-
* @type {boolean}
|
|
75
|
-
* @memberof CustomDashboardController
|
|
76
|
-
*/
|
|
77
|
-
this.multiMode = false;
|
|
78
71
|
this.context = dashboard.context;
|
|
79
72
|
this.params = dashboard.params;
|
|
80
73
|
this.init(dashboard.controlParams);
|
|
@@ -102,7 +95,6 @@ export class CustomDashboardController {
|
|
|
102
95
|
this.ownerId = this.context[controlParams.owner_id];
|
|
103
96
|
}
|
|
104
97
|
if (controlParams.multimode === 'true') {
|
|
105
|
-
this.multiMode = true;
|
|
106
98
|
this.type = 'dynamic';
|
|
107
99
|
}
|
|
108
100
|
// 配置了应用功能组件则走应用功能组件服务存储,否则走rt的config存储
|
|
@@ -31,6 +31,14 @@ export declare class DashboardController extends ControlController<IDashboard, I
|
|
|
31
31
|
portlets: {
|
|
32
32
|
[key: string]: IPortletController;
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* 启用动态
|
|
36
|
+
*
|
|
37
|
+
* @author tony001
|
|
38
|
+
* @date 2024-06-27 11:06:24
|
|
39
|
+
* @type {boolean}
|
|
40
|
+
*/
|
|
41
|
+
enableDynamic: boolean;
|
|
34
42
|
protected initState(): void;
|
|
35
43
|
protected onCreated(): Promise<void>;
|
|
36
44
|
/**
|
|
@@ -58,6 +66,23 @@ export declare class DashboardController extends ControlController<IDashboard, I
|
|
|
58
66
|
* @memberof DashboardController
|
|
59
67
|
*/
|
|
60
68
|
resetPortlets(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* 加载动态
|
|
71
|
+
*
|
|
72
|
+
* @author tony001
|
|
73
|
+
* @date 2024-06-27 16:06:21
|
|
74
|
+
* @return {*} {Promise<IData[]>}
|
|
75
|
+
*/
|
|
76
|
+
loadAllDynaPortlet(): Promise<IData[]>;
|
|
77
|
+
/**
|
|
78
|
+
* 通过指定标识加载门户部件
|
|
79
|
+
*
|
|
80
|
+
* @author tony001
|
|
81
|
+
* @date 2024-06-27 17:06:12
|
|
82
|
+
* @param {string} id
|
|
83
|
+
* @return {*} {(Promise<IDBPortletPart | undefined>)}
|
|
84
|
+
*/
|
|
85
|
+
loadDynaPortletById(id: string): Promise<IDBPortletPart | undefined>;
|
|
61
86
|
/**
|
|
62
87
|
* 通知所有表单成员表单操作过程中的数据变更
|
|
63
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/dashboard/dashboard.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/dashboard/dashboard.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAEV,cAAc,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD;;;;;;;;GAQG;AACH,qBAAa,mBACX,SAAQ,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CACtE,YAAW,oBAAoB;IAE/B;;;;;;OAMG;IACH,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAM;IAEpD;;;;;;OAMG;IACH,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAM;IAErD;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAS;IAE/B,SAAS,CAAC,SAAS,IAAI,IAAI;cAIX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB1C;;;;;;;;OAQG;IACG,YAAY,CAChB,aAAa,EAAE,cAAc,EAAE,EAC/B,MAAM,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,GAAE,KAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAkB5C;;;;;;;OAOG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAmB1E;;;;;;OAMG;IACG,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAQnD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clone } from 'ramda';
|
|
1
2
|
import { ControlType } from '../../../constant';
|
|
2
3
|
import { getPortletProvider } from '../../../register';
|
|
3
4
|
import { handleAllSettled } from '../../../utils';
|
|
@@ -31,13 +32,26 @@ export class DashboardController extends ControlController {
|
|
|
31
32
|
* @type {{ [key: string]: IPortletController }}
|
|
32
33
|
*/
|
|
33
34
|
this.portlets = {};
|
|
35
|
+
/**
|
|
36
|
+
* 启用动态
|
|
37
|
+
*
|
|
38
|
+
* @author tony001
|
|
39
|
+
* @date 2024-06-27 11:06:24
|
|
40
|
+
* @type {boolean}
|
|
41
|
+
*/
|
|
42
|
+
this.enableDynamic = false;
|
|
34
43
|
}
|
|
35
44
|
initState() {
|
|
36
45
|
super.initState();
|
|
37
46
|
}
|
|
38
47
|
async onCreated() {
|
|
48
|
+
this.model.enableCustomized = true;
|
|
39
49
|
await super.onCreated();
|
|
40
50
|
await this.initPortlets(this.model.controls);
|
|
51
|
+
// 设置启用动态
|
|
52
|
+
if (this.controlParams.enabledynamic === 'true') {
|
|
53
|
+
this.enableDynamic = true;
|
|
54
|
+
}
|
|
41
55
|
// 实体门户视图监听视图数据变更,刷新界面行为组的状态。
|
|
42
56
|
const { appDataEntityId } = this.view.model;
|
|
43
57
|
if (appDataEntityId) {
|
|
@@ -117,6 +131,44 @@ export class DashboardController extends ControlController {
|
|
|
117
131
|
});
|
|
118
132
|
this.evt.emit('onResetPortlet', undefined);
|
|
119
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* 加载动态
|
|
136
|
+
*
|
|
137
|
+
* @author tony001
|
|
138
|
+
* @date 2024-06-27 16:06:21
|
|
139
|
+
* @return {*} {Promise<IData[]>}
|
|
140
|
+
*/
|
|
141
|
+
async loadAllDynaPortlet() {
|
|
142
|
+
var _a;
|
|
143
|
+
const app = ibiz.hub.getApp(ibiz.env.appId);
|
|
144
|
+
const res = await app.deService.exec('psappportlet', 'fetchdefault', this.context, {
|
|
145
|
+
size: 1000,
|
|
146
|
+
n_pssysappid_eq: app.model.codeName,
|
|
147
|
+
n_dynamodelflag_noteq: 0,
|
|
148
|
+
});
|
|
149
|
+
if (res && ((_a = res.data) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
150
|
+
return res.data;
|
|
151
|
+
}
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 通过指定标识加载门户部件
|
|
156
|
+
*
|
|
157
|
+
* @author tony001
|
|
158
|
+
* @date 2024-06-27 17:06:12
|
|
159
|
+
* @param {string} id
|
|
160
|
+
* @return {*} {(Promise<IDBPortletPart | undefined>)}
|
|
161
|
+
*/
|
|
162
|
+
async loadDynaPortletById(id) {
|
|
163
|
+
const app = ibiz.hub.getApp(ibiz.env.appId);
|
|
164
|
+
const tempContext = clone(this.context);
|
|
165
|
+
Object.assign(tempContext, { psappportlet: id });
|
|
166
|
+
const res = await app.deService.exec('psappportlet', 'get', tempContext, this.params);
|
|
167
|
+
if (res && res.data && res.data.controlmodel) {
|
|
168
|
+
const controlModel = JSON.parse(res.data.controlmodel);
|
|
169
|
+
return (await ibiz.hub.translationModelToDsl(controlModel, 'CTRL'));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
120
172
|
/**
|
|
121
173
|
* 通知所有表单成员表单操作过程中的数据变更
|
|
122
174
|
*
|
package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts
CHANGED
|
@@ -57,6 +57,13 @@ export declare class FormMDCtrlFormController extends FormMDCtrlController {
|
|
|
57
57
|
* @type {string}
|
|
58
58
|
*/
|
|
59
59
|
deName: string;
|
|
60
|
+
/**
|
|
61
|
+
* 数据集合
|
|
62
|
+
*
|
|
63
|
+
* @type {IData[]}
|
|
64
|
+
* @memberof FormMDCtrlFormController
|
|
65
|
+
*/
|
|
66
|
+
items: IData[];
|
|
60
67
|
/**
|
|
61
68
|
* 初始化
|
|
62
69
|
*
|
|
@@ -74,6 +81,13 @@ export declare class FormMDCtrlFormController extends FormMDCtrlController {
|
|
|
74
81
|
* @return {*} {Promise<void>}
|
|
75
82
|
*/
|
|
76
83
|
fetchData(): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* 更新数据
|
|
86
|
+
* - 仅支持更新临时数据
|
|
87
|
+
* @return {*} {Promise<void>}
|
|
88
|
+
* @memberof FormMDCtrlFormController
|
|
89
|
+
*/
|
|
90
|
+
updateData(): Promise<void>;
|
|
77
91
|
/**
|
|
78
92
|
* 表单状态变更通知
|
|
79
93
|
*
|
package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-mdctrl-form.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE;;;;;;OAMG;IACK,KAAK,EAAE,mBAAmB,CAAC;IAEnC;;;;OAIG;IACH,oBAAoB,UAAS;IAE7B,SAAS,CAAC,WAAW,IAAI,mBAAmB;IAI5C;;;;OAIG;IACH,OAAO,mCAA0C;IAEjD;;;;;;OAMG;IACH,YAAY,EAAG,gBAAgB,CAAC;IAEhC;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B;;;;;OAKG;IACH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;OAQG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB7B;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"form-mdctrl-form.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE;;;;;;OAMG;IACK,KAAK,EAAE,mBAAmB,CAAC;IAEnC;;;;OAIG;IACH,oBAAoB,UAAS;IAE7B,SAAS,CAAC,WAAW,IAAI,mBAAmB;IAI5C;;;;OAIG;IACH,OAAO,mCAA0C;IAEjD;;;;;;OAMG;IACH,YAAY,EAAG,gBAAgB,CAAC;IAEhC;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B;;;;;OAKG;IACH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,KAAK,EAAE,KAAK,EAAE,CAAM;IAEpB;;;;;;;;OAQG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB7B;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBhC;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI;IA6BpE;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IASlC;;;;;;OAMG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAkB5B,OAAO,IAAI,IAAI;IAIT,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IActD;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;CAKvC"}
|