@provoly/dashboard 1.1.0 → 1.1.2

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.
Files changed (110) hide show
  1. package/assets/svgs/analytic.svg +1 -0
  2. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
  3. package/esm2022/import/components/import.component.mjs +22 -10
  4. package/esm2022/import/i18n/en.translations.mjs +3 -1
  5. package/esm2022/import/i18n/fr.translations.mjs +3 -1
  6. package/esm2022/lib/core/access/access.service.mjs +4 -1
  7. package/esm2022/lib/core/i18n/en.translations.mjs +2 -1
  8. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
  9. package/esm2022/lib/core/model/public-api.mjs +2 -1
  10. package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +1 -1
  11. package/esm2022/lib/core/model/widget-analytic-manifest.interface.mjs +2 -0
  12. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +8 -12
  13. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +5 -11
  14. package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +6 -6
  15. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +5 -2
  16. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +12 -1
  17. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +4 -3
  18. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -2
  19. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  20. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +6 -4
  21. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +17 -9
  22. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +8 -2
  23. package/esm2022/presentation/components/presentation.component.mjs +18 -9
  24. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +42 -87
  25. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
  26. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +3 -5
  27. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +108 -0
  28. package/esm2022/widgets/widget-analytic/i18n/en.translations.mjs +13 -0
  29. package/esm2022/widgets/widget-analytic/i18n/fr.translations.mjs +13 -0
  30. package/esm2022/widgets/widget-analytic/provoly-dashboard-widgets-widget-analytic.mjs +5 -0
  31. package/esm2022/widgets/widget-analytic/public-api.mjs +3 -0
  32. package/esm2022/widgets/widget-analytic/style/css.component.mjs +11 -0
  33. package/esm2022/widgets/widget-analytic/widget-analytic.module.mjs +70 -0
  34. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +2 -2
  35. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +2 -2
  36. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +2 -2
  37. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +18 -141
  38. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +2 -34
  39. package/esm2022/widgets/widget-map/interaction/tooltip-manager.class.mjs +191 -0
  40. package/esm2022/widgets/widget-map/public-api.mjs +2 -1
  41. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  42. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
  43. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +24 -5
  44. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
  45. package/fesm2022/provoly-dashboard-admin.mjs +3 -2
  46. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-import.mjs +25 -9
  48. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-presentation.mjs +17 -8
  50. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +45 -91
  52. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +211 -0
  54. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -0
  55. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  58. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
  60. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +207 -175
  62. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  63. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  64. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +23 -4
  66. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  68. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard.mjs +71 -43
  70. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  71. package/import/components/import.component.d.ts +4 -2
  72. package/import/i18n/en.translations.d.ts +2 -0
  73. package/import/i18n/fr.translations.d.ts +2 -0
  74. package/lib/core/access/access.service.d.ts +3 -0
  75. package/lib/core/i18n/en.translations.d.ts +1 -0
  76. package/lib/core/i18n/fr.translations.d.ts +1 -0
  77. package/lib/core/model/public-api.d.ts +1 -0
  78. package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +3 -12
  79. package/lib/core/model/widget-analytic-manifest.interface.d.ts +6 -0
  80. package/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.d.ts +4 -4
  81. package/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.d.ts +2 -2
  82. package/lib/core/store/data-source/data-source.effects.d.ts +4 -2
  83. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +3 -1
  84. package/lib/dashboard/store/dashboard.actions.d.ts +11 -1
  85. package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
  86. package/lib/dashboard/store/dashboard.reducers.d.ts +3 -1
  87. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
  88. package/package.json +37 -31
  89. package/presentation/components/presentation.component.d.ts +5 -3
  90. package/styles/components/_o-pry-admin-classes-customize.scss +1 -0
  91. package/styles-theme/components-theme/_o-widget.theme.scss +0 -14
  92. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +9 -7
  93. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
  94. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +2 -4
  95. package/widgets/widget-analytic/component/widget-analytic.component.d.ts +47 -0
  96. package/widgets/widget-analytic/i18n/en.translations.d.ts +12 -0
  97. package/widgets/widget-analytic/i18n/fr.translations.d.ts +12 -0
  98. package/widgets/widget-analytic/index.d.ts +5 -0
  99. package/widgets/widget-analytic/public-api.d.ts +2 -0
  100. package/widgets/widget-analytic/style/_o-widget-analytic.scss +43 -0
  101. package/widgets/widget-analytic/style/css.component.d.ts +5 -0
  102. package/widgets/widget-analytic/widget-analytic.module.d.ts +19 -0
  103. package/widgets/widget-iframe/component/widget-iframe.component.d.ts +3 -1
  104. package/widgets/widget-map/component/widget-map.component.d.ts +12 -23
  105. package/widgets/widget-map/interaction/interaction-manager.class.d.ts +0 -5
  106. package/widgets/widget-map/interaction/tooltip-manager.class.d.ts +43 -0
  107. package/widgets/widget-map/public-api.d.ts +1 -0
  108. package/widgets/widget-map/style/_m-layer-legend.scss +1 -4
  109. package/widgets/widget-table/component/widget-table.component.d.ts +3 -1
  110. package/widgets/widget-tile/component/widget-tile.component.d.ts +7 -2
@@ -1,12 +1,14 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { Store } from '@ngrx/store';
3
- import { Dataset, DataSourceService, SubscriptionnerDirective } from '@provoly/dashboard';
3
+ import { Dataset, DataSourceService, PryI18nService, PrySnackbarService, SubscriptionnerDirective } from '@provoly/dashboard';
4
4
  import { Observable } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  type FileExtension = 'csv' | 'zip';
7
7
  export declare class PryImportComponent extends SubscriptionnerDirective implements OnDestroy {
8
8
  private store;
9
9
  private dsService;
10
+ private snackbar;
11
+ private i18nService;
10
12
  datasets$: Observable<Dataset[]>;
11
13
  file?: File;
12
14
  selectedDataset?: Dataset;
@@ -23,7 +25,7 @@ export declare class PryImportComponent extends SubscriptionnerDirective impleme
23
25
  productionDate: string;
24
26
  producer: string;
25
27
  additionalInformation: string;
26
- constructor(store: Store, dsService: DataSourceService);
28
+ constructor(store: Store, dsService: DataSourceService, snackbar: PrySnackbarService, i18nService: PryI18nService);
27
29
  ngOnDestroy(): void;
28
30
  uploadedChange($event: File): void;
29
31
  submit(): void;
@@ -8,6 +8,8 @@ export declare const enTranslations: {
8
8
  successTitle: string;
9
9
  uploadTitlezip: string;
10
10
  uploadTitlecsv: string;
11
+ warning: string;
12
+ tooLarge: string;
11
13
  selectFile: string;
12
14
  importedLines: string;
13
15
  consultDataset: string;
@@ -8,6 +8,8 @@ export declare const frTranslations: {
8
8
  successTitle: string;
9
9
  uploadTitlezip: string;
10
10
  uploadTitlecsv: string;
11
+ warning: string;
12
+ tooLarge: string;
11
13
  selectFile: string;
12
14
  importedLines: string;
13
15
  consultDataset: string;
@@ -1,13 +1,16 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
+ import { ManifestDescription } from '../model/manifest.interface';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare abstract class PryBaseAccess {
5
6
  abstract hasRole(...args: any[]): Observable<boolean>;
7
+ abstract canModifyPresentation(presentation: ManifestDescription): Observable<boolean>;
6
8
  }
7
9
  export declare const PRY_ACCESS_TOKEN: InjectionToken<PryBaseAccess>;
8
10
  export declare class PryDefaultAccessService extends PryBaseAccess {
9
11
  constructor();
10
12
  hasRole(...args: any[]): Observable<boolean>;
13
+ canModifyPresentation(presentation: ManifestDescription): Observable<boolean>;
11
14
  static ɵfac: i0.ɵɵFactoryDeclaration<PryDefaultAccessService, never>;
12
15
  static ɵprov: i0.ɵɵInjectableDeclaration<PryDefaultAccessService>;
13
16
  }
@@ -63,6 +63,7 @@ export declare const enTranslations: {
63
63
  };
64
64
  toolbox: {
65
65
  defaultSize: string;
66
+ analytic: string;
66
67
  manifest: {
67
68
  name: string;
68
69
  description: string;
@@ -63,6 +63,7 @@ export declare const frTranslations: {
63
63
  };
64
64
  toolbox: {
65
65
  defaultSize: string;
66
+ analytic: string;
66
67
  manifest: {
67
68
  name: string;
68
69
  description: string;
@@ -5,6 +5,7 @@ export * from './search-mono-class.model';
5
5
  export * from './search-multi-class.model';
6
6
  export * from './widget-map-manifest.interface';
7
7
  export * from './widget-aggregated-chart-manifest.interface';
8
+ export * from './widget-analytic-manifest.interface';
8
9
  export * from './widget-chart-manifest.interface';
9
10
  export * from './widget-graph-manifest.interface';
10
11
  export * from './widget-table-manifest.interface';
@@ -22,16 +22,7 @@ export declare enum GraphType {
22
22
  HISTOGRAM = "bar-histogram",
23
23
  POINTS = "point-default"
24
24
  }
25
- export interface AtLimit {
26
- at: number;
27
- others: boolean;
28
- order: 'asc' | 'desc';
29
- isTimeLimit: false;
30
- }
31
- export interface TimeLimit {
32
- interval: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'quarter' | 'year';
33
- isTimeLimit: true;
34
- }
25
+ export type TimeInterval = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'quarter' | 'year';
35
26
  export interface Sort {
36
27
  value: 'key' | 'value';
37
28
  direction: 'asc' | 'desc';
@@ -41,7 +32,8 @@ export interface ChartAggregatedWidgetOptions {
41
32
  label: string;
42
33
  attribute: string;
43
34
  keep0: boolean;
44
- limit?: AtLimit | TimeLimit;
35
+ limit?: number | null;
36
+ interval?: number | TimeInterval;
45
37
  };
46
38
  ordinate: {
47
39
  operation: Operation;
@@ -61,7 +53,6 @@ export interface ChartAggregatedWidgetOptions {
61
53
  stacked?: boolean;
62
54
  legend?: boolean;
63
55
  sort?: Sort;
64
- limitItems?: number | null;
65
56
  };
66
57
  additionalSpec?: any;
67
58
  circleColorScheme?: string;
@@ -0,0 +1,6 @@
1
+ export interface AnalyticWidgetOptions {
2
+ primaryProp: string;
3
+ secondaryProp: string;
4
+ verticalProp: string;
5
+ valueProp: string;
6
+ }
@@ -1,4 +1,4 @@
1
- import { AtLimit, ChartAggregatedWidgetOptions, Operation, TimeLimit } from '../../../model/widget-aggregated-chart-manifest.interface';
1
+ import { ChartAggregatedWidgetOptions, Operation, TimeInterval } from '../../../model/widget-aggregated-chart-manifest.interface';
2
2
  import { Class } from '../../class/class.interface';
3
3
  import { Item, ValueType } from '../../../model/item.interface';
4
4
  import { ResultSets } from '../../../model/result-set.interface';
@@ -15,19 +15,19 @@ export declare class AggregationUtils {
15
15
  static formatByLimit(data: {
16
16
  key: ValueType;
17
17
  value: ValueType;
18
- }[], limit: AtLimit | TimeLimit, operation: Operation): {
18
+ }[], interval: number | TimeInterval, operation: Operation): {
19
19
  key: ValueType;
20
20
  value: ValueType;
21
21
  }[];
22
22
  static formatDataByTimeLimit(data: {
23
23
  key: ValueType;
24
24
  value: ValueType;
25
- }[], limit: TimeLimit, operation: Operation): {
25
+ }[], interval: TimeInterval, operation: Operation): {
26
26
  value: ValueType;
27
27
  key: ValueType;
28
28
  values: ValueType[];
29
29
  }[];
30
- static getKeyValueForTimeInterval(key: ValueType, interval: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'quarter' | 'year'): string;
30
+ static getKeyValueForTimeInterval(key: ValueType, interval: TimeInterval): string;
31
31
  static filterItems(items: Item[], filters: Filter[]): Item[];
32
32
  static doesItemValuePassFilter(item: Item, attribute: string, operator: string | undefined, filterValue: string | number | undefined): boolean;
33
33
  }
@@ -1,7 +1,7 @@
1
1
  import { Store } from '@ngrx/store';
2
2
  import { Observable } from 'rxjs';
3
3
  import { Item, ValueType } from '../../../model/item.interface';
4
- import { AtLimit, ChartAggregatedWidgetOptions, Operation, TimeLimit } from '../../../model/widget-aggregated-chart-manifest.interface';
4
+ import { ChartAggregatedWidgetOptions, Operation, TimeInterval } from '../../../model/widget-aggregated-chart-manifest.interface';
5
5
  import { AggregationResult, PryAggregationService } from '../base-aggregation.service';
6
6
  import { Class } from '../../class/class.interface';
7
7
  import * as i0 from "@angular/core";
@@ -13,7 +13,7 @@ export declare class PryFrontendAggregationService extends PryAggregationService
13
13
  getItemsGroupedByAttributeValue(items: Item[], attribute: string): {
14
14
  [key: string | number]: Item[];
15
15
  };
16
- getChartDataBasedOnOperation(items: Item[], operation: Operation, abscissa: string, ordinate: string, limit?: AtLimit | TimeLimit): {
16
+ getChartDataBasedOnOperation(items: Item[], operation: Operation, abscissa: string, ordinate: string, interval?: number | TimeInterval): {
17
17
  key: ValueType;
18
18
  value: ValueType;
19
19
  }[];
@@ -59,9 +59,11 @@ export declare class DataSourceEffects {
59
59
  [p: string]: string;
60
60
  } | undefined;
61
61
  } & import("@ngrx/store/src/models").TypedAction<"[Dataset] Datadef is created call to admin">)> & import("@ngrx/effects").CreateEffectMetadata;
62
- unsetMissingGroupsOnDatasetSelection$: import("rxjs").Observable<{
62
+ unsetMissingGroupsOnDatasetSelection$: import("rxjs").Observable<({
63
63
  missingGroups?: import("@provoly/dashboard").MissingGroupsByEntity | undefined;
64
- } & import("@ngrx/store/src/models").TypedAction<"[Dataset] set missing groups">> & import("@ngrx/effects").CreateEffectMetadata;
64
+ } & import("@ngrx/store/src/models").TypedAction<"[Dataset] set missing groups">) | ({
65
+ id: string;
66
+ } & import("@ngrx/store/src/models").TypedAction<"[Dataset] Get Dataset Versions by Dataset Id">)> & import("@ngrx/effects").CreateEffectMetadata;
65
67
  deleteDataset$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Dataset] load datasets"> | import("@ngrx/store/src/models").TypedAction<"[Dataset] unselect Dataset"> | ({
66
68
  error: any;
67
69
  } & import("@ngrx/store/src/models").TypedAction<"[Dataset] failure effect Dataset">) | ({
@@ -10,7 +10,9 @@ import { ToolboxMenuService } from '../../../../core/toolbox/toolbox-menu.servic
10
10
  import { SubscriptionnerDirective } from '../../subscriptionner.directive';
11
11
  import { WidgetContextMenuDisplayOptions } from '../../../../core/model/display-options.interface';
12
12
  import * as i0 from "@angular/core";
13
- export declare const WIDGET_HEADER_HEIGHT = 32;
13
+ export declare const WIDGET_HEADER_HEIGHT: {
14
+ value: number;
15
+ };
14
16
  export type HeaderAction = {
15
17
  icon: string;
16
18
  action: (that: PryWidgetHeaderComponent) => void;
@@ -425,20 +425,28 @@ export declare const DashboardActions: {
425
425
  } & import("@ngrx/store/src/models").TypedAction<"[Dashboard] (bus) update filter value">>;
426
426
  clearAllFilterValues: import("@ngrx/store").ActionCreator<"[Dashboard] (bus) clear all filter values", () => import("@ngrx/store/src/models").TypedAction<"[Dashboard] (bus) clear all filter values">>;
427
427
  dispatchFilters: import("@ngrx/store").ActionCreator<"[Dashboard] (bus) apply filters to presentation datasources", () => import("@ngrx/store/src/models").TypedAction<"[Dashboard] (bus) apply filters to presentation datasources">>;
428
- resetWmsFeatures: import("@ngrx/store").ActionCreator<"[Widget map] Reset Wms layer features", () => import("@ngrx/store/src/models").TypedAction<"[Widget map] Reset Wms layer features">>;
428
+ resetWmsFeatures: import("@ngrx/store").ActionCreator<"[Widget map] Reset Wms layer features", (props: {
429
+ componentId: string;
430
+ }) => {
431
+ componentId: string;
432
+ } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Reset Wms layer features">>;
429
433
  getWmsFeatures: import("@ngrx/store").ActionCreator<"[Widget map] Get Wms layer features", (props: {
430
434
  url: string;
431
435
  oClass: string;
432
436
  coordinates: number[];
437
+ componentId: string;
433
438
  }) => {
434
439
  url: string;
435
440
  oClass: string;
436
441
  coordinates: number[];
442
+ componentId: string;
437
443
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Get Wms layer features">>;
438
444
  addWmsFeatures: import("@ngrx/store").ActionCreator<"[Widget map] Set Wms layer features", (props: {
439
445
  features: any;
446
+ componentId: string;
440
447
  }) => {
441
448
  features: any;
449
+ componentId: string;
442
450
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Set Wms layer features">>;
443
451
  getWfsFeatures: import("@ngrx/store").ActionCreator<"[Widget map] Get wfs Features for point", (props: {
444
452
  url: string;
@@ -455,10 +463,12 @@ export declare const DashboardActions: {
455
463
  url: string;
456
464
  oClass: string;
457
465
  coordinates: number[];
466
+ componentId: string;
458
467
  }) => {
459
468
  url: string;
460
469
  oClass: string;
461
470
  coordinates: number[];
471
+ componentId: string;
462
472
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Get wfs Features for showing stack tooltips">>;
463
473
  updateDisplayOptions: import("@ngrx/store").ActionCreator<"[Dashboard/Display] (bus) Update displayed dashboard management features", (props: {
464
474
  mode: ViewMode;
@@ -220,9 +220,11 @@ export declare class DashboardEffects {
220
220
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Store Wms capability">> & import("@ngrx/effects").CreateEffectMetadata;
221
221
  getWmsFeatures: import("rxjs").Observable<{
222
222
  features: any;
223
+ componentId: string;
223
224
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Set Wms layer features">> & import("@ngrx/effects").CreateEffectMetadata;
224
225
  getWfsFeaturesForPointStack: import("rxjs").Observable<{
225
226
  features: any;
227
+ componentId: string;
226
228
  } & import("@ngrx/store/src/models").TypedAction<"[Widget map] Set Wms layer features">> & import("@ngrx/effects").CreateEffectMetadata;
227
229
  addManifestMetadata: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Dashboard] (bus) fetching available manifests">> & import("@ngrx/effects").CreateEffectMetadata;
228
230
  deleteManifestMetadata$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Dashboard] (bus) fetching available manifests">> & import("@ngrx/effects").CreateEffectMetadata;
@@ -41,7 +41,9 @@ export interface DashboardState {
41
41
  params: DashboardCellParams;
42
42
  editionMode: boolean;
43
43
  };
44
- wmsFeatures: any[];
44
+ wmsFeatures: {
45
+ [componentId: string]: any[];
46
+ };
45
47
  display?: DisplayOptions;
46
48
  capabilities: {
47
49
  [url: string]: GetCapabilitiesResponse | null;
@@ -334,7 +334,7 @@ export declare const DashboardSelectors: {
334
334
  }, (s1: DashboardState) => {
335
335
  [datasourceId: string]: FilterContext[];
336
336
  }>;
337
- wmsFeatures: MemoizedSelector<object, any[], (s1: DashboardState) => any[]>;
337
+ wmsFeatures: (componentId: string) => MemoizedSelector<object, any[], (s1: DashboardState) => any[]>;
338
338
  displayOptions: MemoizedSelector<object, import("../../core/model/display-options.interface").DisplayOptions, (s1: DashboardState) => import("../../core/model/display-options.interface").DisplayOptions>;
339
339
  capabilities: MemoizedSelector<object, {
340
340
  [url: string]: import("@provoly/dashboard").GetCapabilitiesResponse | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@provoly/dashboard",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "16.x || 17.x",
@@ -132,36 +132,6 @@
132
132
  "esm": "./esm2022/toolbox/provoly-dashboard-toolbox.mjs",
133
133
  "default": "./fesm2022/provoly-dashboard-toolbox.mjs"
134
134
  },
135
- "./filters/autocomplete": {
136
- "types": "./filters/autocomplete/index.d.ts",
137
- "esm2022": "./esm2022/filters/autocomplete/provoly-dashboard-filters-autocomplete.mjs",
138
- "esm": "./esm2022/filters/autocomplete/provoly-dashboard-filters-autocomplete.mjs",
139
- "default": "./fesm2022/provoly-dashboard-filters-autocomplete.mjs"
140
- },
141
- "./filters/date": {
142
- "types": "./filters/date/index.d.ts",
143
- "esm2022": "./esm2022/filters/date/provoly-dashboard-filters-date.mjs",
144
- "esm": "./esm2022/filters/date/provoly-dashboard-filters-date.mjs",
145
- "default": "./fesm2022/provoly-dashboard-filters-date.mjs"
146
- },
147
- "./filters/list": {
148
- "types": "./filters/list/index.d.ts",
149
- "esm2022": "./esm2022/filters/list/provoly-dashboard-filters-list.mjs",
150
- "esm": "./esm2022/filters/list/provoly-dashboard-filters-list.mjs",
151
- "default": "./fesm2022/provoly-dashboard-filters-list.mjs"
152
- },
153
- "./filters/number": {
154
- "types": "./filters/number/index.d.ts",
155
- "esm2022": "./esm2022/filters/number/provoly-dashboard-filters-number.mjs",
156
- "esm": "./esm2022/filters/number/provoly-dashboard-filters-number.mjs",
157
- "default": "./fesm2022/provoly-dashboard-filters-number.mjs"
158
- },
159
- "./filters/text": {
160
- "types": "./filters/text/index.d.ts",
161
- "esm2022": "./esm2022/filters/text/provoly-dashboard-filters-text.mjs",
162
- "esm": "./esm2022/filters/text/provoly-dashboard-filters-text.mjs",
163
- "default": "./fesm2022/provoly-dashboard-filters-text.mjs"
164
- },
165
135
  "./components/card": {
166
136
  "types": "./components/card/index.d.ts",
167
137
  "esm2022": "./esm2022/components/card/provoly-dashboard-components-card.mjs",
@@ -228,6 +198,36 @@
228
198
  "esm": "./esm2022/components/text-editor/provoly-dashboard-components-text-editor.mjs",
229
199
  "default": "./fesm2022/provoly-dashboard-components-text-editor.mjs"
230
200
  },
201
+ "./filters/autocomplete": {
202
+ "types": "./filters/autocomplete/index.d.ts",
203
+ "esm2022": "./esm2022/filters/autocomplete/provoly-dashboard-filters-autocomplete.mjs",
204
+ "esm": "./esm2022/filters/autocomplete/provoly-dashboard-filters-autocomplete.mjs",
205
+ "default": "./fesm2022/provoly-dashboard-filters-autocomplete.mjs"
206
+ },
207
+ "./filters/date": {
208
+ "types": "./filters/date/index.d.ts",
209
+ "esm2022": "./esm2022/filters/date/provoly-dashboard-filters-date.mjs",
210
+ "esm": "./esm2022/filters/date/provoly-dashboard-filters-date.mjs",
211
+ "default": "./fesm2022/provoly-dashboard-filters-date.mjs"
212
+ },
213
+ "./filters/list": {
214
+ "types": "./filters/list/index.d.ts",
215
+ "esm2022": "./esm2022/filters/list/provoly-dashboard-filters-list.mjs",
216
+ "esm": "./esm2022/filters/list/provoly-dashboard-filters-list.mjs",
217
+ "default": "./fesm2022/provoly-dashboard-filters-list.mjs"
218
+ },
219
+ "./filters/number": {
220
+ "types": "./filters/number/index.d.ts",
221
+ "esm2022": "./esm2022/filters/number/provoly-dashboard-filters-number.mjs",
222
+ "esm": "./esm2022/filters/number/provoly-dashboard-filters-number.mjs",
223
+ "default": "./fesm2022/provoly-dashboard-filters-number.mjs"
224
+ },
225
+ "./filters/text": {
226
+ "types": "./filters/text/index.d.ts",
227
+ "esm2022": "./esm2022/filters/text/provoly-dashboard-filters-text.mjs",
228
+ "esm": "./esm2022/filters/text/provoly-dashboard-filters-text.mjs",
229
+ "default": "./fesm2022/provoly-dashboard-filters-text.mjs"
230
+ },
231
231
  "./pipeline-components/filter": {
232
232
  "types": "./pipeline-components/filter/index.d.ts",
233
233
  "esm2022": "./esm2022/pipeline-components/filter/provoly-dashboard-pipeline-components-filter.mjs",
@@ -276,6 +276,12 @@
276
276
  "esm": "./esm2022/widgets/widget-aggregated-chart/provoly-dashboard-widgets-widget-aggregated-chart.mjs",
277
277
  "default": "./fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs"
278
278
  },
279
+ "./widgets/widget-analytic": {
280
+ "types": "./widgets/widget-analytic/index.d.ts",
281
+ "esm2022": "./esm2022/widgets/widget-analytic/provoly-dashboard-widgets-widget-analytic.mjs",
282
+ "esm": "./esm2022/widgets/widget-analytic/provoly-dashboard-widgets-widget-analytic.mjs",
283
+ "default": "./fesm2022/provoly-dashboard-widgets-widget-analytic.mjs"
284
+ },
279
285
  "./widgets/widget-chart": {
280
286
  "types": "./widgets/widget-chart/index.d.ts",
281
287
  "esm2022": "./esm2022/widgets/widget-chart/provoly-dashboard-widgets-widget-chart.mjs",
@@ -2,7 +2,7 @@ import { Overlay, OverlayRef } from '@angular/cdk/overlay';
2
2
  import { ElementRef, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { Store } from '@ngrx/store';
5
- import { DashboardManifest, ManifestDescription, PryTitleService, PryVisibilityType, SubscriptionnerDirective, ViewMode } from '@provoly/dashboard';
5
+ import { DashboardManifest, ManifestDescription, PryBaseAccess, PryTitleService, PryVisibilityType, SubscriptionnerDirective, ViewMode } from '@provoly/dashboard';
6
6
  import { BehaviorSubject, Observable } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class PryPresentationComponent extends SubscriptionnerDirective {
@@ -13,6 +13,7 @@ export declare class PryPresentationComponent extends SubscriptionnerDirective {
13
13
  protected titleService: PryTitleService;
14
14
  protected activatedRoute: ActivatedRoute;
15
15
  protected ngZone: NgZone;
16
+ private access;
16
17
  manifests$: Observable<ManifestDescription[]>;
17
18
  selectedPresentation$: BehaviorSubject<ManifestDescription | null>;
18
19
  presentation?: ManifestDescription;
@@ -47,7 +48,7 @@ export declare class PryPresentationComponent extends SubscriptionnerDirective {
47
48
  hideToolbox: boolean;
48
49
  inputSearch$: BehaviorSubject<string>;
49
50
  set search(query: string);
50
- constructor(store: Store<any>, overlay: Overlay, viewContainerRef: ViewContainerRef, router: Router, titleService: PryTitleService, activatedRoute: ActivatedRoute, ngZone: NgZone);
51
+ constructor(store: Store<any>, overlay: Overlay, viewContainerRef: ViewContainerRef, router: Router, titleService: PryTitleService, activatedRoute: ActivatedRoute, ngZone: NgZone, access: PryBaseAccess);
51
52
  closeRestitution(): void;
52
53
  fetch(presentation: ManifestDescription): void;
53
54
  creation(): void;
@@ -62,6 +63,7 @@ export declare class PryPresentationComponent extends SubscriptionnerDirective {
62
63
  updateAccessGroups($event: string[]): void;
63
64
  updateVisibility($event: PryVisibilityType): void;
64
65
  updateDisableButtonValue(): void;
65
- static ɵfac: i0.ɵɵFactoryDeclaration<PryPresentationComponent, never>;
66
+ canModify$(presentation: ManifestDescription): Observable<boolean>;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<PryPresentationComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
66
68
  static ɵcmp: i0.ɵɵComponentDeclaration<PryPresentationComponent, "pry-presentation", never, { "editionStartUrl": { "alias": "editionStartUrl"; "required": false; }; "consultStartUrl": { "alias": "consultStartUrl"; "required": false; }; "meAsOwner": { "alias": "meAsOwner"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "listOfManifests": { "alias": "listOfManifests"; "required": false; }; "hideToolbox": { "alias": "hideToolbox"; "required": false; }; "search": { "alias": "search"; "required": false; }; }, {}, never, never, false, never>;
67
69
  }
@@ -138,6 +138,7 @@ pry-select {
138
138
  flex-direction: row;
139
139
  justify-content: space-between;
140
140
  align-items: center;
141
+ width: 100%;
141
142
 
142
143
  * {
143
144
  margin: 0;
@@ -43,20 +43,6 @@
43
43
  border-color: themed($theme-map, 'color', 'primary', 400);
44
44
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.10);
45
45
 
46
- &.-map-export {
47
- &:hover {
48
- @include changeBgColor(
49
- $targetBgColor: themed($theme-map, 'color', 'primary', 600),
50
- $targetTextColor: themed($theme-map, 'color', 'primary', 'contrast', 50),
51
- $targetBorderColor: themed($theme-map, 'color', 'primary', 600)
52
- );
53
-
54
- button {
55
- color: themed($theme-map, 'color', 'primary', 50);
56
- }
57
- }
58
- }
59
-
60
46
  .a-btn {
61
47
  color: themed($theme-map, 'color', 'primary', 600);
62
48
  background-color: transparent;
@@ -6,6 +6,7 @@ import { View } from 'vega';
6
6
  import { TopLevelSpec } from 'vega-lite';
7
7
  import { PrySchemeService } from '@provoly/dashboard/components/scheme-picker';
8
8
  import * as i0 from "@angular/core";
9
+ export declare const CHART_INTERVAL_STEP = 3;
9
10
  export declare class WidgetAggregatedChartComponent extends DataWidgetComponent implements AfterViewInit {
10
11
  private translateService;
11
12
  private aggregationService;
@@ -39,7 +40,9 @@ export declare class WidgetAggregatedChartComponent extends DataWidgetComponent
39
40
  data: any;
40
41
  operation: any;
41
42
  }>;
42
- WIDGET_HEADER_HEIGHT: number;
43
+ WIDGET_HEADER_HEIGHT: {
44
+ value: number;
45
+ };
43
46
  GraphType: typeof GraphType;
44
47
  Operation: typeof Operation;
45
48
  isChartValid$: Observable<boolean>;
@@ -104,11 +107,9 @@ export declare class WidgetAggregatedChartComponent extends DataWidgetComponent
104
107
  changeOrdinateLabel($event: any): void;
105
108
  changeKeep0Abscissa($event: any): void;
106
109
  changeKeep0Ordinate($event: any): void;
107
- limitElements($event: any): void;
108
- changeLimit($event: any): void;
109
- changeLimitOthers($event: any): void;
110
- changeLimitOrder($event: any): void;
111
- changeTimeLimit($event: any): void;
110
+ enableIntervals($event: any): void;
111
+ changeInterval($event: any): void;
112
+ changeTimeInterval($event: any): void;
112
113
  toggleLegend($event: any): void;
113
114
  toggleTooltip($event: any): void;
114
115
  toggleGroupBy($event: any): void;
@@ -124,7 +125,7 @@ export declare class WidgetAggregatedChartComponent extends DataWidgetComponent
124
125
  changeSortValue($event: 'key' | 'value'): void;
125
126
  changeSortDirection($event: 'asc' | 'desc'): void;
126
127
  toggleLimitItems($event: boolean): void;
127
- changeLimitItemsValue($event: number | null): void;
128
+ changeLimitValue($event: number | null): void;
128
129
  toImage(): Promise<string>;
129
130
  changeCircleColorScheme($event: any): void;
130
131
  changeBaseColor($event: any): void;
@@ -142,6 +143,7 @@ export declare class WidgetAggregatedChartComponent extends DataWidgetComponent
142
143
  labelAngle?: undefined;
143
144
  };
144
145
  getAbscissaType(abscissaVegaType: VegaType, hasSort: boolean): VegaType;
146
+ isTimeInterval(abscissaInterval: string | number): boolean;
145
147
  static ɵfac: i0.ɵɵFactoryDeclaration<WidgetAggregatedChartComponent, never>;
146
148
  static ɵcmp: i0.ɵɵComponentDeclaration<WidgetAggregatedChartComponent, "pry-widget-aggregated-chart", never, {}, {}, never, never, false, never>;
147
149
  }
@@ -68,6 +68,7 @@ export declare const enTranslations: {
68
68
  stacked: string;
69
69
  noData: string;
70
70
  aggNoResult: string;
71
+ interval: string;
71
72
  scheme: {
72
73
  accent: string;
73
74
  set2: string;
@@ -53,11 +53,9 @@ export declare const frTranslations: {
53
53
  origin: string;
54
54
  limit: string;
55
55
  limitMaxNb: string;
56
- asc: string;
57
- desc: string;
56
+ interval: string;
58
57
  timeInterval: string;
59
- others: string;
60
- order: string;
58
+ specifyInterval: string;
61
59
  groupBy: string;
62
60
  groupAttr: string;
63
61
  colorScheme: string;
@@ -0,0 +1,47 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { AnalyticWidgetOptions, Attribute, Class, DataWidgetComponent, ResultSet } from '@provoly/dashboard';
3
+ import { Observable } from 'rxjs';
4
+ import { Store } from '@ngrx/store';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WidgetAnalyticComponent extends DataWidgetComponent {
7
+ optionsCopy: AnalyticWidgetOptions;
8
+ options$: Observable<AnalyticWidgetOptions>;
9
+ primaryProperty$: Observable<string[]>;
10
+ secondaryProperty$: Observable<string[]>;
11
+ verticalProperty$: Observable<string[]>;
12
+ totalProperty$: Observable<string[]>;
13
+ grandTotalProperty$: Observable<string[]>;
14
+ lines$: Observable<{
15
+ name: string;
16
+ value: {
17
+ [key: string]: {
18
+ [key: string]: any;
19
+ };
20
+ };
21
+ }[]>;
22
+ totals$: Observable<{
23
+ name: string;
24
+ value: {
25
+ [key: string]: {
26
+ [key: string]: any;
27
+ };
28
+ };
29
+ }[]>;
30
+ grandTotals$: Observable<{
31
+ name: any;
32
+ value: {
33
+ [p: string]: any;
34
+ };
35
+ }[]>;
36
+ height$: Observable<number>;
37
+ classes$: Observable<Class[]>;
38
+ availableProperties$: Observable<Attribute[]>;
39
+ change($event: string, prop: 'primaryProp' | 'secondaryProp' | 'valueProp' | 'verticalProp'): void;
40
+ constructor(store: Store<any>, el: ElementRef);
41
+ private matchAttributeValue;
42
+ private createValueMap;
43
+ getPropertyLabelsForLevel(rs: ResultSet, property: string, level?: number): string[];
44
+ emitManifest(): void;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetAnalyticComponent, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<WidgetAnalyticComponent, "pry-widget-analytic", never, {}, {}, never, never, false, never>;
47
+ }
@@ -0,0 +1,12 @@
1
+ export declare const enTranslations: {
2
+ '@pry': {
3
+ widget: {
4
+ analytic: {
5
+ primaryProp: string;
6
+ secondaryProp: string;
7
+ verticalProp: string;
8
+ valueProp: string;
9
+ };
10
+ };
11
+ };
12
+ };
@@ -0,0 +1,12 @@
1
+ export declare const frTranslations: {
2
+ '@pry': {
3
+ widget: {
4
+ analytic: {
5
+ primaryProp: string;
6
+ secondaryProp: string;
7
+ verticalProp: string;
8
+ valueProp: string;
9
+ };
10
+ };
11
+ };
12
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@provoly/dashboard/widgets/widget-analytic" />
5
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './component/widget-analytic.component';
2
+ export * from './widget-analytic.module';