@masterteam/dashboard-builder 0.0.2 → 0.0.3
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/assets/dashboard-builder.css +2 -2
- package/fesm2022/{masterteam-dashboard-builder-dashboard-dialog.component-D1JNWQMI.mjs → masterteam-dashboard-builder-dashboard-dialog.component-697C4AOo.mjs} +10 -10
- package/fesm2022/{masterteam-dashboard-builder-dashboard-dialog.component-D1JNWQMI.mjs.map → masterteam-dashboard-builder-dashboard-dialog.component-697C4AOo.mjs.map} +1 -1
- package/fesm2022/masterteam-dashboard-builder.mjs +5427 -4402
- package/fesm2022/masterteam-dashboard-builder.mjs.map +1 -1
- package/package.json +1 -1
- package/types/masterteam-dashboard-builder.d.ts +1297 -1061
|
@@ -703,7 +703,7 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
|
|
|
703
703
|
/** Reference to chart settings drawer */
|
|
704
704
|
private chartSettingsRef;
|
|
705
705
|
readonly languageCode: _angular_core.Signal<string>;
|
|
706
|
-
readonly direction: _angular_core.Signal<"
|
|
706
|
+
readonly direction: _angular_core.Signal<"ltr" | "rtl">;
|
|
707
707
|
readonly chartActionsContext: ChartActionsContext;
|
|
708
708
|
readonly options: GridsterConfig;
|
|
709
709
|
private subscription;
|
|
@@ -831,16 +831,16 @@ declare class DashboardViewer implements OnInit, OnDestroy {
|
|
|
831
831
|
readonly dialogs: _angular_core.WritableSignal<DashboardDialogItem[]>;
|
|
832
832
|
readonly filters: _angular_core.WritableSignal<any[]>;
|
|
833
833
|
readonly languageCode: _angular_core.Signal<string>;
|
|
834
|
-
readonly direction: _angular_core.Signal<"
|
|
834
|
+
readonly direction: _angular_core.Signal<"ltr" | "rtl">;
|
|
835
835
|
readonly options: GridsterConfig;
|
|
836
836
|
private subscription;
|
|
837
837
|
private chartsDataEffect;
|
|
838
838
|
private dialogsDataEffect;
|
|
839
839
|
private filtersDataEffect;
|
|
840
|
+
private pageIdEffect;
|
|
840
841
|
ngOnInit(): void;
|
|
841
842
|
ngOnDestroy(): void;
|
|
842
843
|
private setupSubscriptions;
|
|
843
|
-
private loadPageIfNeeded;
|
|
844
844
|
loadPage(id: string | number): void;
|
|
845
845
|
reloadPage(): void;
|
|
846
846
|
/**
|
|
@@ -1153,8 +1153,31 @@ interface FilterConfig {
|
|
|
1153
1153
|
* Filter option
|
|
1154
1154
|
*/
|
|
1155
1155
|
interface FilterOption {
|
|
1156
|
-
|
|
1156
|
+
key?: string;
|
|
1157
|
+
label: string | Record<string, string>;
|
|
1158
|
+
value: any;
|
|
1159
|
+
icon?: string;
|
|
1160
|
+
color?: string;
|
|
1161
|
+
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Static filter configuration for button-group style filtering
|
|
1164
|
+
*/
|
|
1165
|
+
interface StaticFilterConfig {
|
|
1166
|
+
show: boolean;
|
|
1167
|
+
filters: StaticFilterItem[];
|
|
1168
|
+
defaultIndex?: number;
|
|
1169
|
+
style?: 'buttons' | 'pills' | 'tabs';
|
|
1170
|
+
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Static filter item
|
|
1173
|
+
*/
|
|
1174
|
+
interface StaticFilterItem {
|
|
1175
|
+
key: string;
|
|
1157
1176
|
value: any;
|
|
1177
|
+
label: {
|
|
1178
|
+
en: string;
|
|
1179
|
+
ar: string;
|
|
1180
|
+
};
|
|
1158
1181
|
icon?: string;
|
|
1159
1182
|
color?: string;
|
|
1160
1183
|
}
|
|
@@ -1257,6 +1280,9 @@ interface HeaderCardConfig$1 {
|
|
|
1257
1280
|
showHeader?: boolean;
|
|
1258
1281
|
isHeaderHidden?: boolean;
|
|
1259
1282
|
headerClickable?: boolean;
|
|
1283
|
+
isHeaderCentered?: boolean;
|
|
1284
|
+
headerFontSize?: number;
|
|
1285
|
+
headerColor?: string;
|
|
1260
1286
|
icon?: string;
|
|
1261
1287
|
iconColor?: string;
|
|
1262
1288
|
titleColor?: string;
|
|
@@ -1274,6 +1300,10 @@ interface CardBorderStyleConfig {
|
|
|
1274
1300
|
'background-color'?: string;
|
|
1275
1301
|
'box-shadow'?: string;
|
|
1276
1302
|
'border-radius'?: number;
|
|
1303
|
+
color?: string;
|
|
1304
|
+
'font-size'?: string;
|
|
1305
|
+
iconColor?: string;
|
|
1306
|
+
iconBgColor?: string;
|
|
1277
1307
|
}
|
|
1278
1308
|
interface CardStyleConfig$1 {
|
|
1279
1309
|
backgroundColor?: string;
|
|
@@ -1298,9 +1328,9 @@ declare class CardContentComponent {
|
|
|
1298
1328
|
/** Card style configuration (background, shadows, border radius) */
|
|
1299
1329
|
readonly cardStyleConfig: _angular_core.InputSignal<CardStyleConfig$1 | null>;
|
|
1300
1330
|
/** Whether to show header */
|
|
1301
|
-
readonly
|
|
1331
|
+
readonly showHeader: _angular_core.InputSignal<boolean>;
|
|
1302
1332
|
/** Whether header is clickable */
|
|
1303
|
-
readonly
|
|
1333
|
+
readonly headerClickable: _angular_core.InputSignal<boolean>;
|
|
1304
1334
|
/** No top end content flag */
|
|
1305
1335
|
readonly isNoTopEnd: _angular_core.InputSignal<boolean>;
|
|
1306
1336
|
/** Whether this card contains a chart (disables horizontal scroll) */
|
|
@@ -1308,16 +1338,18 @@ declare class CardContentComponent {
|
|
|
1308
1338
|
/** Header click event */
|
|
1309
1339
|
readonly headerClick: _angular_core.OutputEmitterRef<void>;
|
|
1310
1340
|
/** Computed show header */
|
|
1311
|
-
readonly
|
|
1341
|
+
readonly showHeaderState: _angular_core.Signal<boolean>;
|
|
1312
1342
|
/** Computed header clickable */
|
|
1313
|
-
readonly
|
|
1343
|
+
readonly headerClickableState: _angular_core.Signal<boolean>;
|
|
1344
|
+
/** Computed header row styles from StyleConfig (color, font-size passed through) */
|
|
1345
|
+
readonly headerRowStyles: _angular_core.Signal<Record<string, string> | null>;
|
|
1314
1346
|
/** Computed card styles from StyleConfig and cardStyleConfig */
|
|
1315
1347
|
readonly cardStyles: _angular_core.Signal<Record<string, string>>;
|
|
1316
1348
|
/** Computed border radius style */
|
|
1317
1349
|
readonly borderRadiusStyle: _angular_core.Signal<string>;
|
|
1318
1350
|
onHeaderClick(): void;
|
|
1319
1351
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardContentComponent, never>;
|
|
1320
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardContentComponent, "
|
|
1352
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardContentComponent, "mt-card-content", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "inGroup": { "alias": "inGroup"; "required": false; "isSignal": true; }; "headerConfig": { "alias": "headerConfig"; "required": false; "isSignal": true; }; "styleConfig": { "alias": "styleConfig"; "required": false; "isSignal": true; }; "cardStyleConfig": { "alias": "cardStyleConfig"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "headerClickable": { "alias": "headerClickable"; "required": false; "isSignal": true; }; "isNoTopEnd": { "alias": "isNoTopEnd"; "required": false; "isSignal": true; }; "isChart": { "alias": "isChart"; "required": false; "isSignal": true; }; }, { "headerClick": "headerClick"; }, never, ["[topEnd]", "[body]", "[footer]"], true, never>;
|
|
1321
1353
|
}
|
|
1322
1354
|
|
|
1323
1355
|
declare class CardFilterComponent implements OnInit {
|
|
@@ -1339,9 +1371,9 @@ declare class CardFilterComponent implements OnInit {
|
|
|
1339
1371
|
/** Language code */
|
|
1340
1372
|
readonly langCode: _angular_core.Signal<string>;
|
|
1341
1373
|
/** Filter type */
|
|
1342
|
-
readonly filterType: _angular_core.Signal<"
|
|
1374
|
+
readonly filterType: _angular_core.Signal<"date" | "text" | "select" | "multiselect" | "multiSelect" | "daterange">;
|
|
1343
1375
|
/** Filter options */
|
|
1344
|
-
readonly options: _angular_core.Signal<FilterOption[]>;
|
|
1376
|
+
readonly options: _angular_core.Signal<_masterteam_dashboard_builder.FilterOption[]>;
|
|
1345
1377
|
/** Placeholder text */
|
|
1346
1378
|
readonly placeholder: _angular_core.Signal<string>;
|
|
1347
1379
|
ngOnInit(): void;
|
|
@@ -1349,7 +1381,207 @@ declare class CardFilterComponent implements OnInit {
|
|
|
1349
1381
|
onMultiFilterChange(values: any[]): void;
|
|
1350
1382
|
onDateChange(): void;
|
|
1351
1383
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardFilterComponent, never>;
|
|
1352
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardFilterComponent, "
|
|
1384
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardFilterComponent, "mt-card-filter", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "dashboardId": { "alias": "dashboardId"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
declare class StaticFiltersComponent implements OnInit {
|
|
1388
|
+
private readonly storeService;
|
|
1389
|
+
private readonly transloco;
|
|
1390
|
+
/** Static filter configuration */
|
|
1391
|
+
readonly config: _angular_core.InputSignal<StaticFilterConfig | null>;
|
|
1392
|
+
/** Dashboard ID for store updates */
|
|
1393
|
+
readonly dashboardId: _angular_core.InputSignal<string | number | undefined>;
|
|
1394
|
+
/** Filter change event */
|
|
1395
|
+
readonly filterChange: _angular_core.OutputEmitterRef<{
|
|
1396
|
+
key: string;
|
|
1397
|
+
value: any;
|
|
1398
|
+
}>;
|
|
1399
|
+
/** Currently active filter index */
|
|
1400
|
+
readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
1401
|
+
/** Language code */
|
|
1402
|
+
readonly langCode: _angular_core.Signal<string>;
|
|
1403
|
+
/** Filter items */
|
|
1404
|
+
readonly filters: _angular_core.Signal<StaticFilterItem[]>;
|
|
1405
|
+
/**
|
|
1406
|
+
* Get localized label for filter
|
|
1407
|
+
*/
|
|
1408
|
+
getLabel(filter: StaticFilterItem): string;
|
|
1409
|
+
/**
|
|
1410
|
+
* Handle filter button click
|
|
1411
|
+
*/
|
|
1412
|
+
onFilterClick(filter: StaticFilterItem, index: number): void;
|
|
1413
|
+
/**
|
|
1414
|
+
* Initialize with default filter if configured
|
|
1415
|
+
*/
|
|
1416
|
+
ngOnInit(): void;
|
|
1417
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StaticFiltersComponent, never>;
|
|
1418
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StaticFiltersComponent, "mt-static-filters", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "dashboardId": { "alias": "dashboardId"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1421
|
+
/**
|
|
1422
|
+
* Filter Field Models
|
|
1423
|
+
*
|
|
1424
|
+
* Defines the structure for dynamic filter fields configuration
|
|
1425
|
+
* used in dashboard page filtering.
|
|
1426
|
+
*/
|
|
1427
|
+
/** Localized text with English and Arabic translations */
|
|
1428
|
+
interface LocalizedText {
|
|
1429
|
+
en: string;
|
|
1430
|
+
ar: string;
|
|
1431
|
+
}
|
|
1432
|
+
/** Filter field types supported by the system */
|
|
1433
|
+
type FilterFieldType = 'dropdownTVService' | 'lookup' | 'status' | 'phaseGate' | 'user' | 'date' | 'section' | 'separator' | 'year' | 'month' | 'quarter' | 'checkbox' | 'schemaSettings' | 'schemaSettingsLeafs';
|
|
1434
|
+
/** Selection item for dropdown configuration */
|
|
1435
|
+
interface FilterSelectionItem {
|
|
1436
|
+
id: number;
|
|
1437
|
+
moduleType?: string;
|
|
1438
|
+
moduleId?: number;
|
|
1439
|
+
filters?: any[];
|
|
1440
|
+
modules?: any[];
|
|
1441
|
+
properties?: any[];
|
|
1442
|
+
}
|
|
1443
|
+
/** Filter field configuration details */
|
|
1444
|
+
interface FilterFieldConfiguration {
|
|
1445
|
+
payload?: {
|
|
1446
|
+
dashboardId: number;
|
|
1447
|
+
selection: FilterSelectionItem[];
|
|
1448
|
+
chartType: string;
|
|
1449
|
+
query: {
|
|
1450
|
+
selectedProperties: string[];
|
|
1451
|
+
};
|
|
1452
|
+
};
|
|
1453
|
+
lookupId?: number;
|
|
1454
|
+
schemaLevelId?: number;
|
|
1455
|
+
logId?: number;
|
|
1456
|
+
isRequird?: boolean;
|
|
1457
|
+
isMultiple?: boolean;
|
|
1458
|
+
checked?: boolean;
|
|
1459
|
+
minYear?: number;
|
|
1460
|
+
maxYear?: number;
|
|
1461
|
+
}
|
|
1462
|
+
/** Filter field definition */
|
|
1463
|
+
interface FilterField {
|
|
1464
|
+
key?: string;
|
|
1465
|
+
name?: LocalizedText;
|
|
1466
|
+
type: FilterFieldType;
|
|
1467
|
+
configuration?: FilterFieldConfiguration;
|
|
1468
|
+
}
|
|
1469
|
+
/** Filter field type option for dropdown */
|
|
1470
|
+
interface FilterFieldTypeOption {
|
|
1471
|
+
value: FilterFieldType;
|
|
1472
|
+
label: string;
|
|
1473
|
+
products: string[];
|
|
1474
|
+
}
|
|
1475
|
+
/**
|
|
1476
|
+
* Dynamic Filter Field
|
|
1477
|
+
*
|
|
1478
|
+
* An extended filter definition with options and loading state
|
|
1479
|
+
* for chart-level dynamic filtering.
|
|
1480
|
+
*/
|
|
1481
|
+
interface DynamicFilterField extends FilterField {
|
|
1482
|
+
/** Options loaded from API */
|
|
1483
|
+
options?: DynamicFilterOption[];
|
|
1484
|
+
/** Loading state for async options */
|
|
1485
|
+
loading?: boolean;
|
|
1486
|
+
/** Currently selected value(s) */
|
|
1487
|
+
selectedValue?: any;
|
|
1488
|
+
}
|
|
1489
|
+
/**
|
|
1490
|
+
* Dynamic Filter Option
|
|
1491
|
+
*
|
|
1492
|
+
* A single option in a dynamic filter dropdown.
|
|
1493
|
+
*/
|
|
1494
|
+
interface DynamicFilterOption {
|
|
1495
|
+
id: number | string;
|
|
1496
|
+
name: string | LocalizedText;
|
|
1497
|
+
value?: any;
|
|
1498
|
+
color?: string;
|
|
1499
|
+
icon?: string;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
declare class DynamicFiltersComponent implements OnInit {
|
|
1503
|
+
private readonly storeService;
|
|
1504
|
+
private readonly transloco;
|
|
1505
|
+
/** Dynamic filter fields configuration */
|
|
1506
|
+
readonly fields: _angular_core.InputSignal<DynamicFilterField[]>;
|
|
1507
|
+
/** Dashboard ID for store updates */
|
|
1508
|
+
readonly dashboardId: _angular_core.InputSignal<string | number | undefined>;
|
|
1509
|
+
/** Whether to show labels above filters */
|
|
1510
|
+
readonly showLabels: _angular_core.InputSignal<boolean>;
|
|
1511
|
+
/** Filter change event */
|
|
1512
|
+
readonly filterChange: _angular_core.OutputEmitterRef<{
|
|
1513
|
+
key: string;
|
|
1514
|
+
value: any;
|
|
1515
|
+
}>;
|
|
1516
|
+
/** All filters change event - emitted with all current values */
|
|
1517
|
+
readonly filtersChange: _angular_core.OutputEmitterRef<Record<string, any>>;
|
|
1518
|
+
/** Current filter values */
|
|
1519
|
+
private currentValues;
|
|
1520
|
+
/** Language code */
|
|
1521
|
+
readonly langCode: _angular_core.Signal<string>;
|
|
1522
|
+
/** Month options */
|
|
1523
|
+
readonly months: {
|
|
1524
|
+
value: number;
|
|
1525
|
+
labelEn: string;
|
|
1526
|
+
labelAr: string;
|
|
1527
|
+
}[];
|
|
1528
|
+
/** Quarter options */
|
|
1529
|
+
readonly quarters: {
|
|
1530
|
+
value: number;
|
|
1531
|
+
labelEn: string;
|
|
1532
|
+
labelAr: string;
|
|
1533
|
+
}[];
|
|
1534
|
+
ngOnInit(): void;
|
|
1535
|
+
/**
|
|
1536
|
+
* Get localized field label
|
|
1537
|
+
*/
|
|
1538
|
+
getFieldLabel(field: DynamicFilterField): string;
|
|
1539
|
+
/**
|
|
1540
|
+
* Get localized option label
|
|
1541
|
+
*/
|
|
1542
|
+
getOptionLabel(option: any): string;
|
|
1543
|
+
/**
|
|
1544
|
+
* Get selected value for a field
|
|
1545
|
+
*/
|
|
1546
|
+
getSelectedValue(field: DynamicFilterField): any;
|
|
1547
|
+
/**
|
|
1548
|
+
* Get year options based on configuration
|
|
1549
|
+
*/
|
|
1550
|
+
getYearOptions(field: DynamicFilterField): number[];
|
|
1551
|
+
/**
|
|
1552
|
+
* Handle field value change
|
|
1553
|
+
*/
|
|
1554
|
+
onFieldChange(field: DynamicFilterField, value: any): void;
|
|
1555
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFiltersComponent, never>;
|
|
1556
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFiltersComponent, "mt-dynamic-filters", never, { "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "dashboardId": { "alias": "dashboardId"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; "filtersChange": "filtersChange"; }, never, never, true, never>;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
interface CardInfoConfig$1 {
|
|
1560
|
+
show?: boolean;
|
|
1561
|
+
type?: 'text' | 'html';
|
|
1562
|
+
value?: string | {
|
|
1563
|
+
html?: string;
|
|
1564
|
+
keys?: Array<{
|
|
1565
|
+
key: string;
|
|
1566
|
+
en?: string;
|
|
1567
|
+
ar?: string;
|
|
1568
|
+
}>;
|
|
1569
|
+
};
|
|
1570
|
+
}
|
|
1571
|
+
declare class CardInfoComponent {
|
|
1572
|
+
private readonly transloco;
|
|
1573
|
+
readonly cardInfo: _angular_core.InputSignal<CardInfoConfig$1 | null>;
|
|
1574
|
+
readonly showInfo: _angular_core.Signal<string | false | {
|
|
1575
|
+
html?: string;
|
|
1576
|
+
keys?: Array<{
|
|
1577
|
+
key: string;
|
|
1578
|
+
en?: string;
|
|
1579
|
+
ar?: string;
|
|
1580
|
+
}>;
|
|
1581
|
+
} | undefined>;
|
|
1582
|
+
readonly tooltipContent: _angular_core.Signal<string>;
|
|
1583
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardInfoComponent, never>;
|
|
1584
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardInfoComponent, "mt-card-info", never, { "cardInfo": { "alias": "cardInfo"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1353
1585
|
}
|
|
1354
1586
|
|
|
1355
1587
|
declare class ChartCardComponent implements OnInit, OnDestroy {
|
|
@@ -1376,19 +1608,29 @@ declare class ChartCardComponent implements OnInit, OnDestroy {
|
|
|
1376
1608
|
readonly title: _angular_core.Signal<string>;
|
|
1377
1609
|
/** Show filter flag */
|
|
1378
1610
|
readonly showFilter: _angular_core.Signal<any>;
|
|
1379
|
-
/** Show top end section (filter or extra filters) */
|
|
1611
|
+
/** Show top end section (filter or extra filters or cardInfo or static/dynamic filters) */
|
|
1380
1612
|
readonly showTopEnd: _angular_core.Signal<any>;
|
|
1613
|
+
/** Card info configuration */
|
|
1614
|
+
readonly cardInfoConfig: _angular_core.Signal<any>;
|
|
1381
1615
|
/** Filter configuration */
|
|
1382
1616
|
readonly filterConfig: _angular_core.Signal<{
|
|
1383
1617
|
[key: string]: any;
|
|
1384
1618
|
configs?: any[];
|
|
1385
1619
|
} | undefined>;
|
|
1620
|
+
/** Static filter configuration */
|
|
1621
|
+
readonly staticFilterConfig: _angular_core.Signal<StaticFilterConfig | null>;
|
|
1622
|
+
/** Dynamic filter fields */
|
|
1623
|
+
readonly dynamicFilterFields: _angular_core.Signal<DynamicFilterField[]>;
|
|
1624
|
+
/** Show static filters */
|
|
1625
|
+
readonly showStaticFilters: _angular_core.Signal<boolean | undefined>;
|
|
1626
|
+
/** Show dynamic filters */
|
|
1627
|
+
readonly showDynamicFilters: _angular_core.Signal<boolean>;
|
|
1386
1628
|
ngOnInit(): void;
|
|
1387
1629
|
ngOnDestroy(): void;
|
|
1388
1630
|
onChartClick(event: any): void;
|
|
1389
1631
|
onHeaderClick(): void;
|
|
1390
1632
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartCardComponent, never>;
|
|
1391
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartCardComponent, "
|
|
1633
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartCardComponent, "mt-chart-card", never, { "dashboardId": { "alias": "dashboardId"; "required": true; "isSignal": true; }; "inGroup": { "alias": "inGroup"; "required": false; "isSignal": true; }; "isConfigMode": { "alias": "isConfigMode"; "required": false; "isSignal": true; }; }, { "onAction": "onAction"; }, never, never, true, never>;
|
|
1392
1634
|
}
|
|
1393
1635
|
|
|
1394
1636
|
type EChartsType = any;
|
|
@@ -1490,7 +1732,7 @@ declare class EChartComponent implements OnInit, AfterViewInit, OnChanges, OnDes
|
|
|
1490
1732
|
*/
|
|
1491
1733
|
getChartInstance(): EChartsType | null;
|
|
1492
1734
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EChartComponent, never>;
|
|
1493
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EChartComponent, "
|
|
1735
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EChartComponent, "mt-echart", never, { "dashboardId": { "alias": "dashboardId"; "required": false; "isSignal": true; }; "chartConfig": { "alias": "chartConfig"; "required": false; "isSignal": true; }; "configurationItem": { "alias": "configurationItem"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "inGroup": { "alias": "inGroup"; "required": false; "isSignal": true; }; "headerHidden": { "alias": "headerHidden"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
|
|
1494
1736
|
}
|
|
1495
1737
|
|
|
1496
1738
|
interface EntityData {
|
|
@@ -1591,7 +1833,11 @@ declare class EntityPreviewCardComponent implements OnInit, OnDestroy {
|
|
|
1591
1833
|
interface StatusItem {
|
|
1592
1834
|
label: string;
|
|
1593
1835
|
color: string;
|
|
1594
|
-
shape?: 'circle' | 'square';
|
|
1836
|
+
shape?: 'circle' | 'square' | 'rectangul' | 'rhombic' | 'rect';
|
|
1837
|
+
borderColor?: string;
|
|
1838
|
+
borderBottomColor?: string;
|
|
1839
|
+
iconClass?: string;
|
|
1840
|
+
iconSize?: number;
|
|
1595
1841
|
}
|
|
1596
1842
|
declare class HeaderCardComponent implements OnInit, OnDestroy {
|
|
1597
1843
|
private readonly storeService;
|
|
@@ -1649,7 +1895,7 @@ declare class HeaderCardComponent implements OnInit, OnDestroy {
|
|
|
1649
1895
|
onArrowClick(): void;
|
|
1650
1896
|
onClick(): void;
|
|
1651
1897
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderCardComponent, never>;
|
|
1652
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderCardComponent, "
|
|
1898
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HeaderCardComponent, "mt-header-card", never, { "dashboardId": { "alias": "dashboardId"; "required": true; "isSignal": true; }; }, { "onAction": "onAction"; }, never, never, true, never>;
|
|
1653
1899
|
}
|
|
1654
1900
|
|
|
1655
1901
|
interface LevelCardData$1 {
|
|
@@ -1747,7 +1993,7 @@ declare class ListStatisticCardComponent implements OnInit, OnDestroy {
|
|
|
1747
1993
|
*/
|
|
1748
1994
|
doActions(event: any, type: string): void;
|
|
1749
1995
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListStatisticCardComponent, never>;
|
|
1750
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListStatisticCardComponent, "
|
|
1996
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListStatisticCardComponent, "mt-list-statistic-card", never, { "dashboardId": { "alias": "dashboardId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1751
1997
|
}
|
|
1752
1998
|
|
|
1753
1999
|
interface SkeletonConfig {
|
|
@@ -1767,7 +2013,7 @@ declare class SkeletonCardComponent implements OnInit, OnDestroy {
|
|
|
1767
2013
|
ngOnDestroy(): void;
|
|
1768
2014
|
private getSkeletonsForComponent;
|
|
1769
2015
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCardComponent, never>;
|
|
1770
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCardComponent, "
|
|
2016
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCardComponent, "mt-skeleton-card", never, { "dashboardId": { "alias": "dashboardId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1771
2017
|
}
|
|
1772
2018
|
|
|
1773
2019
|
declare class StatisticCardComponent implements OnInit {
|
|
@@ -1918,7 +2164,7 @@ declare class TableCardComponent implements OnInit, OnDestroy {
|
|
|
1918
2164
|
*/
|
|
1919
2165
|
onHeaderClick(): void;
|
|
1920
2166
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableCardComponent, never>;
|
|
1921
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableCardComponent, "
|
|
2167
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableCardComponent, "mt-table-card", never, { "dashboardId": { "alias": "dashboardId"; "required": true; "isSignal": true; }; "inGroup": { "alias": "inGroup"; "required": false; "isSignal": true; }; }, { "onAction": "onAction"; }, never, never, true, never>;
|
|
1922
2168
|
}
|
|
1923
2169
|
|
|
1924
2170
|
declare class DashboardItemStoreService {
|
|
@@ -2130,15 +2376,16 @@ declare class ChartDataService {
|
|
|
2130
2376
|
}
|
|
2131
2377
|
|
|
2132
2378
|
declare class BarChartHandler {
|
|
2379
|
+
private readonly storeService;
|
|
2133
2380
|
/**
|
|
2134
2381
|
* handleBarChart - matches functionName from CHART_TYPES
|
|
2135
2382
|
* Returns ECharts option directly (exactly like old BarChartService.handleBarChart)
|
|
2136
2383
|
*/
|
|
2137
2384
|
handleBarChart(dataResponse: any, config: ItemConfig): any;
|
|
2138
2385
|
/**
|
|
2139
|
-
* Format X axis value
|
|
2386
|
+
* Format X axis value using the formatXAxis utility
|
|
2140
2387
|
*/
|
|
2141
|
-
private
|
|
2388
|
+
private formatXAxisValue;
|
|
2142
2389
|
/**
|
|
2143
2390
|
* Apply bar override configurations
|
|
2144
2391
|
*/
|
|
@@ -2147,6 +2394,11 @@ declare class BarChartHandler {
|
|
|
2147
2394
|
* Build grouped bar chart
|
|
2148
2395
|
*/
|
|
2149
2396
|
private buildGroupedBarChart;
|
|
2397
|
+
/**
|
|
2398
|
+
* handleEntityPreviewWithFormula - matches old entityPreviewWithFormula component
|
|
2399
|
+
* Transforms bar chart data into entity preview format (flat array of properties)
|
|
2400
|
+
*/
|
|
2401
|
+
handleEntityPreviewWithFormula(dataResponse: any, config: ItemConfig): any;
|
|
2150
2402
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartHandler, never>;
|
|
2151
2403
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<BarChartHandler>;
|
|
2152
2404
|
}
|
|
@@ -2170,6 +2422,7 @@ declare class PieChartHandler {
|
|
|
2170
2422
|
}
|
|
2171
2423
|
|
|
2172
2424
|
declare class StackBarChartHandler {
|
|
2425
|
+
private readonly storeService;
|
|
2173
2426
|
/**
|
|
2174
2427
|
* Helper method to convert legend position based on language
|
|
2175
2428
|
*/
|
|
@@ -2244,7 +2497,7 @@ declare class OverviewCardHandler {
|
|
|
2244
2497
|
* handleHeader - for header component
|
|
2245
2498
|
* Extracts title from first value (same as old PropertiesService.handleHeader)
|
|
2246
2499
|
*/
|
|
2247
|
-
handleHeader(data: any,
|
|
2500
|
+
handleHeader(data: any, _config: ItemConfig): any;
|
|
2248
2501
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverviewCardHandler, never>;
|
|
2249
2502
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OverviewCardHandler>;
|
|
2250
2503
|
}
|
|
@@ -2412,18 +2665,18 @@ declare class LevelCardHandler {
|
|
|
2412
2665
|
* Returns data directly like old LevelCardService:
|
|
2413
2666
|
* result?.map(data => data?.details?.map(...).sort(...))
|
|
2414
2667
|
*/
|
|
2415
|
-
handlelevelCards(result: any,
|
|
2668
|
+
handlelevelCards(result: any, _config: ItemConfig): any;
|
|
2416
2669
|
/**
|
|
2417
2670
|
* handlelevelCardsWithFilter - matches functionName from CHART_TYPES
|
|
2418
2671
|
* Returns data directly like old LevelCardService:
|
|
2419
2672
|
* [[{ data: levelProps }]]
|
|
2420
2673
|
*/
|
|
2421
|
-
handlelevelCardsWithFilter(result: any,
|
|
2674
|
+
handlelevelCardsWithFilter(result: any, _config: ItemConfig): any;
|
|
2422
2675
|
/**
|
|
2423
2676
|
* Handle grouped level cards (multiple selections)
|
|
2424
2677
|
* Returns data directly
|
|
2425
2678
|
*/
|
|
2426
|
-
handleGrouped(dataResponse: any[],
|
|
2679
|
+
handleGrouped(dataResponse: any[], _config: ItemConfig): any;
|
|
2427
2680
|
/**
|
|
2428
2681
|
* Parse level cards from details array (standard API response)
|
|
2429
2682
|
*/
|
|
@@ -2660,10 +2913,32 @@ declare function createTooltipFormatter(config?: {
|
|
|
2660
2913
|
}): (value: number) => string;
|
|
2661
2914
|
/**
|
|
2662
2915
|
* Format words with underscores for display
|
|
2916
|
+
* Matches old formatterWordsUnderBar from Formatters.ts
|
|
2663
2917
|
* @param text - Text to format
|
|
2664
|
-
* @param
|
|
2918
|
+
* @param maxCharsPerLine - Max characters per line before wrapping
|
|
2919
|
+
* @param insideReport - When true, return full text with line breaks (no truncation)
|
|
2920
|
+
*/
|
|
2921
|
+
declare function formatWordsUnderBar(text: string, maxCharsPerLine?: number, insideReport?: boolean): string;
|
|
2922
|
+
/**
|
|
2923
|
+
* Format X Axis Configuration
|
|
2924
|
+
*/
|
|
2925
|
+
interface FormatXAxisConfig$1 {
|
|
2926
|
+
/** Format type: dateToMonth, month, date, custom */
|
|
2927
|
+
type?: 'dateToMonth' | 'month' | 'date' | 'custom';
|
|
2928
|
+
/** Use short month format (Jan vs January) */
|
|
2929
|
+
shortFormate?: boolean;
|
|
2930
|
+
/** Custom date format string (for 'date' type) */
|
|
2931
|
+
customDateFormat?: string;
|
|
2932
|
+
/** Custom text suffix (for 'custom' type) */
|
|
2933
|
+
customText?: string;
|
|
2934
|
+
}
|
|
2935
|
+
/**
|
|
2936
|
+
* Format X-axis value based on configuration
|
|
2937
|
+
* Matches old FormaterXAxis function from dashboardBuilder
|
|
2938
|
+
* @param value - The X-axis category value (typically a date string)
|
|
2939
|
+
* @param configFormat - Configuration object with type and format options
|
|
2665
2940
|
*/
|
|
2666
|
-
declare function
|
|
2941
|
+
declare function formatXAxis(value: string | Date, configFormat?: FormatXAxisConfig$1): string;
|
|
2667
2942
|
|
|
2668
2943
|
/**
|
|
2669
2944
|
* Chart Helpers
|
|
@@ -3040,7 +3315,10 @@ declare class DashboardStoreService {
|
|
|
3040
3315
|
/** Language code */
|
|
3041
3316
|
readonly languageCode: _angular_core.WritableSignal<string>;
|
|
3042
3317
|
/** Direction */
|
|
3043
|
-
readonly direction: _angular_core.WritableSignal<"
|
|
3318
|
+
readonly direction: _angular_core.WritableSignal<"ltr" | "rtl">;
|
|
3319
|
+
/** Inside Report Viewer flag - controls text truncation in charts */
|
|
3320
|
+
private insideReportViewerSignal;
|
|
3321
|
+
readonly insideReportViewer: _angular_core.Signal<boolean>;
|
|
3044
3322
|
/** Reload current page subject */
|
|
3045
3323
|
private reloadCurrentPageSubject;
|
|
3046
3324
|
readonly reloadCurrentPage$: rxjs.Observable<void>;
|
|
@@ -3056,6 +3334,11 @@ declare class DashboardStoreService {
|
|
|
3056
3334
|
* Update stop actions flag
|
|
3057
3335
|
*/
|
|
3058
3336
|
updateStopActions(value: boolean): void;
|
|
3337
|
+
/**
|
|
3338
|
+
* Set inside report viewer mode
|
|
3339
|
+
* When true, axis labels won't be truncated and custom legends may be skipped
|
|
3340
|
+
*/
|
|
3341
|
+
setInsideReportViewer(value: boolean): void;
|
|
3059
3342
|
/**
|
|
3060
3343
|
* Update dynamic key in store
|
|
3061
3344
|
*/
|
|
@@ -3137,61 +3420,6 @@ declare class ManageBreadcrumb implements OnInit {
|
|
|
3137
3420
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageBreadcrumb, "mt-manage-breadcrumb", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3138
3421
|
}
|
|
3139
3422
|
|
|
3140
|
-
/**
|
|
3141
|
-
* Filter Field Models
|
|
3142
|
-
*
|
|
3143
|
-
* Defines the structure for dynamic filter fields configuration
|
|
3144
|
-
* used in dashboard page filtering.
|
|
3145
|
-
*/
|
|
3146
|
-
/** Localized text with English and Arabic translations */
|
|
3147
|
-
interface LocalizedText {
|
|
3148
|
-
en: string;
|
|
3149
|
-
ar: string;
|
|
3150
|
-
}
|
|
3151
|
-
/** Filter field types supported by the system */
|
|
3152
|
-
type FilterFieldType = 'dropdownTVService' | 'lookup' | 'status' | 'phaseGate' | 'user' | 'date' | 'section' | 'separator' | 'year' | 'month' | 'quarter' | 'checkbox' | 'schemaSettings' | 'schemaSettingsLeafs';
|
|
3153
|
-
/** Selection item for dropdown configuration */
|
|
3154
|
-
interface FilterSelectionItem {
|
|
3155
|
-
id: number;
|
|
3156
|
-
moduleType?: string;
|
|
3157
|
-
moduleId?: number;
|
|
3158
|
-
filters?: any[];
|
|
3159
|
-
modules?: any[];
|
|
3160
|
-
properties?: any[];
|
|
3161
|
-
}
|
|
3162
|
-
/** Filter field configuration details */
|
|
3163
|
-
interface FilterFieldConfiguration {
|
|
3164
|
-
payload?: {
|
|
3165
|
-
dashboardId: number;
|
|
3166
|
-
selection: FilterSelectionItem[];
|
|
3167
|
-
chartType: string;
|
|
3168
|
-
query: {
|
|
3169
|
-
selectedProperties: string[];
|
|
3170
|
-
};
|
|
3171
|
-
};
|
|
3172
|
-
lookupId?: number;
|
|
3173
|
-
schemaLevelId?: number;
|
|
3174
|
-
logId?: number;
|
|
3175
|
-
isRequird?: boolean;
|
|
3176
|
-
isMultiple?: boolean;
|
|
3177
|
-
checked?: boolean;
|
|
3178
|
-
minYear?: number;
|
|
3179
|
-
maxYear?: number;
|
|
3180
|
-
}
|
|
3181
|
-
/** Filter field definition */
|
|
3182
|
-
interface FilterField {
|
|
3183
|
-
key?: string;
|
|
3184
|
-
name?: LocalizedText;
|
|
3185
|
-
type: FilterFieldType;
|
|
3186
|
-
configuration?: FilterFieldConfiguration;
|
|
3187
|
-
}
|
|
3188
|
-
/** Filter field type option for dropdown */
|
|
3189
|
-
interface FilterFieldTypeOption {
|
|
3190
|
-
value: FilterFieldType;
|
|
3191
|
-
label: string;
|
|
3192
|
-
products: string[];
|
|
3193
|
-
}
|
|
3194
|
-
|
|
3195
3423
|
/**
|
|
3196
3424
|
* Manage Filter On Page Component
|
|
3197
3425
|
*
|
|
@@ -3292,6 +3520,18 @@ declare class ChartSettingsDrawer {
|
|
|
3292
3520
|
/** The chart item signal - reactive for proper change detection */
|
|
3293
3521
|
readonly item: _angular_core.WritableSignal<DashboardChartItem | null>;
|
|
3294
3522
|
constructor();
|
|
3523
|
+
/** Active tab: 'display' or 'chartControls' */
|
|
3524
|
+
readonly activeTab: _angular_core.WritableSignal<string>;
|
|
3525
|
+
/** Tab options - always show Display, show Chart Controls only when a chart control UI exists */
|
|
3526
|
+
readonly tabOptions: _angular_core.Signal<{
|
|
3527
|
+
label: string;
|
|
3528
|
+
value: string;
|
|
3529
|
+
icon: string;
|
|
3530
|
+
}[]>;
|
|
3531
|
+
/** Resolve ChartTypeConfig from CHART_TYPES based on item config */
|
|
3532
|
+
readonly resolvedChartType: _angular_core.Signal<ChartTypeConfig | null>;
|
|
3533
|
+
/** ItemConfig computed for DisplaySettings input */
|
|
3534
|
+
readonly itemConfig: _angular_core.Signal<ItemConfig | null>;
|
|
3295
3535
|
/** Determine the type of manage UI to show */
|
|
3296
3536
|
readonly manageType: _angular_core.Signal<QuickManageType>;
|
|
3297
3537
|
/** Default config (full config for DefaultControlUi) */
|
|
@@ -3314,6 +3554,8 @@ declare class ChartSettingsDrawer {
|
|
|
3314
3554
|
onStackBarConfigChange(config: any): void;
|
|
3315
3555
|
/** Update snapshot bar chart config */
|
|
3316
3556
|
onSnapshotBarConfigChange(config: any): void;
|
|
3557
|
+
/** Update client config from DisplaySettings */
|
|
3558
|
+
onClientConfigUpdate(partialClientConfig: Partial<ClientConfig>): void;
|
|
3317
3559
|
/** Apply changes and close drawer */
|
|
3318
3560
|
apply(): void;
|
|
3319
3561
|
/** Close without changes */
|
|
@@ -3322,135 +3564,610 @@ declare class ChartSettingsDrawer {
|
|
|
3322
3564
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartSettingsDrawer, "mt-chart-settings-drawer", never, {}, {}, never, never, true, never>;
|
|
3323
3565
|
}
|
|
3324
3566
|
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
subtitleColor: string;
|
|
3333
|
-
backgroundColor: string;
|
|
3334
|
-
borderColor: string;
|
|
3335
|
-
borderRadius: number;
|
|
3336
|
-
padding: number;
|
|
3567
|
+
/** Shadow configuration */
|
|
3568
|
+
interface ShadowConfig {
|
|
3569
|
+
x: number;
|
|
3570
|
+
y: number;
|
|
3571
|
+
blur: number;
|
|
3572
|
+
spread: number;
|
|
3573
|
+
color: string;
|
|
3337
3574
|
}
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
value: number;
|
|
3343
|
-
}[];
|
|
3344
|
-
private onChange;
|
|
3345
|
-
private onTouched;
|
|
3346
|
-
writeValue(value: DefaultControlConfig): void;
|
|
3347
|
-
registerOnChange(fn: (value: DefaultControlConfig) => void): void;
|
|
3348
|
-
registerOnTouched(fn: () => void): void;
|
|
3349
|
-
updateConfig(partial: Partial<DefaultControlConfig>): void;
|
|
3350
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DefaultControlUi, never>;
|
|
3351
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DefaultControlUi, "mt-default-control-ui", never, {}, {}, never, never, true, never>;
|
|
3575
|
+
/** Override label configuration */
|
|
3576
|
+
interface OverrideLabel {
|
|
3577
|
+
en: string;
|
|
3578
|
+
ar: string;
|
|
3352
3579
|
}
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
* Pie Chart Configuration - Matches old implementation exactly
|
|
3356
|
-
*/
|
|
3357
|
-
interface PieControlConfig {
|
|
3358
|
-
radius?: number;
|
|
3359
|
-
thickness?: number;
|
|
3360
|
-
padAngle?: number;
|
|
3580
|
+
/** Card style configuration */
|
|
3581
|
+
interface CardStyleConfig {
|
|
3361
3582
|
borderRadius?: number;
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
startAngle?: number;
|
|
3365
|
-
endAngle?: number;
|
|
3366
|
-
roseType?: boolean | 'radius' | 'area';
|
|
3367
|
-
useEnhancedLegend?: boolean;
|
|
3368
|
-
legendPosition?: 'left' | 'right' | 'top' | 'bottom';
|
|
3369
|
-
legendVerticalAlign?: 'top' | 'middle' | 'bottom';
|
|
3370
|
-
legendOrientation?: 'horizontal' | 'vertical';
|
|
3371
|
-
legendType?: 'scroll' | 'plain';
|
|
3372
|
-
legendFontSize?: number;
|
|
3373
|
-
legendFontColor?: string;
|
|
3374
|
-
legendIcon?: string;
|
|
3375
|
-
labelFontSize?: number;
|
|
3376
|
-
totalValueFontSize?: number;
|
|
3377
|
-
labelFontColor?: string;
|
|
3378
|
-
labelFormatter?: string;
|
|
3379
|
-
tooltipTrigger?: 'item' | 'axis' | 'none';
|
|
3380
|
-
labelPosition?: string;
|
|
3381
|
-
showLabelLine?: boolean;
|
|
3382
|
-
explode?: number;
|
|
3383
|
-
animation?: boolean;
|
|
3384
|
-
animationDuration?: number;
|
|
3385
|
-
tooltipBackgroundColor?: string;
|
|
3386
|
-
tooltipBorderColor?: string;
|
|
3387
|
-
tooltipBorderWidth?: number;
|
|
3583
|
+
backgroundColor?: string;
|
|
3584
|
+
shadows?: ShadowConfig[];
|
|
3388
3585
|
}
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3586
|
+
/** Header card configuration */
|
|
3587
|
+
interface HeaderCardConfig {
|
|
3588
|
+
isHeaderCentered?: boolean;
|
|
3589
|
+
isHeaderHidden?: boolean;
|
|
3590
|
+
headerColor?: string;
|
|
3591
|
+
headerFontSize?: number;
|
|
3592
|
+
}
|
|
3593
|
+
/** Label center configuration */
|
|
3594
|
+
interface LabelCenterConfig {
|
|
3595
|
+
hide?: boolean;
|
|
3596
|
+
text?: {
|
|
3597
|
+
en?: string;
|
|
3598
|
+
ar?: string;
|
|
3599
|
+
};
|
|
3600
|
+
}
|
|
3601
|
+
/** Sort data bars configuration */
|
|
3602
|
+
interface SortDataBarsConfig {
|
|
3603
|
+
enable?: boolean;
|
|
3604
|
+
sortBy?: string;
|
|
3605
|
+
order?: 'asc' | 'desc' | string;
|
|
3606
|
+
direction?: 'asc' | 'desc' | string;
|
|
3607
|
+
}
|
|
3608
|
+
/** Card info configuration */
|
|
3609
|
+
interface CardInfoConfig {
|
|
3610
|
+
show?: boolean;
|
|
3611
|
+
value?: any;
|
|
3612
|
+
type?: string;
|
|
3613
|
+
}
|
|
3614
|
+
/** Format configuration */
|
|
3615
|
+
interface FormatConfig {
|
|
3616
|
+
type?: string | null;
|
|
3617
|
+
showCurrency?: boolean;
|
|
3618
|
+
handleLang?: boolean;
|
|
3619
|
+
customText?: string | null;
|
|
3620
|
+
customDateFormat?: string | null;
|
|
3621
|
+
showCurrencyTooltip?: boolean;
|
|
3622
|
+
hideSuffixes?: boolean;
|
|
3623
|
+
}
|
|
3624
|
+
/** Table format configuration */
|
|
3625
|
+
interface TableFormatConfig {
|
|
3626
|
+
thTextColor?: string | null;
|
|
3627
|
+
thBackgroundColor?: string | null;
|
|
3628
|
+
tdTextColor?: string | null;
|
|
3629
|
+
groupBackgroundColor?: string | null;
|
|
3630
|
+
groupTextColor?: string | null;
|
|
3631
|
+
thFontBold?: boolean;
|
|
3632
|
+
tdFontBold?: boolean;
|
|
3633
|
+
thFontSize?: number | null;
|
|
3634
|
+
tdFontSize?: number | null;
|
|
3635
|
+
hideTableSubheader?: boolean;
|
|
3636
|
+
disableCurrencyFormat?: boolean;
|
|
3637
|
+
showPercentageAsProgressBar?: boolean;
|
|
3638
|
+
showPercentageStatus?: boolean;
|
|
3639
|
+
hiddenColumns?: string[];
|
|
3640
|
+
sortConfig?: {
|
|
3641
|
+
column: string;
|
|
3642
|
+
direction: 'asc' | 'desc';
|
|
3643
|
+
};
|
|
3644
|
+
}
|
|
3645
|
+
/** Color condition configuration */
|
|
3646
|
+
interface ColorCondition {
|
|
3647
|
+
color: string;
|
|
3648
|
+
type: 'equal' | 'greaterThan' | 'greaterThanOrEqual' | 'lessThan' | 'lessThanOrEqual' | 'between';
|
|
3649
|
+
value1?: number;
|
|
3650
|
+
value2?: number;
|
|
3651
|
+
labelEn?: string;
|
|
3652
|
+
labelAr?: string;
|
|
3653
|
+
}
|
|
3654
|
+
/** Color conditions by bar index */
|
|
3655
|
+
interface ColorConditionsByIndex {
|
|
3656
|
+
[key: number]: ColorCondition[];
|
|
3657
|
+
}
|
|
3658
|
+
/** Ring gauge configuration */
|
|
3659
|
+
interface RingGaugeConfig {
|
|
3660
|
+
centerProperty?: string;
|
|
3661
|
+
statusProperty?: string;
|
|
3662
|
+
hiddenProperties?: string[];
|
|
3663
|
+
}
|
|
3664
|
+
/** Order configuration */
|
|
3665
|
+
interface OrderConfig {
|
|
3666
|
+
order?: string[];
|
|
3667
|
+
operation?: string;
|
|
3668
|
+
orderBy?: string;
|
|
3669
|
+
}
|
|
3670
|
+
/** Card list configuration */
|
|
3671
|
+
interface CardListConfig {
|
|
3672
|
+
hideProperties?: string[];
|
|
3673
|
+
}
|
|
3674
|
+
/** Property translation entry */
|
|
3675
|
+
interface PropertyTranslation {
|
|
3676
|
+
ar: string;
|
|
3677
|
+
en: string;
|
|
3678
|
+
}
|
|
3679
|
+
/** Property translations map */
|
|
3680
|
+
interface PropertyTranslationsMap {
|
|
3681
|
+
[key: string]: PropertyTranslation;
|
|
3682
|
+
}
|
|
3683
|
+
/** Property color entry */
|
|
3684
|
+
interface PropertyColorEntry {
|
|
3685
|
+
selectedKey: string;
|
|
3686
|
+
}
|
|
3687
|
+
/** Property colors map */
|
|
3688
|
+
interface PropertyColorsMap {
|
|
3689
|
+
[key: string]: PropertyColorEntry;
|
|
3690
|
+
}
|
|
3691
|
+
/** Props config as index item */
|
|
3692
|
+
interface PropsConfigAsIndexItem {
|
|
3693
|
+
width?: string;
|
|
3694
|
+
colorAsProperty?: string;
|
|
3695
|
+
hidden?: boolean;
|
|
3696
|
+
border?: string[];
|
|
3697
|
+
}
|
|
3698
|
+
/** Format X-Axis configuration */
|
|
3699
|
+
interface FormatXAxisConfig {
|
|
3700
|
+
type?: string | null;
|
|
3701
|
+
shortFormate?: boolean;
|
|
3702
|
+
}
|
|
3703
|
+
/** Extra column from lookup configuration */
|
|
3704
|
+
interface ExtraColumnFromLookupConfig {
|
|
3705
|
+
extraCoulmnFromLookup?: boolean;
|
|
3706
|
+
lookupId?: number | null;
|
|
3707
|
+
groupedBy?: string | null;
|
|
3708
|
+
propKey?: string | null;
|
|
3709
|
+
}
|
|
3710
|
+
/** Timeline header colors config (single) */
|
|
3711
|
+
interface TimelineHeaderSingleConfig {
|
|
3712
|
+
bgColor?: string;
|
|
3713
|
+
color?: string;
|
|
3714
|
+
}
|
|
3715
|
+
/**
|
|
3716
|
+
* Display Settings Component
|
|
3717
|
+
*
|
|
3718
|
+
* Comprehensive visual/display configuration with chart-type-aware field visibility.
|
|
3719
|
+
* Shows only relevant settings based on the selected chart type.
|
|
3720
|
+
*/
|
|
3721
|
+
declare class DisplaySettings {
|
|
3722
|
+
/** Current configuration */
|
|
3723
|
+
readonly config: _angular_core.InputSignal<ItemConfig | null>;
|
|
3724
|
+
/** Selected chart type */
|
|
3725
|
+
readonly chartType: _angular_core.InputSignal<ChartTypeConfig | null>;
|
|
3726
|
+
/** Available properties (for property-based configs) */
|
|
3727
|
+
readonly availableProperties: _angular_core.InputSignal<any[]>;
|
|
3728
|
+
/** Selected properties from query */
|
|
3729
|
+
readonly selectedProperties: _angular_core.InputSignal<string[]>;
|
|
3730
|
+
/** Available lookups for extra column from lookup */
|
|
3731
|
+
readonly lookups: _angular_core.InputSignal<any[]>;
|
|
3732
|
+
/** Emit client config changes */
|
|
3733
|
+
readonly clientConfigChange: _angular_core.OutputEmitterRef<Partial<ClientConfig>>;
|
|
3734
|
+
/** Color condition expansion state */
|
|
3735
|
+
readonly colorConditionExpanded: _angular_core.WritableSignal<Record<number, boolean>>;
|
|
3736
|
+
/** Property translations paste state */
|
|
3737
|
+
readonly showPropertyTranslationsPaste: _angular_core.WritableSignal<boolean>;
|
|
3738
|
+
readonly propertyTranslationsPasteText: _angular_core.WritableSignal<string>;
|
|
3739
|
+
readonly propertyTranslationsPasteError: _angular_core.WritableSignal<string>;
|
|
3740
|
+
/** Property colors paste state */
|
|
3741
|
+
readonly showPropertyColorsPaste: _angular_core.WritableSignal<boolean>;
|
|
3742
|
+
readonly propertyColorsPasteText: _angular_core.WritableSignal<string>;
|
|
3743
|
+
readonly propertyColorsPasteError: _angular_core.WritableSignal<string>;
|
|
3744
|
+
/**
|
|
3745
|
+
* Chart type to fields mapping
|
|
3746
|
+
* Each chart type maps to comma-separated list of visible fields
|
|
3747
|
+
*/
|
|
3748
|
+
private readonly chartTypeFieldsMap;
|
|
3749
|
+
/** Computed fields to show based on chart type */
|
|
3750
|
+
readonly fieldsToShow: _angular_core.Signal<string>;
|
|
3751
|
+
/** Check if a field should be shown */
|
|
3752
|
+
shouldShowField(fieldName: string): boolean;
|
|
3753
|
+
/** Position options */
|
|
3754
|
+
readonly positionOptions: {
|
|
3399
3755
|
label: string;
|
|
3400
3756
|
value: string;
|
|
3401
3757
|
}[];
|
|
3758
|
+
/** Legend position options */
|
|
3402
3759
|
readonly legendPositionOptions: {
|
|
3403
3760
|
label: string;
|
|
3404
3761
|
value: string;
|
|
3405
3762
|
}[];
|
|
3406
|
-
|
|
3763
|
+
/** Legend icon type options */
|
|
3764
|
+
readonly legendIconOptions: {
|
|
3407
3765
|
label: string;
|
|
3408
3766
|
value: string;
|
|
3409
3767
|
}[];
|
|
3410
|
-
|
|
3768
|
+
/** Label position options */
|
|
3769
|
+
readonly labelPositionOptions: {
|
|
3411
3770
|
label: string;
|
|
3412
3771
|
value: string;
|
|
3413
3772
|
}[];
|
|
3414
|
-
|
|
3773
|
+
/** Map options */
|
|
3774
|
+
readonly mapOptions: {
|
|
3415
3775
|
label: string;
|
|
3416
3776
|
value: string;
|
|
3417
3777
|
}[];
|
|
3418
|
-
|
|
3778
|
+
/** Order type options */
|
|
3779
|
+
readonly orderTypeOptions: {
|
|
3419
3780
|
label: string;
|
|
3420
3781
|
value: string;
|
|
3421
3782
|
}[];
|
|
3422
|
-
|
|
3783
|
+
/** Order operation options */
|
|
3784
|
+
readonly orderOperationOptions: {
|
|
3423
3785
|
label: string;
|
|
3424
3786
|
value: string;
|
|
3425
3787
|
}[];
|
|
3426
|
-
|
|
3788
|
+
/** Border options for props config */
|
|
3789
|
+
readonly borderOptions: {
|
|
3427
3790
|
label: string;
|
|
3428
3791
|
value: string;
|
|
3429
3792
|
}[];
|
|
3430
|
-
|
|
3793
|
+
/** Color condition type options */
|
|
3794
|
+
readonly colorConditionTypeOptions: {
|
|
3431
3795
|
label: string;
|
|
3432
|
-
value:
|
|
3796
|
+
value: string;
|
|
3433
3797
|
}[];
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3798
|
+
/** Format type options */
|
|
3799
|
+
readonly formatTypeOptions: ({
|
|
3800
|
+
label: string;
|
|
3801
|
+
value: null;
|
|
3802
|
+
} | {
|
|
3803
|
+
label: string;
|
|
3804
|
+
value: string;
|
|
3805
|
+
})[];
|
|
3806
|
+
/** Format X-Axis type options */
|
|
3807
|
+
readonly formatXAxisTypeOptions: ({
|
|
3808
|
+
label: string;
|
|
3809
|
+
value: null;
|
|
3810
|
+
} | {
|
|
3811
|
+
label: string;
|
|
3812
|
+
value: string;
|
|
3813
|
+
})[];
|
|
3814
|
+
/** Default color palette */
|
|
3815
|
+
readonly defaultColorPalette: string[];
|
|
3816
|
+
/** Current style config */
|
|
3817
|
+
readonly styleConfig: _angular_core.Signal<StyleConfig>;
|
|
3818
|
+
/** Current config as type */
|
|
3819
|
+
readonly configAsType: _angular_core.Signal<{
|
|
3820
|
+
[key: string]: any;
|
|
3821
|
+
icon?: string;
|
|
3822
|
+
breadcrumb?: any[];
|
|
3823
|
+
}>;
|
|
3824
|
+
/** Current card info */
|
|
3825
|
+
readonly cardInfo: _angular_core.Signal<CardInfoConfig>;
|
|
3826
|
+
/** Current header card config */
|
|
3827
|
+
readonly headerCardConfig: _angular_core.Signal<HeaderCardConfig>;
|
|
3828
|
+
/** Current card style config */
|
|
3829
|
+
readonly cardStyleConfig: _angular_core.Signal<CardStyleConfig>;
|
|
3830
|
+
/** Current label config */
|
|
3831
|
+
readonly labelConfig: _angular_core.Signal<{
|
|
3832
|
+
show?: boolean;
|
|
3833
|
+
showTotalInTop?: boolean;
|
|
3834
|
+
position?: string;
|
|
3835
|
+
}>;
|
|
3836
|
+
/** Current legend config */
|
|
3837
|
+
readonly legendConfig: _angular_core.Signal<{
|
|
3838
|
+
show?: boolean;
|
|
3839
|
+
position?: string;
|
|
3840
|
+
iconType?: string;
|
|
3841
|
+
}>;
|
|
3842
|
+
/** Current label center config */
|
|
3843
|
+
readonly labelCenterConfig: _angular_core.Signal<LabelCenterConfig>;
|
|
3844
|
+
/** Current sort data bars config */
|
|
3845
|
+
readonly sortDataBarsConfig: _angular_core.Signal<SortDataBarsConfig>;
|
|
3846
|
+
/** Current override labels */
|
|
3847
|
+
readonly overrideLabels: _angular_core.Signal<OverrideLabel[]>;
|
|
3848
|
+
/** Current default colors */
|
|
3849
|
+
readonly defaultColors: _angular_core.Signal<string[]>;
|
|
3850
|
+
/** Current order config */
|
|
3851
|
+
readonly orderConfig: _angular_core.Signal<any>;
|
|
3852
|
+
/** Current format config */
|
|
3853
|
+
readonly formatConfig: _angular_core.Signal<FormatConfig>;
|
|
3854
|
+
/** Current table format config */
|
|
3855
|
+
readonly tableFormatConfig: _angular_core.Signal<TableFormatConfig>;
|
|
3856
|
+
/** Current color by condition */
|
|
3857
|
+
readonly colorByCondition: _angular_core.Signal<ColorConditionsByIndex>;
|
|
3858
|
+
/** Current ring gauge config */
|
|
3859
|
+
readonly ringGaugeConfig: _angular_core.Signal<RingGaugeConfig>;
|
|
3860
|
+
/** Current card list config */
|
|
3861
|
+
readonly cardListConfig: _angular_core.Signal<CardListConfig>;
|
|
3862
|
+
/** Props config as index */
|
|
3863
|
+
readonly propsConfigAsIndex: _angular_core.Signal<PropsConfigAsIndexItem[]>;
|
|
3864
|
+
/** Property translations map */
|
|
3865
|
+
readonly propertyTranslations: _angular_core.Signal<PropertyTranslationsMap>;
|
|
3866
|
+
/** Property colors map */
|
|
3867
|
+
readonly propertyColors: _angular_core.Signal<PropertyColorsMap>;
|
|
3868
|
+
/** Format X-Axis config */
|
|
3869
|
+
readonly formatXAxisConfig: _angular_core.Signal<FormatXAxisConfig>;
|
|
3870
|
+
/** Table columns config (extra column from lookup) */
|
|
3871
|
+
readonly tableColumnsConfig: _angular_core.Signal<ExtraColumnFromLookupConfig>;
|
|
3872
|
+
/** Timeline header colors config (single object for old format) */
|
|
3873
|
+
readonly timelineHeaderColorsSingle: _angular_core.Signal<TimelineHeaderSingleConfig>;
|
|
3874
|
+
/** Toggle association */
|
|
3875
|
+
readonly toggleAssociation: _angular_core.Signal<boolean>;
|
|
3876
|
+
/** Selected properties resolved from input or config */
|
|
3877
|
+
readonly resolvedSelectedProperties: _angular_core.Signal<any[]>;
|
|
3878
|
+
/** Available properties resolved from input or selected properties */
|
|
3879
|
+
readonly resolvedAvailableProperties: _angular_core.Signal<any[]>;
|
|
3880
|
+
/** Available properties as options */
|
|
3881
|
+
readonly propertyOptions: _angular_core.Signal<{
|
|
3882
|
+
label: any;
|
|
3883
|
+
value: any;
|
|
3884
|
+
}[]>;
|
|
3885
|
+
/** Available translation options (exclude used) */
|
|
3886
|
+
readonly availableTranslationOptions: _angular_core.Signal<{
|
|
3887
|
+
label: any;
|
|
3888
|
+
value: any;
|
|
3889
|
+
}[]>;
|
|
3890
|
+
/** Available color options (exclude used) */
|
|
3891
|
+
readonly availableColorOptions: _angular_core.Signal<{
|
|
3892
|
+
label: any;
|
|
3893
|
+
value: any;
|
|
3894
|
+
}[]>;
|
|
3895
|
+
/** All property options (full list) */
|
|
3896
|
+
readonly allPropertyKeyOptions: _angular_core.Signal<{
|
|
3897
|
+
label: any;
|
|
3898
|
+
value: any;
|
|
3899
|
+
}[]>;
|
|
3900
|
+
/** Ring gauge hidden properties options */
|
|
3901
|
+
readonly ringGaugeHiddenOptions: _angular_core.Signal<{
|
|
3902
|
+
label: any;
|
|
3903
|
+
value: any;
|
|
3904
|
+
}[]>;
|
|
3905
|
+
/** Update style config property */
|
|
3906
|
+
updateStyleConfig(key: keyof StyleConfig | string, value: any): void;
|
|
3907
|
+
/** Update configAsType property */
|
|
3908
|
+
updateConfigAsType(key: string, value: any): void;
|
|
3909
|
+
/** Update nested configAsType property */
|
|
3910
|
+
updateNestedConfigAsType(parentKey: string, key: string, value: any): void;
|
|
3911
|
+
/** Update header card config */
|
|
3912
|
+
updateHeaderCardConfig(key: keyof HeaderCardConfig, value: any): void;
|
|
3913
|
+
/** Update legend settings */
|
|
3914
|
+
updateLegend(key: string, value: unknown): void;
|
|
3915
|
+
/** Update label settings */
|
|
3916
|
+
updateLabel(key: string, value: unknown): void;
|
|
3917
|
+
/** Update label center config */
|
|
3918
|
+
updateLabelCenterConfig(key: string, value: any): void;
|
|
3919
|
+
/** Update label center text */
|
|
3920
|
+
updateLabelCenterText(lang: 'en' | 'ar', value: string): void;
|
|
3921
|
+
/** Update card style config */
|
|
3922
|
+
updateCardStyleConfig(key: keyof CardStyleConfig, value: any): void;
|
|
3923
|
+
/** Update sort data bars config */
|
|
3924
|
+
updateSortDataBarsConfig(key: string, value: any): void;
|
|
3925
|
+
/** Update card info config */
|
|
3926
|
+
updateCardInfoConfig(key: string, value: any): void;
|
|
3927
|
+
/** Update border top visibility */
|
|
3928
|
+
updateBorderTopShow(show: boolean): void;
|
|
3929
|
+
/** Update border top color */
|
|
3930
|
+
updateBorderTopColor(color: string): void;
|
|
3931
|
+
/** Update map type */
|
|
3932
|
+
updateMapType(value: string): void;
|
|
3933
|
+
/** Add a new shadow */
|
|
3934
|
+
addShadow(): void;
|
|
3935
|
+
/** Remove a shadow */
|
|
3936
|
+
removeShadow(index: number): void;
|
|
3937
|
+
/** Update a shadow property */
|
|
3938
|
+
updateShadow(index: number, key: keyof ShadowConfig, value: any): void;
|
|
3939
|
+
/** Add override label */
|
|
3940
|
+
addOverrideLabel(): void;
|
|
3941
|
+
/** Remove override label */
|
|
3942
|
+
removeOverrideLabel(index: number): void;
|
|
3943
|
+
/** Update override label */
|
|
3944
|
+
updateOverrideLabel(index: number, lang: 'en' | 'ar', value: string): void;
|
|
3945
|
+
/** Add a default color */
|
|
3946
|
+
addDefaultColor(color: string): void;
|
|
3947
|
+
/** Remove a default color */
|
|
3948
|
+
removeDefaultColor(index: number): void;
|
|
3949
|
+
/** Update a default color */
|
|
3950
|
+
updateDefaultColor(index: number, color: string): void;
|
|
3951
|
+
trackByIndex(index: number): number;
|
|
3952
|
+
/** Update format config */
|
|
3953
|
+
updateFormatConfig(key: keyof FormatConfig, value: any): void;
|
|
3954
|
+
/** Update table format config */
|
|
3955
|
+
updateTableFormatConfig(key: keyof TableFormatConfig, value: any): void;
|
|
3956
|
+
/** Update table format sort config */
|
|
3957
|
+
updateTableFormatSortConfig(key: 'column' | 'direction', value: string): void;
|
|
3958
|
+
/** Reset table format to default */
|
|
3959
|
+
resetTableFormat(): void;
|
|
3960
|
+
/** Get color condition indexes */
|
|
3961
|
+
getColorConditionIndexes(): number[];
|
|
3962
|
+
/** Check if a bar index is expanded */
|
|
3963
|
+
isColorConditionExpanded(index: number): boolean;
|
|
3964
|
+
/** Toggle bar index expansion */
|
|
3965
|
+
toggleColorConditionExpanded(index: number): void;
|
|
3966
|
+
/** Add bar index for color conditions */
|
|
3967
|
+
addColorConditionIndex(): void;
|
|
3968
|
+
/** Remove bar index */
|
|
3969
|
+
removeColorConditionIndex(index: number): void;
|
|
3970
|
+
/** Add condition to bar index */
|
|
3971
|
+
addColorCondition(index: number): void;
|
|
3972
|
+
/** Remove condition from bar index */
|
|
3973
|
+
removeColorCondition(index: number, conditionIndex: number): void;
|
|
3974
|
+
/** Update color condition */
|
|
3975
|
+
updateColorCondition(index: number, conditionIndex: number, key: keyof ColorCondition, value: any): void;
|
|
3976
|
+
/** Update ring gauge config */
|
|
3977
|
+
updateRingGaugeConfig(key: keyof RingGaugeConfig, value: any): void;
|
|
3978
|
+
/** Update card list hide properties */
|
|
3979
|
+
updateCardListHideProperties(properties: string[]): void;
|
|
3980
|
+
/** Add props config item */
|
|
3981
|
+
addPropsConfigItem(): void;
|
|
3982
|
+
/** Remove props config item */
|
|
3983
|
+
removePropsConfigItem(index: number): void;
|
|
3984
|
+
/** Update props config item */
|
|
3985
|
+
updatePropsConfigItem(index: number, key: keyof PropsConfigAsIndexItem, value: any): void;
|
|
3986
|
+
/** Update order config field */
|
|
3987
|
+
updateOrderConfig(key: keyof OrderConfig, value: any): void;
|
|
3988
|
+
/** Add order item */
|
|
3989
|
+
addOrderItem(): void;
|
|
3990
|
+
/** Remove order item */
|
|
3991
|
+
removeOrderItem(index: number): void;
|
|
3992
|
+
/** Update order item */
|
|
3993
|
+
updateOrderItem(index: number, value: string): void;
|
|
3994
|
+
/** Move order item up */
|
|
3995
|
+
moveOrderItemUp(index: number): void;
|
|
3996
|
+
/** Move order item down */
|
|
3997
|
+
moveOrderItemDown(index: number): void;
|
|
3998
|
+
/** Get property translation keys */
|
|
3999
|
+
getPropertyTranslationKeys(): string[];
|
|
4000
|
+
/** Add property translation */
|
|
4001
|
+
addPropertyTranslation(propertyKey: string): void;
|
|
4002
|
+
/** Remove property translation */
|
|
4003
|
+
removePropertyTranslation(propertyKey: string): void;
|
|
4004
|
+
/** Update property translation */
|
|
4005
|
+
updatePropertyTranslation(propertyKey: string, lang: 'ar' | 'en', value: string): void;
|
|
4006
|
+
/** Get property color keys */
|
|
4007
|
+
getPropertyColorKeys(): string[];
|
|
4008
|
+
/** Add property color */
|
|
4009
|
+
addPropertyColor(propertyKey: string): void;
|
|
4010
|
+
/** Copy property translations */
|
|
4011
|
+
copyPropertyTranslations(): void;
|
|
4012
|
+
/** Toggle property translations paste area */
|
|
4013
|
+
togglePropertyTranslationsPaste(): void;
|
|
4014
|
+
/** Apply pasted property translations */
|
|
4015
|
+
applyPropertyTranslationsPaste(): void;
|
|
4016
|
+
/** Remove property color */
|
|
4017
|
+
removePropertyColor(propertyKey: string): void;
|
|
4018
|
+
/** Update property color */
|
|
4019
|
+
updatePropertyColor(propertyKey: string, selectedKey: string): void;
|
|
4020
|
+
/** Copy property colors */
|
|
4021
|
+
copyPropertyColors(): void;
|
|
4022
|
+
/** Toggle property colors paste area */
|
|
4023
|
+
togglePropertyColorsPaste(): void;
|
|
4024
|
+
/** Apply pasted property colors */
|
|
4025
|
+
applyPropertyColorsPaste(): void;
|
|
4026
|
+
/** Update format X-Axis config */
|
|
4027
|
+
updateFormatXAxisConfig(key: keyof FormatXAxisConfig, value: any): void;
|
|
4028
|
+
/** Update table columns config */
|
|
4029
|
+
updateTableColumnsConfig(key: keyof ExtraColumnFromLookupConfig, value: any): void;
|
|
4030
|
+
/** Update timeline header colors (single config) */
|
|
4031
|
+
updateTimelineHeaderColorSingle(key: 'bgColor' | 'color', value: string): void;
|
|
4032
|
+
/** Update toggle association */
|
|
4033
|
+
updateToggleAssociation(value: boolean): void;
|
|
4034
|
+
/** Selected property for adding translations */
|
|
4035
|
+
readonly selectedPropertyForTranslation: _angular_core.WritableSignal<string>;
|
|
4036
|
+
/** Selected property for adding colors */
|
|
4037
|
+
readonly selectedPropertyForColor: _angular_core.WritableSignal<string>;
|
|
4038
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DisplaySettings, never>;
|
|
4039
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DisplaySettings, "mt-display-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "chartType": { "alias": "chartType"; "required": false; "isSignal": true; }; "availableProperties": { "alias": "availableProperties"; "required": false; "isSignal": true; }; "selectedProperties": { "alias": "selectedProperties"; "required": false; "isSignal": true; }; "lookups": { "alias": "lookups"; "required": false; "isSignal": true; }; }, { "clientConfigChange": "clientConfigChange"; }, never, never, true, never>;
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
interface DefaultControlConfig {
|
|
4043
|
+
title: string;
|
|
4044
|
+
titleFontSize: number;
|
|
4045
|
+
titleColor: string;
|
|
4046
|
+
showSubtitle: boolean;
|
|
4047
|
+
subtitle: string;
|
|
4048
|
+
subtitleFontSize: number;
|
|
4049
|
+
subtitleColor: string;
|
|
4050
|
+
backgroundColor: string;
|
|
4051
|
+
borderColor: string;
|
|
4052
|
+
borderRadius: number;
|
|
4053
|
+
padding: number;
|
|
4054
|
+
}
|
|
4055
|
+
declare class DefaultControlUi implements ControlValueAccessor {
|
|
4056
|
+
readonly config: _angular_core.WritableSignal<DefaultControlConfig>;
|
|
4057
|
+
readonly fontSizeOptions: {
|
|
4058
|
+
label: string;
|
|
4059
|
+
value: number;
|
|
4060
|
+
}[];
|
|
4061
|
+
private onChange;
|
|
4062
|
+
private onTouched;
|
|
4063
|
+
writeValue(value: DefaultControlConfig): void;
|
|
4064
|
+
registerOnChange(fn: (value: DefaultControlConfig) => void): void;
|
|
4065
|
+
registerOnTouched(fn: () => void): void;
|
|
4066
|
+
updateConfig(partial: Partial<DefaultControlConfig>): void;
|
|
4067
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DefaultControlUi, never>;
|
|
4068
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DefaultControlUi, "mt-default-control-ui", never, {}, {}, never, never, true, never>;
|
|
4069
|
+
}
|
|
4070
|
+
|
|
4071
|
+
/**
|
|
4072
|
+
* Pie Chart Configuration - Matches old implementation exactly
|
|
4073
|
+
*/
|
|
4074
|
+
interface PieControlConfig {
|
|
4075
|
+
radius?: number;
|
|
4076
|
+
thickness?: number;
|
|
4077
|
+
padAngle?: number;
|
|
4078
|
+
borderRadius?: number;
|
|
4079
|
+
centerX?: number;
|
|
4080
|
+
centerY?: number;
|
|
4081
|
+
startAngle?: number;
|
|
4082
|
+
endAngle?: number;
|
|
4083
|
+
roseType?: boolean | 'radius' | 'area';
|
|
4084
|
+
useEnhancedLegend?: boolean;
|
|
4085
|
+
legendPosition?: 'left' | 'right' | 'top' | 'bottom';
|
|
4086
|
+
legendVerticalAlign?: 'top' | 'middle' | 'bottom';
|
|
4087
|
+
legendOrientation?: 'horizontal' | 'vertical';
|
|
4088
|
+
legendType?: 'scroll' | 'plain';
|
|
4089
|
+
legendFontSize?: number;
|
|
4090
|
+
legendFontColor?: string;
|
|
4091
|
+
legendIcon?: string;
|
|
4092
|
+
labelFontSize?: number;
|
|
4093
|
+
totalValueFontSize?: number;
|
|
4094
|
+
labelFontColor?: string;
|
|
4095
|
+
labelFormatter?: string;
|
|
4096
|
+
tooltipTrigger?: 'item' | 'axis' | 'none';
|
|
4097
|
+
labelPosition?: string;
|
|
4098
|
+
showLabelLine?: boolean;
|
|
4099
|
+
explode?: number;
|
|
4100
|
+
animation?: boolean;
|
|
4101
|
+
animationDuration?: number;
|
|
4102
|
+
tooltipBackgroundColor?: string;
|
|
4103
|
+
tooltipBorderColor?: string;
|
|
4104
|
+
tooltipBorderWidth?: number;
|
|
4105
|
+
}
|
|
4106
|
+
declare class PieControlUi implements ControlValueAccessor {
|
|
4107
|
+
readonly config: _angular_core.WritableSignal<PieControlConfig>;
|
|
4108
|
+
readonly roseTypeOptions: ({
|
|
4109
|
+
label: string;
|
|
4110
|
+
value: boolean;
|
|
4111
|
+
} | {
|
|
4112
|
+
label: string;
|
|
4113
|
+
value: string;
|
|
4114
|
+
})[];
|
|
4115
|
+
readonly labelPositionOptions: {
|
|
4116
|
+
label: string;
|
|
4117
|
+
value: string;
|
|
4118
|
+
}[];
|
|
4119
|
+
readonly legendPositionOptions: {
|
|
4120
|
+
label: string;
|
|
4121
|
+
value: string;
|
|
4122
|
+
}[];
|
|
4123
|
+
readonly legendVerticalAlignOptions: {
|
|
4124
|
+
label: string;
|
|
4125
|
+
value: string;
|
|
4126
|
+
}[];
|
|
4127
|
+
readonly legendOrientationOptions: {
|
|
4128
|
+
label: string;
|
|
4129
|
+
value: string;
|
|
4130
|
+
}[];
|
|
4131
|
+
readonly legendTypeOptions: {
|
|
4132
|
+
label: string;
|
|
4133
|
+
value: string;
|
|
4134
|
+
}[];
|
|
4135
|
+
readonly legendIconOptions: {
|
|
4136
|
+
label: string;
|
|
4137
|
+
value: string;
|
|
4138
|
+
}[];
|
|
4139
|
+
readonly labelFormatterOptions: {
|
|
4140
|
+
label: string;
|
|
4141
|
+
value: string;
|
|
4142
|
+
}[];
|
|
4143
|
+
readonly tooltipTriggerOptions: {
|
|
4144
|
+
label: string;
|
|
4145
|
+
value: string;
|
|
4146
|
+
}[];
|
|
4147
|
+
readonly fontSizeOptions: {
|
|
4148
|
+
label: string;
|
|
4149
|
+
value: number;
|
|
4150
|
+
}[];
|
|
4151
|
+
private onChange;
|
|
4152
|
+
private onTouched;
|
|
4153
|
+
writeValue(value: PieControlConfig): void;
|
|
4154
|
+
registerOnChange(fn: (value: PieControlConfig) => void): void;
|
|
4155
|
+
registerOnTouched(fn: () => void): void;
|
|
4156
|
+
updateConfig(partial: Partial<PieControlConfig>): void;
|
|
4157
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieControlUi, never>;
|
|
4158
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieControlUi, "mt-pie-control-ui", never, {}, {}, never, never, true, never>;
|
|
4159
|
+
}
|
|
4160
|
+
|
|
4161
|
+
interface BarControlConfig {
|
|
4162
|
+
barWidth?: number;
|
|
4163
|
+
barGap?: number;
|
|
4164
|
+
barCategoryGap?: number;
|
|
4165
|
+
barType?: 'bar' | 'line';
|
|
4166
|
+
xAxisShow?: boolean;
|
|
4167
|
+
yAxisShow?: boolean;
|
|
4168
|
+
yAxisFormat?: string;
|
|
4169
|
+
showCurrency?: boolean;
|
|
4170
|
+
xAxisFontSize?: number;
|
|
3454
4171
|
yAxisFontSize?: number;
|
|
3455
4172
|
xAxisFontColor?: string;
|
|
3456
4173
|
yAxisFontColor?: string;
|
|
@@ -3540,926 +4257,449 @@ interface StackBarControlConfig {
|
|
|
3540
4257
|
isStacked?: boolean;
|
|
3541
4258
|
borderRadius?: string | number;
|
|
3542
4259
|
}
|
|
3543
|
-
declare class StackBarControlUi implements ControlValueAccessor {
|
|
3544
|
-
readonly config: _angular_core.WritableSignal<StackBarControlConfig>;
|
|
3545
|
-
readonly legendPositionYOptions: {
|
|
3546
|
-
label: string;
|
|
3547
|
-
value: string;
|
|
3548
|
-
}[];
|
|
3549
|
-
readonly legendPositionXOptions: {
|
|
3550
|
-
label: string;
|
|
3551
|
-
value: string;
|
|
3552
|
-
}[];
|
|
3553
|
-
readonly barTypeOptions: {
|
|
3554
|
-
label: string;
|
|
3555
|
-
value: string;
|
|
3556
|
-
}[];
|
|
3557
|
-
readonly yAxisFormatOptions: ({
|
|
3558
|
-
label: string;
|
|
3559
|
-
value: null;
|
|
3560
|
-
} | {
|
|
3561
|
-
label: string;
|
|
3562
|
-
value: string;
|
|
3563
|
-
})[];
|
|
3564
|
-
readonly fontSizeOptions: {
|
|
3565
|
-
label: string;
|
|
3566
|
-
value: number;
|
|
3567
|
-
}[];
|
|
3568
|
-
private onChange;
|
|
3569
|
-
private onTouched;
|
|
3570
|
-
writeValue(value: StackBarControlConfig): void;
|
|
3571
|
-
registerOnChange(fn: (value: StackBarControlConfig) => void): void;
|
|
3572
|
-
registerOnTouched(fn: () => void): void;
|
|
3573
|
-
updateConfig(partial: Partial<StackBarControlConfig>): void;
|
|
3574
|
-
onYAxisFormatChange(formatType: string | null): void;
|
|
3575
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StackBarControlUi, never>;
|
|
3576
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StackBarControlUi, "mt-stack-bar-control-ui", never, {}, {}, never, never, true, never>;
|
|
3577
|
-
}
|
|
3578
|
-
|
|
3579
|
-
/**
|
|
3580
|
-
* Manage Item Component (Drawer)
|
|
3581
|
-
*
|
|
3582
|
-
* Main drawer component for configuring chart/widget items.
|
|
3583
|
-
* Uses tabs to organize different configuration sections.
|
|
3584
|
-
* Provides ManageItemService for state sharing between child components.
|
|
3585
|
-
*/
|
|
3586
|
-
declare class ManageItem implements OnInit {
|
|
3587
|
-
private _dashboardService;
|
|
3588
|
-
private _manageItemService;
|
|
3589
|
-
private _dialogConfig;
|
|
3590
|
-
readonly modal: ModalService;
|
|
3591
|
-
ref: ModalRef<any> | null;
|
|
3592
|
-
/** Input data from drawer - supports both input() and dialog data */
|
|
3593
|
-
readonly data: _angular_core.InputSignal<{
|
|
3594
|
-
chart?: DashboardChartItem;
|
|
3595
|
-
isDialog?: boolean;
|
|
3596
|
-
isNew?: boolean;
|
|
3597
|
-
chartType?: ChartTypeConfig;
|
|
3598
|
-
defaultSize?: {
|
|
3599
|
-
cols: number;
|
|
3600
|
-
rows: number;
|
|
3601
|
-
};
|
|
3602
|
-
} | null>;
|
|
3603
|
-
/** Whether chart type is pre-selected (hides type selection) */
|
|
3604
|
-
readonly hasPreselectedType: _angular_core.Signal<boolean>;
|
|
3605
|
-
/** Tab options with translation keys */
|
|
3606
|
-
readonly tabOptions: _angular_core.WritableSignal<{
|
|
3607
|
-
label: string;
|
|
3608
|
-
value: string;
|
|
3609
|
-
icon: string;
|
|
3610
|
-
}[]>;
|
|
3611
|
-
/** Active tab */
|
|
3612
|
-
readonly activeTab: _angular_core.WritableSignal<string>;
|
|
3613
|
-
/** Chart configuration being edited - from service */
|
|
3614
|
-
readonly config: _angular_core.Signal<ItemConfig | null>;
|
|
3615
|
-
/** Chart type ID - from service */
|
|
3616
|
-
readonly chartTypeId: _angular_core.Signal<string>;
|
|
3617
|
-
/** Selected chart type info */
|
|
3618
|
-
readonly selectedChartType: _angular_core.WritableSignal<ChartTypeConfig | null>;
|
|
3619
|
-
/** Is this a dialog item */
|
|
3620
|
-
readonly isDialog: _angular_core.Signal<any>;
|
|
3621
|
-
/** Is this a new item */
|
|
3622
|
-
readonly isNew: _angular_core.Signal<any>;
|
|
3623
|
-
/** Saving state */
|
|
3624
|
-
readonly saving: _angular_core.WritableSignal<boolean>;
|
|
3625
|
-
/** Validation state */
|
|
3626
|
-
readonly isValid: _angular_core.Signal<boolean>;
|
|
3627
|
-
/** Initialize from dialog data effect */
|
|
3628
|
-
private _initEffect;
|
|
3629
|
-
ngOnInit(): void;
|
|
3630
|
-
save(): void;
|
|
3631
|
-
cancel(): void;
|
|
3632
|
-
/** Update config from child components */
|
|
3633
|
-
onConfigUpdate(partialConfig: Partial<ItemConfig>): void;
|
|
3634
|
-
/** Update service config */
|
|
3635
|
-
onServiceConfigUpdate(partialConfig: Partial<ItemConfig['serviceConfig']>): void;
|
|
3636
|
-
/** Update client config */
|
|
3637
|
-
onClientConfigUpdate(partialConfig: Partial<ItemConfig['clientConfig']>): void;
|
|
3638
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ManageItem, never>;
|
|
3639
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageItem, "mt-manage-item", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3640
|
-
}
|
|
3641
|
-
|
|
3642
|
-
/**
|
|
3643
|
-
* General Settings Component
|
|
3644
|
-
*
|
|
3645
|
-
* Handles general chart configuration:
|
|
3646
|
-
* - Chart type selection (visual grid)
|
|
3647
|
-
* - Title (English & Arabic)
|
|
3648
|
-
* - Component name
|
|
3649
|
-
*/
|
|
3650
|
-
declare class GeneralSettings {
|
|
3651
|
-
private transloco;
|
|
3652
|
-
/** Current configuration */
|
|
3653
|
-
readonly config: _angular_core.InputSignal<ItemConfig | null>;
|
|
3654
|
-
/** Is dialog item (hides chart type selection) */
|
|
3655
|
-
readonly isDialog: _angular_core.InputSignal<boolean>;
|
|
3656
|
-
/** Whether chart type is pre-selected (hides chart type selection) */
|
|
3657
|
-
readonly hasPreselectedType: _angular_core.InputSignal<boolean>;
|
|
3658
|
-
/** Emit config changes */
|
|
3659
|
-
readonly configChange: _angular_core.OutputEmitterRef<Partial<ItemConfig>>;
|
|
3660
|
-
/** Emit chart type selection */
|
|
3661
|
-
readonly chartTypeChange: _angular_core.OutputEmitterRef<ChartTypeConfig>;
|
|
3662
|
-
/** All available chart types */
|
|
3663
|
-
readonly chartTypes: _angular_core.WritableSignal<ChartTypeConfig[]>;
|
|
3664
|
-
/** Chart types filtered (not hidden) */
|
|
3665
|
-
readonly chartTypesFiltered: _angular_core.Signal<ChartTypeConfig[]>;
|
|
3666
|
-
/** Grouped chart types by category */
|
|
3667
|
-
readonly chartTypesByCategory: _angular_core.Signal<{
|
|
3668
|
-
card: ChartTypeConfig[];
|
|
3669
|
-
chart: ChartTypeConfig[];
|
|
3670
|
-
table: ChartTypeConfig[];
|
|
3671
|
-
special: ChartTypeConfig[];
|
|
3672
|
-
layout: ChartTypeConfig[];
|
|
3673
|
-
}>;
|
|
3674
|
-
/** Currently selected chart type */
|
|
3675
|
-
readonly selectedChartType: _angular_core.Signal<ChartTypeConfig | null | undefined>;
|
|
3676
|
-
/**
|
|
3677
|
-
* Select a chart type
|
|
3678
|
-
*/
|
|
3679
|
-
selectChartType(type: ChartTypeConfig): void;
|
|
3680
|
-
/**
|
|
3681
|
-
* Check if a chart type is selected
|
|
3682
|
-
*/
|
|
3683
|
-
isTypeSelected(type: ChartTypeConfig): boolean;
|
|
3684
|
-
/**
|
|
3685
|
-
* Update title field
|
|
3686
|
-
*/
|
|
3687
|
-
updateTitle(lang: 'en' | 'ar', value: string): void;
|
|
3688
|
-
/**
|
|
3689
|
-
* Update component name
|
|
3690
|
-
*/
|
|
3691
|
-
updateComponentName(value: string): void;
|
|
3692
|
-
/**
|
|
3693
|
-
* Get category label
|
|
3694
|
-
*/
|
|
3695
|
-
getCategoryLabel(category: string): string;
|
|
3696
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GeneralSettings, never>;
|
|
3697
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GeneralSettings, "mt-general-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "isDialog": { "alias": "isDialog"; "required": false; "isSignal": true; }; "hasPreselectedType": { "alias": "hasPreselectedType"; "required": false; "isSignal": true; }; }, { "configChange": "configChange"; "chartTypeChange": "chartTypeChange"; }, never, never, true, never>;
|
|
3698
|
-
}
|
|
3699
|
-
|
|
3700
|
-
/**
|
|
3701
|
-
* Selection module info for linking - includes properties for each selection
|
|
3702
|
-
*/
|
|
3703
|
-
interface SelectionModule {
|
|
3704
|
-
selectionId: number;
|
|
3705
|
-
selector: string;
|
|
3706
|
-
moduleType: string;
|
|
3707
|
-
moduleTypeName: string;
|
|
3708
|
-
moduleName: string;
|
|
3709
|
-
properties: IProperty[];
|
|
3710
|
-
}
|
|
3711
|
-
|
|
3712
|
-
/**
|
|
3713
|
-
* Chart Query Series
|
|
3714
|
-
*/
|
|
3715
|
-
interface ChartQuerySeries {
|
|
3716
|
-
key: string;
|
|
3717
|
-
color: string;
|
|
3718
|
-
valueProperty: string | null;
|
|
3719
|
-
aggregateFunction: string;
|
|
3720
|
-
groupByProperties: string[];
|
|
3721
|
-
autoStack: boolean;
|
|
3722
|
-
stackProperties: string[];
|
|
3723
|
-
autoStackByProperty: string | null;
|
|
3724
|
-
filters: ChartQuerySeriesFilter[];
|
|
3725
|
-
extraProperties: string[];
|
|
3726
|
-
formula?: string;
|
|
3727
|
-
showAdvancedSettings?: boolean;
|
|
3728
|
-
barType?: 'bar' | 'line' | 'lineAccumulated';
|
|
3729
|
-
}
|
|
3730
|
-
/**
|
|
3731
|
-
* Chart Query Series Filter
|
|
3732
|
-
*/
|
|
3733
|
-
interface ChartQuerySeriesFilter {
|
|
3734
|
-
propertyKey: string | null;
|
|
3735
|
-
value: any;
|
|
3736
|
-
operator: string;
|
|
3737
|
-
}
|
|
3738
|
-
/**
|
|
3739
|
-
* Chart Query Configuration
|
|
3740
|
-
*/
|
|
3741
|
-
interface ChartQuery {
|
|
3742
|
-
categoryProperty: string;
|
|
3743
|
-
series: ChartQuerySeries[];
|
|
3744
|
-
}
|
|
3745
|
-
|
|
3746
|
-
/** Properties grouped by module for select with [group]="true" */
|
|
3747
|
-
interface PropertyGroup {
|
|
3748
|
-
label: string;
|
|
3749
|
-
items: IProperty[];
|
|
3750
|
-
}
|
|
3751
|
-
/**
|
|
3752
|
-
* Aggregation Property Configuration
|
|
3753
|
-
*/
|
|
3754
|
-
interface AggregationProperty {
|
|
3755
|
-
propertyKey: string | null;
|
|
3756
|
-
aggregateFunction: string;
|
|
3757
|
-
alias?: string;
|
|
3758
|
-
}
|
|
3759
|
-
/**
|
|
3760
|
-
* Table Query Configuration Value
|
|
3761
|
-
*/
|
|
3762
|
-
interface TableQueryValue {
|
|
3763
|
-
selectedProperties: string[];
|
|
3764
|
-
AggregationProperties: AggregationProperty[];
|
|
3765
|
-
lookupProperty: string;
|
|
3766
|
-
PivotProperties: string[];
|
|
3767
|
-
}
|
|
3768
|
-
/**
|
|
3769
|
-
* Table Query Component
|
|
3770
|
-
*
|
|
3771
|
-
* Handles query configuration for table/dialog chart types.
|
|
3772
|
-
* Implements ControlValueAccessor for form integration.
|
|
3773
|
-
*/
|
|
3774
|
-
declare class TableQuery implements ControlValueAccessor {
|
|
3775
|
-
private fb;
|
|
3776
|
-
/** Available properties (flat) */
|
|
3777
|
-
readonly propertiesFlat: _angular_core.InputSignal<IProperty[]>;
|
|
3778
|
-
/** Properties grouped by module for grouped select */
|
|
3779
|
-
readonly propertiesGrouped: _angular_core.InputSignal<PropertyGroup[]>;
|
|
3780
|
-
/** Whether to use grouped select (when multiple modules) */
|
|
3781
|
-
readonly useGroupedSelect: _angular_core.Signal<boolean>;
|
|
3782
|
-
/** Options config for multi-select */
|
|
3783
|
-
readonly optionsConfig: _angular_core.Signal<{
|
|
3784
|
-
optionValue: string;
|
|
3785
|
-
optionLabel: string;
|
|
3786
|
-
items: IProperty[];
|
|
3787
|
-
}>;
|
|
3788
|
-
/** Aggregate function options */
|
|
3789
|
-
readonly aggregateFunctions: {
|
|
4260
|
+
declare class StackBarControlUi implements ControlValueAccessor {
|
|
4261
|
+
readonly config: _angular_core.WritableSignal<StackBarControlConfig>;
|
|
4262
|
+
readonly legendPositionYOptions: {
|
|
4263
|
+
label: string;
|
|
3790
4264
|
value: string;
|
|
4265
|
+
}[];
|
|
4266
|
+
readonly legendPositionXOptions: {
|
|
3791
4267
|
label: string;
|
|
4268
|
+
value: string;
|
|
4269
|
+
}[];
|
|
4270
|
+
readonly barTypeOptions: {
|
|
4271
|
+
label: string;
|
|
4272
|
+
value: string;
|
|
4273
|
+
}[];
|
|
4274
|
+
readonly yAxisFormatOptions: ({
|
|
4275
|
+
label: string;
|
|
4276
|
+
value: null;
|
|
4277
|
+
} | {
|
|
4278
|
+
label: string;
|
|
4279
|
+
value: string;
|
|
4280
|
+
})[];
|
|
4281
|
+
readonly fontSizeOptions: {
|
|
4282
|
+
label: string;
|
|
4283
|
+
value: number;
|
|
3792
4284
|
}[];
|
|
3793
|
-
/** Main form */
|
|
3794
|
-
readonly queryForm: FormGroup<{
|
|
3795
|
-
selectedProperties: _angular_forms.FormControl<string[] | null>;
|
|
3796
|
-
AggregationProperties: FormArray<FormGroup<any>>;
|
|
3797
|
-
lookupProperty: _angular_forms.FormControl<string | null>;
|
|
3798
|
-
PivotProperties: _angular_forms.FormControl<string[] | null>;
|
|
3799
|
-
}>;
|
|
3800
|
-
/** Disabled state */
|
|
3801
|
-
disabled: boolean;
|
|
3802
|
-
/** ControlValueAccessor callbacks */
|
|
3803
4285
|
private onChange;
|
|
3804
4286
|
private onTouched;
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
registerOnChange(fn: (value: TableQueryValue) => void): void;
|
|
4287
|
+
writeValue(value: StackBarControlConfig): void;
|
|
4288
|
+
registerOnChange(fn: (value: StackBarControlConfig) => void): void;
|
|
3808
4289
|
registerOnTouched(fn: () => void): void;
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
addAggregation(): void;
|
|
3814
|
-
removeAggregation(index: number): void;
|
|
3815
|
-
trackByIndex(index: number): number;
|
|
3816
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableQuery, never>;
|
|
3817
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableQuery, "mt-table-query", never, { "propertiesFlat": { "alias": "propertiesFlat"; "required": false; "isSignal": true; }; "propertiesGrouped": { "alias": "propertiesGrouped"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4290
|
+
updateConfig(partial: Partial<StackBarControlConfig>): void;
|
|
4291
|
+
onYAxisFormatChange(formatType: string | null): void;
|
|
4292
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StackBarControlUi, never>;
|
|
4293
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StackBarControlUi, "mt-stack-bar-control-ui", never, {}, {}, never, never, true, never>;
|
|
3818
4294
|
}
|
|
3819
4295
|
|
|
3820
|
-
/** Module properties response */
|
|
3821
|
-
interface ModuleProperties {
|
|
3822
|
-
/** Module type (e.g., "Level") */
|
|
3823
|
-
moduleName: string;
|
|
3824
|
-
/** Display name for the specific selector (e.g., "Projects" for "Level:7") */
|
|
3825
|
-
selectorName: string | null;
|
|
3826
|
-
/** Full selector (e.g., "Level:7") */
|
|
3827
|
-
selector: string;
|
|
3828
|
-
moduleId?: number;
|
|
3829
|
-
properties: IProperty[];
|
|
3830
|
-
}
|
|
3831
|
-
/**
|
|
3832
|
-
* Query component type based on chart type and component name
|
|
3833
|
-
*/
|
|
3834
|
-
type QueryComponentType = 'general' | 'table' | 'timeline' | 'timelineMultiLevel' | 'map' | 'splitter' | 'properties' | 'snapshot' | 'phaseGate' | 'repeater' | 'none';
|
|
3835
4296
|
/**
|
|
3836
|
-
*
|
|
4297
|
+
* Manage Item Component (Drawer)
|
|
3837
4298
|
*
|
|
3838
|
-
*
|
|
3839
|
-
*
|
|
3840
|
-
*
|
|
3841
|
-
* - Query configuration based on chart type (GeneralQuery, TableQuery, etc.)
|
|
4299
|
+
* Main drawer component for configuring chart/widget items.
|
|
4300
|
+
* Uses tabs to organize different configuration sections.
|
|
4301
|
+
* Provides ManageItemService for state sharing between child components.
|
|
3842
4302
|
*/
|
|
3843
|
-
declare class
|
|
3844
|
-
private
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
/**
|
|
3850
|
-
readonly
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
3864
|
-
/**
|
|
3865
|
-
* Selection modules for source link configuration
|
|
3866
|
-
* Built from selections with their loaded module info
|
|
3867
|
-
*/
|
|
3868
|
-
readonly selectionModules: _angular_core.Signal<SelectionModule[]>;
|
|
3869
|
-
/** Query component type based on chart type and component name */
|
|
3870
|
-
readonly queryComponentType: _angular_core.Signal<QueryComponentType>;
|
|
3871
|
-
/** Loading states */
|
|
3872
|
-
readonly loadingProperties: _angular_core.WritableSignal<boolean>;
|
|
3873
|
-
/** Tab state: 'selection' or 'customApi' */
|
|
3874
|
-
readonly activeTab: _angular_core.WritableSignal<"selection" | "customApi">;
|
|
3875
|
-
/** Tab options for display */
|
|
3876
|
-
readonly tabOptions: {
|
|
3877
|
-
id: string;
|
|
4303
|
+
declare class ManageItem implements OnInit {
|
|
4304
|
+
private _dashboardService;
|
|
4305
|
+
private _manageItemService;
|
|
4306
|
+
private _dialogConfig;
|
|
4307
|
+
readonly modal: ModalService;
|
|
4308
|
+
ref: ModalRef<any> | null;
|
|
4309
|
+
/** Input data from drawer - supports both input() and dialog data */
|
|
4310
|
+
readonly data: _angular_core.InputSignal<{
|
|
4311
|
+
chart?: DashboardChartItem;
|
|
4312
|
+
isDialog?: boolean;
|
|
4313
|
+
isNew?: boolean;
|
|
4314
|
+
chartType?: ChartTypeConfig;
|
|
4315
|
+
defaultSize?: {
|
|
4316
|
+
cols: number;
|
|
4317
|
+
rows: number;
|
|
4318
|
+
};
|
|
4319
|
+
} | null>;
|
|
4320
|
+
/** Whether chart type is pre-selected (hides type selection) */
|
|
4321
|
+
readonly hasPreselectedType: _angular_core.Signal<boolean>;
|
|
4322
|
+
/** Tab options with translation keys */
|
|
4323
|
+
readonly tabOptions: _angular_core.WritableSignal<{
|
|
3878
4324
|
label: string;
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
readonly customApi: _angular_core.WritableSignal<CustomApi | null>;
|
|
3882
|
-
/** Internal selections state */
|
|
3883
|
-
readonly selections: _angular_core.WritableSignal<ISelection[]>;
|
|
3884
|
-
readonly sourceLinks: _angular_core.WritableSignal<SourceLink[]>;
|
|
3885
|
-
readonly query: _angular_core.WritableSignal<any>;
|
|
3886
|
-
readonly isNormalized: _angular_core.WritableSignal<boolean>;
|
|
3887
|
-
readonly groupByMultiple: _angular_core.WritableSignal<string[]>;
|
|
3888
|
-
/** Repeater dashboard selection */
|
|
3889
|
-
readonly repeaterDashboardId: _angular_core.WritableSignal<number | null>;
|
|
3890
|
-
readonly availableDashboards: _angular_core.WritableSignal<{
|
|
3891
|
-
id: number;
|
|
3892
|
-
name: string;
|
|
4325
|
+
value: string;
|
|
4326
|
+
icon: string;
|
|
3893
4327
|
}[]>;
|
|
3894
|
-
/**
|
|
3895
|
-
readonly
|
|
3896
|
-
/**
|
|
3897
|
-
readonly
|
|
3898
|
-
/**
|
|
3899
|
-
readonly
|
|
3900
|
-
/**
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
/**
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
onPropertiesQueryChange(query: any): void;
|
|
3958
|
-
/**
|
|
3959
|
-
* Handle snapshot query change
|
|
3960
|
-
*/
|
|
3961
|
-
onSnapshotQueryChange(query: any): void;
|
|
3962
|
-
/**
|
|
3963
|
-
* Handle groupByMultiple change
|
|
3964
|
-
*/
|
|
3965
|
-
onGroupByMultipleChange(values: string[]): void;
|
|
4328
|
+
/** Active tab */
|
|
4329
|
+
readonly activeTab: _angular_core.WritableSignal<string>;
|
|
4330
|
+
/** Chart configuration being edited - from service */
|
|
4331
|
+
readonly config: _angular_core.Signal<ItemConfig | null>;
|
|
4332
|
+
/** Chart type ID - from service */
|
|
4333
|
+
readonly chartTypeId: _angular_core.Signal<string>;
|
|
4334
|
+
/** Selected chart type info */
|
|
4335
|
+
readonly selectedChartType: _angular_core.WritableSignal<ChartTypeConfig | null>;
|
|
4336
|
+
/** Is this a dialog item */
|
|
4337
|
+
readonly isDialog: _angular_core.Signal<any>;
|
|
4338
|
+
/** Is this a new item */
|
|
4339
|
+
readonly isNew: _angular_core.Signal<any>;
|
|
4340
|
+
/** Saving state */
|
|
4341
|
+
readonly saving: _angular_core.WritableSignal<boolean>;
|
|
4342
|
+
/** Validation state */
|
|
4343
|
+
readonly isValid: _angular_core.Signal<boolean>;
|
|
4344
|
+
ngOnInit(): void;
|
|
4345
|
+
save(): void;
|
|
4346
|
+
cancel(): void;
|
|
4347
|
+
/** Update config from child components */
|
|
4348
|
+
onConfigUpdate(partialConfig: Partial<ItemConfig>): void;
|
|
4349
|
+
/** Update service config */
|
|
4350
|
+
onServiceConfigUpdate(partialConfig: Partial<ItemConfig['serviceConfig']>): void;
|
|
4351
|
+
/** Update client config */
|
|
4352
|
+
onClientConfigUpdate(partialConfig: Partial<ItemConfig['clientConfig']>): void;
|
|
4353
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ManageItem, never>;
|
|
4354
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageItem, "mt-manage-item", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4355
|
+
}
|
|
4356
|
+
|
|
4357
|
+
/**
|
|
4358
|
+
* General Settings Component
|
|
4359
|
+
*
|
|
4360
|
+
* Handles general chart configuration:
|
|
4361
|
+
* - Chart type selection (visual grid)
|
|
4362
|
+
* - Title (English & Arabic)
|
|
4363
|
+
* - Component name
|
|
4364
|
+
*/
|
|
4365
|
+
declare class GeneralSettings {
|
|
4366
|
+
private transloco;
|
|
4367
|
+
/** Current configuration */
|
|
4368
|
+
readonly config: _angular_core.InputSignal<ItemConfig | null>;
|
|
4369
|
+
/** Is dialog item (hides chart type selection) */
|
|
4370
|
+
readonly isDialog: _angular_core.InputSignal<boolean>;
|
|
4371
|
+
/** Whether chart type is pre-selected (hides chart type selection) */
|
|
4372
|
+
readonly hasPreselectedType: _angular_core.InputSignal<boolean>;
|
|
4373
|
+
/** Emit config changes */
|
|
4374
|
+
readonly configChange: _angular_core.OutputEmitterRef<Partial<ItemConfig>>;
|
|
4375
|
+
/** Emit chart type selection */
|
|
4376
|
+
readonly chartTypeChange: _angular_core.OutputEmitterRef<ChartTypeConfig>;
|
|
4377
|
+
/** All available chart types */
|
|
4378
|
+
readonly chartTypes: _angular_core.WritableSignal<ChartTypeConfig[]>;
|
|
4379
|
+
/** Chart types filtered (not hidden) */
|
|
4380
|
+
readonly chartTypesFiltered: _angular_core.Signal<ChartTypeConfig[]>;
|
|
4381
|
+
/** Grouped chart types by category */
|
|
4382
|
+
readonly chartTypesByCategory: _angular_core.Signal<{
|
|
4383
|
+
card: ChartTypeConfig[];
|
|
4384
|
+
chart: ChartTypeConfig[];
|
|
4385
|
+
table: ChartTypeConfig[];
|
|
4386
|
+
special: ChartTypeConfig[];
|
|
4387
|
+
layout: ChartTypeConfig[];
|
|
4388
|
+
}>;
|
|
4389
|
+
/** Currently selected chart type */
|
|
4390
|
+
readonly selectedChartType: _angular_core.Signal<ChartTypeConfig | null | undefined>;
|
|
3966
4391
|
/**
|
|
3967
|
-
*
|
|
4392
|
+
* Select a chart type
|
|
3968
4393
|
*/
|
|
3969
|
-
|
|
4394
|
+
selectChartType(type: ChartTypeConfig): void;
|
|
3970
4395
|
/**
|
|
3971
|
-
*
|
|
4396
|
+
* Check if a chart type is selected
|
|
3972
4397
|
*/
|
|
3973
|
-
|
|
4398
|
+
isTypeSelected(type: ChartTypeConfig): boolean;
|
|
3974
4399
|
/**
|
|
3975
|
-
*
|
|
4400
|
+
* Update title field
|
|
3976
4401
|
*/
|
|
3977
|
-
|
|
4402
|
+
updateTitle(lang: 'en' | 'ar', value: string): void;
|
|
3978
4403
|
/**
|
|
3979
|
-
*
|
|
4404
|
+
* Update component name
|
|
3980
4405
|
*/
|
|
3981
|
-
|
|
4406
|
+
updateComponentName(value: string): void;
|
|
3982
4407
|
/**
|
|
3983
|
-
* Get
|
|
4408
|
+
* Get category label
|
|
3984
4409
|
*/
|
|
3985
|
-
|
|
3986
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<
|
|
3987
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<
|
|
4410
|
+
getCategoryLabel(category: string): string;
|
|
4411
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<GeneralSettings, never>;
|
|
4412
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<GeneralSettings, "mt-general-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "isDialog": { "alias": "isDialog"; "required": false; "isSignal": true; }; "hasPreselectedType": { "alias": "hasPreselectedType"; "required": false; "isSignal": true; }; }, { "configChange": "configChange"; "chartTypeChange": "chartTypeChange"; }, never, never, true, never>;
|
|
3988
4413
|
}
|
|
3989
4414
|
|
|
3990
|
-
/**
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
en: string;
|
|
4001
|
-
ar: string;
|
|
4002
|
-
}
|
|
4003
|
-
/** Card style configuration */
|
|
4004
|
-
interface CardStyleConfig {
|
|
4005
|
-
borderRadius?: number;
|
|
4006
|
-
backgroundColor?: string;
|
|
4007
|
-
shadows?: ShadowConfig[];
|
|
4008
|
-
}
|
|
4009
|
-
/** Header card configuration */
|
|
4010
|
-
interface HeaderCardConfig {
|
|
4011
|
-
isHeaderCentered?: boolean;
|
|
4012
|
-
isHeaderHidden?: boolean;
|
|
4013
|
-
headerColor?: string;
|
|
4014
|
-
headerFontSize?: number;
|
|
4015
|
-
}
|
|
4016
|
-
/** Label center configuration */
|
|
4017
|
-
interface LabelCenterConfig {
|
|
4018
|
-
hide?: boolean;
|
|
4019
|
-
text?: {
|
|
4020
|
-
en?: string;
|
|
4021
|
-
ar?: string;
|
|
4022
|
-
};
|
|
4023
|
-
}
|
|
4024
|
-
/** Sort data bars configuration */
|
|
4025
|
-
interface SortDataBarsConfig {
|
|
4026
|
-
enable?: boolean;
|
|
4027
|
-
sortBy?: string;
|
|
4028
|
-
order?: 'asc' | 'desc' | string;
|
|
4029
|
-
direction?: 'asc' | 'desc' | string;
|
|
4030
|
-
}
|
|
4031
|
-
/** Card info configuration */
|
|
4032
|
-
interface CardInfoConfig {
|
|
4033
|
-
show?: boolean;
|
|
4034
|
-
value?: any;
|
|
4035
|
-
type?: string;
|
|
4036
|
-
}
|
|
4037
|
-
/** Format configuration */
|
|
4038
|
-
interface FormatConfig {
|
|
4039
|
-
type?: string | null;
|
|
4040
|
-
showCurrency?: boolean;
|
|
4041
|
-
handleLang?: boolean;
|
|
4042
|
-
customText?: string | null;
|
|
4043
|
-
customDateFormat?: string | null;
|
|
4044
|
-
showCurrencyTooltip?: boolean;
|
|
4045
|
-
hideSuffixes?: boolean;
|
|
4046
|
-
}
|
|
4047
|
-
/** Table format configuration */
|
|
4048
|
-
interface TableFormatConfig {
|
|
4049
|
-
thTextColor?: string | null;
|
|
4050
|
-
thBackgroundColor?: string | null;
|
|
4051
|
-
tdTextColor?: string | null;
|
|
4052
|
-
groupBackgroundColor?: string | null;
|
|
4053
|
-
groupTextColor?: string | null;
|
|
4054
|
-
thFontBold?: boolean;
|
|
4055
|
-
tdFontBold?: boolean;
|
|
4056
|
-
thFontSize?: number | null;
|
|
4057
|
-
tdFontSize?: number | null;
|
|
4058
|
-
hideTableSubheader?: boolean;
|
|
4059
|
-
disableCurrencyFormat?: boolean;
|
|
4060
|
-
showPercentageAsProgressBar?: boolean;
|
|
4061
|
-
showPercentageStatus?: boolean;
|
|
4062
|
-
hiddenColumns?: string[];
|
|
4063
|
-
sortConfig?: {
|
|
4064
|
-
column: string;
|
|
4065
|
-
direction: 'asc' | 'desc';
|
|
4066
|
-
};
|
|
4415
|
+
/**
|
|
4416
|
+
* Selection module info for linking - includes properties for each selection
|
|
4417
|
+
*/
|
|
4418
|
+
interface SelectionModule {
|
|
4419
|
+
selectionId: number;
|
|
4420
|
+
selector: string;
|
|
4421
|
+
moduleType: string;
|
|
4422
|
+
moduleTypeName: string;
|
|
4423
|
+
moduleName: string;
|
|
4424
|
+
properties: IProperty[];
|
|
4067
4425
|
}
|
|
4068
|
-
|
|
4069
|
-
|
|
4426
|
+
|
|
4427
|
+
/**
|
|
4428
|
+
* Chart Query Series
|
|
4429
|
+
*/
|
|
4430
|
+
interface ChartQuerySeries {
|
|
4431
|
+
key: string;
|
|
4070
4432
|
color: string;
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
interface RingGaugeConfig {
|
|
4083
|
-
centerProperty?: string;
|
|
4084
|
-
statusProperty?: string;
|
|
4085
|
-
hiddenProperties?: string[];
|
|
4086
|
-
}
|
|
4087
|
-
/** Order configuration */
|
|
4088
|
-
interface OrderConfig {
|
|
4089
|
-
order?: string[];
|
|
4090
|
-
operation?: string;
|
|
4091
|
-
orderBy?: string;
|
|
4092
|
-
}
|
|
4093
|
-
/** Card list configuration */
|
|
4094
|
-
interface CardListConfig {
|
|
4095
|
-
hideProperties?: string[];
|
|
4096
|
-
}
|
|
4097
|
-
/** Property translation entry */
|
|
4098
|
-
interface PropertyTranslation {
|
|
4099
|
-
ar: string;
|
|
4100
|
-
en: string;
|
|
4433
|
+
valueProperty: string | null;
|
|
4434
|
+
aggregateFunction: string;
|
|
4435
|
+
groupByProperties: string[];
|
|
4436
|
+
autoStack: boolean;
|
|
4437
|
+
stackProperties: string[];
|
|
4438
|
+
autoStackByProperty: string | null;
|
|
4439
|
+
filters: ChartQuerySeriesFilter[];
|
|
4440
|
+
extraProperties: string[];
|
|
4441
|
+
formula?: string;
|
|
4442
|
+
showAdvancedSettings?: boolean;
|
|
4443
|
+
barType?: 'bar' | 'line' | 'lineAccumulated';
|
|
4101
4444
|
}
|
|
4102
|
-
/**
|
|
4103
|
-
|
|
4104
|
-
|
|
4445
|
+
/**
|
|
4446
|
+
* Chart Query Series Filter
|
|
4447
|
+
*/
|
|
4448
|
+
interface ChartQuerySeriesFilter {
|
|
4449
|
+
propertyKey: string | null;
|
|
4450
|
+
value: any;
|
|
4451
|
+
operator: string;
|
|
4105
4452
|
}
|
|
4106
|
-
/**
|
|
4107
|
-
|
|
4108
|
-
|
|
4453
|
+
/**
|
|
4454
|
+
* Chart Query Configuration
|
|
4455
|
+
*/
|
|
4456
|
+
interface ChartQuery {
|
|
4457
|
+
categoryProperty: string;
|
|
4458
|
+
series: ChartQuerySeries[];
|
|
4109
4459
|
}
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4460
|
+
|
|
4461
|
+
/** Properties grouped by module for select with [group]="true" */
|
|
4462
|
+
interface PropertyGroup {
|
|
4463
|
+
label: string;
|
|
4464
|
+
items: IProperty[];
|
|
4113
4465
|
}
|
|
4114
|
-
/**
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4466
|
+
/**
|
|
4467
|
+
* Aggregation Property Configuration
|
|
4468
|
+
*/
|
|
4469
|
+
interface AggregationProperty {
|
|
4470
|
+
propertyKey: string | null;
|
|
4471
|
+
aggregateFunction: string;
|
|
4472
|
+
alias?: string;
|
|
4120
4473
|
}
|
|
4121
|
-
/**
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
|
|
4474
|
+
/**
|
|
4475
|
+
* Table Query Configuration Value
|
|
4476
|
+
*/
|
|
4477
|
+
interface TableQueryValue {
|
|
4478
|
+
selectedProperties: string[];
|
|
4479
|
+
AggregationProperties: AggregationProperty[];
|
|
4480
|
+
lookupProperty: string;
|
|
4481
|
+
PivotProperties: string[];
|
|
4125
4482
|
}
|
|
4126
|
-
/**
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4483
|
+
/**
|
|
4484
|
+
* Table Query Component
|
|
4485
|
+
*
|
|
4486
|
+
* Handles query configuration for table/dialog chart types.
|
|
4487
|
+
* Implements ControlValueAccessor for form integration.
|
|
4488
|
+
*/
|
|
4489
|
+
declare class TableQuery implements ControlValueAccessor {
|
|
4490
|
+
private fb;
|
|
4491
|
+
/** Available properties (flat) */
|
|
4492
|
+
readonly propertiesFlat: _angular_core.InputSignal<IProperty[]>;
|
|
4493
|
+
/** Properties grouped by module for grouped select */
|
|
4494
|
+
readonly propertiesGrouped: _angular_core.InputSignal<PropertyGroup[]>;
|
|
4495
|
+
/** Whether to use grouped select (when multiple modules) */
|
|
4496
|
+
readonly useGroupedSelect: _angular_core.Signal<boolean>;
|
|
4497
|
+
/** Options config for multi-select */
|
|
4498
|
+
readonly optionsConfig: _angular_core.Signal<{
|
|
4499
|
+
optionValue: string;
|
|
4500
|
+
optionLabel: string;
|
|
4501
|
+
items: IProperty[];
|
|
4502
|
+
}>;
|
|
4503
|
+
/** Aggregate function options */
|
|
4504
|
+
readonly aggregateFunctions: {
|
|
4505
|
+
value: string;
|
|
4506
|
+
label: string;
|
|
4507
|
+
}[];
|
|
4508
|
+
/** Main form */
|
|
4509
|
+
readonly queryForm: FormGroup<{
|
|
4510
|
+
selectedProperties: _angular_forms.FormControl<string[] | null>;
|
|
4511
|
+
AggregationProperties: FormArray<FormGroup<any>>;
|
|
4512
|
+
lookupProperty: _angular_forms.FormControl<string | null>;
|
|
4513
|
+
PivotProperties: _angular_forms.FormControl<string[] | null>;
|
|
4514
|
+
}>;
|
|
4515
|
+
/** Disabled state */
|
|
4516
|
+
disabled: boolean;
|
|
4517
|
+
/** ControlValueAccessor callbacks */
|
|
4518
|
+
private onChange;
|
|
4519
|
+
private onTouched;
|
|
4520
|
+
constructor();
|
|
4521
|
+
writeValue(value: TableQueryValue): void;
|
|
4522
|
+
registerOnChange(fn: (value: TableQueryValue) => void): void;
|
|
4523
|
+
registerOnTouched(fn: () => void): void;
|
|
4524
|
+
setDisabledState(isDisabled: boolean): void;
|
|
4525
|
+
validate(): ValidationErrors | null;
|
|
4526
|
+
get aggregationArray(): FormArray;
|
|
4527
|
+
createAggregationFormGroup(agg?: Partial<AggregationProperty>): FormGroup;
|
|
4528
|
+
addAggregation(): void;
|
|
4529
|
+
removeAggregation(index: number): void;
|
|
4530
|
+
trackByIndex(index: number): number;
|
|
4531
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableQuery, never>;
|
|
4532
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableQuery, "mt-table-query", never, { "propertiesFlat": { "alias": "propertiesFlat"; "required": false; "isSignal": true; }; "propertiesGrouped": { "alias": "propertiesGrouped"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4132
4533
|
}
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4534
|
+
|
|
4535
|
+
/** Module properties response */
|
|
4536
|
+
interface ModuleProperties {
|
|
4537
|
+
/** Module type (e.g., "Level") */
|
|
4538
|
+
moduleName: string;
|
|
4539
|
+
/** Display name for the specific selector (e.g., "Projects" for "Level:7") */
|
|
4540
|
+
selectorName: string | null;
|
|
4541
|
+
/** Full selector (e.g., "Level:7") */
|
|
4542
|
+
selector: string;
|
|
4543
|
+
moduleId?: number;
|
|
4544
|
+
properties: IProperty[];
|
|
4137
4545
|
}
|
|
4138
4546
|
/**
|
|
4139
|
-
*
|
|
4547
|
+
* Query component type based on chart type and component name
|
|
4548
|
+
*/
|
|
4549
|
+
type QueryComponentType = 'general' | 'table' | 'timeline' | 'timelineMultiLevel' | 'map' | 'splitter' | 'properties' | 'snapshot' | 'phaseGate' | 'repeater' | 'none';
|
|
4550
|
+
/**
|
|
4551
|
+
* Data Source Settings Component
|
|
4140
4552
|
*
|
|
4141
|
-
* Comprehensive
|
|
4142
|
-
*
|
|
4553
|
+
* Comprehensive data source configuration:
|
|
4554
|
+
* - Module/Data source selection via SelectionConfiguration
|
|
4555
|
+
* - Source links for multiple selections via SourceLinkConfiguration
|
|
4556
|
+
* - Query configuration based on chart type (GeneralQuery, TableQuery, etc.)
|
|
4143
4557
|
*/
|
|
4144
|
-
declare class
|
|
4558
|
+
declare class DataSourceSettings {
|
|
4559
|
+
private dashboardService;
|
|
4145
4560
|
/** Current configuration */
|
|
4146
4561
|
readonly config: _angular_core.InputSignal<ItemConfig | null>;
|
|
4147
4562
|
/** Selected chart type */
|
|
4148
4563
|
readonly chartType: _angular_core.InputSignal<ChartTypeConfig | null>;
|
|
4149
|
-
/**
|
|
4150
|
-
readonly
|
|
4151
|
-
/**
|
|
4152
|
-
readonly
|
|
4153
|
-
/**
|
|
4154
|
-
readonly
|
|
4155
|
-
/** Emit client config changes */
|
|
4156
|
-
readonly clientConfigChange: _angular_core.OutputEmitterRef<Partial<ClientConfig>>;
|
|
4157
|
-
/** Color condition expansion state */
|
|
4158
|
-
readonly colorConditionExpanded: _angular_core.WritableSignal<Record<number, boolean>>;
|
|
4159
|
-
/** Property translations paste state */
|
|
4160
|
-
readonly showPropertyTranslationsPaste: _angular_core.WritableSignal<boolean>;
|
|
4161
|
-
readonly propertyTranslationsPasteText: _angular_core.WritableSignal<string>;
|
|
4162
|
-
readonly propertyTranslationsPasteError: _angular_core.WritableSignal<string>;
|
|
4163
|
-
/** Property colors paste state */
|
|
4164
|
-
readonly showPropertyColorsPaste: _angular_core.WritableSignal<boolean>;
|
|
4165
|
-
readonly propertyColorsPasteText: _angular_core.WritableSignal<string>;
|
|
4166
|
-
readonly propertyColorsPasteError: _angular_core.WritableSignal<string>;
|
|
4564
|
+
/** Emit service config changes */
|
|
4565
|
+
readonly serviceConfigChange: _angular_core.OutputEmitterRef<Partial<ServiceConfig>>;
|
|
4566
|
+
/** Properties grouped by module */
|
|
4567
|
+
readonly modulesProperties: _angular_core.WritableSignal<ModuleProperties[]>;
|
|
4568
|
+
/** Flattened properties list with grouping info */
|
|
4569
|
+
readonly propertiesFlat: _angular_core.Signal<IPropertyWithGroup[]>;
|
|
4167
4570
|
/**
|
|
4168
|
-
*
|
|
4169
|
-
*
|
|
4571
|
+
* Properties grouped for select field with [group]="true"
|
|
4572
|
+
* Structure: [{ label: 'Projects', items: [{ name, key }, ...] }, ...]
|
|
4573
|
+
* Uses selectorName for display (e.g., "Projects" instead of "Level")
|
|
4170
4574
|
*/
|
|
4171
|
-
|
|
4172
|
-
/** Computed fields to show based on chart type */
|
|
4173
|
-
readonly fieldsToShow: _angular_core.Signal<string>;
|
|
4174
|
-
/** Check if a field should be shown */
|
|
4175
|
-
shouldShowField(fieldName: string): boolean;
|
|
4176
|
-
/** Position options */
|
|
4177
|
-
readonly positionOptions: {
|
|
4178
|
-
label: string;
|
|
4179
|
-
value: string;
|
|
4180
|
-
}[];
|
|
4181
|
-
/** Legend position options */
|
|
4182
|
-
readonly legendPositionOptions: {
|
|
4183
|
-
label: string;
|
|
4184
|
-
value: string;
|
|
4185
|
-
}[];
|
|
4186
|
-
/** Legend icon type options */
|
|
4187
|
-
readonly legendIconOptions: {
|
|
4188
|
-
label: string;
|
|
4189
|
-
value: string;
|
|
4190
|
-
}[];
|
|
4191
|
-
/** Label position options */
|
|
4192
|
-
readonly labelPositionOptions: {
|
|
4193
|
-
label: string;
|
|
4194
|
-
value: string;
|
|
4195
|
-
}[];
|
|
4196
|
-
/** Map options */
|
|
4197
|
-
readonly mapOptions: {
|
|
4198
|
-
label: string;
|
|
4199
|
-
value: string;
|
|
4200
|
-
}[];
|
|
4201
|
-
/** Order type options */
|
|
4202
|
-
readonly orderTypeOptions: {
|
|
4203
|
-
label: string;
|
|
4204
|
-
value: string;
|
|
4205
|
-
}[];
|
|
4206
|
-
/** Order operation options */
|
|
4207
|
-
readonly orderOperationOptions: {
|
|
4208
|
-
label: string;
|
|
4209
|
-
value: string;
|
|
4210
|
-
}[];
|
|
4211
|
-
/** Border options for props config */
|
|
4212
|
-
readonly borderOptions: {
|
|
4213
|
-
label: string;
|
|
4214
|
-
value: string;
|
|
4215
|
-
}[];
|
|
4216
|
-
/** Color condition type options */
|
|
4217
|
-
readonly colorConditionTypeOptions: {
|
|
4218
|
-
label: string;
|
|
4219
|
-
value: string;
|
|
4220
|
-
}[];
|
|
4221
|
-
/** Format type options */
|
|
4222
|
-
readonly formatTypeOptions: ({
|
|
4223
|
-
label: string;
|
|
4224
|
-
value: null;
|
|
4225
|
-
} | {
|
|
4226
|
-
label: string;
|
|
4227
|
-
value: string;
|
|
4228
|
-
})[];
|
|
4229
|
-
/** Format X-Axis type options */
|
|
4230
|
-
readonly formatXAxisTypeOptions: ({
|
|
4231
|
-
label: string;
|
|
4232
|
-
value: null;
|
|
4233
|
-
} | {
|
|
4575
|
+
readonly propertiesGrouped: _angular_core.Signal<{
|
|
4234
4576
|
label: string;
|
|
4235
|
-
|
|
4236
|
-
})[];
|
|
4237
|
-
/** Default color palette */
|
|
4238
|
-
readonly defaultColorPalette: string[];
|
|
4239
|
-
/** Current style config */
|
|
4240
|
-
readonly styleConfig: _angular_core.Signal<StyleConfig>;
|
|
4241
|
-
/** Current config as type */
|
|
4242
|
-
readonly configAsType: _angular_core.Signal<{
|
|
4243
|
-
[key: string]: any;
|
|
4244
|
-
icon?: string;
|
|
4245
|
-
breadcrumb?: any[];
|
|
4246
|
-
}>;
|
|
4247
|
-
/** Current card info */
|
|
4248
|
-
readonly cardInfo: _angular_core.Signal<CardInfoConfig>;
|
|
4249
|
-
/** Current header card config */
|
|
4250
|
-
readonly headerCardConfig: _angular_core.Signal<HeaderCardConfig>;
|
|
4251
|
-
/** Current card style config */
|
|
4252
|
-
readonly cardStyleConfig: _angular_core.Signal<CardStyleConfig>;
|
|
4253
|
-
/** Current label config */
|
|
4254
|
-
readonly labelConfig: _angular_core.Signal<{
|
|
4255
|
-
show?: boolean;
|
|
4256
|
-
showTotalInTop?: boolean;
|
|
4257
|
-
position?: string;
|
|
4258
|
-
}>;
|
|
4259
|
-
/** Current legend config */
|
|
4260
|
-
readonly legendConfig: _angular_core.Signal<{
|
|
4261
|
-
show?: boolean;
|
|
4262
|
-
position?: string;
|
|
4263
|
-
iconType?: string;
|
|
4264
|
-
}>;
|
|
4265
|
-
/** Current label center config */
|
|
4266
|
-
readonly labelCenterConfig: _angular_core.Signal<LabelCenterConfig>;
|
|
4267
|
-
/** Current sort data bars config */
|
|
4268
|
-
readonly sortDataBarsConfig: _angular_core.Signal<SortDataBarsConfig>;
|
|
4269
|
-
/** Current override labels */
|
|
4270
|
-
readonly overrideLabels: _angular_core.Signal<OverrideLabel[]>;
|
|
4271
|
-
/** Current default colors */
|
|
4272
|
-
readonly defaultColors: _angular_core.Signal<string[]>;
|
|
4273
|
-
/** Current order config */
|
|
4274
|
-
readonly orderConfig: _angular_core.Signal<any>;
|
|
4275
|
-
/** Current format config */
|
|
4276
|
-
readonly formatConfig: _angular_core.Signal<FormatConfig>;
|
|
4277
|
-
/** Current table format config */
|
|
4278
|
-
readonly tableFormatConfig: _angular_core.Signal<TableFormatConfig>;
|
|
4279
|
-
/** Current color by condition */
|
|
4280
|
-
readonly colorByCondition: _angular_core.Signal<ColorConditionsByIndex>;
|
|
4281
|
-
/** Current ring gauge config */
|
|
4282
|
-
readonly ringGaugeConfig: _angular_core.Signal<RingGaugeConfig>;
|
|
4283
|
-
/** Current card list config */
|
|
4284
|
-
readonly cardListConfig: _angular_core.Signal<CardListConfig>;
|
|
4285
|
-
/** Props config as index */
|
|
4286
|
-
readonly propsConfigAsIndex: _angular_core.Signal<PropsConfigAsIndexItem[]>;
|
|
4287
|
-
/** Property translations map */
|
|
4288
|
-
readonly propertyTranslations: _angular_core.Signal<PropertyTranslationsMap>;
|
|
4289
|
-
/** Property colors map */
|
|
4290
|
-
readonly propertyColors: _angular_core.Signal<PropertyColorsMap>;
|
|
4291
|
-
/** Format X-Axis config */
|
|
4292
|
-
readonly formatXAxisConfig: _angular_core.Signal<FormatXAxisConfig>;
|
|
4293
|
-
/** Table columns config (extra column from lookup) */
|
|
4294
|
-
readonly tableColumnsConfig: _angular_core.Signal<ExtraColumnFromLookupConfig>;
|
|
4295
|
-
/** Timeline header colors config (single object for old format) */
|
|
4296
|
-
readonly timelineHeaderColorsSingle: _angular_core.Signal<TimelineHeaderSingleConfig>;
|
|
4297
|
-
/** Toggle association */
|
|
4298
|
-
readonly toggleAssociation: _angular_core.Signal<boolean>;
|
|
4299
|
-
/** Selected properties resolved from input or config */
|
|
4300
|
-
readonly resolvedSelectedProperties: _angular_core.Signal<any[]>;
|
|
4301
|
-
/** Available properties resolved from input or selected properties */
|
|
4302
|
-
readonly resolvedAvailableProperties: _angular_core.Signal<any[]>;
|
|
4303
|
-
/** Available properties as options */
|
|
4304
|
-
readonly propertyOptions: _angular_core.Signal<{
|
|
4305
|
-
label: any;
|
|
4306
|
-
value: any;
|
|
4307
|
-
}[]>;
|
|
4308
|
-
/** Available translation options (exclude used) */
|
|
4309
|
-
readonly availableTranslationOptions: _angular_core.Signal<{
|
|
4310
|
-
label: any;
|
|
4311
|
-
value: any;
|
|
4312
|
-
}[]>;
|
|
4313
|
-
/** Available color options (exclude used) */
|
|
4314
|
-
readonly availableColorOptions: _angular_core.Signal<{
|
|
4315
|
-
label: any;
|
|
4316
|
-
value: any;
|
|
4317
|
-
}[]>;
|
|
4318
|
-
/** All property options (full list) */
|
|
4319
|
-
readonly allPropertyKeyOptions: _angular_core.Signal<{
|
|
4320
|
-
label: any;
|
|
4321
|
-
value: any;
|
|
4577
|
+
items: IProperty[];
|
|
4322
4578
|
}[]>;
|
|
4323
|
-
/**
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4579
|
+
/**
|
|
4580
|
+
* Selection modules for source link configuration
|
|
4581
|
+
* Built from selections with their loaded module info
|
|
4582
|
+
*/
|
|
4583
|
+
readonly selectionModules: _angular_core.Signal<SelectionModule[]>;
|
|
4584
|
+
/** Query component type based on chart type and component name */
|
|
4585
|
+
readonly queryComponentType: _angular_core.Signal<QueryComponentType>;
|
|
4586
|
+
/** Loading states */
|
|
4587
|
+
readonly loadingProperties: _angular_core.WritableSignal<boolean>;
|
|
4588
|
+
/** Tab state: 'selection' or 'customApi' */
|
|
4589
|
+
readonly activeTab: _angular_core.WritableSignal<"selection" | "customApi">;
|
|
4590
|
+
/** Tab options for display */
|
|
4591
|
+
readonly tabOptions: {
|
|
4592
|
+
id: string;
|
|
4593
|
+
label: string;
|
|
4594
|
+
}[];
|
|
4595
|
+
/** Custom API configuration */
|
|
4596
|
+
readonly customApi: _angular_core.WritableSignal<CustomApi | null>;
|
|
4597
|
+
/** Internal selections state */
|
|
4598
|
+
readonly selections: _angular_core.WritableSignal<ISelection[]>;
|
|
4599
|
+
readonly sourceLinks: _angular_core.WritableSignal<SourceLink[]>;
|
|
4600
|
+
readonly query: _angular_core.WritableSignal<any>;
|
|
4601
|
+
readonly isNormalized: _angular_core.WritableSignal<boolean>;
|
|
4602
|
+
readonly groupByMultiple: _angular_core.WritableSignal<string[]>;
|
|
4603
|
+
/** Repeater dashboard selection */
|
|
4604
|
+
readonly repeaterDashboardId: _angular_core.WritableSignal<number | null>;
|
|
4605
|
+
readonly availableDashboards: _angular_core.WritableSignal<{
|
|
4606
|
+
id: number;
|
|
4607
|
+
name: string;
|
|
4327
4608
|
}[]>;
|
|
4328
|
-
/**
|
|
4329
|
-
|
|
4330
|
-
/**
|
|
4331
|
-
|
|
4332
|
-
/**
|
|
4333
|
-
|
|
4334
|
-
/**
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
/**
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
/**
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
/**
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
/**
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
/**
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
/**
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
/**
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
getPropertyTranslationKeys(): string[];
|
|
4423
|
-
/** Add property translation */
|
|
4424
|
-
addPropertyTranslation(propertyKey: string): void;
|
|
4425
|
-
/** Remove property translation */
|
|
4426
|
-
removePropertyTranslation(propertyKey: string): void;
|
|
4427
|
-
/** Update property translation */
|
|
4428
|
-
updatePropertyTranslation(propertyKey: string, lang: 'ar' | 'en', value: string): void;
|
|
4429
|
-
/** Get property color keys */
|
|
4430
|
-
getPropertyColorKeys(): string[];
|
|
4431
|
-
/** Add property color */
|
|
4432
|
-
addPropertyColor(propertyKey: string): void;
|
|
4433
|
-
/** Copy property translations */
|
|
4434
|
-
copyPropertyTranslations(): void;
|
|
4435
|
-
/** Toggle property translations paste area */
|
|
4436
|
-
togglePropertyTranslationsPaste(): void;
|
|
4437
|
-
/** Apply pasted property translations */
|
|
4438
|
-
applyPropertyTranslationsPaste(): void;
|
|
4439
|
-
/** Remove property color */
|
|
4440
|
-
removePropertyColor(propertyKey: string): void;
|
|
4441
|
-
/** Update property color */
|
|
4442
|
-
updatePropertyColor(propertyKey: string, selectedKey: string): void;
|
|
4443
|
-
/** Copy property colors */
|
|
4444
|
-
copyPropertyColors(): void;
|
|
4445
|
-
/** Toggle property colors paste area */
|
|
4446
|
-
togglePropertyColorsPaste(): void;
|
|
4447
|
-
/** Apply pasted property colors */
|
|
4448
|
-
applyPropertyColorsPaste(): void;
|
|
4449
|
-
/** Update format X-Axis config */
|
|
4450
|
-
updateFormatXAxisConfig(key: keyof FormatXAxisConfig, value: any): void;
|
|
4451
|
-
/** Update table columns config */
|
|
4452
|
-
updateTableColumnsConfig(key: keyof ExtraColumnFromLookupConfig, value: any): void;
|
|
4453
|
-
/** Update timeline header colors (single config) */
|
|
4454
|
-
updateTimelineHeaderColorSingle(key: 'bgColor' | 'color', value: string): void;
|
|
4455
|
-
/** Update toggle association */
|
|
4456
|
-
updateToggleAssociation(value: boolean): void;
|
|
4457
|
-
/** Selected property for adding translations */
|
|
4458
|
-
readonly selectedPropertyForTranslation: _angular_core.WritableSignal<string>;
|
|
4459
|
-
/** Selected property for adding colors */
|
|
4460
|
-
readonly selectedPropertyForColor: _angular_core.WritableSignal<string>;
|
|
4461
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DisplaySettings, never>;
|
|
4462
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DisplaySettings, "mt-display-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "chartType": { "alias": "chartType"; "required": false; "isSignal": true; }; "availableProperties": { "alias": "availableProperties"; "required": false; "isSignal": true; }; "selectedProperties": { "alias": "selectedProperties"; "required": false; "isSignal": true; }; "lookups": { "alias": "lookups"; "required": false; "isSignal": true; }; }, { "clientConfigChange": "clientConfigChange"; }, never, never, true, never>;
|
|
4609
|
+
/** Show source links when multiple selections exist */
|
|
4610
|
+
readonly showSourceLinks: _angular_core.Signal<boolean>;
|
|
4611
|
+
/** Hide selection config for layout, snapshot, phaseGate types (they don't need data source selection) */
|
|
4612
|
+
readonly hideSelectionConfig: _angular_core.Signal<boolean>;
|
|
4613
|
+
/** Show groupByMultiple for table queries (non-report mode) */
|
|
4614
|
+
readonly showGroupByMultiple: _angular_core.Signal<boolean>;
|
|
4615
|
+
/**
|
|
4616
|
+
* Derived signal: Extract module keys from selections for change detection
|
|
4617
|
+
* Only changes when actual selectors change, not on every selection update
|
|
4618
|
+
*/
|
|
4619
|
+
private readonly moduleKeysSignature;
|
|
4620
|
+
/** Track last loaded module signature to prevent duplicate requests */
|
|
4621
|
+
private lastLoadedSignature;
|
|
4622
|
+
constructor();
|
|
4623
|
+
/**
|
|
4624
|
+
* Load properties for all selections using bulk API
|
|
4625
|
+
* Single POST request to /metadata/modules/properties
|
|
4626
|
+
* Enriches response with selectorName from tree data
|
|
4627
|
+
*/
|
|
4628
|
+
loadPropertiesForSelections(selections: ISelection[]): void;
|
|
4629
|
+
/**
|
|
4630
|
+
* Handle selection changes
|
|
4631
|
+
*/
|
|
4632
|
+
onSelectionsChange(selections: ISelection[]): void;
|
|
4633
|
+
/**
|
|
4634
|
+
* Handle module change - update selections, effect handles property loading
|
|
4635
|
+
*/
|
|
4636
|
+
onModuleChange(event: {
|
|
4637
|
+
selectionId: number;
|
|
4638
|
+
selector: string;
|
|
4639
|
+
selectorName?: string | null;
|
|
4640
|
+
}): void;
|
|
4641
|
+
/**
|
|
4642
|
+
* Extract module type from selector (e.g., "Level:7" -> "Level")
|
|
4643
|
+
*/
|
|
4644
|
+
private extractModuleTypeFromSelector;
|
|
4645
|
+
/**
|
|
4646
|
+
* Handle source links change
|
|
4647
|
+
*/
|
|
4648
|
+
onSourceLinksChange(links: SourceLink[]): void;
|
|
4649
|
+
/**
|
|
4650
|
+
* Handle query change (general query)
|
|
4651
|
+
*/
|
|
4652
|
+
onQueryChange(query: ChartQuery): void;
|
|
4653
|
+
/**
|
|
4654
|
+
* Handle table query change
|
|
4655
|
+
*/
|
|
4656
|
+
onTableQueryChange(query: TableQuery): void;
|
|
4657
|
+
/**
|
|
4658
|
+
* Handle timeline query change
|
|
4659
|
+
*/
|
|
4660
|
+
onTimelineQueryChange(query: any): void;
|
|
4661
|
+
/**
|
|
4662
|
+
* Handle map query change
|
|
4663
|
+
*/
|
|
4664
|
+
onMapQueryChange(query: any): void;
|
|
4665
|
+
/**
|
|
4666
|
+
* Handle splitter query change
|
|
4667
|
+
*/
|
|
4668
|
+
onSplitterQueryChange(query: any): void;
|
|
4669
|
+
/**
|
|
4670
|
+
* Handle properties query change
|
|
4671
|
+
*/
|
|
4672
|
+
onPropertiesQueryChange(query: any): void;
|
|
4673
|
+
/**
|
|
4674
|
+
* Handle snapshot query change
|
|
4675
|
+
*/
|
|
4676
|
+
onSnapshotQueryChange(query: any): void;
|
|
4677
|
+
/**
|
|
4678
|
+
* Handle groupByMultiple change
|
|
4679
|
+
*/
|
|
4680
|
+
onGroupByMultipleChange(values: string[]): void;
|
|
4681
|
+
/**
|
|
4682
|
+
* Handle repeater dashboard selection
|
|
4683
|
+
*/
|
|
4684
|
+
onRepeaterDashboardChange(dashboardId: number): void;
|
|
4685
|
+
/**
|
|
4686
|
+
* Handle isNormalized change
|
|
4687
|
+
*/
|
|
4688
|
+
onIsNormalizedChange(value: boolean): void;
|
|
4689
|
+
/**
|
|
4690
|
+
* Handle tab change
|
|
4691
|
+
*/
|
|
4692
|
+
onTabChange(tabId: string): void;
|
|
4693
|
+
/**
|
|
4694
|
+
* Handle custom API change
|
|
4695
|
+
*/
|
|
4696
|
+
onCustomApiChange(customApi: CustomApi | null): void;
|
|
4697
|
+
/**
|
|
4698
|
+
* Get chart type id for query component
|
|
4699
|
+
*/
|
|
4700
|
+
getChartTypeId(): string;
|
|
4701
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataSourceSettings, never>;
|
|
4702
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataSourceSettings, "mt-data-source-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "chartType": { "alias": "chartType"; "required": false; "isSignal": true; }; }, { "serviceConfigChange": "serviceConfigChange"; }, never, never, true, never>;
|
|
4463
4703
|
}
|
|
4464
4704
|
|
|
4465
4705
|
/** Action type option */
|
|
@@ -4573,10 +4813,6 @@ declare class ActionsSettings {
|
|
|
4573
4813
|
/**
|
|
4574
4814
|
* Track by action id for ngFor
|
|
4575
4815
|
*/
|
|
4576
|
-
trackByActionId(_index: number, action: ActionConfig): string;
|
|
4577
|
-
/**
|
|
4578
|
-
* Track by index helper
|
|
4579
|
-
*/
|
|
4580
4816
|
trackByIndex(index: number): number;
|
|
4581
4817
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionsSettings, never>;
|
|
4582
4818
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionsSettings, "mt-actions-settings", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; }, { "clientConfigChange": "clientConfigChange"; }, never, never, true, never>;
|
|
@@ -4630,5 +4866,5 @@ declare class GetChartActionsPipe implements PipeTransform {
|
|
|
4630
4866
|
*/
|
|
4631
4867
|
declare function cloneDeep<T>(obj: T): T;
|
|
4632
4868
|
|
|
4633
|
-
export { ActionsSettings, BarChartHandler, BarControlUi, CHART_TYPES, CardContentComponent, CardFilterComponent, ChartCardComponent, ChartDataService, ChartSettingsDrawer, ChartViewer, ComparisonChartHandler, DashboardBuilder, DashboardBuilderService, DashboardItem, DashboardItemStoreService, DashboardList, DashboardStoreService, DashboardViewer, DataSourceSettings, DefaultControlUi, DisplaySettings, DynamicFiltersConfig, EChartComponent, EntityInfoComponent, EntityPreviewCardComponent, FilterByGroupPipe, GaugeChartHandler, GeneralSettings, GetChartActionsPipe, HTTPMethod, HeaderCardComponent, LevelCardHandler, LevelCardListComponent, LineChartHandler, ListStatisticCardComponent, ManageBreadcrumb, ManageFilterOnPage, ManageItem, ManageItemService, ManagePages, MapChartHandler, OverviewCardHandler, PhaseGateStepperHandler, PieChartHandler, PieControlUi, RingGaugeChartHandler, SPlusChartHandler, SkeletonCardComponent, SnapshotHandler, SplitterChartHandler, StackBarChartHandler, StackBarControlUi, StatisticCardComponent, TableCardComponent, TableViewHandler, TimelineHandler, addCommasToNumber, axisFormatters, cloneDeep, createAxisFormatter, createTooltipFormatter, dynamicReorder, dynamicTextReplace, formatCurrency, formatDate, formatNumber, formatPercentage, formatValue, formatWordsUnderBar, generalConfiguration, getColorFromConditions, getLanguageCode, getLocalizedTitle, getNestedData, groupDatesByYearAndMonth, handleFilterForCard, handleFilterForSnapshot, handleFiltersForCustom, isMobilePlatform, sortChartData, sortDataTableView, switchAllKeysSmall, switchAllKeysToLower };
|
|
4634
|
-
export type { ActionConfig, ApiResponse, BarChartData, BreadcrumbItem, BulkLinkChartRequest, BulkLinkChartResponse, BulkPropertiesRequest, BulkPropertiesResponse, BulkPropertiesResponseItem, BulkPropertyRequestItem, CardBorderStyleConfig, CardStyleConfig$1 as CardStyleConfig, ChartActionEvent, ChartActionsContext, ChartData, ChartDataHandled, ChartLabel, ChartLinkConfiguration, ChartTypeConfig, ClientConfig, ComponentType, CustomApi, DashboardBuilderData, DashboardChartItem, DashboardDialogItem, DashboardItemStore, DashboardListEvent, DashboardPage, DisplayConfig, EChartSeriesItem, ExcelSheet, FilterConfig, FilterOption, GroupedModuleOption, HandleAction, HeaderCardConfig$1 as HeaderCardConfig, IModule, IModuleType, IProperty, IPropertyWithGroup, ISelection, ItemConfig, LevelCardData, LevelCardProperty, LinkChartRequest, LocalizedName, ModuleItem, ModuleSelectOption, ModuleType, ModuleValue, ModulesTreeRequest, ModulesTreeResponse, PhaseGateProperty, PhaseGateStep, PieChartData, PropertiesResponse, PropertyItem$1 as PropertyItem, PropertyItemOption, PropertyItemsResponse, QuickManageType, Report, ReportChartLink, ReportDashboardConfig, ReportExcelConfig, ReportType, ReportUrl, RequestType, SelectionFilter, ServiceConfig, ServiceItem, SourceLink, StatisticCardData, StyleConfig, TableColumn$1 as TableColumn, TableViewData, TimelineData, TimelineItem, UnlinkChartRequest };
|
|
4869
|
+
export { ActionsSettings, BarChartHandler, BarControlUi, CHART_TYPES, CardContentComponent, CardFilterComponent, CardInfoComponent, ChartCardComponent, ChartDataService, ChartSettingsDrawer, ChartViewer, ComparisonChartHandler, DashboardBuilder, DashboardBuilderService, DashboardItem, DashboardItemStoreService, DashboardList, DashboardStoreService, DashboardViewer, DataSourceSettings, DefaultControlUi, DisplaySettings, DynamicFiltersComponent, DynamicFiltersConfig, EChartComponent, EntityInfoComponent, EntityPreviewCardComponent, FilterByGroupPipe, GaugeChartHandler, GeneralSettings, GetChartActionsPipe, HTTPMethod, HeaderCardComponent, LevelCardHandler, LevelCardListComponent, LineChartHandler, ListStatisticCardComponent, ManageBreadcrumb, ManageFilterOnPage, ManageItem, ManageItemService, ManagePages, MapChartHandler, OverviewCardHandler, PhaseGateStepperHandler, PieChartHandler, PieControlUi, RingGaugeChartHandler, SPlusChartHandler, SkeletonCardComponent, SnapshotHandler, SplitterChartHandler, StackBarChartHandler, StackBarControlUi, StaticFiltersComponent, StatisticCardComponent, TableCardComponent, TableViewHandler, TimelineHandler, addCommasToNumber, axisFormatters, cloneDeep, createAxisFormatter, createTooltipFormatter, dynamicReorder, dynamicTextReplace, formatCurrency, formatDate, formatNumber, formatPercentage, formatValue, formatWordsUnderBar, formatXAxis, generalConfiguration, getColorFromConditions, getLanguageCode, getLocalizedTitle, getNestedData, groupDatesByYearAndMonth, handleFilterForCard, handleFilterForSnapshot, handleFiltersForCustom, isMobilePlatform, sortChartData, sortDataTableView, switchAllKeysSmall, switchAllKeysToLower };
|
|
4870
|
+
export type { ActionConfig, ApiResponse, BarChartData, BreadcrumbItem, BulkLinkChartRequest, BulkLinkChartResponse, BulkPropertiesRequest, BulkPropertiesResponse, BulkPropertiesResponseItem, BulkPropertyRequestItem, CardBorderStyleConfig, CardInfoConfig$1 as CardInfoConfig, CardStyleConfig$1 as CardStyleConfig, ChartActionEvent, ChartActionsContext, ChartData, ChartDataHandled, ChartLabel, ChartLinkConfiguration, ChartTypeConfig, ClientConfig, ComponentType, CustomApi, DashboardBuilderData, DashboardChartItem, DashboardDialogItem, DashboardItemStore, DashboardListEvent, DashboardPage, DisplayConfig, EChartSeriesItem, ExcelSheet, FilterConfig, FilterOption, FormatXAxisConfig$1 as FormatXAxisConfig, GroupedModuleOption, HandleAction, HeaderCardConfig$1 as HeaderCardConfig, IModule, IModuleType, IProperty, IPropertyWithGroup, ISelection, ItemConfig, LevelCardData, LevelCardProperty, LinkChartRequest, LocalizedName, ModuleItem, ModuleSelectOption, ModuleType, ModuleValue, ModulesTreeRequest, ModulesTreeResponse, PhaseGateProperty, PhaseGateStep, PieChartData, PropertiesResponse, PropertyItem$1 as PropertyItem, PropertyItemOption, PropertyItemsResponse, QuickManageType, Report, ReportChartLink, ReportDashboardConfig, ReportExcelConfig, ReportType, ReportUrl, RequestType, SelectionFilter, ServiceConfig, ServiceItem, SourceLink, StaticFilterConfig, StaticFilterItem, StatisticCardData, StyleConfig, TableColumn$1 as TableColumn, TableViewData, TimelineData, TimelineItem, UnlinkChartRequest };
|