@fxlt/common-ui 0.0.5 → 0.0.6
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.
|
@@ -49,7 +49,7 @@ import * as i44 from '@angular/material/menu';
|
|
|
49
49
|
import { MatMenuModule } from '@angular/material/menu';
|
|
50
50
|
import * as i3 from '@danielmoncada/angular-datetime-picker';
|
|
51
51
|
import { OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_FORMATS } from '@danielmoncada/angular-datetime-picker';
|
|
52
|
-
import * as
|
|
52
|
+
import * as i1$4 from 'ngx-echarts';
|
|
53
53
|
import { NgxEchartsModule } from 'ngx-echarts';
|
|
54
54
|
import { __decorate, __param } from 'tslib';
|
|
55
55
|
import * as i27 from 'ngx-vflow';
|
|
@@ -633,6 +633,7 @@ class BaseTableComponent extends BaseComponent {
|
|
|
633
633
|
message: conf.message,
|
|
634
634
|
resolve: this.resolve(),
|
|
635
635
|
disabled: true,
|
|
636
|
+
method: 'view',
|
|
636
637
|
},
|
|
637
638
|
});
|
|
638
639
|
instance.afterClosed().subscribe(() => {
|
|
@@ -1337,64 +1338,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
1337
1338
|
class ChartComponent {
|
|
1338
1339
|
ref;
|
|
1339
1340
|
cdr;
|
|
1341
|
+
/* ================= INPUTS ================= */
|
|
1340
1342
|
type = 'auto';
|
|
1341
1343
|
data;
|
|
1342
1344
|
options;
|
|
1343
1345
|
palette;
|
|
1344
1346
|
height = '400px';
|
|
1345
1347
|
loading = false;
|
|
1348
|
+
// pie controls
|
|
1346
1349
|
pieLegendAlign = '10%';
|
|
1347
1350
|
pieLegendPosition = 'middle';
|
|
1348
1351
|
showPieLabel = true;
|
|
1349
1352
|
labelFontFamily = 'BeVietnamPro';
|
|
1353
|
+
/* ================= OUTPUTS ================= */
|
|
1350
1354
|
chartClick = new EventEmitter();
|
|
1351
1355
|
chartInit = new EventEmitter();
|
|
1352
|
-
|
|
1353
|
-
canInit = false;
|
|
1356
|
+
/* ================= INTERNAL ================= */
|
|
1354
1357
|
chartOptions = {};
|
|
1358
|
+
labelFontSize = 12;
|
|
1355
1359
|
chartInstance;
|
|
1356
1360
|
resizeObserver;
|
|
1357
1361
|
intersectionObserver;
|
|
1362
|
+
canInit = false;
|
|
1363
|
+
isMobile = false;
|
|
1358
1364
|
constructor(ref, cdr) {
|
|
1359
1365
|
this.ref = ref;
|
|
1360
1366
|
this.cdr = cdr;
|
|
1361
1367
|
}
|
|
1368
|
+
/* ================= LIFECYCLE ================= */
|
|
1362
1369
|
ngAfterViewInit() {
|
|
1370
|
+
// Only initialize when visible (tab-safe)
|
|
1363
1371
|
this.intersectionObserver = new IntersectionObserver(([entry]) => {
|
|
1364
1372
|
if (entry.isIntersecting && !this.canInit) {
|
|
1365
1373
|
this.canInit = true;
|
|
1374
|
+
this.updateResponsiveState();
|
|
1366
1375
|
this.rebuildChart();
|
|
1367
1376
|
this.cdr.detectChanges();
|
|
1368
1377
|
}
|
|
1369
1378
|
}, { threshold: 0.1 });
|
|
1370
1379
|
this.intersectionObserver.observe(this.ref.nativeElement);
|
|
1380
|
+
// Resize-safe (tabs, flex, async layout)
|
|
1371
1381
|
this.resizeObserver = new ResizeObserver(() => {
|
|
1372
|
-
if (this.
|
|
1373
|
-
|
|
1382
|
+
if (!this.canInit)
|
|
1383
|
+
return;
|
|
1384
|
+
this.updateResponsiveState();
|
|
1385
|
+
this.forceMediaRecalc();
|
|
1374
1386
|
});
|
|
1375
1387
|
this.resizeObserver.observe(this.ref.nativeElement);
|
|
1376
1388
|
}
|
|
1377
|
-
ngOnDestroy() {
|
|
1378
|
-
this.resizeObserver?.disconnect();
|
|
1379
|
-
this.intersectionObserver?.disconnect();
|
|
1380
|
-
}
|
|
1381
1389
|
ngOnChanges() {
|
|
1382
1390
|
if (this.canInit) {
|
|
1391
|
+
this.updateResponsiveState();
|
|
1383
1392
|
this.rebuildChart();
|
|
1384
1393
|
}
|
|
1385
1394
|
}
|
|
1395
|
+
ngOnDestroy() {
|
|
1396
|
+
this.resizeObserver?.disconnect();
|
|
1397
|
+
this.intersectionObserver?.disconnect();
|
|
1398
|
+
}
|
|
1386
1399
|
onThemeChange() {
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1400
|
+
if (!this.canInit)
|
|
1401
|
+
return;
|
|
1402
|
+
requestAnimationFrame(() => this.rebuildChart());
|
|
1390
1403
|
}
|
|
1404
|
+
/* ================= EVENTS ================= */
|
|
1391
1405
|
onChartClick(event) {
|
|
1392
1406
|
this.chartClick.emit(event);
|
|
1393
1407
|
}
|
|
1394
1408
|
onChartInit(chart) {
|
|
1395
1409
|
this.chartInstance = chart;
|
|
1396
1410
|
this.chartInit.emit(chart);
|
|
1397
|
-
requestAnimationFrame(() =>
|
|
1411
|
+
requestAnimationFrame(() => this.forceMediaRecalc());
|
|
1412
|
+
}
|
|
1413
|
+
/* ================= CORE FIX ================= */
|
|
1414
|
+
updateResponsiveState() {
|
|
1415
|
+
const { width } = this.ref.nativeElement.getBoundingClientRect();
|
|
1416
|
+
if (width > 0) {
|
|
1417
|
+
this.isMobile = width < 300;
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
forceMediaRecalc(retry = 0) {
|
|
1421
|
+
if (!this.chartInstance)
|
|
1422
|
+
return;
|
|
1423
|
+
const { width, height } = this.ref.nativeElement.getBoundingClientRect();
|
|
1424
|
+
if ((width === 0 || height === 0) && retry < 10) {
|
|
1425
|
+
requestAnimationFrame(() => this.forceMediaRecalc(retry + 1));
|
|
1426
|
+
return;
|
|
1427
|
+
}
|
|
1428
|
+
this.chartInstance.setOption(this.chartOptions, true);
|
|
1429
|
+
this.chartInstance.resize();
|
|
1398
1430
|
}
|
|
1399
1431
|
rebuildChart() {
|
|
1400
1432
|
this.chartOptions = this.buildOptions();
|
|
@@ -1402,34 +1434,30 @@ class ChartComponent {
|
|
|
1402
1434
|
this.chartInstance.clear();
|
|
1403
1435
|
this.chartInstance.setOption(this.chartOptions, true);
|
|
1404
1436
|
}
|
|
1405
|
-
this.cdr.detectChanges();
|
|
1406
1437
|
}
|
|
1438
|
+
/* ================= REGISTRY ================= */
|
|
1407
1439
|
registry = {
|
|
1408
1440
|
bar: (data, colors) => ({
|
|
1409
1441
|
color: colors,
|
|
1410
1442
|
tooltip: { trigger: 'axis' },
|
|
1411
|
-
grid: {
|
|
1412
|
-
left: '5%',
|
|
1413
|
-
right: '5%',
|
|
1414
|
-
bottom: '10%',
|
|
1415
|
-
containLabel: true,
|
|
1416
|
-
},
|
|
1443
|
+
grid: { left: '5%', right: '5%', bottom: '10%', containLabel: true },
|
|
1417
1444
|
xAxis: {
|
|
1418
1445
|
type: 'category',
|
|
1419
1446
|
data: data?.categories || [],
|
|
1420
1447
|
axisLabel: {
|
|
1421
1448
|
interval: 0,
|
|
1422
|
-
fontFamily: this.labelFontFamily,
|
|
1423
|
-
fontSize: this.labelFontSize,
|
|
1424
|
-
color: FxUtils.convertColorFromVariable('--text-secondary'),
|
|
1425
1449
|
width: 80,
|
|
1426
1450
|
overflow: 'truncate',
|
|
1427
1451
|
ellipsis: '…',
|
|
1452
|
+
fontFamily: this.labelFontFamily,
|
|
1453
|
+
fontSize: this.labelFontSize,
|
|
1454
|
+
color: FxUtils.convertColorFromVariable('--text-secondary'),
|
|
1428
1455
|
},
|
|
1429
1456
|
axisLine: {
|
|
1430
|
-
lineStyle: {
|
|
1457
|
+
lineStyle: {
|
|
1458
|
+
color: FxUtils.convertColorFromVariable('--border-strong'),
|
|
1459
|
+
},
|
|
1431
1460
|
},
|
|
1432
|
-
splitLine: { show: false },
|
|
1433
1461
|
},
|
|
1434
1462
|
yAxis: {
|
|
1435
1463
|
type: 'value',
|
|
@@ -1439,48 +1467,49 @@ class ChartComponent {
|
|
|
1439
1467
|
color: FxUtils.convertColorFromVariable('--text-secondary'),
|
|
1440
1468
|
},
|
|
1441
1469
|
axisLine: {
|
|
1442
|
-
lineStyle: {
|
|
1470
|
+
lineStyle: {
|
|
1471
|
+
color: FxUtils.convertColorFromVariable('--border-strong'),
|
|
1472
|
+
},
|
|
1443
1473
|
},
|
|
1444
1474
|
splitLine: {
|
|
1445
|
-
lineStyle: {
|
|
1475
|
+
lineStyle: {
|
|
1476
|
+
color: FxUtils.convertColorFromVariable('--border-default'),
|
|
1477
|
+
},
|
|
1446
1478
|
},
|
|
1447
1479
|
},
|
|
1448
1480
|
series: [
|
|
1449
1481
|
{
|
|
1450
1482
|
type: 'bar',
|
|
1483
|
+
data: data?.values || [],
|
|
1451
1484
|
itemStyle: {
|
|
1452
|
-
color: (
|
|
1453
|
-
const palette = colors || [];
|
|
1454
|
-
return palette[params.dataIndex % palette.length];
|
|
1455
|
-
},
|
|
1485
|
+
color: (p) => colors[p.dataIndex % colors.length],
|
|
1456
1486
|
},
|
|
1457
|
-
data: data?.values || [],
|
|
1458
1487
|
label: {
|
|
1459
1488
|
show: true,
|
|
1460
1489
|
position: 'top',
|
|
1461
1490
|
fontFamily: this.labelFontFamily,
|
|
1462
1491
|
fontSize: this.labelFontSize,
|
|
1463
1492
|
color: FxUtils.convertColorFromVariable('--text-primary'),
|
|
1464
|
-
textBorderWidth: 0,
|
|
1465
|
-
textBorderColor: 'transparent',
|
|
1466
1493
|
},
|
|
1467
|
-
emphasis: { itemStyle: { opacity: 0.8 } },
|
|
1468
1494
|
},
|
|
1469
1495
|
],
|
|
1470
1496
|
}),
|
|
1471
1497
|
pie: (data, colors) => {
|
|
1472
1498
|
const total = data.reduce((sum, d) => sum + d.value, 0);
|
|
1499
|
+
const isMobile = this.isMobile;
|
|
1473
1500
|
return {
|
|
1474
1501
|
color: colors,
|
|
1475
1502
|
tooltip: { trigger: 'item' },
|
|
1476
1503
|
legend: {
|
|
1477
1504
|
orient: 'vertical',
|
|
1478
|
-
right: this.pieLegendAlign,
|
|
1479
|
-
top: this.pieLegendPosition,
|
|
1480
1505
|
icon: 'circle',
|
|
1481
|
-
align: 'left',
|
|
1482
1506
|
itemGap: 12,
|
|
1483
|
-
width:
|
|
1507
|
+
width: 160,
|
|
1508
|
+
// 🔑 layout switch
|
|
1509
|
+
right: isMobile ? undefined : this.pieLegendAlign,
|
|
1510
|
+
top: isMobile ? undefined : this.pieLegendPosition,
|
|
1511
|
+
left: isMobile ? 'center' : undefined,
|
|
1512
|
+
bottom: isMobile ? 0 : undefined,
|
|
1484
1513
|
formatter: (name) => {
|
|
1485
1514
|
const item = data.find((d) => d.name === name);
|
|
1486
1515
|
return item ? `${name}: ${item.value}` : name;
|
|
@@ -1490,14 +1519,14 @@ class ChartComponent {
|
|
|
1490
1519
|
fontSize: 13,
|
|
1491
1520
|
fontWeight: 500,
|
|
1492
1521
|
color: FxUtils.convertColorFromVariable('--text-primary'),
|
|
1522
|
+
overflow: 'truncate',
|
|
1493
1523
|
},
|
|
1494
1524
|
},
|
|
1495
1525
|
series: [
|
|
1496
1526
|
{
|
|
1497
1527
|
type: 'pie',
|
|
1498
1528
|
radius: ['40%', '70%'],
|
|
1499
|
-
center: ['40%', '50%'],
|
|
1500
|
-
avoidLabelOverlap: true,
|
|
1529
|
+
center: isMobile ? ['50%', '40%'] : ['35%', '50%'],
|
|
1501
1530
|
data,
|
|
1502
1531
|
label: {
|
|
1503
1532
|
show: this.showPieLabel,
|
|
@@ -1514,21 +1543,12 @@ class ChartComponent {
|
|
|
1514
1543
|
length: 7,
|
|
1515
1544
|
length2: 7,
|
|
1516
1545
|
},
|
|
1517
|
-
itemStyle: {
|
|
1518
|
-
borderWidth: 0,
|
|
1519
|
-
},
|
|
1520
|
-
emphasis: {
|
|
1521
|
-
scale: true,
|
|
1522
|
-
scaleSize: 10,
|
|
1523
|
-
itemStyle: { borderWidth: 0 },
|
|
1524
|
-
label: { textBorderWidth: 0 },
|
|
1525
|
-
},
|
|
1526
1546
|
},
|
|
1527
1547
|
],
|
|
1528
1548
|
graphic: {
|
|
1529
1549
|
type: 'group',
|
|
1530
|
-
left: '
|
|
1531
|
-
top: '50%',
|
|
1550
|
+
left: isMobile ? '50%' : '35%',
|
|
1551
|
+
top: isMobile ? '40%' : '50%',
|
|
1532
1552
|
bounding: 'raw',
|
|
1533
1553
|
children: [
|
|
1534
1554
|
{
|
|
@@ -1542,48 +1562,9 @@ class ChartComponent {
|
|
|
1542
1562
|
align: 'center',
|
|
1543
1563
|
verticalAlign: 'middle',
|
|
1544
1564
|
},
|
|
1545
|
-
y: 0,
|
|
1546
1565
|
},
|
|
1547
1566
|
],
|
|
1548
1567
|
},
|
|
1549
|
-
media: [
|
|
1550
|
-
{
|
|
1551
|
-
query: { maxWidth: 350 },
|
|
1552
|
-
option: {
|
|
1553
|
-
graphic: {
|
|
1554
|
-
left: '50%',
|
|
1555
|
-
top: '40%',
|
|
1556
|
-
type: 'group',
|
|
1557
|
-
bounding: 'raw',
|
|
1558
|
-
children: [
|
|
1559
|
-
{
|
|
1560
|
-
type: 'text',
|
|
1561
|
-
style: {
|
|
1562
|
-
text: data.reduce((sum, d) => sum + d.value, 0).toString(),
|
|
1563
|
-
fontSize: 24,
|
|
1564
|
-
fontWeight: 600,
|
|
1565
|
-
fontFamily: 'DMSans',
|
|
1566
|
-
fill: FxUtils.convertColorFromVariable('--text-primary'),
|
|
1567
|
-
align: 'center',
|
|
1568
|
-
verticalAlign: 'middle',
|
|
1569
|
-
},
|
|
1570
|
-
y: 0,
|
|
1571
|
-
},
|
|
1572
|
-
],
|
|
1573
|
-
},
|
|
1574
|
-
series: [
|
|
1575
|
-
{
|
|
1576
|
-
center: ['50%', '40%'],
|
|
1577
|
-
},
|
|
1578
|
-
],
|
|
1579
|
-
legend: {
|
|
1580
|
-
orient: 'vertical',
|
|
1581
|
-
left: 'center',
|
|
1582
|
-
bottom: 0,
|
|
1583
|
-
},
|
|
1584
|
-
},
|
|
1585
|
-
},
|
|
1586
|
-
],
|
|
1587
1568
|
};
|
|
1588
1569
|
},
|
|
1589
1570
|
sunburst: (data, colors) => ({
|
|
@@ -1607,8 +1588,9 @@ class ChartComponent {
|
|
|
1607
1588
|
},
|
|
1608
1589
|
},
|
|
1609
1590
|
],
|
|
1610
|
-
})
|
|
1591
|
+
})
|
|
1611
1592
|
};
|
|
1593
|
+
/* ================= BUILD ================= */
|
|
1612
1594
|
detectType() {
|
|
1613
1595
|
if (this.type !== 'auto')
|
|
1614
1596
|
return this.type;
|
|
@@ -1616,62 +1598,46 @@ class ChartComponent {
|
|
|
1616
1598
|
return 'sunburst';
|
|
1617
1599
|
if (this.data?.categories && this.data?.values)
|
|
1618
1600
|
return 'bar';
|
|
1619
|
-
if (Array.isArray(this.data)
|
|
1601
|
+
if (Array.isArray(this.data))
|
|
1620
1602
|
return 'pie';
|
|
1621
1603
|
return 'bar';
|
|
1622
1604
|
}
|
|
1623
1605
|
buildOptions() {
|
|
1624
|
-
const
|
|
1606
|
+
const type = this.detectType();
|
|
1625
1607
|
const palette = this.resolvePalette();
|
|
1626
|
-
const
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
const mergedOptions = {
|
|
1630
|
-
legend: {
|
|
1631
|
-
textStyle: {
|
|
1632
|
-
fontFamily: this.labelFontFamily,
|
|
1633
|
-
color: textColor,
|
|
1634
|
-
fontSize: this.labelFontSize,
|
|
1635
|
-
fontWeight: 500,
|
|
1636
|
-
},
|
|
1637
|
-
icon: 'circle',
|
|
1638
|
-
itemGap: 16,
|
|
1639
|
-
},
|
|
1640
|
-
...baseOptions,
|
|
1608
|
+
const base = this.registry[type]?.(this.data, palette) || {};
|
|
1609
|
+
return {
|
|
1610
|
+
...base,
|
|
1641
1611
|
...this.options,
|
|
1642
1612
|
};
|
|
1643
|
-
return mergedOptions;
|
|
1644
1613
|
}
|
|
1645
1614
|
resolvePalette() {
|
|
1646
|
-
const
|
|
1615
|
+
const defaults = [
|
|
1616
|
+
'rgba(var(--success) / 1)',
|
|
1617
|
+
'rgba(var(--information) / 1)',
|
|
1647
1618
|
'rgba(var(--critical) / 1)',
|
|
1648
1619
|
'rgba(var(--danger) / 1)',
|
|
1649
1620
|
'rgba(var(--warning) / 1)',
|
|
1650
|
-
'rgba(var(--success) / 1)',
|
|
1651
|
-
'rgba(var(--information) / 1)',
|
|
1652
1621
|
'rgba(var(--discovery) / 1)',
|
|
1653
1622
|
];
|
|
1654
|
-
const palette =
|
|
1623
|
+
const palette = this.palette?.length ? this.palette : defaults;
|
|
1655
1624
|
return palette.map((raw) => {
|
|
1656
|
-
if (raw.includes('var('))
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
return `rgba(${rgb}, ${opacity})`;
|
|
1665
|
-
}
|
|
1666
|
-
return raw;
|
|
1625
|
+
if (!raw.includes('var('))
|
|
1626
|
+
return raw;
|
|
1627
|
+
const cssVar = raw.match(/var\((.*?)\)/)?.[1];
|
|
1628
|
+
const rgb = getComputedStyle(document.body)
|
|
1629
|
+
.getPropertyValue(cssVar || '')
|
|
1630
|
+
.trim()
|
|
1631
|
+
.replace(/\s+/g, ',');
|
|
1632
|
+
return `rgba(${rgb},1)`;
|
|
1667
1633
|
});
|
|
1668
1634
|
}
|
|
1669
1635
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1670
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: ChartComponent, isStandalone: false, selector: "fx-ui-chart", inputs: { type: "type", data: "data", options: "options", palette: "palette", height: "height", loading: "loading", pieLegendAlign: "pieLegendAlign", pieLegendPosition: "pieLegendPosition", showPieLabel: "showPieLabel", labelFontFamily: "labelFontFamily" }, outputs: { chartClick: "chartClick", chartInit: "chartInit" }, host: { listeners: { "window:theme-changed": "onThemeChange()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"chart-wrapper\" [style.height]=\"height\"
|
|
1636
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: ChartComponent, isStandalone: false, selector: "fx-ui-chart", inputs: { type: "type", data: "data", options: "options", palette: "palette", height: "height", loading: "loading", pieLegendAlign: "pieLegendAlign", pieLegendPosition: "pieLegendPosition", showPieLabel: "showPieLabel", labelFontFamily: "labelFontFamily" }, outputs: { chartClick: "chartClick", chartInit: "chartInit" }, host: { listeners: { "window:theme-changed": "onThemeChange()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"chart-wrapper\" [style.height]=\"height\">\n <div\n echarts\n [options]=\"chartOptions\"\n [loading]=\"loading\"\n (chartInit)=\"onChartInit($event)\"\n (chartClick)=\"onChartClick($event)\"\n class=\"fx-chart\"\n [style.height]=\"height\"\n ></div>\n</div>\n", styles: [":host{display:block;width:100%}.chart-wrapper{position:relative;width:100%;height:100%}.chart-container{width:100%;height:100%}.chart-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--bg-primary-hover)/.6);font-weight:500;font-size:1.1rem;z-index:2;border-radius:4px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }] });
|
|
1671
1637
|
}
|
|
1672
1638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ChartComponent, decorators: [{
|
|
1673
1639
|
type: Component,
|
|
1674
|
-
args: [{ selector: 'fx-ui-chart', standalone: false, template: "<div class=\"chart-wrapper\" [style.height]=\"height\"
|
|
1640
|
+
args: [{ selector: 'fx-ui-chart', standalone: false, template: "<div class=\"chart-wrapper\" [style.height]=\"height\">\n <div\n echarts\n [options]=\"chartOptions\"\n [loading]=\"loading\"\n (chartInit)=\"onChartInit($event)\"\n (chartClick)=\"onChartClick($event)\"\n class=\"fx-chart\"\n [style.height]=\"height\"\n ></div>\n</div>\n", styles: [":host{display:block;width:100%}.chart-wrapper{position:relative;width:100%;height:100%}.chart-container{width:100%;height:100%}.chart-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--bg-primary-hover)/.6);font-weight:500;font-size:1.1rem;z-index:2;border-radius:4px}\n"] }]
|
|
1675
1641
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { type: [{
|
|
1676
1642
|
type: Input
|
|
1677
1643
|
}], data: [{
|
|
@@ -3060,7 +3026,7 @@ class UiModule {
|
|
|
3060
3026
|
OwlMomentDateTimeModule,
|
|
3061
3027
|
HasPermissionDirective,
|
|
3062
3028
|
TrimOnBlurDirective,
|
|
3063
|
-
NgHeroiconsModule, i27.VflowComponent, i27.HandleComponent, i27.ResizableComponent, i27.SelectableDirective, i27.MiniMapComponent, i27.NodeToolbarComponent, i27.CustomTemplateEdgeComponent, i27.DragHandleDirective, i27.ConnectionControllerDirective, i27.NodeHtmlTemplateDirective, i27.NodeSvgTemplateDirective, i27.GroupNodeTemplateDirective, i27.EdgeLabelHtmlTemplateDirective, i27.EdgeTemplateDirective, i27.ConnectionTemplateDirective, i27.HandleTemplateDirective,
|
|
3029
|
+
NgHeroiconsModule, i27.VflowComponent, i27.HandleComponent, i27.ResizableComponent, i27.SelectableDirective, i27.MiniMapComponent, i27.NodeToolbarComponent, i27.CustomTemplateEdgeComponent, i27.DragHandleDirective, i27.ConnectionControllerDirective, i27.NodeHtmlTemplateDirective, i27.NodeSvgTemplateDirective, i27.GroupNodeTemplateDirective, i27.EdgeLabelHtmlTemplateDirective, i27.EdgeTemplateDirective, i27.ConnectionTemplateDirective, i27.HandleTemplateDirective, i1$4.NgxEchartsModule, i3$1.MatSelectModule, i30.MatRadioModule, i31.MatButtonModule, i32.MatIconModule, i33.MatPaginatorModule, i34.MatTableModule, i35.MatSnackBarModule, i1$1.MatDialogModule, i37.MatCheckboxModule, i38.MatCardModule, i39.MatDatepickerModule, i40.MatTimepickerModule, i41.MatBadgeModule, i42.MatExpansionModule, i43.MatFormFieldModule, i44.MatMenuModule], exports: [InputComponent, SelectComponent, RadioButtonComponent, CheckboxComponent, DndUploadComponent, ButtonComponent, RadioButtonToggleComponent, DatetimePicker, LoadingPanel, SearchBarComponent, TabGroupComponent, TabComponent, HeroIconComponent, ToastComponent, ToastContainerComponent, TagComponent, ChartComponent, SliderComponent, SwitchComponent, RichTextAreaComponent, SkeletonTableLoadingComponent, FlowConnection, CircleProgressBar, TreeDiagram, TableCell, ConfirmationDialogComponent,
|
|
3064
3030
|
// Module
|
|
3065
3031
|
FormsModule,
|
|
3066
3032
|
ReactiveFormsModule,
|