@masterteam/dashboard-builder 0.0.17 → 0.0.18

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/dashboard-builder",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/dashboard-builder",
6
6
  "linkDirectory": true,
@@ -290,6 +290,8 @@ interface DisplayConfig {
290
290
  interface ServiceConfig {
291
291
  dashboardId: string;
292
292
  chartType?: string;
293
+ useContextTarget?: boolean;
294
+ contextTargetSelector?: string | null;
293
295
  query?: {
294
296
  extraProperties?: any[];
295
297
  properties?: any[];
@@ -373,6 +375,13 @@ interface DashboardBuilderData {
373
375
  dialogs?: DashboardDialogItem[];
374
376
  filters?: any[];
375
377
  }
378
+ /**
379
+ * Informative authoring context for context-aware selection templates.
380
+ */
381
+ interface DashboardInformativeContext {
382
+ contextKey: string;
383
+ instanceId?: number | null;
384
+ }
376
385
  /**
377
386
  * Dashboard page configuration
378
387
  * Alias for Report with Dashboard type - used for backwards compatibility
@@ -690,6 +699,8 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
690
699
  readonly dashboardData: _angular_core.ModelSignal<DashboardBuilderData | null>;
691
700
  /** Read-only mode */
692
701
  readonly readonly: _angular_core.InputSignal<boolean>;
702
+ /** Optional informative authoring context for context-aware selection */
703
+ readonly informativeContext: _angular_core.InputSignal<DashboardInformativeContext | null>;
693
704
  /** Emit when page config changes */
694
705
  readonly pageChange: _angular_core.OutputEmitterRef<_masterteam_dashboard_builder.Report>;
695
706
  /** Emit when charts change */
@@ -807,7 +818,7 @@ declare class DashboardBuilder implements OnInit, OnDestroy {
807
818
  private applyDashboardData;
808
819
  private emitDashboardDataChange;
809
820
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardBuilder, never>;
810
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardBuilder, "mt-dashboard-builder", never, { "isPage": { "alias": "isPage"; "required": false; "isSignal": true; }; "pageTitle": { "alias": "pageTitle"; "required": false; "isSignal": true; }; "backButton": { "alias": "backButton"; "required": false; "isSignal": true; }; "pageId": { "alias": "pageId"; "required": false; "isSignal": true; }; "standalone": { "alias": "standalone"; "required": false; "isSignal": true; }; "services": { "alias": "services"; "required": false; "isSignal": true; }; "dashboardData": { "alias": "dashboardData"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "dashboardData": "dashboardDataChange"; "pageChange": "pageChange"; "chartsChange": "chartsChange"; "onSave": "onSave"; "onBack": "onBack"; "onAddChart": "onAddChart"; "onEditChart": "onEditChart"; }, never, never, true, never>;
821
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardBuilder, "mt-dashboard-builder", never, { "isPage": { "alias": "isPage"; "required": false; "isSignal": true; }; "pageTitle": { "alias": "pageTitle"; "required": false; "isSignal": true; }; "backButton": { "alias": "backButton"; "required": false; "isSignal": true; }; "pageId": { "alias": "pageId"; "required": false; "isSignal": true; }; "standalone": { "alias": "standalone"; "required": false; "isSignal": true; }; "services": { "alias": "services"; "required": false; "isSignal": true; }; "dashboardData": { "alias": "dashboardData"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "informativeContext": { "alias": "informativeContext"; "required": false; "isSignal": true; }; }, { "dashboardData": "dashboardDataChange"; "pageChange": "pageChange"; "chartsChange": "chartsChange"; "onSave": "onSave"; "onBack": "onBack"; "onAddChart": "onAddChart"; "onEditChart": "onEditChart"; }, never, never, true, never>;
811
822
  }
812
823
 
813
824
  /**
@@ -2288,7 +2299,7 @@ declare class TopbarCardComponent implements OnInit, OnDestroy {
2288
2299
  readonly iconColor: _angular_core.Signal<any>;
2289
2300
  readonly iconBackgroundColor: _angular_core.Signal<any>;
2290
2301
  readonly borderColor: _angular_core.Signal<any>;
2291
- readonly borderWidth: _angular_core.Signal<0 | 1>;
2302
+ readonly borderWidth: _angular_core.Signal<1 | 0>;
2292
2303
  readonly padding: _angular_core.Signal<number>;
2293
2304
  readonly titleFontSize: _angular_core.Signal<number>;
2294
2305
  readonly subtitleFontSize: _angular_core.Signal<number>;
@@ -3267,6 +3278,60 @@ interface ApiResponse<T> {
3267
3278
  status?: number;
3268
3279
  message?: string;
3269
3280
  }
3281
+ interface DashboardTargetTemplateFilter {
3282
+ propertyKey: string;
3283
+ propertyValue: any;
3284
+ }
3285
+ interface DashboardTargetTemplateSelection {
3286
+ id: number;
3287
+ selector: string;
3288
+ filters?: DashboardTargetTemplateFilter[];
3289
+ }
3290
+ interface DashboardTargetTemplateSourceLink {
3291
+ id: number;
3292
+ sourceId1: number;
3293
+ sourceId2: number;
3294
+ sourceLinkId2?: number | null;
3295
+ source1LinkProperty: string;
3296
+ source2LinkProperty: string;
3297
+ isFilterLinkage?: boolean;
3298
+ isLeftJoin?: boolean;
3299
+ }
3300
+ interface DashboardChartTemplate {
3301
+ selection: DashboardTargetTemplateSelection[];
3302
+ sourceLinks: DashboardTargetTemplateSourceLink[];
3303
+ }
3304
+ interface DashboardTargetPathStep {
3305
+ contextType: string;
3306
+ contextId: number;
3307
+ name: string;
3308
+ selector: string;
3309
+ }
3310
+ interface DashboardTargetOption {
3311
+ name: string;
3312
+ contextType: string;
3313
+ contextId: number;
3314
+ moduleKey?: string;
3315
+ relationship: 'parent' | 'child' | 'module' | 'ancestor' | 'descendant';
3316
+ distance: number;
3317
+ selector: string;
3318
+ isChartCompatible: boolean;
3319
+ unsupportedReason?: string;
3320
+ chartTemplate?: DashboardChartTemplate;
3321
+ path: DashboardTargetPathStep[];
3322
+ }
3323
+ interface DashboardTargetsContextInfo {
3324
+ contextType: string;
3325
+ contextId: number;
3326
+ instanceId?: number;
3327
+ name: string;
3328
+ selector: string;
3329
+ selectionTemplate?: DashboardTargetTemplateSelection;
3330
+ }
3331
+ interface DashboardTargetsResponse {
3332
+ context: DashboardTargetsContextInfo;
3333
+ targets: DashboardTargetOption[];
3334
+ }
3270
3335
  /**
3271
3336
  * Dashboard Builder Service
3272
3337
  *
@@ -3441,6 +3506,10 @@ declare class DashboardBuilderService {
3441
3506
  * @returns Properties grouped by module (extracted from data.items)
3442
3507
  */
3443
3508
  getBulkProperties(items: BulkPropertyRequestItem[]): Observable<ApiResponse<BulkPropertiesResponseItem[]>>;
3509
+ /**
3510
+ * Get context-aware dashboard targets for informative authoring.
3511
+ */
3512
+ getContextDashboardTargets(contextKey: string, instanceId?: number | null): Observable<ApiResponse<DashboardTargetsResponse>>;
3444
3513
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardBuilderService, never>;
3445
3514
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DashboardBuilderService>;
3446
3515
  }
@@ -4493,6 +4562,7 @@ declare class ManageItem implements OnInit {
4493
4562
  rows: number;
4494
4563
  };
4495
4564
  services?: readonly string[] | null;
4565
+ informativeContext?: DashboardInformativeContext | null;
4496
4566
  } | null>;
4497
4567
  /** Whether chart type is pre-selected (hides type selection) */
4498
4568
  readonly hasPreselectedType: _angular_core.Signal<boolean>;
@@ -4514,6 +4584,8 @@ declare class ManageItem implements OnInit {
4514
4584
  readonly isDialog: _angular_core.Signal<any>;
4515
4585
  /** Is this a new item */
4516
4586
  readonly isNew: _angular_core.Signal<any>;
4587
+ /** Optional informative authoring context */
4588
+ readonly informativeContext: _angular_core.Signal<any>;
4517
4589
  /** Saving state */
4518
4590
  readonly saving: _angular_core.WritableSignal<boolean>;
4519
4591
  /** Validation state */
@@ -4739,6 +4811,8 @@ declare class DataSourceSettings {
4739
4811
  readonly config: _angular_core.InputSignal<ItemConfig | null>;
4740
4812
  /** Selected chart type */
4741
4813
  readonly chartType: _angular_core.InputSignal<ChartTypeConfig | null>;
4814
+ /** Optional informative authoring context for context-aware source selection */
4815
+ readonly informativeContext: _angular_core.InputSignal<DashboardInformativeContext | null>;
4742
4816
  /** Emit service config changes */
4743
4817
  readonly serviceConfigChange: _angular_core.OutputEmitterRef<Partial<ServiceConfig>>;
4744
4818
  /** Properties grouped by module */
@@ -4765,6 +4839,10 @@ declare class DataSourceSettings {
4765
4839
  readonly loadingProperties: _angular_core.WritableSignal<boolean>;
4766
4840
  /** Tab state: 'selection' or 'customApi' */
4767
4841
  readonly activeTab: _angular_core.WritableSignal<"selection" | "customApi">;
4842
+ /** Selection mode inside the selection tab */
4843
+ readonly selectionMode: _angular_core.WritableSignal<"context" | "advanced">;
4844
+ readonly contextTargetSelector: _angular_core.WritableSignal<string | null>;
4845
+ readonly contextTargetApplyToken: _angular_core.WritableSignal<number>;
4768
4846
  /** Tab options for display */
4769
4847
  readonly tabOptions: {
4770
4848
  id: string;
@@ -4790,6 +4868,8 @@ declare class DataSourceSettings {
4790
4868
  readonly hideSelectionConfig: _angular_core.Signal<boolean>;
4791
4869
  /** Show groupByMultiple for table queries (non-report mode) */
4792
4870
  readonly showGroupByMultiple: _angular_core.Signal<boolean>;
4871
+ /** Informative mode can offer a context-aware selection shortcut */
4872
+ readonly showInformativeSelectionMode: _angular_core.Signal<boolean>;
4793
4873
  /**
4794
4874
  * Derived signal: Extract module keys from selections for change detection
4795
4875
  * Only changes when actual selectors change, not on every selection update
@@ -4808,6 +4888,14 @@ declare class DataSourceSettings {
4808
4888
  * Handle selection changes
4809
4889
  */
4810
4890
  onSelectionsChange(selections: ISelection[]): void;
4891
+ /**
4892
+ * Handle context-aware template selection for informative mode.
4893
+ */
4894
+ onContextTemplateApply(event: {
4895
+ targetSelector: string;
4896
+ selection: ISelection[];
4897
+ sourceLinks: SourceLink[];
4898
+ }): void;
4811
4899
  /**
4812
4900
  * Handle module change - update selections, effect handles property loading
4813
4901
  */
@@ -4872,12 +4960,17 @@ declare class DataSourceSettings {
4872
4960
  * Handle custom API change
4873
4961
  */
4874
4962
  onCustomApiChange(customApi: CustomApi | null): void;
4963
+ /**
4964
+ * Toggle between context-aware and advanced manual selection.
4965
+ */
4966
+ onAdvancedSelectionToggle(useAdvanced: boolean): void;
4875
4967
  /**
4876
4968
  * Get chart type id for query component
4877
4969
  */
4878
4970
  getChartTypeId(): string;
4971
+ private getContextTargetState;
4879
4972
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataSourceSettings, never>;
4880
- 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>;
4973
+ 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; }; "informativeContext": { "alias": "informativeContext"; "required": false; "isSignal": true; }; }, { "serviceConfigChange": "serviceConfigChange"; }, never, never, true, never>;
4881
4974
  }
4882
4975
 
4883
4976
  /** Action type option */
@@ -5045,4 +5138,4 @@ declare class GetChartActionsPipe implements PipeTransform {
5045
5138
  declare function cloneDeep<T>(obj: T): T;
5046
5139
 
5047
5140
  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, PropertiesCardComponent as EntitiesPreviewCardComponent, EntityInfoComponent, EntityPreviewCardComponent, FilterByGroupPipe, GaugeChartHandler, GeneralSettings, GetChartActionsPipe, HTTPMethod, HeaderCardComponent, LevelCardHandler, LineChartHandler, ListStatisticCardComponent, ManageBreadcrumb, ManageFilterOnPage, ManageItem, ManageItemService, ManagePages, MapChartHandler, OverviewCardHandler, PhaseGateStepperHandler, PieChartHandler, PieControlUi, PropertiesCardComponent, RingGaugeChartHandler, SPlusChartHandler, SkeletonCardComponent, SnapshotHandler, SplitterChartHandler, StackBarChartHandler, StackBarControlUi, StaticFiltersComponent, StatisticCardComponent, TableCardComponent, TableViewHandler, TimelineHandler, TopbarCardComponent, 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 };
5048
- export type { ActionConfig, ApiResponse, BarChartData, BreadcrumbItem, BulkLinkChartRequest, BulkLinkChartResponse, BulkPropertiesRequest, BulkPropertiesResponse, BulkPropertiesResponseItem, BulkPropertiesResponseItemDto, BulkPropertyRequestItem, CardBorderStyleConfig, CardInfoConfig$1 as CardInfoConfig, CardStyleConfig$1 as CardStyleConfig, CatalogPropertyDto, 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, 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 };
5141
+ export type { ActionConfig, ApiResponse, BarChartData, BreadcrumbItem, BulkLinkChartRequest, BulkLinkChartResponse, BulkPropertiesRequest, BulkPropertiesResponse, BulkPropertiesResponseItem, BulkPropertiesResponseItemDto, BulkPropertyRequestItem, CardBorderStyleConfig, CardInfoConfig$1 as CardInfoConfig, CardStyleConfig$1 as CardStyleConfig, CatalogPropertyDto, ChartActionEvent, ChartActionsContext, ChartData, ChartDataHandled, ChartLabel, ChartLinkConfiguration, ChartTypeConfig, ClientConfig, ComponentType, CustomApi, DashboardBuilderData, DashboardChartItem, DashboardChartTemplate, DashboardDialogItem, DashboardInformativeContext, DashboardItemStore, DashboardListEvent, DashboardPage, DashboardTargetOption, DashboardTargetPathStep, DashboardTargetTemplateFilter, DashboardTargetTemplateSelection, DashboardTargetTemplateSourceLink, DashboardTargetsContextInfo, DashboardTargetsResponse, 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, 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 };