@provoly/dashboard 0.14.11 → 0.14.13

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 (108) hide show
  1. package/admin/admin.module.d.ts +2 -1
  2. package/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.d.ts +1 -0
  3. package/admin/components/admin-classes/store/admin-class.actions.d.ts +11 -0
  4. package/admin/components/admin-classes/store/admin-class.effects.d.ts +5 -0
  5. package/admin/components/admin-classes/store/admin-class.reducer.d.ts +1 -0
  6. package/admin/components/admin-classes/store/admin-class.selectors.d.ts +1 -0
  7. package/admin/i18n/en.translations.d.ts +11 -0
  8. package/admin/i18n/fr.translations.d.ts +11 -0
  9. package/admin/store/admin.service.d.ts +1 -0
  10. package/esm2022/admin/admin.module.mjs +8 -4
  11. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +8 -4
  12. package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +5 -2
  13. package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +4 -1
  14. package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +6 -2
  15. package/esm2022/admin/components/admin-classes/store/admin-class.selectors.mjs +4 -2
  16. package/esm2022/admin/i18n/en.translations.mjs +12 -1
  17. package/esm2022/admin/i18n/fr.translations.mjs +12 -1
  18. package/esm2022/admin/store/admin.service.mjs +6 -1
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +2 -1
  20. package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
  21. package/esm2022/lib/core/components/about/about.component.mjs +14 -9
  22. package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
  23. package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
  24. package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +2 -1
  25. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +2 -1
  26. package/esm2022/lib/core/public-api.mjs +4 -1
  27. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +101 -0
  28. package/esm2022/lib/core/store/aggregation/base-aggregation.service.mjs +16 -0
  29. package/esm2022/lib/core/store/aggregation/frontend-aggregation.service.mjs +210 -0
  30. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  31. package/esm2022/lib/core/store/config/config.service.mjs +13 -13
  32. package/esm2022/lib/core/store/config/versions.interface.mjs +1 -1
  33. package/esm2022/lib/core/store/context-menu/context-menu.actions.mjs +1 -1
  34. package/esm2022/lib/core/store/context-menu/context-menu.reducer.mjs +5 -3
  35. package/esm2022/lib/core/store/context-menu/context-menu.selectors.mjs +4 -2
  36. package/esm2022/lib/core/store/field/field.interface.mjs +1 -1
  37. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +23 -17
  38. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +1 -1
  39. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +1 -1
  40. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +4 -3
  41. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +5 -3
  42. package/esm2022/toolbox/components/save-view/save-view.component.mjs +5 -4
  43. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +8 -9
  44. package/esm2022/widgets/widget-aggregated-chart/public-api.mjs +1 -4
  45. package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +2 -3
  46. package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +2 -2
  47. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -2
  48. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +2 -1
  49. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +94 -34
  50. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +3 -2
  51. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +3 -2
  52. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +47 -52
  53. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -2
  54. package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +4 -2
  55. package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +4 -2
  56. package/fesm2022/provoly-dashboard-admin.mjs +55 -9
  57. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard-dataset.mjs +2 -1
  59. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  60. package/fesm2022/provoly-dashboard-toolbox.mjs +4 -3
  61. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +10 -313
  63. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
  65. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
  66. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -1
  67. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  68. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +98 -36
  69. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  70. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +47 -52
  71. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  72. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -1
  73. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  74. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +6 -2
  75. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  76. package/fesm2022/provoly-dashboard.mjs +420 -99
  77. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  78. package/lib/core/components/about/about.component.d.ts +3 -1
  79. package/lib/core/i18n/en.translations.d.ts +1 -0
  80. package/lib/core/i18n/fr.translations.d.ts +1 -0
  81. package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +2 -1
  82. package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
  83. package/lib/core/public-api.d.ts +3 -0
  84. package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/backend-aggregation.service.d.ts +4 -1
  85. package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/base-aggregation.service.d.ts +14 -1
  86. package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/frontend-aggregation.service.d.ts +3 -2
  87. package/lib/core/store/class/class.interface.d.ts +1 -0
  88. package/lib/core/store/config/config.service.d.ts +2 -1
  89. package/lib/core/store/config/versions.interface.d.ts +3 -3
  90. package/lib/core/store/context-menu/context-menu.actions.d.ts +2 -0
  91. package/lib/core/store/context-menu/context-menu.reducer.d.ts +1 -0
  92. package/lib/core/store/context-menu/context-menu.selectors.d.ts +1 -0
  93. package/lib/core/store/field/field.interface.d.ts +1 -0
  94. package/lib/dashboard/components/context-menu/context-menu.component.d.ts +1 -0
  95. package/lib/dashboard/store/dashboard.selectors.d.ts +6 -1
  96. package/package.json +1 -1
  97. package/styles/base/_utils.scss +4 -0
  98. package/styles/components/_o-pry-admin-classes-customize.scss +6 -4
  99. package/toolbox/components/save-view/save-view.component.d.ts +2 -1
  100. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +1 -7
  101. package/widgets/widget-aggregated-chart/public-api.d.ts +0 -3
  102. package/widgets/widget-map/component/widget-map.component.d.ts +14 -3
  103. package/widgets/widget-table/component/widget-table.component.d.ts +6 -1
  104. package/widgets/widget-vega/i18n/en.translations.d.ts +2 -0
  105. package/widgets/widget-vega/i18n/fr.translations.d.ts +2 -0
  106. package/esm2022/widgets/widget-aggregated-chart/service/backend-aggregation.service.mjs +0 -96
  107. package/esm2022/widgets/widget-aggregated-chart/service/base-aggregation.service.mjs +0 -16
  108. package/esm2022/widgets/widget-aggregated-chart/service/frontend-aggregation.service.mjs +0 -206
@@ -1,11 +1,13 @@
1
1
  import { Store } from '@ngrx/store';
2
2
  import { Observable } from 'rxjs';
3
+ import { PryI18nService } from '../../i18n/i18n.service';
3
4
  import { BackendVersion, FrontendVersion, Versions } from '../../store/config/versions.interface';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class PryAboutComponent {
6
7
  private store;
8
+ private i18nService;
7
9
  version$: Observable<Versions | null>;
8
- constructor(store: Store);
10
+ constructor(store: Store, i18nService: PryI18nService);
9
11
  displayVersion(value: BackendVersion | FrontendVersion): string;
10
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PryAboutComponent, never>;
11
13
  static ɵcmp: i0.ɵɵComponentDeclaration<PryAboutComponent, "pry-about", never, {}, {}, never, never, false, never>;
@@ -8,6 +8,7 @@ export declare const enTranslations: {
8
8
  exec: string;
9
9
  transfo: string;
10
10
  monitor: string;
11
+ noVersion: string;
11
12
  };
12
13
  header: {
13
14
  noCurrentPresentation: string;
@@ -8,6 +8,7 @@ export declare const frTranslations: {
8
8
  exec: string;
9
9
  transfo: string;
10
10
  monitor: string;
11
+ noVersion: string;
11
12
  };
12
13
  header: {
13
14
  noCurrentPresentation: string;
@@ -8,7 +8,8 @@ export declare enum Operation {
8
8
  Q1 = "q1",
9
9
  Q3 = "q3",
10
10
  MIN = "min",
11
- MAX = "max"
11
+ MAX = "max",
12
+ EXTENT = "extent"
12
13
  }
13
14
  export declare enum GraphType {
14
15
  AREA = "area-default",
@@ -112,3 +112,4 @@ export declare enum TooltipMode {
112
112
  export declare const widgetMapConfig: {
113
113
  actions$: BehaviorSubject<("click" | "lasso" | "rectangle" | "zoom" | "move" | "export" | "upload")[]>;
114
114
  };
115
+ export declare const DEFAULT_PROJECTION = "EPSG:4326";
@@ -43,6 +43,9 @@ export * from './store/context-menu/context-menu.actions';
43
43
  export * from './store/context-menu/context-menu.selectors';
44
44
  export * from './store/context-menu/context-menu.reducer';
45
45
  export * from './store/raw/raw.service';
46
+ export * from './store/aggregation/base-aggregation.service';
47
+ export * from './store/aggregation/backend-aggregation.service';
48
+ export * from './store/aggregation/frontend-aggregation.service';
46
49
  export * from './components/nq-color-selector/nq-color-selector.component';
47
50
  export * from './components/translate-id/translate-id.pipe';
48
51
  export * from './components/translate-item-to-symbol/translate-item-to-symbol.pipe';
@@ -1,7 +1,10 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Store } from '@ngrx/store';
3
- import { ChartAggregatedWidgetOptions, PryI18nService, PrySnackbarService, SearchService } from '@provoly/dashboard';
4
3
  import { Observable } from 'rxjs';
4
+ import { PrySnackbarService } from '../../components/snackbar/snackbar.service';
5
+ import { PryI18nService } from '../../i18n/i18n.service';
6
+ import { ChartAggregatedWidgetOptions } from '../../model/widget-aggregated-chart-manifest.interface';
7
+ import { SearchService } from '../search/search.service';
5
8
  import { AggregationResult, PryAggregationService } from './base-aggregation.service';
6
9
  import * as i0 from "@angular/core";
7
10
  export declare class PryBackendAggregationService extends PryAggregationService {
@@ -1,5 +1,6 @@
1
- import { ChartAggregatedWidgetOptions, Operation, ValueType } from '@provoly/dashboard';
2
1
  import { Observable } from 'rxjs';
2
+ import { ValueType } from '../../model/item.interface';
3
+ import { ChartAggregatedWidgetOptions, Operation } from '../../model/widget-aggregated-chart-manifest.interface';
3
4
  import * as i0 from "@angular/core";
4
5
  export interface AggregationResult {
5
6
  operation: Operation;
@@ -12,6 +13,18 @@ export interface AggregationResult {
12
13
  key: ValueType;
13
14
  value: ValueType;
14
15
  }[];
16
+ } | {
17
+ key: ValueType;
18
+ value: {
19
+ bottom_right: {
20
+ lon: string;
21
+ lat: string;
22
+ };
23
+ top_left: {
24
+ lon: string;
25
+ lat: string;
26
+ };
27
+ };
15
28
  })[];
16
29
  }
17
30
  export declare class PryAggregationService {
@@ -1,6 +1,7 @@
1
1
  import { Store } from '@ngrx/store';
2
- import { AtLimit, ChartAggregatedWidgetOptions, Item, Operation, TimeLimit, ValueType } from '@provoly/dashboard';
3
2
  import { Observable } from 'rxjs';
3
+ import { Item, ValueType } from '../../model/item.interface';
4
+ import { AtLimit, ChartAggregatedWidgetOptions, Operation, TimeLimit } from '../../model/widget-aggregated-chart-manifest.interface';
4
5
  import { AggregationResult, PryAggregationService } from './base-aggregation.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class PryFrontendAggregationService extends PryAggregationService {
@@ -12,7 +13,7 @@ export declare class PryFrontendAggregationService extends PryAggregationService
12
13
  value: ValueType;
13
14
  }[];
14
15
  groupBy(items: Item[], attribute: string): any;
15
- getValueFromAttribute(item: Item, attribute: string): import("@provoly/dashboard").AttributeSimpleValue;
16
+ getValueFromAttribute(item: Item, attribute: string): import("../../model/item.interface").AttributeSimpleValue;
16
17
  getSum(items: Item[], attribute: string): number;
17
18
  getMin(items: Item[], attribute: string): ValueType;
18
19
  getMax(items: Item[], attribute: string): ValueType;
@@ -3,6 +3,7 @@ export interface Class {
3
3
  name: string;
4
4
  icon?: string;
5
5
  attributes: Attribute[];
6
+ storage?: string;
6
7
  }
7
8
  export interface Attribute {
8
9
  id: string;
@@ -4,7 +4,7 @@ import { Observable } from 'rxjs';
4
4
  import { PrySnackbarService } from '../../components/snackbar/snackbar.service';
5
5
  import { PryI18nService } from '../../i18n/i18n.service';
6
6
  import { Widget } from '../../model/widget.interface';
7
- import { Versions } from './versions.interface';
7
+ import { BackendVersion, Versions } from './versions.interface';
8
8
  import * as i0 from "@angular/core";
9
9
  export interface ParamContent {
10
10
  domain: string;
@@ -47,6 +47,7 @@ export declare class ConfigService {
47
47
  * Get a list of all widgets from catalog
48
48
  */
49
49
  getAllWidgets(): Observable<Widget[]>;
50
+ handleBackendVersionError(obs: Observable<BackendVersion>): Observable<BackendVersion>;
50
51
  getAllVersions(): Observable<Versions>;
51
52
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfigService, never>;
52
53
  static ɵprov: i0.ɵɵInjectableDeclaration<ConfigService>;
@@ -2,9 +2,9 @@ export interface Versions {
2
2
  [key: string]: BackendVersion | FrontendVersion;
3
3
  }
4
4
  export interface BackendVersion {
5
- chartVersion: string;
6
- applicationVersion: string;
5
+ chartVersion?: string;
6
+ applicationVersion?: string;
7
7
  }
8
8
  export interface FrontendVersion {
9
- libVersion: string;
9
+ libVersion?: string;
10
10
  }
@@ -6,6 +6,7 @@ export declare const ContextMenuActions: {
6
6
  resultSet?: string | undefined;
7
7
  from: string;
8
8
  coordinates?: number[] | undefined;
9
+ allowObjectCreation: boolean;
9
10
  }) => {
10
11
  itemId: string;
11
12
  clientX: number;
@@ -13,6 +14,7 @@ export declare const ContextMenuActions: {
13
14
  resultSet?: string | undefined;
14
15
  from: string;
15
16
  coordinates?: number[] | undefined;
17
+ allowObjectCreation: boolean;
16
18
  } & import("@ngrx/store/src/models").TypedAction<"[ContextMenu] open">>;
17
19
  hide: import("@ngrx/store").ActionCreator<"[ContextMenu] hide", () => import("@ngrx/store/src/models").TypedAction<"[ContextMenu] hide">>;
18
20
  };
@@ -7,6 +7,7 @@ export interface ContextMenuState {
7
7
  from: string;
8
8
  resultSet: string | undefined;
9
9
  coordinates: number[] | undefined;
10
+ allowObjectCreation: boolean;
10
11
  }
11
12
  export declare const initialContextMenuState: ContextMenuState;
12
13
  export declare const contextMenuReducer: import("@ngrx/store").ActionReducer<ContextMenuState, import("@ngrx/store").Action>;
@@ -13,4 +13,5 @@ export declare const ContextMenuSelectors: {
13
13
  resultSet: import("@ngrx/store").MemoizedSelector<object, string | undefined, (s1: fromContextMenu.ContextMenuState) => string | undefined>;
14
14
  from: import("@ngrx/store").MemoizedSelector<object, string, (s1: fromContextMenu.ContextMenuState) => string>;
15
15
  coordinates: import("@ngrx/store").MemoizedSelector<object, number[] | undefined, (s1: fromContextMenu.ContextMenuState) => number[] | undefined>;
16
+ allowObjectCreation: import("@ngrx/store").MemoizedSelector<object, boolean, (s1: fromContextMenu.ContextMenuState) => boolean>;
16
17
  };
@@ -20,5 +20,6 @@ export interface Field {
20
20
  id: string;
21
21
  name: string;
22
22
  type: FieldType;
23
+ crs?: string;
23
24
  }
24
25
  export declare const GeometricFieldTypes: string[];
@@ -10,6 +10,7 @@ export declare class ContextMenuComponent extends SubscriptionnerDirective {
10
10
  private overlay;
11
11
  private viewContainerRef;
12
12
  widgetFactoryService: WidgetFactoryService;
13
+ allowObjectCreation$: Observable<boolean | undefined>;
13
14
  opened$: Observable<boolean>;
14
15
  position$: Observable<{
15
16
  clientX: number;
@@ -320,7 +320,7 @@ export declare const DashboardSelectors: {
320
320
  initial: GlobalManifest | undefined;
321
321
  }>;
322
322
  filters: MemoizedSelector<object, {}, (s1: DashboardState) => {}>;
323
- savePresentationActive: MemoizedSelector<object, boolean, (s1: {
323
+ isCurrentPresentationModified: MemoizedSelector<object, boolean, (s1: {
324
324
  current: import("../../core/model/manifest.interface").ManifestDescription | undefined;
325
325
  viewMode?: ViewMode | undefined;
326
326
  initial: GlobalManifest | undefined;
@@ -332,6 +332,11 @@ export declare const DashboardSelectors: {
332
332
  locked?: boolean | undefined;
333
333
  filters?: Filter[] | undefined;
334
334
  }) => boolean>;
335
+ isCurrentPresentationOwner: MemoizedSelector<object, boolean, (s1: {
336
+ current: import("../../core/model/manifest.interface").ManifestDescription | undefined;
337
+ viewMode?: ViewMode | undefined;
338
+ initial: GlobalManifest | undefined;
339
+ }) => boolean>;
335
340
  datasourceFilters: MemoizedSelector<object, {
336
341
  [datasourceId: string]: FilterContext[];
337
342
  }, (s1: DashboardState) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@provoly/dashboard",
3
- "version": "0.14.11",
3
+ "version": "0.14.13",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "14.x || 15.x || 16.x",
@@ -56,6 +56,10 @@
56
56
  &.-row {
57
57
  flex-direction: row;
58
58
  }
59
+
60
+ &.-no-gap {
61
+ gap: 0;
62
+ }
59
63
  }
60
64
 
61
65
  .u-self-center {
@@ -105,12 +105,13 @@
105
105
  cursor: move;
106
106
  }
107
107
 
108
- .description:hover:after{
108
+ .description:hover:after {
109
109
  cursor: pointer;
110
110
  }
111
111
 
112
112
  .description-tooltip {
113
113
  position: absolute;
114
+ transform: translateY(5rem);
114
115
  max-width: 50vw;
115
116
  visibility: hidden;
116
117
  background-color: #fff;
@@ -119,6 +120,7 @@
119
120
  opacity: 0;
120
121
  transition: opacity 0.5s ease;
121
122
  z-index: 2;
123
+ pointer-events: none;
122
124
  }
123
125
 
124
126
  .description:hover + .description-tooltip {
@@ -146,11 +148,11 @@
146
148
  justify-content: center;
147
149
  align-items: center;
148
150
  align-self: center;
149
- margin-right: 1rem;
150
- margin-left: 1rem;
151
+ margin: 0 1rem;
151
152
  }
153
+
152
154
  pry-select {
153
- flex: 1;
155
+ flex: 1;
154
156
  }
155
157
 
156
158
  .cdk-drag-preview {
@@ -25,7 +25,8 @@ export declare class SaveViewComponent extends ToolboxActionComponent {
25
25
  type: LibraryTypes;
26
26
  saveTypeOpened: boolean;
27
27
  currentManifest?: ManifestDescription;
28
- savePresentationActive$: Observable<boolean>;
28
+ isCurrentPresentationModified$: Observable<boolean>;
29
+ isCurrentPresentationOwner$: Observable<boolean>;
29
30
  nbPages: number;
30
31
  initialNbPages: number;
31
32
  hasInitial: boolean;
@@ -1,16 +1,10 @@
1
1
  import { AfterViewInit, ElementRef } from '@angular/core';
2
2
  import { Store } from '@ngrx/store';
3
- import { Attribute, ChartAggregatedWidgetOptions, Class, DataWidgetComponent, Field, FieldType, GraphType, Operation, PryI18nService, VegaType } from '@provoly/dashboard';
3
+ import { Attribute, ChartAggregatedWidgetOptions, Class, DataWidgetComponent, Field, FieldType, GraphType, Operation, PryAggregationService, PryI18nService, VegaType } from '@provoly/dashboard';
4
4
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
5
  import { View } from 'vega';
6
6
  import { TopLevelSpec } from 'vega-lite';
7
- import { PryAggregationService } from '../service/base-aggregation.service';
8
7
  import * as i0 from "@angular/core";
9
- export type RadarValue = {
10
- category: number;
11
- key: string;
12
- value: number;
13
- };
14
8
  export declare class WidgetAggregatedChartComponent extends DataWidgetComponent implements AfterViewInit {
15
9
  private translateService;
16
10
  private aggregationService;
@@ -1,5 +1,2 @@
1
1
  export * from './widget-aggregated-chart.module';
2
2
  export * from './component/widget-aggregated-chart.component';
3
- export * from './service/base-aggregation.service';
4
- export * from './service/frontend-aggregation.service';
5
- export * from './service/backend-aggregation.service';
@@ -1,8 +1,9 @@
1
1
  import { Overlay as cdkOverlay } from '@angular/cdk/overlay';
2
2
  import { AfterViewInit, ComponentRef, ElementRef, Injector, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
3
3
  import { Store } from '@ngrx/store';
4
- import { BaseTooltipComponent, BaseWidgetMapLayerOptions, Class, DataWidgetComponent, Field, GetCapabilitiesResponse, MapAutoLayerOptions, MapFeatureLayerOptions, MapGeoServerLayerOptions, MapRasterTileLayerOptions, MapVectorTileLayerOptions, MapWidgetBubbleLayerOptions, MapWidgetHeatMapLayerOptions, MapWidgetLayerOptions, MapWidgetMarkerLayerOptions, MapWidgetOptions, MapWMSLayerLayerOptions, MapWMTSLayerLayerOptions, PryI18nService, PrySnackbarService, SymbolService, TooltipFactoryService } from '@provoly/dashboard';
4
+ import { BaseTooltipComponent, BaseWidgetMapLayerOptions, Class, DataWidgetComponent, Field, GetCapabilitiesResponse, MapAutoLayerOptions, MapFeatureLayerOptions, MapGeoServerLayerOptions, MapRasterTileLayerOptions, MapVectorTileLayerOptions, MapWidgetBubbleLayerOptions, MapWidgetHeatMapLayerOptions, MapWidgetLayerOptions, MapWidgetMarkerLayerOptions, MapWidgetOptions, MapWMSLayerLayerOptions, MapWMTSLayerLayerOptions, PryAggregationService, PryI18nService, PrySnackbarService, SymbolService, TooltipFactoryService } from '@provoly/dashboard';
5
5
  import { Map } from 'ol';
6
+ import { Coordinate } from 'ol/coordinate';
6
7
  import { Geometry } from 'ol/geom';
7
8
  import { Layer } from 'ol/layer';
8
9
  import BaseLayer from 'ol/layer/Base';
@@ -25,6 +26,7 @@ export declare class WidgetMapComponent extends DataWidgetComponent implements A
25
26
  private symbolService;
26
27
  private injector;
27
28
  private widgetMapLayerService;
29
+ private pryAggregationService;
28
30
  mapUrl$: Observable<string>;
29
31
  mapRef: ElementRef;
30
32
  popup: ElementRef;
@@ -88,7 +90,13 @@ export declare class WidgetMapComponent extends DataWidgetComponent implements A
88
90
  [p: string]: GetCapabilitiesResponse | null;
89
91
  } | undefined>;
90
92
  autoDatasetLayers$: Observable<MapAutoLayerOptions[]>;
91
- constructor(store: Store<any>, snackBar: PrySnackbarService, translateService: PryI18nService, tooltipFactoryService: TooltipFactoryService, overlay: cdkOverlay, viewContainerRef: ViewContainerRef, symbolService: SymbolService, injector: Injector, widgetMapLayerService: WidgetMapLayerService, el: ElementRef);
93
+ aggregatedExtents$: Observable<{
94
+ datasource: string;
95
+ extent: Coordinate[];
96
+ }[]>;
97
+ datasourceFilters$: Observable<any>;
98
+ usedClasses$: Observable<any>;
99
+ constructor(store: Store<any>, snackBar: PrySnackbarService, translateService: PryI18nService, tooltipFactoryService: TooltipFactoryService, overlay: cdkOverlay, viewContainerRef: ViewContainerRef, symbolService: SymbolService, injector: Injector, widgetMapLayerService: WidgetMapLayerService, pryAggregationService: PryAggregationService, el: ElementRef);
92
100
  initInteractionManager(): InteractionManager;
93
101
  ngAfterViewInit(): void;
94
102
  initResultSet$(): Observable<import("@provoly/dashboard").ResultSet>;
@@ -102,7 +110,10 @@ export declare class WidgetMapComponent extends DataWidgetComponent implements A
102
110
  } | undefined): void;
103
111
  fitMapForObjects(fit: boolean, wmsCapabilities?: {
104
112
  [p: string]: GetCapabilitiesResponse | null;
105
- }, selectedIds?: string[]): void;
113
+ }, selectedIds?: string[], extents?: {
114
+ datasource: string;
115
+ extent: Coordinate[];
116
+ }[]): void;
106
117
  private getAttributesForDrawing;
107
118
  private getIntensityAttribute;
108
119
  private getLocationAttribute;
@@ -15,7 +15,10 @@ export declare class WidgetTableComponent extends DataWidgetComponent {
15
15
  selectedIds: string[];
16
16
  WIDGET_HEADER_HEIGHT: number;
17
17
  private classes$;
18
- properties$: Observable<string[]>;
18
+ properties$: Observable<{
19
+ label: string;
20
+ property: string;
21
+ }[]>;
19
22
  isLoading$: Observable<boolean>;
20
23
  allSelected$: Observable<boolean>;
21
24
  areAllSelected: boolean;
@@ -23,7 +26,9 @@ export declare class WidgetTableComponent extends DataWidgetComponent {
23
26
  contextMenuClickedId: string;
24
27
  isContextMenuOpened$: Observable<boolean>;
25
28
  quickOrder$: Observable<ResultOrder | undefined>;
29
+ private _refresh$;
26
30
  constructor(store: Store<any>, el: ElementRef, cdr: ChangeDetectorRef);
31
+ refresh(): void;
27
32
  emitManifest(): void;
28
33
  addColumn(): void;
29
34
  changePropertyName($event: any, columnDef: ColumnDefinition): void;
@@ -4,6 +4,8 @@ export declare const enTranslations: {
4
4
  vega: {
5
5
  placeData: string;
6
6
  spec: string;
7
+ notParseableSpec: string;
8
+ specReinit: string;
7
9
  };
8
10
  };
9
11
  };
@@ -4,6 +4,8 @@ export declare const frTranslations: {
4
4
  vega: {
5
5
  placeData: string;
6
6
  spec: string;
7
+ notParseableSpec: string;
8
+ specReinit: string;
7
9
  };
8
10
  };
9
11
  };
@@ -1,96 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { ClassSelectors, ConfigSelectors, DashboardSelectors, DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID, FieldSelectors, Operation } from '@provoly/dashboard';
4
- import { map, of, switchMap } from 'rxjs';
5
- import { PryAggregationService } from './base-aggregation.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngrx/store";
8
- import * as i2 from "@provoly/dashboard";
9
- import * as i3 from "@angular/common/http";
10
- export class PryBackendAggregationService extends PryAggregationService {
11
- constructor(store, snackBar, translateService, httpClient, searchService) {
12
- super();
13
- this.store = store;
14
- this.snackBar = snackBar;
15
- this.translateService = translateService;
16
- this.httpClient = httpClient;
17
- this.searchService = searchService;
18
- this.rs = {};
19
- this.classes = [];
20
- this.fields = [];
21
- this.filters = {};
22
- this.store.select(DashboardSelectors.resultSets).subscribe((rs) => (this.rs = rs));
23
- this.store.select(ClassSelectors.classes).subscribe((classes) => (this.classes = classes));
24
- this.store.select(FieldSelectors.fields).subscribe((fields) => (this.fields = fields));
25
- this.store.select(DashboardSelectors.datasourceFilters).subscribe((filters) => (this.filters = filters));
26
- }
27
- aggregate(datasources, options) {
28
- const targetDatasource = datasources.find((ds) => ![DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID].includes(ds));
29
- if (datasources.length > 1) {
30
- this.snackBar.open({
31
- type: 'warning',
32
- message: this.translateService.instant('@pry.message.backend-only-1-datasource'),
33
- timeout: 4000
34
- });
35
- }
36
- if (datasources.includes(DEFAULT_NAMED_QUERY_ID) || datasources.includes(EXPLORE_NAMED_QUERY_ID)) {
37
- this.snackBar.open({
38
- type: 'warning',
39
- message: this.translateService.instant('@pry.message.cannot-aggregate-virtual-ds'),
40
- timeout: 4000
41
- });
42
- }
43
- if (!options.abscissa || !options.ordinate) {
44
- console.warn('Abscissa and ordinate must both be defined');
45
- return of({ operation: 'none', values: [] });
46
- }
47
- if (!targetDatasource) {
48
- console.warn('Aggregation needs a target datasource.');
49
- return of({ operation: options.ordinate.operation, values: [] });
50
- }
51
- let params = new HttpParams();
52
- if (options.abscissa.attribute) {
53
- params = params.set('aggregatedBy', options.abscissa.attribute);
54
- }
55
- else {
56
- console.warn('Aggregation needs an aggregatedBy member.');
57
- return of({ operation: options.ordinate.operation, values: [] });
58
- }
59
- if (options.abscissa.limit) {
60
- if (options.abscissa.limit.isTimeLimit) {
61
- params = params.set('dateInterval', options.abscissa.limit.interval);
62
- }
63
- else {
64
- params = params.set('interval', options.abscissa.limit.at);
65
- params = params.set('limitOrder', options.abscissa.limit.order);
66
- params = params.set('limitOthers', options.abscissa.limit.others);
67
- }
68
- }
69
- const operation = options.ordinate.operation?.replace(/^none$/, Operation.SUM);
70
- params = params.set('operation', operation);
71
- if (!!options.ordinate.attribute) {
72
- params = params.set('valueField', options.ordinate.attribute);
73
- }
74
- if (options.groupBy) {
75
- params = params.set('groupBy', options.groupBy.attribute);
76
- }
77
- params = this.searchService.getItemsFilter(targetDatasource, params);
78
- return this.store.select(ConfigSelectors.dataUrl).pipe(switchMap((url) => this.httpClient
79
- .get(`${url}/data-sources/id/${targetDatasource}/items/aggregate`, {
80
- params
81
- })
82
- .pipe(map((result) => ({
83
- ...result,
84
- operation: options.ordinate.operation === Operation.NONE ? Operation.NONE : result.operation
85
- })))));
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: i2.PrySnackbarService }, { token: i2.PryI18nService }, { token: i3.HttpClient }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Injectable }); }
88
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, decorators: [{
91
- type: Injectable,
92
- args: [{
93
- providedIn: 'root'
94
- }]
95
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PrySnackbarService }, { type: i2.PryI18nService }, { type: i3.HttpClient }, { type: i2.SearchService }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1hZ2dyZWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtYWdncmVnYXRlZC1jaGFydC9zZXJ2aWNlL2JhY2tlbmQtYWdncmVnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBR0wsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUV0QixjQUFjLEVBRWQsU0FBUyxFQUtWLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFLdEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHFCQUFxQjtJQU1yRSxZQUNVLEtBQVksRUFDWixRQUE0QixFQUM1QixnQkFBZ0MsRUFDaEMsVUFBc0IsRUFDdEIsYUFBNEI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFOQSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVjlCLE9BQUUsR0FBZSxFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBVzlELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRVEsU0FBUyxDQUFDLFdBQXFCLEVBQUUsT0FBcUM7UUFDN0UsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNqQixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztnQkFDaEYsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUM7Z0JBQ2xGLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUF1QixDQUFDLENBQUM7U0FDbkU7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQXVCLENBQUMsQ0FBQztTQUN2RjtRQUVELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNqRTthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQzFELE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQXVCLENBQUMsQ0FBQztTQUN2RjtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0RTtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNELE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ25FO1NBQ0Y7UUFDRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDaEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0Q7UUFDRCxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNwRCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsVUFBVTthQUNaLEdBQUcsQ0FBb0IsR0FBRyxHQUFHLG9CQUFvQixnQkFBZ0Isa0JBQWtCLEVBQUU7WUFDcEYsTUFBTTtTQUNQLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxNQUFNO1lBQ1QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1NBQzdGLENBQUMsQ0FBQyxDQUNKLENBQ0osQ0FDRixDQUFDO0lBQ0osQ0FBQzs4R0ExRlUsNEJBQTRCO2tIQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTs7MkZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMsXG4gIENsYXNzLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29uZmlnU2VsZWN0b3JzLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gIEVYUExPUkVfTkFNRURfUVVFUllfSUQsXG4gIEZpZWxkLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgRmlsdGVyQ29udGV4dCxcbiAgT3BlcmF0aW9uLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICBSZXN1bHRTZXRzLFxuICBTZWFyY2hTZXJ2aWNlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uUmVzdWx0LCBQcnlBZ2dyZWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtYWdncmVnYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeUJhY2tlbmRBZ2dyZWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBQcnlBZ2dyZWdhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJzOiBSZXN1bHRTZXRzID0ge307XG4gIHByaXZhdGUgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGZpbHRlcnM6IHsgW2RhdGFzb3VyY2U6IHN0cmluZ106IEZpbHRlckNvbnRleHRbXSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpLnN1YnNjcmliZSgocnMpID0+ICh0aGlzLnJzID0gcnMgYXMgUmVzdWx0U2V0cykpO1xuICAgIHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLnN1YnNjcmliZSgoY2xhc3NlcykgPT4gKHRoaXMuY2xhc3NlcyA9IGNsYXNzZXMpKTtcbiAgICB0aGlzLnN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpLnN1YnNjcmliZSgoZmllbGRzKSA9PiAodGhpcy5maWVsZHMgPSBmaWVsZHMpKTtcbiAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGF0YXNvdXJjZUZpbHRlcnMpLnN1YnNjcmliZSgoZmlsdGVycykgPT4gKHRoaXMuZmlsdGVycyA9IGZpbHRlcnMpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFnZ3JlZ2F0ZShkYXRhc291cmNlczogc3RyaW5nW10sIG9wdGlvbnM6IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFnZ3JlZ2F0aW9uUmVzdWx0PiB7XG4gICAgY29uc3QgdGFyZ2V0RGF0YXNvdXJjZSA9IGRhdGFzb3VyY2VzLmZpbmQoKGRzKSA9PiAhW0RFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSURdLmluY2x1ZGVzKGRzKSk7XG5cbiAgICBpZiAoZGF0YXNvdXJjZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5tZXNzYWdlLmJhY2tlbmQtb25seS0xLWRhdGFzb3VyY2UnKSxcbiAgICAgICAgdGltZW91dDogNDAwMFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGFzb3VyY2VzLmluY2x1ZGVzKERFRkFVTFRfTkFNRURfUVVFUllfSUQpIHx8IGRhdGFzb3VyY2VzLmluY2x1ZGVzKEVYUExPUkVfTkFNRURfUVVFUllfSUQpKSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oe1xuICAgICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5Lm1lc3NhZ2UuY2Fubm90LWFnZ3JlZ2F0ZS12aXJ0dWFsLWRzJyksXG4gICAgICAgIHRpbWVvdXQ6IDQwMDBcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5hYnNjaXNzYSB8fCAhb3B0aW9ucy5vcmRpbmF0ZSkge1xuICAgICAgY29uc29sZS53YXJuKCdBYnNjaXNzYSBhbmQgb3JkaW5hdGUgbXVzdCBib3RoIGJlIGRlZmluZWQnKTtcbiAgICAgIHJldHVybiBvZih7IG9wZXJhdGlvbjogJ25vbmUnLCB2YWx1ZXM6IFtdIH0gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xuICAgIH1cblxuICAgIGlmICghdGFyZ2V0RGF0YXNvdXJjZSkge1xuICAgICAgY29uc29sZS53YXJuKCdBZ2dyZWdhdGlvbiBuZWVkcyBhIHRhcmdldCBkYXRhc291cmNlLicpO1xuICAgICAgcmV0dXJuIG9mKHsgb3BlcmF0aW9uOiBvcHRpb25zLm9yZGluYXRlLm9wZXJhdGlvbiwgdmFsdWVzOiBbXSB9IGFzIEFnZ3JlZ2F0aW9uUmVzdWx0KTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAob3B0aW9ucy5hYnNjaXNzYS5hdHRyaWJ1dGUpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2FnZ3JlZ2F0ZWRCeScsIG9wdGlvbnMuYWJzY2lzc2EuYXR0cmlidXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdBZ2dyZWdhdGlvbiBuZWVkcyBhbiBhZ2dyZWdhdGVkQnkgbWVtYmVyLicpO1xuICAgICAgcmV0dXJuIG9mKHsgb3BlcmF0aW9uOiBvcHRpb25zLm9yZGluYXRlLm9wZXJhdGlvbiwgdmFsdWVzOiBbXSB9IGFzIEFnZ3JlZ2F0aW9uUmVzdWx0KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuYWJzY2lzc2EubGltaXQpIHtcbiAgICAgIGlmIChvcHRpb25zLmFic2Npc3NhLmxpbWl0LmlzVGltZUxpbWl0KSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2RhdGVJbnRlcnZhbCcsIG9wdGlvbnMuYWJzY2lzc2EubGltaXQuaW50ZXJ2YWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaW50ZXJ2YWwnLCBvcHRpb25zLmFic2Npc3NhLmxpbWl0LmF0KTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGltaXRPcmRlcicsIG9wdGlvbnMuYWJzY2lzc2EubGltaXQub3JkZXIpO1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdsaW1pdE90aGVycycsIG9wdGlvbnMuYWJzY2lzc2EubGltaXQub3RoZXJzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gb3B0aW9ucy5vcmRpbmF0ZS5vcGVyYXRpb24/LnJlcGxhY2UoL15ub25lJC8sIE9wZXJhdGlvbi5TVU0pO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29wZXJhdGlvbicsIG9wZXJhdGlvbik7XG4gICAgaWYgKCEhb3B0aW9ucy5vcmRpbmF0ZS5hdHRyaWJ1dGUpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3ZhbHVlRmllbGQnLCBvcHRpb25zLm9yZGluYXRlLmF0dHJpYnV0ZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmdyb3VwQnkpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2dyb3VwQnknLCBvcHRpb25zLmdyb3VwQnkuYXR0cmlidXRlKTtcbiAgICB9XG4gICAgcGFyYW1zID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldEl0ZW1zRmlsdGVyKHRhcmdldERhdGFzb3VyY2UsIHBhcmFtcyk7XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVybCkgPT5cbiAgICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgLmdldDxBZ2dyZWdhdGlvblJlc3VsdD4oYCR7dXJsfS9kYXRhLXNvdXJjZXMvaWQvJHt0YXJnZXREYXRhc291cmNlfS9pdGVtcy9hZ2dyZWdhdGVgLCB7XG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHQpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBvcHRpb25zLm9yZGluYXRlLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uLk5PTkUgPyBPcGVyYXRpb24uTk9ORSA6IHJlc3VsdC5vcGVyYXRpb25cbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PryAggregationService {
4
- aggregate(datasource, options) {
5
- throw new Error('You must declare the use of an aggregation service. Add PryBackendAggregationService, PryFrontendAggregationService or a custom service');
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, providedIn: 'root' }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, decorators: [{
11
- type: Injectable,
12
- args: [{
13
- providedIn: 'root'
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hZ2dyZWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtYWdncmVnYXRlZC1jaGFydC9zZXJ2aWNlL2Jhc2UtYWdncmVnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXdCM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxTQUFTLENBQUMsVUFBb0IsRUFBRSxPQUFxQztRQUNuRSxNQUFNLElBQUksS0FBSyxDQUNiLHlJQUF5SSxDQUMxSSxDQUFDO0lBQ0osQ0FBQzs4R0FMVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucywgT3BlcmF0aW9uLCBWYWx1ZVR5cGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0aW9uUmVzdWx0IHtcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb247XG4gIHZhbHVlczogKFxuICAgIHwge1xuICAgICAgICBrZXk6IFZhbHVlVHlwZTtcbiAgICAgICAgdmFsdWU6IFZhbHVlVHlwZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAga2V5OiBWYWx1ZVR5cGU7XG4gICAgICAgIGdyb3VwQnk6IHtcbiAgICAgICAgICBrZXk6IFZhbHVlVHlwZTtcbiAgICAgICAgICB2YWx1ZTogVmFsdWVUeXBlO1xuICAgICAgICB9W107XG4gICAgICB9XG4gIClbXTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5QWdncmVnYXRpb25TZXJ2aWNlIHtcbiAgYWdncmVnYXRlKGRhdGFzb3VyY2U6IHN0cmluZ1tdLCBvcHRpb25zOiBDaGFydEFnZ3JlZ2F0ZWRXaWRnZXRPcHRpb25zKTogT2JzZXJ2YWJsZTxBZ2dyZWdhdGlvblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBkZWNsYXJlIHRoZSB1c2Ugb2YgYW4gYWdncmVnYXRpb24gc2VydmljZS4gQWRkIFByeUJhY2tlbmRBZ2dyZWdhdGlvblNlcnZpY2UsIFByeUZyb250ZW5kQWdncmVnYXRpb25TZXJ2aWNlIG9yIGEgY3VzdG9tIHNlcnZpY2UnXG4gICAgKTtcbiAgfVxufVxuIl19