@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 i2$3 from 'ngx-echarts';
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
- labelFontSize = 12;
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.chartInstance)
1373
- this.chartInstance.resize();
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
- requestAnimationFrame(() => {
1388
- this.rebuildChart();
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(() => chart.resize());
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: { color: FxUtils.convertColorFromVariable('--border-strong') },
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: { color: FxUtils.convertColorFromVariable('--border-strong') },
1470
+ lineStyle: {
1471
+ color: FxUtils.convertColorFromVariable('--border-strong'),
1472
+ },
1443
1473
  },
1444
1474
  splitLine: {
1445
- lineStyle: { color: FxUtils.convertColorFromVariable('--border-default') },
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: (params) => {
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: 150,
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: '40%',
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) && this.data[0]?.value && this.data[0]?.name)
1601
+ if (Array.isArray(this.data))
1620
1602
  return 'pie';
1621
1603
  return 'bar';
1622
1604
  }
1623
1605
  buildOptions() {
1624
- const chartType = this.detectType();
1606
+ const type = this.detectType();
1625
1607
  const palette = this.resolvePalette();
1626
- const baseBuilder = this.registry[chartType];
1627
- const baseOptions = baseBuilder ? baseBuilder(this.data, palette) : {};
1628
- const textColor = FxUtils.convertColorFromVariable('--text-primary');
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 defaultPalette = [
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 = !this.palette || this.palette.length === 0 ? defaultPalette : this.palette;
1623
+ const palette = this.palette?.length ? this.palette : defaults;
1655
1624
  return palette.map((raw) => {
1656
- if (raw.includes('var(')) {
1657
- const cssVar = raw.match(/var\((.*?)\)/)?.[1];
1658
- const opacityMatch = raw.match(/\/\s*([\d.]+)/);
1659
- const opacity = opacityMatch ? parseFloat(opacityMatch[1]) : 1;
1660
- const rgb = getComputedStyle(document.body)
1661
- .getPropertyValue(cssVar || '')
1662
- .trim()
1663
- .replace(/\s+/g, ',');
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\" [class.loading]=\"loading\">\n <ng-container *ngIf=\"canInit\">\n <div\n echarts\n [options]=\"chartOptions\"\n (chartInit)=\"onChartInit($event)\"\n (chartClick)=\"onChartClick($event)\"\n class=\"w-full h-full\">\n </div>\n </ng-container>\n\n <div class=\"chart-loader\" *ngIf=\"loading\">\n <span class=\"txt-default\">Loading...</span>\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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$3.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"] }] });
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\" [class.loading]=\"loading\">\n <ng-container *ngIf=\"canInit\">\n <div\n echarts\n [options]=\"chartOptions\"\n (chartInit)=\"onChartInit($event)\"\n (chartClick)=\"onChartClick($event)\"\n class=\"w-full h-full\">\n </div>\n </ng-container>\n\n <div class=\"chart-loader\" *ngIf=\"loading\">\n <span class=\"txt-default\">Loading...</span>\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"] }]
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, i2$3.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,
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,