@fxlt/common-ui 0.0.5-rc4 → 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(() => {
|
|
@@ -684,7 +685,7 @@ class BaseTableComponent extends BaseComponent {
|
|
|
684
685
|
}
|
|
685
686
|
}
|
|
686
687
|
tagClass(tag) {
|
|
687
|
-
return FxUtils.getTagClass(tag);
|
|
688
|
+
return FxUtils.getTagClass(tag, true);
|
|
688
689
|
}
|
|
689
690
|
capitalize(label) {
|
|
690
691
|
return _.capitalize(label);
|
|
@@ -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,47 +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,
|
|
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,
|
|
1483
1513
|
formatter: (name) => {
|
|
1484
1514
|
const item = data.find((d) => d.name === name);
|
|
1485
1515
|
return item ? `${name}: ${item.value}` : name;
|
|
@@ -1489,14 +1519,14 @@ class ChartComponent {
|
|
|
1489
1519
|
fontSize: 13,
|
|
1490
1520
|
fontWeight: 500,
|
|
1491
1521
|
color: FxUtils.convertColorFromVariable('--text-primary'),
|
|
1522
|
+
overflow: 'truncate',
|
|
1492
1523
|
},
|
|
1493
1524
|
},
|
|
1494
1525
|
series: [
|
|
1495
1526
|
{
|
|
1496
1527
|
type: 'pie',
|
|
1497
1528
|
radius: ['40%', '70%'],
|
|
1498
|
-
center: ['40%', '50%'],
|
|
1499
|
-
avoidLabelOverlap: true,
|
|
1529
|
+
center: isMobile ? ['50%', '40%'] : ['35%', '50%'],
|
|
1500
1530
|
data,
|
|
1501
1531
|
label: {
|
|
1502
1532
|
show: this.showPieLabel,
|
|
@@ -1513,21 +1543,12 @@ class ChartComponent {
|
|
|
1513
1543
|
length: 7,
|
|
1514
1544
|
length2: 7,
|
|
1515
1545
|
},
|
|
1516
|
-
itemStyle: {
|
|
1517
|
-
borderWidth: 0,
|
|
1518
|
-
},
|
|
1519
|
-
emphasis: {
|
|
1520
|
-
scale: true,
|
|
1521
|
-
scaleSize: 10,
|
|
1522
|
-
itemStyle: { borderWidth: 0 },
|
|
1523
|
-
label: { textBorderWidth: 0 },
|
|
1524
|
-
},
|
|
1525
1546
|
},
|
|
1526
1547
|
],
|
|
1527
1548
|
graphic: {
|
|
1528
1549
|
type: 'group',
|
|
1529
|
-
left: '
|
|
1530
|
-
top: '50%',
|
|
1550
|
+
left: isMobile ? '50%' : '35%',
|
|
1551
|
+
top: isMobile ? '40%' : '50%',
|
|
1531
1552
|
bounding: 'raw',
|
|
1532
1553
|
children: [
|
|
1533
1554
|
{
|
|
@@ -1541,48 +1562,9 @@ class ChartComponent {
|
|
|
1541
1562
|
align: 'center',
|
|
1542
1563
|
verticalAlign: 'middle',
|
|
1543
1564
|
},
|
|
1544
|
-
y: 0,
|
|
1545
1565
|
},
|
|
1546
1566
|
],
|
|
1547
1567
|
},
|
|
1548
|
-
media: [
|
|
1549
|
-
{
|
|
1550
|
-
query: { maxWidth: 350 },
|
|
1551
|
-
option: {
|
|
1552
|
-
graphic: {
|
|
1553
|
-
left: '50%',
|
|
1554
|
-
top: '40%',
|
|
1555
|
-
type: 'group',
|
|
1556
|
-
bounding: 'raw',
|
|
1557
|
-
children: [
|
|
1558
|
-
{
|
|
1559
|
-
type: 'text',
|
|
1560
|
-
style: {
|
|
1561
|
-
text: data.reduce((sum, d) => sum + d.value, 0).toString(),
|
|
1562
|
-
fontSize: 24,
|
|
1563
|
-
fontWeight: 600,
|
|
1564
|
-
fontFamily: 'DMSans',
|
|
1565
|
-
fill: FxUtils.convertColorFromVariable('--text-primary'),
|
|
1566
|
-
align: 'center',
|
|
1567
|
-
verticalAlign: 'middle',
|
|
1568
|
-
},
|
|
1569
|
-
y: 0,
|
|
1570
|
-
},
|
|
1571
|
-
],
|
|
1572
|
-
},
|
|
1573
|
-
series: [
|
|
1574
|
-
{
|
|
1575
|
-
center: ['50%', '40%'],
|
|
1576
|
-
},
|
|
1577
|
-
],
|
|
1578
|
-
legend: {
|
|
1579
|
-
orient: 'vertical',
|
|
1580
|
-
left: 'center',
|
|
1581
|
-
bottom: 0,
|
|
1582
|
-
},
|
|
1583
|
-
},
|
|
1584
|
-
},
|
|
1585
|
-
],
|
|
1586
1568
|
};
|
|
1587
1569
|
},
|
|
1588
1570
|
sunburst: (data, colors) => ({
|
|
@@ -1606,8 +1588,9 @@ class ChartComponent {
|
|
|
1606
1588
|
},
|
|
1607
1589
|
},
|
|
1608
1590
|
],
|
|
1609
|
-
})
|
|
1591
|
+
})
|
|
1610
1592
|
};
|
|
1593
|
+
/* ================= BUILD ================= */
|
|
1611
1594
|
detectType() {
|
|
1612
1595
|
if (this.type !== 'auto')
|
|
1613
1596
|
return this.type;
|
|
@@ -1615,62 +1598,46 @@ class ChartComponent {
|
|
|
1615
1598
|
return 'sunburst';
|
|
1616
1599
|
if (this.data?.categories && this.data?.values)
|
|
1617
1600
|
return 'bar';
|
|
1618
|
-
if (Array.isArray(this.data)
|
|
1601
|
+
if (Array.isArray(this.data))
|
|
1619
1602
|
return 'pie';
|
|
1620
1603
|
return 'bar';
|
|
1621
1604
|
}
|
|
1622
1605
|
buildOptions() {
|
|
1623
|
-
const
|
|
1606
|
+
const type = this.detectType();
|
|
1624
1607
|
const palette = this.resolvePalette();
|
|
1625
|
-
const
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
const mergedOptions = {
|
|
1629
|
-
legend: {
|
|
1630
|
-
textStyle: {
|
|
1631
|
-
fontFamily: this.labelFontFamily,
|
|
1632
|
-
color: textColor,
|
|
1633
|
-
fontSize: this.labelFontSize,
|
|
1634
|
-
fontWeight: 500,
|
|
1635
|
-
},
|
|
1636
|
-
icon: 'circle',
|
|
1637
|
-
itemGap: 16,
|
|
1638
|
-
},
|
|
1639
|
-
...baseOptions,
|
|
1608
|
+
const base = this.registry[type]?.(this.data, palette) || {};
|
|
1609
|
+
return {
|
|
1610
|
+
...base,
|
|
1640
1611
|
...this.options,
|
|
1641
1612
|
};
|
|
1642
|
-
return mergedOptions;
|
|
1643
1613
|
}
|
|
1644
1614
|
resolvePalette() {
|
|
1645
|
-
const
|
|
1615
|
+
const defaults = [
|
|
1616
|
+
'rgba(var(--success) / 1)',
|
|
1617
|
+
'rgba(var(--information) / 1)',
|
|
1646
1618
|
'rgba(var(--critical) / 1)',
|
|
1647
1619
|
'rgba(var(--danger) / 1)',
|
|
1648
1620
|
'rgba(var(--warning) / 1)',
|
|
1649
|
-
'rgba(var(--success) / 1)',
|
|
1650
|
-
'rgba(var(--information) / 1)',
|
|
1651
1621
|
'rgba(var(--discovery) / 1)',
|
|
1652
1622
|
];
|
|
1653
|
-
const palette =
|
|
1623
|
+
const palette = this.palette?.length ? this.palette : defaults;
|
|
1654
1624
|
return palette.map((raw) => {
|
|
1655
|
-
if (raw.includes('var('))
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
return `rgba(${rgb}, ${opacity})`;
|
|
1664
|
-
}
|
|
1665
|
-
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)`;
|
|
1666
1633
|
});
|
|
1667
1634
|
}
|
|
1668
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 });
|
|
1669
|
-
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"] }] });
|
|
1670
1637
|
}
|
|
1671
1638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ChartComponent, decorators: [{
|
|
1672
1639
|
type: Component,
|
|
1673
|
-
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"] }]
|
|
1674
1641
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { type: [{
|
|
1675
1642
|
type: Input
|
|
1676
1643
|
}], data: [{
|
|
@@ -3059,7 +3026,7 @@ class UiModule {
|
|
|
3059
3026
|
OwlMomentDateTimeModule,
|
|
3060
3027
|
HasPermissionDirective,
|
|
3061
3028
|
TrimOnBlurDirective,
|
|
3062
|
-
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,
|
|
3063
3030
|
// Module
|
|
3064
3031
|
FormsModule,
|
|
3065
3032
|
ReactiveFormsModule,
|