@masterteam/dashboard-builder 0.0.41 → 0.0.43
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/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@masterteam/dashboard-builder",
|
|
3
|
+
"version": "0.0.43",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"directory": "../../../dist/masterteam/dashboard-builder",
|
|
6
|
+
"linkDirectory": true,
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"peerDependencies": {
|
|
10
|
+
"@angular/common": "^21.2.8",
|
|
11
|
+
"@angular/core": "^21.2.8",
|
|
12
|
+
"@angular/forms": "^21.2.8",
|
|
13
|
+
"@angular/cdk": "^21.2.6",
|
|
14
|
+
"@angular/router": "^21.2.8",
|
|
15
|
+
"@primeuix/themes": "^2.0.3",
|
|
16
|
+
"@tailwindcss/postcss": "^4.2.2",
|
|
17
|
+
"@jsverse/transloco": "^8.3.0",
|
|
18
|
+
"@masterteam/components": "^0.0.204",
|
|
19
|
+
"@masterteam/icons": "^0.0.17",
|
|
20
|
+
"@masterteam/timeline": "^0.0.15",
|
|
21
|
+
"angular-gridster2": "^18.0.1",
|
|
22
|
+
"echarts": "^5.5.0",
|
|
23
|
+
"postcss": "^8.5.9",
|
|
24
|
+
"primeng": "21.1.5",
|
|
25
|
+
"rxjs": "^7.8.2",
|
|
26
|
+
"tailwindcss": "^4.2.2"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"tslib": "^2.8.1",
|
|
30
|
+
"angular-gridster2": "^18.0.1"
|
|
31
|
+
},
|
|
32
|
+
"sideEffects": false,
|
|
33
|
+
"module": "fesm2022/masterteam-dashboard-builder.mjs",
|
|
34
|
+
"typings": "types/masterteam-dashboard-builder.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
"./package.json": {
|
|
37
|
+
"default": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./types/masterteam-dashboard-builder.d.ts",
|
|
41
|
+
"default": "./fesm2022/masterteam-dashboard-builder.mjs"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"type": "module"
|
|
45
|
+
}
|
|
@@ -507,6 +507,7 @@ type ItemCardMenuAction = {
|
|
|
507
507
|
};
|
|
508
508
|
declare class ItemCardMenuComponent {
|
|
509
509
|
private readonly transloco;
|
|
510
|
+
private readonly filtersActionVisible;
|
|
510
511
|
/** Whether to allow duplicate (excluded for layout/group widgets). */
|
|
511
512
|
readonly allowDuplicate: _angular_core.InputSignal<boolean>;
|
|
512
513
|
/** Whether the chart has a linked dialog already. */
|
|
@@ -2272,6 +2273,7 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
|
|
|
2272
2273
|
duplicateChart(chart: DashboardChartItem): void;
|
|
2273
2274
|
/** Whether the kebab menu should appear on this chart card. */
|
|
2274
2275
|
showContextToolbar(chart: DashboardChartItem): boolean;
|
|
2276
|
+
isPropertiesListChart(chart: DashboardChartItem): boolean;
|
|
2275
2277
|
editItem(chart: DashboardChartItem, parentItem?: DashboardChartItem, defaultTab?: 'general' | 'dataSource' | 'actions'): void;
|
|
2276
2278
|
deleteItem(chart: DashboardChartItem): void;
|
|
2277
2279
|
private confirmDelete;
|
|
@@ -3145,6 +3147,9 @@ type FilterFieldType = 'dropdownTVService' | 'lookup' | 'status' | 'phaseGate' |
|
|
|
3145
3147
|
/** Selection item for dropdown configuration */
|
|
3146
3148
|
interface FilterSelectionItem {
|
|
3147
3149
|
id: number;
|
|
3150
|
+
service?: string | null;
|
|
3151
|
+
selector?: string | null;
|
|
3152
|
+
selectorName?: string | null;
|
|
3148
3153
|
moduleType?: string;
|
|
3149
3154
|
moduleId?: number;
|
|
3150
3155
|
filters?: any[];
|
|
@@ -3464,6 +3469,7 @@ declare class EChartComponent implements OnInit, AfterViewInit, OnChanges, OnDes
|
|
|
3464
3469
|
* Process legends for custom legend display
|
|
3465
3470
|
*/
|
|
3466
3471
|
private processLegends;
|
|
3472
|
+
private hasPieSeries;
|
|
3467
3473
|
/**
|
|
3468
3474
|
* Toggle legend item visibility
|
|
3469
3475
|
*/
|
|
@@ -3524,7 +3530,6 @@ declare class EChartComponent implements OnInit, AfterViewInit, OnChanges, OnDes
|
|
|
3524
3530
|
private applyConfiguredLegend;
|
|
3525
3531
|
private mapLegendConfig;
|
|
3526
3532
|
private applyLegendSideCoordinates;
|
|
3527
|
-
private getResponsivePieRadius;
|
|
3528
3533
|
private estimateCategoryCount;
|
|
3529
3534
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EChartComponent, never>;
|
|
3530
3535
|
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>;
|
|
@@ -4073,7 +4078,7 @@ declare class TopbarCardComponent implements OnInit, OnDestroy {
|
|
|
4073
4078
|
readonly iconColor: _angular_core.Signal<any>;
|
|
4074
4079
|
readonly iconBackgroundColor: _angular_core.Signal<any>;
|
|
4075
4080
|
readonly borderColor: _angular_core.Signal<any>;
|
|
4076
|
-
readonly borderWidth: _angular_core.Signal<
|
|
4081
|
+
readonly borderWidth: _angular_core.Signal<0 | 1>;
|
|
4077
4082
|
readonly padding: _angular_core.Signal<number>;
|
|
4078
4083
|
readonly titleFontSize: _angular_core.Signal<number>;
|
|
4079
4084
|
readonly subtitleFontSize: _angular_core.Signal<number>;
|
|
@@ -5528,25 +5533,8 @@ declare class ManageBreadcrumb implements OnInit {
|
|
|
5528
5533
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageBreadcrumb, "mt-manage-breadcrumb", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5529
5534
|
}
|
|
5530
5535
|
|
|
5531
|
-
/**
|
|
5532
|
-
* Translation pair
|
|
5533
|
-
*/
|
|
5534
|
-
interface Translation {
|
|
5535
|
-
ar: string;
|
|
5536
|
-
en: string;
|
|
5537
|
-
}
|
|
5538
|
-
/**
|
|
5539
|
-
* Property Translations map
|
|
5540
|
-
*/
|
|
5541
|
-
interface PropertyTranslations {
|
|
5542
|
-
[key: string]: Translation;
|
|
5543
|
-
}
|
|
5544
|
-
|
|
5545
5536
|
interface ManageFilterOnPageResult {
|
|
5546
5537
|
filters: FilterField[];
|
|
5547
|
-
bulkSelection?: ISelection[];
|
|
5548
|
-
bulkOperation?: 'applyFilters' | 'deleteFilters';
|
|
5549
|
-
labels?: PropertyTranslations;
|
|
5550
5538
|
}
|
|
5551
5539
|
/**
|
|
5552
5540
|
* Manage Filter On Page Component
|
|
@@ -5565,27 +5553,17 @@ declare class ManageFilterOnPage implements OnInit {
|
|
|
5565
5553
|
private ref;
|
|
5566
5554
|
/** Input: Initial filters data */
|
|
5567
5555
|
readonly data: _angular_core.InputSignal<FilterField[]>;
|
|
5568
|
-
/** All charts and dialogs on the selected dashboard. */
|
|
5569
|
-
readonly chartItems: _angular_core.InputSignal<(DashboardChartItem | DashboardDialogItem)[]>;
|
|
5570
5556
|
/** Input: Available lookups for dropdown */
|
|
5571
5557
|
readonly lookups: _angular_core.InputSignal<any[]>;
|
|
5572
5558
|
/** Input: Available level schemas */
|
|
5573
5559
|
readonly levelsSchema: _angular_core.InputSignal<any[]>;
|
|
5574
5560
|
/** Filters configuration */
|
|
5575
5561
|
readonly filtersConfig: _angular_core.WritableSignal<FilterField[]>;
|
|
5576
|
-
/** Bulk selection filters to apply/delete across matching charts. */
|
|
5577
|
-
readonly bulkSelection: _angular_core.WritableSignal<ISelection[]>;
|
|
5578
|
-
/** Labels to apply to all table/dialog table charts. */
|
|
5579
|
-
readonly bulkLabels: _angular_core.WritableSignal<PropertyTranslations>;
|
|
5580
5562
|
/** Level logs for status filter */
|
|
5581
5563
|
readonly levelLogs: _angular_core.WritableSignal<any[]>;
|
|
5582
|
-
readonly bulkPropertyOptions: _angular_core.Signal<IProperty[]>;
|
|
5583
|
-
readonly bulkPropertyKeys: _angular_core.Signal<string[]>;
|
|
5584
5564
|
ngOnInit(): void;
|
|
5585
5565
|
/** Handle filter configuration changes */
|
|
5586
5566
|
onFiltersChange(filters: FilterField[]): void;
|
|
5587
|
-
onBulkSelectionChange(selections: ISelection[]): void;
|
|
5588
|
-
onBulkLabelsChange(labels: PropertyTranslations): void;
|
|
5589
5567
|
/**
|
|
5590
5568
|
* Hook for hosts that want to feed level-log values into the filter
|
|
5591
5569
|
* dialog. The host listens to `(loadLevelLogs)` (when consumers wire it)
|
|
@@ -5595,16 +5573,26 @@ declare class ManageFilterOnPage implements OnInit {
|
|
|
5595
5573
|
onLoadLevelLogs(_schemaLevelId: number): void;
|
|
5596
5574
|
/** Save and close the dialog */
|
|
5597
5575
|
save(): void;
|
|
5598
|
-
applyBulkFilters(): void;
|
|
5599
|
-
deleteBulkFilters(): void;
|
|
5600
|
-
applyBulkLabels(): void;
|
|
5601
5576
|
/** Cancel and close the dialog */
|
|
5602
5577
|
close(): void;
|
|
5603
5578
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ManageFilterOnPage, never>;
|
|
5604
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageFilterOnPage, "mt-manage-filter-on-page", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "
|
|
5579
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ManageFilterOnPage, "mt-manage-filter-on-page", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "lookups": { "alias": "lookups"; "required": false; "isSignal": true; }; "levelsSchema": { "alias": "levelsSchema"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5605
5580
|
}
|
|
5606
5581
|
|
|
5582
|
+
interface ModuleProperties$1 {
|
|
5583
|
+
moduleName: string;
|
|
5584
|
+
selectorName: string | null;
|
|
5585
|
+
selector: string;
|
|
5586
|
+
properties: IProperty[];
|
|
5587
|
+
}
|
|
5607
5588
|
declare class DynamicFiltersConfig implements ControlValueAccessor {
|
|
5589
|
+
private readonly dashboardService;
|
|
5590
|
+
private readonly destroyRef;
|
|
5591
|
+
private readonly emptySelections;
|
|
5592
|
+
private readonly emptyModulesProperties;
|
|
5593
|
+
private readonly emptyProperties;
|
|
5594
|
+
private readonly propertiesFlatCache;
|
|
5595
|
+
private readonly dropdownPropertiesSignatureByIndex;
|
|
5608
5596
|
/** Available lookups from parent context */
|
|
5609
5597
|
readonly lookups: _angular_core.InputSignal<any[]>;
|
|
5610
5598
|
/** Available level schemas from parent context */
|
|
@@ -5617,6 +5605,10 @@ declare class DynamicFiltersConfig implements ControlValueAccessor {
|
|
|
5617
5605
|
readonly loadLevelLogs: _angular_core.OutputEmitterRef<number>;
|
|
5618
5606
|
/** Filter fields data */
|
|
5619
5607
|
readonly filterFields: _angular_core.WritableSignal<FilterField[]>;
|
|
5608
|
+
/** Active dropdown selection editor. Heavy nested editors stay lazy. */
|
|
5609
|
+
readonly activeDropdownConfigIndex: _angular_core.WritableSignal<number | null>;
|
|
5610
|
+
/** Properties loaded for dropdown-by-selection fields. */
|
|
5611
|
+
readonly fieldModulesProperties: _angular_core.WritableSignal<Record<number, ModuleProperties$1[]>>;
|
|
5620
5612
|
/** Paste configuration state */
|
|
5621
5613
|
readonly showPasteArea: _angular_core.WritableSignal<boolean>;
|
|
5622
5614
|
readonly pasteContent: _angular_core.WritableSignal<string>;
|
|
@@ -5645,6 +5637,16 @@ declare class DynamicFiltersConfig implements ControlValueAccessor {
|
|
|
5645
5637
|
onFieldTypeChange(index: number, type: FilterFieldType): void;
|
|
5646
5638
|
/** Handle schema level change for status/phaseGate */
|
|
5647
5639
|
onSchemaLevelChange(index: number, schemaLevelId: number): void;
|
|
5640
|
+
updateDropdownSelections(index: number, selections: ISelection[]): void;
|
|
5641
|
+
onDropdownModuleChange(index: number, _event: {
|
|
5642
|
+
selectionId: number;
|
|
5643
|
+
selector: string;
|
|
5644
|
+
selectorName?: string | null;
|
|
5645
|
+
}): void;
|
|
5646
|
+
openDropdownConfig(index: number, field: FilterField): void;
|
|
5647
|
+
closeDropdownConfig(index: number): void;
|
|
5648
|
+
isDropdownConfigOpen(index: number): boolean;
|
|
5649
|
+
updateSelectedProperties(index: number, properties: string[]): void;
|
|
5648
5650
|
/** Copy current configuration to clipboard */
|
|
5649
5651
|
copyConfiguration(): void;
|
|
5650
5652
|
/** Toggle paste area visibility */
|
|
@@ -5653,8 +5655,30 @@ declare class DynamicFiltersConfig implements ControlValueAccessor {
|
|
|
5653
5655
|
applyPastedConfiguration(): void;
|
|
5654
5656
|
/** Track by function for ngFor */
|
|
5655
5657
|
trackByIndex(index: number): number;
|
|
5658
|
+
getFieldTitle(field: FilterField, index: number): string;
|
|
5659
|
+
getFieldTypeLabel(type: FilterFieldType): string;
|
|
5660
|
+
requiresKey(type: FilterFieldType): boolean;
|
|
5661
|
+
requiresName(type: FilterFieldType): boolean;
|
|
5662
|
+
supportsRequired(field: FilterField): boolean;
|
|
5663
|
+
supportsMultiple(field: FilterField): boolean;
|
|
5664
|
+
hasTypeConfiguration(field: FilterField): boolean;
|
|
5665
|
+
getDropdownSelections(field: FilterField): ISelection[];
|
|
5666
|
+
getSelectedProperties(field: FilterField): string[];
|
|
5667
|
+
getModulesPropertiesForField(index: number): ModuleProperties$1[];
|
|
5668
|
+
getPropertiesFlatForField(index: number): IProperty[];
|
|
5669
|
+
getDropdownSummary(field: FilterField): string;
|
|
5656
5670
|
/** Notify parent of changes */
|
|
5657
5671
|
private notifyChange;
|
|
5672
|
+
private normalizeField;
|
|
5673
|
+
private createConfigurationForType;
|
|
5674
|
+
private ensurePayload;
|
|
5675
|
+
private loadDropdownProperties;
|
|
5676
|
+
private setFieldModulesProperties;
|
|
5677
|
+
private extractModuleTypeFromSelector;
|
|
5678
|
+
private normalizeSelections;
|
|
5679
|
+
private getSelectionSignature;
|
|
5680
|
+
private removeCachedFieldState;
|
|
5681
|
+
private resetDropdownCaches;
|
|
5658
5682
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFiltersConfig, never>;
|
|
5659
5683
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFiltersConfig, "mt-dynamic-filters-config", never, { "lookups": { "alias": "lookups"; "required": false; "isSignal": true; }; "levelsSchema": { "alias": "levelsSchema"; "required": false; "isSignal": true; }; "levelLogs": { "alias": "levelLogs"; "required": false; "isSignal": true; }; "productType": { "alias": "productType"; "required": false; "isSignal": true; }; }, { "loadLevelLogs": "loadLevelLogs"; }, never, never, true, never>;
|
|
5660
5684
|
}
|