@igo2/integration 18.0.0-next.9 → 18.0.1-next.1

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 (123) hide show
  1. package/fesm2022/igo2-integration.mjs +555 -466
  2. package/fesm2022/igo2-integration.mjs.map +1 -1
  3. package/lib/directions/directions-tool/directions-tool.component.d.ts +3 -3
  4. package/lib/directions/directions.state.d.ts +2 -2
  5. package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +4 -6
  6. package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +5 -6
  7. package/lib/map/map-details-tool/map-details-tool.component.d.ts +12 -4
  8. package/lib/map/map-legend/map-legend-tool.component.d.ts +4 -4
  9. package/lib/map/map-proximity.state.d.ts +4 -3
  10. package/lib/map/map-tool/map-tool.component.d.ts +14 -3
  11. package/lib/map/map-tools/map-tools.component.d.ts +15 -6
  12. package/lib/workspace/workspace-button/workspace-button.component.d.ts +4 -4
  13. package/package.json +8 -10
  14. package/esm2022/igo2-integration.mjs +0 -5
  15. package/esm2022/lib/about/about-tool/about-tool.component.mjs +0 -152
  16. package/esm2022/lib/about/about-tool/index.mjs +0 -2
  17. package/esm2022/lib/about/about.module.mjs +0 -26
  18. package/esm2022/lib/about/index.mjs +0 -2
  19. package/esm2022/lib/analytics/analytics-listener.service.mjs +0 -145
  20. package/esm2022/lib/analytics/index.mjs +0 -2
  21. package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +0 -113
  22. package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +0 -19
  23. package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +0 -110
  24. package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +0 -19
  25. package/esm2022/lib/catalog/catalog.module.mjs +0 -19
  26. package/esm2022/lib/catalog/catalog.state.mjs +0 -58
  27. package/esm2022/lib/catalog/index.mjs +0 -6
  28. package/esm2022/lib/context/context-editor-tool/context-editor-tool.component.mjs +0 -33
  29. package/esm2022/lib/context/context-manager-tool/context-manager-tool.component.mjs +0 -46
  30. package/esm2022/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +0 -23
  31. package/esm2022/lib/context/context-share-tool/context-share-tool.component.mjs +0 -40
  32. package/esm2022/lib/context/context.directive.mjs +0 -11
  33. package/esm2022/lib/context/context.module.mjs +0 -23
  34. package/esm2022/lib/context/context.state.mjs +0 -96
  35. package/esm2022/lib/context/index.mjs +0 -7
  36. package/esm2022/lib/directions/directions-tool/directions-tool.component.mjs +0 -121
  37. package/esm2022/lib/directions/directions-tool/index.mjs +0 -2
  38. package/esm2022/lib/directions/directions.module.mjs +0 -25
  39. package/esm2022/lib/directions/directions.state.mjs +0 -69
  40. package/esm2022/lib/directions/index.mjs +0 -3
  41. package/esm2022/lib/draw/draw.module.mjs +0 -18
  42. package/esm2022/lib/draw/draw.state.mjs +0 -43
  43. package/esm2022/lib/draw/drawing-tool/drawing-tool.component.mjs +0 -72
  44. package/esm2022/lib/draw/drawing-tool/drawing-tool.module.mjs +0 -19
  45. package/esm2022/lib/draw/index.mjs +0 -4
  46. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  47. package/esm2022/lib/environment/index.mjs +0 -2
  48. package/esm2022/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.mjs +0 -10
  49. package/esm2022/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +0 -43
  50. package/esm2022/lib/filter/active-ogc-filter-tool/index.mjs +0 -2
  51. package/esm2022/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.mjs +0 -10
  52. package/esm2022/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +0 -43
  53. package/esm2022/lib/filter/active-time-filter-tool/index.mjs +0 -2
  54. package/esm2022/lib/filter/filter.module.mjs +0 -53
  55. package/esm2022/lib/filter/index.mjs +0 -18
  56. package/esm2022/lib/filter/ogc-filter-tool/index.mjs +0 -2
  57. package/esm2022/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +0 -22
  58. package/esm2022/lib/filter/spatial-filter-tool/index.mjs +0 -2
  59. package/esm2022/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +0 -589
  60. package/esm2022/lib/filter/time-filter-tool/index.mjs +0 -2
  61. package/esm2022/lib/filter/time-filter-tool/time-filter-tool.component.mjs +0 -22
  62. package/esm2022/lib/geometry-form/data-issue-reporter-tool/data-issue-reporter-tool.component.mjs +0 -184
  63. package/esm2022/lib/geometry-form/data-issue-reporter-tool/index.mjs +0 -2
  64. package/esm2022/lib/geometry-form/geometry-form.module.mjs +0 -37
  65. package/esm2022/lib/geometry-form/index.mjs +0 -2
  66. package/esm2022/lib/import-export/import-export-tool/import-export-tool.component.mjs +0 -113
  67. package/esm2022/lib/import-export/import-export-tool/index.mjs +0 -2
  68. package/esm2022/lib/import-export/import-export.module.mjs +0 -25
  69. package/esm2022/lib/import-export/import-export.state.mjs +0 -39
  70. package/esm2022/lib/import-export/index.mjs +0 -3
  71. package/esm2022/lib/integration.module.mjs +0 -70
  72. package/esm2022/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +0 -446
  73. package/esm2022/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +0 -60
  74. package/esm2022/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +0 -157
  75. package/esm2022/lib/map/advanced-map-tool/index.mjs +0 -2
  76. package/esm2022/lib/map/index.mjs +0 -10
  77. package/esm2022/lib/map/layer-list-tool.state.mjs +0 -40
  78. package/esm2022/lib/map/map-details-tool/index.mjs +0 -2
  79. package/esm2022/lib/map/map-details-tool/map-details-tool.component.mjs +0 -161
  80. package/esm2022/lib/map/map-legend/index.mjs +0 -2
  81. package/esm2022/lib/map/map-legend/map-legend-tool.component.mjs +0 -165
  82. package/esm2022/lib/map/map-proximity-tool/index.mjs +0 -2
  83. package/esm2022/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +0 -152
  84. package/esm2022/lib/map/map-proximity.state.mjs +0 -180
  85. package/esm2022/lib/map/map-tool/index.mjs +0 -2
  86. package/esm2022/lib/map/map-tool/map-tool.component.mjs +0 -116
  87. package/esm2022/lib/map/map-tools/index.mjs +0 -2
  88. package/esm2022/lib/map/map-tools/map-tools.component.mjs +0 -317
  89. package/esm2022/lib/map/map.directive.mjs +0 -15
  90. package/esm2022/lib/map/map.module.mjs +0 -59
  91. package/esm2022/lib/map/map.state.mjs +0 -58
  92. package/esm2022/lib/measure/index.mjs +0 -4
  93. package/esm2022/lib/measure/measure.module.mjs +0 -18
  94. package/esm2022/lib/measure/measure.state.mjs +0 -40
  95. package/esm2022/lib/measure/measurer-tool/measurer-tool.component.mjs +0 -51
  96. package/esm2022/lib/measure/measurer-tool/measurer-tool.module.mjs +0 -19
  97. package/esm2022/lib/print/index.mjs +0 -2
  98. package/esm2022/lib/print/print-tool/index.mjs +0 -2
  99. package/esm2022/lib/print/print-tool/print-tool.component.mjs +0 -32
  100. package/esm2022/lib/print/print.module.mjs +0 -25
  101. package/esm2022/lib/search/index.mjs +0 -7
  102. package/esm2022/lib/search/query.state.mjs +0 -48
  103. package/esm2022/lib/search/search-bar/search-bar-binding.directive.mjs +0 -71
  104. package/esm2022/lib/search/search-bar/search-bar.module.mjs +0 -19
  105. package/esm2022/lib/search/search-results-tool/search-results-tool.component.mjs +0 -557
  106. package/esm2022/lib/search/search-results-tool/search-results-tool.module.mjs +0 -19
  107. package/esm2022/lib/search/search.module.mjs +0 -20
  108. package/esm2022/lib/search/search.state.mjs +0 -155
  109. package/esm2022/lib/storage/index.mjs +0 -2
  110. package/esm2022/lib/storage/storage.state.mjs +0 -25
  111. package/esm2022/lib/tool/index.mjs +0 -2
  112. package/esm2022/lib/tool/tool.state.mjs +0 -56
  113. package/esm2022/lib/workspace/index.mjs +0 -4
  114. package/esm2022/lib/workspace/shared/edition-actions.service.mjs +0 -75
  115. package/esm2022/lib/workspace/shared/feature-actions.service.mjs +0 -65
  116. package/esm2022/lib/workspace/shared/index.mjs +0 -3
  117. package/esm2022/lib/workspace/shared/wfs-actions.service.mjs +0 -77
  118. package/esm2022/lib/workspace/shared/workspace.utils.mjs +0 -166
  119. package/esm2022/lib/workspace/workspace-button/index.mjs +0 -2
  120. package/esm2022/lib/workspace/workspace-button/workspace-button.component.mjs +0 -71
  121. package/esm2022/lib/workspace/workspace.module.mjs +0 -19
  122. package/esm2022/lib/workspace/workspace.state.mjs +0 -205
  123. package/esm2022/public_api.mjs +0 -35
@@ -3,7 +3,7 @@ import { AuthService } from '@igo2/auth';
3
3
  import { LanguageService } from '@igo2/core/language';
4
4
  import { MessageService } from '@igo2/core/message';
5
5
  import { StorageService } from '@igo2/core/storage';
6
- import { IgoMap, RoutesFeatureStore, StepFeatureStore, StopsFeatureStore, StopsStore } from '@igo2/geo';
6
+ import { IgoMap, RoutesFeatureStore, StepsFeatureStore, StopsFeatureStore, StopsStore } from '@igo2/geo';
7
7
  import { BehaviorSubject, Subject } from 'rxjs';
8
8
  import { ContextState } from '../../context/context.state';
9
9
  import { MapState } from '../../map/map.state';
@@ -38,12 +38,12 @@ export declare class DirectionsToolComponent implements OnInit {
38
38
  * step store
39
39
  * @internal
40
40
  */
41
- get stepFeatureStore(): StepFeatureStore;
41
+ get stepFeatureStore(): StepsFeatureStore;
42
42
  /**
43
43
  * step store
44
44
  * @internal
45
45
  */
46
- get zoomToActiveRoute$(): Subject<void>;
46
+ get zoomOnActiveRoute$(): Subject<void>;
47
47
  get authenticated$(): BehaviorSubject<boolean>;
48
48
  /**
49
49
  * Map to measure on
@@ -1,4 +1,4 @@
1
- import { RoutesFeatureStore, StepFeatureStore, StopsFeatureStore, StopsStore } from '@igo2/geo';
1
+ import { RoutesFeatureStore, StepsFeatureStore, StopsFeatureStore, StopsStore } from '@igo2/geo';
2
2
  import { Subject } from 'rxjs';
3
3
  import { MapState } from '../map/map.state';
4
4
  import * as i0 from "@angular/core";
@@ -20,7 +20,7 @@ export declare class DirectionState {
20
20
  * Store that holds the driving route as feature
21
21
  */
22
22
  routesFeatureStore: RoutesFeatureStore;
23
- stepFeatureStore: StepFeatureStore;
23
+ stepFeatureStore: StepsFeatureStore;
24
24
  debounceTime: number;
25
25
  constructor(mapState: MapState);
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<DirectionState, never>;
@@ -3,7 +3,7 @@ import { MatIconRegistry } from '@angular/material/icon';
3
3
  import { EntityStore } from '@igo2/common/entity';
4
4
  import { LanguageService } from '@igo2/core/language';
5
5
  import { MessageService } from '@igo2/core/message';
6
- import { DataSourceService, Feature, IgoMap, Layer, LayerService, MeasureLengthUnit, SpatialFilterItemType, SpatialFilterQueryType, SpatialFilterService, SpatialFilterThematic, SpatialFilterType } from '@igo2/geo';
6
+ import { AnyLayer, Feature, IgoMap, LayerService, MeasureLengthUnit, SpatialFilterItemType, SpatialFilterQueryType, SpatialFilterService, SpatialFilterThematic, SpatialFilterType } from '@igo2/geo';
7
7
  import * as olstyle from 'ol/style';
8
8
  import { BehaviorSubject } from 'rxjs';
9
9
  import { MapState } from '../../map/map.state';
@@ -17,7 +17,6 @@ import * as i0 from "@angular/core";
17
17
  export declare class SpatialFilterToolComponent implements OnInit, OnDestroy {
18
18
  private matIconRegistry;
19
19
  private spatialFilterService;
20
- private dataSourceService;
21
20
  private layerService;
22
21
  private mapState;
23
22
  private messageService;
@@ -30,8 +29,8 @@ export declare class SpatialFilterToolComponent implements OnInit, OnDestroy {
30
29
  type: SpatialFilterType;
31
30
  itemType: SpatialFilterItemType;
32
31
  freehandDrawIsActive: boolean;
33
- layers: Layer[];
34
- activeLayers: Layer[];
32
+ layers: AnyLayer[];
33
+ activeLayers: AnyLayer[];
35
34
  queryType: SpatialFilterQueryType;
36
35
  thematics: SpatialFilterThematic[];
37
36
  zone: Feature;
@@ -46,9 +45,8 @@ export declare class SpatialFilterToolComponent implements OnInit, OnDestroy {
46
45
  thematicLength: number;
47
46
  measureUnit: MeasureLengthUnit;
48
47
  private unsubscribe$;
49
- private moveendKey;
50
48
  defaultStyle: olstyle.Style | ((feature: any, resolution: any) => olstyle.Style);
51
- constructor(matIconRegistry: MatIconRegistry, spatialFilterService: SpatialFilterService, dataSourceService: DataSourceService, layerService: LayerService, mapState: MapState, messageService: MessageService, languageService: LanguageService, importExportState: ImportExportState, toolState: ToolState, workspaceState: WorkspaceState, cdRef: ChangeDetectorRef);
49
+ constructor(matIconRegistry: MatIconRegistry, spatialFilterService: SpatialFilterService, layerService: LayerService, mapState: MapState, messageService: MessageService, languageService: LanguageService, importExportState: ImportExportState, toolState: ToolState, workspaceState: WorkspaceState, cdRef: ChangeDetectorRef);
52
50
  ngOnInit(): void;
53
51
  ngOnDestroy(): void;
54
52
  getOutputType(event: SpatialFilterType): void;
@@ -1,18 +1,17 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3
- import { ContextService, DetailedContext } from '@igo2/context';
4
- import { IgoMap, Layer, VectorLayer } from '@igo2/geo';
3
+ import { DetailedContext } from '@igo2/context';
4
+ import { AnyLayer, IgoMap, Layer, VectorLayer } from '@igo2/geo';
5
5
  import { ToolState } from '../../../tool/tool.state';
6
6
  import { MapState } from '../../map.state';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class AdvancedSwipeComponent implements OnInit, OnDestroy {
9
9
  mapState: MapState;
10
- private contextService;
11
10
  private formBuilder;
12
11
  private toolState;
13
12
  swipe: boolean;
14
- layerList: Layer[];
15
- userControlledLayerList: Layer[];
13
+ layerList: AnyLayer[];
14
+ userControlledLayerList: AnyLayer[];
16
15
  form: UntypedFormGroup;
17
16
  layers: VectorLayer[];
18
17
  res: DetailedContext;
@@ -21,7 +20,7 @@ export declare class AdvancedSwipeComponent implements OnInit, OnDestroy {
21
20
  * Get an active map state
22
21
  */
23
22
  get map(): IgoMap;
24
- constructor(mapState: MapState, contextService: ContextService, formBuilder: UntypedFormBuilder, toolState: ToolState);
23
+ constructor(mapState: MapState, formBuilder: UntypedFormBuilder, toolState: ToolState);
25
24
  /**
26
25
  * Get the list of layers for swipe
27
26
  * @internal
@@ -1,5 +1,7 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
- import { IgoMap, Layer, LayerListControlsOptions, SearchSourceService } from '@igo2/geo';
2
+ import { ConfigService } from '@igo2/core/config';
3
+ import { MediaService } from '@igo2/core/media';
4
+ import { AnyLayer, IgoMap, Layer, LayerListControlsOptions, LayerViewerOptions, SearchSourceService } from '@igo2/geo';
3
5
  import { Observable } from 'rxjs';
4
6
  import { ImportExportState } from '../../import-export/import-export.state';
5
7
  import { ToolState } from './../../tool/tool.state';
@@ -9,8 +11,11 @@ export declare class MapDetailsToolComponent implements OnInit {
9
11
  private mapState;
10
12
  private toolState;
11
13
  private searchSourceService;
12
- private cdRef;
13
14
  private importExportState;
15
+ private configService;
16
+ mediaService: MediaService;
17
+ private cdr;
18
+ isDesktop: boolean;
14
19
  delayedShowEmptyMapContent: boolean;
15
20
  toggleLegendOnVisibilityChange: boolean;
16
21
  expandLegendOfVisibleLayers: boolean;
@@ -20,19 +25,22 @@ export declare class MapDetailsToolComponent implements OnInit {
20
25
  layerListControls: LayerListControlsOptions;
21
26
  queryBadge: boolean;
22
27
  layerAdditionAllowed: boolean;
28
+ private _layerViewerOptions;
29
+ get layerViewerOptions(): LayerViewerOptions;
23
30
  get map(): IgoMap;
24
- get layers$(): Observable<Layer[]>;
31
+ get layers$(): Observable<AnyLayer[]>;
25
32
  get excludeBaseLayers(): boolean;
26
33
  get layerFilterAndSortOptions(): any;
27
34
  get searchToolInToolbar(): boolean;
28
35
  get catalogToolInToolbar(): boolean;
29
36
  get contextToolInToolbar(): boolean;
30
- constructor(mapState: MapState, toolState: ToolState, searchSourceService: SearchSourceService, cdRef: ChangeDetectorRef, importExportState: ImportExportState);
37
+ constructor(mapState: MapState, toolState: ToolState, searchSourceService: SearchSourceService, importExportState: ImportExportState, configService: ConfigService, mediaService: MediaService, cdr: ChangeDetectorRef);
31
38
  ngOnInit(): void;
32
39
  searchEmit(): void;
33
40
  catalogEmit(): void;
34
41
  contextEmit(): void;
35
42
  activateExport(layer: Layer): void;
43
+ private handleMedia;
36
44
  static ɵfac: i0.ɵɵFactoryDeclaration<MapDetailsToolComponent, never>;
37
45
  static ɵcmp: i0.ɵɵComponentDeclaration<MapDetailsToolComponent, "igo-map-details-tool", never, { "toggleLegendOnVisibilityChange": { "alias": "toggleLegendOnVisibilityChange"; "required": false; }; "expandLegendOfVisibleLayers": { "alias": "expandLegendOfVisibleLayers"; "required": false; }; "updateLegendOnResolutionChange": { "alias": "updateLegendOnResolutionChange"; "required": false; }; "ogcButton": { "alias": "ogcButton"; "required": false; }; "timeButton": { "alias": "timeButton"; "required": false; }; "layerListControls": { "alias": "layerListControls"; "required": false; }; "queryBadge": { "alias": "queryBadge"; "required": false; }; "layerAdditionAllowed": { "alias": "layerAdditionAllowed"; "required": false; }; }, {}, never, never, true, never>;
38
46
  }
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
- import { IgoMap, Layer, LayerListControlsOptions, SearchSourceService } from '@igo2/geo';
2
+ import { AnyLayer, IgoMap, LayerListControlsOptions, SearchSourceService } from '@igo2/geo';
3
3
  import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
4
4
  import { ToolState } from './../../tool/tool.state';
5
5
  import { MapState } from './../map.state';
@@ -10,7 +10,7 @@ export declare class MapLegendToolComponent implements OnInit, OnDestroy {
10
10
  private searchSourceService;
11
11
  private cdRef;
12
12
  delayedShowEmptyMapContent: boolean;
13
- layers$: BehaviorSubject<Layer[]>;
13
+ layers$: BehaviorSubject<AnyLayer[]>;
14
14
  showAllLegendsValue$: BehaviorSubject<boolean>;
15
15
  change$: ReplaySubject<void>;
16
16
  private resolution$$;
@@ -21,8 +21,8 @@ export declare class MapLegendToolComponent implements OnInit, OnDestroy {
21
21
  showAllLegendsValue: boolean;
22
22
  layerListControls: LayerListControlsOptions;
23
23
  get map(): IgoMap;
24
- get visibleOrInRangeLayers$(): Observable<Layer[]>;
25
- get visibleLayers$(): Observable<Layer[]>;
24
+ get visibleOrInRangeLayers$(): Observable<AnyLayer[]>;
25
+ get visibleLayers$(): Observable<AnyLayer[]>;
26
26
  get excludeBaseLayers(): boolean;
27
27
  get searchToolInToolbar(): boolean;
28
28
  get catalogToolInToolbar(): boolean;
@@ -1,5 +1,6 @@
1
1
  import { StorageService } from '@igo2/core/storage';
2
- import { Feature, FeatureStore, IgoMap, Layer } from '@igo2/geo';
2
+ import { AnyLayer, Feature, FeatureStore, IgoMap } from '@igo2/geo';
3
+ import { Coordinate } from 'ol/coordinate';
3
4
  import { BehaviorSubject } from 'rxjs';
4
5
  import { MapState } from '../map/map.state';
5
6
  import * as i0 from "@angular/core";
@@ -15,7 +16,7 @@ export declare class MapProximityState {
15
16
  proximitylocationType$: BehaviorSubject<string>;
16
17
  proximityFeatureStore: FeatureStore<Feature>;
17
18
  private subs$$;
18
- currentPositionCoordinate$: BehaviorSubject<[number, number]>;
19
+ currentPositionCoordinate$: BehaviorSubject<Coordinate>;
19
20
  get map(): IgoMap;
20
21
  constructor(mapState: MapState, storageService: StorageService);
21
22
  subscribeProximityMonitor(): void;
@@ -24,7 +25,7 @@ export declare class MapProximityState {
24
25
  * @internal
25
26
  */
26
27
  private addFeatureToStore;
27
- getQueryTitle(feature: Feature, layer: Layer): string;
28
+ getQueryTitle(feature: Feature, layer: AnyLayer): string | undefined;
28
29
  getLabelMatch(feature: Feature, labelMatch: any): string;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<MapProximityState, never>;
30
31
  static ɵprov: i0.ɵɵInjectableDeclaration<MapProximityState>;
@@ -1,4 +1,7 @@
1
- import { IgoMap, Layer, LayerListControlsOptions } from '@igo2/geo';
1
+ import { ChangeDetectorRef, OnInit } from '@angular/core';
2
+ import { ConfigService } from '@igo2/core/config';
3
+ import { MediaService } from '@igo2/core/media';
4
+ import { IgoMap, Layer, LayerListControlsOptions, LayerViewerOptions } from '@igo2/geo';
2
5
  import { ImportExportState } from '../../import-export/import-export.state';
3
6
  import { ToolState } from '../../tool/tool.state';
4
7
  import { MapState } from './../map.state';
@@ -6,10 +9,14 @@ import * as i0 from "@angular/core";
6
9
  /**
7
10
  * Tool to browse a map's layers or to choose a different map
8
11
  */
9
- export declare class MapToolComponent {
12
+ export declare class MapToolComponent implements OnInit {
10
13
  private mapState;
11
14
  private toolState;
12
15
  private importExportState;
16
+ private configService;
17
+ mediaService: MediaService;
18
+ private cdr;
19
+ isDesktop: boolean;
13
20
  toggleLegendOnVisibilityChange: boolean;
14
21
  expandLegendOfVisibleLayers: boolean;
15
22
  updateLegendOnResolutionChange: boolean;
@@ -20,8 +27,12 @@ export declare class MapToolComponent {
20
27
  get map(): IgoMap;
21
28
  get excludeBaseLayers(): boolean;
22
29
  get layerFilterAndSortOptions(): any;
23
- constructor(mapState: MapState, toolState: ToolState, importExportState: ImportExportState);
30
+ private _layerViewerOptions;
31
+ get layerViewerOptions(): LayerViewerOptions;
32
+ constructor(mapState: MapState, toolState: ToolState, importExportState: ImportExportState, configService: ConfigService, mediaService: MediaService, cdr: ChangeDetectorRef);
33
+ ngOnInit(): void;
24
34
  activateExport(layer: Layer): void;
35
+ private handleMedia;
25
36
  static ɵfac: i0.ɵɵFactoryDeclaration<MapToolComponent, never>;
26
37
  static ɵcmp: i0.ɵɵComponentDeclaration<MapToolComponent, "igo-map-tool", never, { "toggleLegendOnVisibilityChange": { "alias": "toggleLegendOnVisibilityChange"; "required": false; }; "expandLegendOfVisibleLayers": { "alias": "expandLegendOfVisibleLayers"; "required": false; }; "updateLegendOnResolutionChange": { "alias": "updateLegendOnResolutionChange"; "required": false; }; "ogcButton": { "alias": "ogcButton"; "required": false; }; "timeButton": { "alias": "timeButton"; "required": false; }; "layerListControls": { "alias": "layerListControls"; "required": false; }; "queryBadge": { "alias": "queryBadge"; "required": false; }; }, {}, never, never, true, never>;
27
38
  }
@@ -1,6 +1,8 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatTabChangeEvent } from '@angular/material/tabs';
3
- import { IgoMap, Layer, LayerListControlsOptions, SearchSourceService } from '@igo2/geo';
3
+ import { ConfigService } from '@igo2/core/config';
4
+ import { MediaService } from '@igo2/core/media';
5
+ import { AnyLayer, IgoMap, Layer, LayerListControlsOptions, LayerViewerOptions, SearchSourceService } from '@igo2/geo';
4
6
  import { BehaviorSubject, Observable } from 'rxjs';
5
7
  import { ImportExportState } from '../../import-export/import-export.state';
6
8
  import { ToolState } from '../../tool/tool.state';
@@ -16,7 +18,11 @@ export declare class MapToolsComponent implements OnInit, OnDestroy {
16
18
  mapState: MapState;
17
19
  private searchSourceService;
18
20
  private importExportState;
19
- layers$: BehaviorSubject<Layer[]>;
21
+ private configService;
22
+ mediaService: MediaService;
23
+ private cdr;
24
+ isDesktop: boolean;
25
+ layers$: BehaviorSubject<AnyLayer[]>;
20
26
  showAllLegendsValue$: BehaviorSubject<boolean>;
21
27
  private resolution$$;
22
28
  private visibleOrInRangeLayers$$;
@@ -35,15 +41,17 @@ export declare class MapToolsComponent implements OnInit, OnDestroy {
35
41
  private _layerListControls;
36
42
  get map(): IgoMap;
37
43
  queryBadge: boolean;
38
- get visibleOrInRangeLayers$(): Observable<Layer[]>;
39
- get visibleLayers$(): Observable<Layer[]>;
44
+ get visibleOrInRangeLayers$(): Observable<AnyLayer[]>;
45
+ get visibleLayers$(): Observable<AnyLayer[]>;
40
46
  get excludeBaseLayers(): boolean;
41
47
  get layerFilterAndSortOptions(): LayerListControlsOptions;
48
+ private _layerViewerOptions;
49
+ get layerViewerOptions(): LayerViewerOptions;
42
50
  tabGroup: any;
43
51
  get searchToolInToolbar(): boolean;
44
52
  get catalogToolInToolbar(): boolean;
45
53
  get contextToolInToolbar(): boolean;
46
- constructor(layerListToolState: LayerListToolState, toolState: ToolState, mapState: MapState, searchSourceService: SearchSourceService, importExportState: ImportExportState);
54
+ constructor(layerListToolState: LayerListToolState, toolState: ToolState, mapState: MapState, searchSourceService: SearchSourceService, importExportState: ImportExportState, configService: ConfigService, mediaService: MediaService, cdr: ChangeDetectorRef);
47
55
  ngOnInit(): void;
48
56
  ngOnDestroy(): void;
49
57
  onShowAllLegends(event: any): void;
@@ -61,6 +69,7 @@ export declare class MapToolsComponent implements OnInit, OnDestroy {
61
69
  isOGCFilterButton(layer: any): boolean;
62
70
  isExportButton(layer: Layer): boolean;
63
71
  isStyleEditButton(layer: Layer): boolean;
72
+ private handleMedia;
64
73
  static ɵfac: i0.ɵɵFactoryDeclaration<MapToolsComponent, never>;
65
74
  static ɵcmp: i0.ɵɵComponentDeclaration<MapToolsComponent, "igo-map-tools", never, { "allowShowAllLegends": { "alias": "allowShowAllLegends"; "required": false; }; "showAllLegendsValue": { "alias": "showAllLegendsValue"; "required": false; }; "toggleLegendOnVisibilityChange": { "alias": "toggleLegendOnVisibilityChange"; "required": false; }; "expandLegendOfVisibleLayers": { "alias": "expandLegendOfVisibleLayers"; "required": false; }; "updateLegendOnResolutionChange": { "alias": "updateLegendOnResolutionChange"; "required": false; }; "selectedTabAtOpening": { "alias": "selectedTabAtOpening"; "required": false; }; "ogcButton": { "alias": "ogcButton"; "required": false; }; "timeButton": { "alias": "timeButton"; "required": false; }; "layerAdditionAllowed": { "alias": "layerAdditionAllowed"; "required": false; }; "layerListControls": { "alias": "layerListControls"; "required": false; }; "queryBadge": { "alias": "queryBadge"; "required": false; }; }, {}, never, never, true, never>;
66
75
  }
@@ -1,5 +1,5 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
- import type { Layer } from '@igo2/geo';
2
+ import { type AnyLayer } from '@igo2/geo';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { WorkspaceState } from '../workspace.state';
5
5
  import * as i0 from "@angular/core";
@@ -7,10 +7,10 @@ export declare class WorkspaceButtonComponent implements OnInit, OnDestroy {
7
7
  private workspaceState;
8
8
  hasWorkspace$: BehaviorSubject<boolean>;
9
9
  private hasWorkspace$$;
10
- private _layer;
11
10
  private layer$;
12
- set layer(value: Layer);
13
- get layer(): Layer;
11
+ set layer(value: AnyLayer);
12
+ get layer(): AnyLayer;
13
+ private _layer;
14
14
  color: string;
15
15
  constructor(workspaceState: WorkspaceState);
16
16
  ngOnInit(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/integration",
3
- "version": "18.0.0-next.9",
3
+ "version": "18.0.1-next.1",
4
4
  "description": "IGO Library",
5
5
  "author": "IGO Community",
6
6
  "keywords": [
@@ -18,8 +18,6 @@
18
18
  "exports": {
19
19
  ".": {
20
20
  "types": "./index.d.ts",
21
- "esm2022": "./esm2022/igo2-integration.mjs",
22
- "esm": "./esm2022/igo2-integration.mjs",
23
21
  "default": "./fesm2022/igo2-integration.mjs"
24
22
  },
25
23
  "./package.json": {
@@ -30,14 +28,14 @@
30
28
  "tslib": "^2.6.0"
31
29
  },
32
30
  "peerDependencies": {
33
- "@angular/common": "^18.0.0",
34
- "@angular/core": "^18.0.0",
35
- "@igo2/auth": "^18.0.0-next.9",
36
- "@igo2/context": "^18.0.0-next.9",
37
- "@igo2/geo": "^18.0.0-next.9",
31
+ "@angular/common": "^19.0.0",
32
+ "@angular/core": "^19.0.0",
33
+ "@igo2/auth": "^18.0.1-next.1",
34
+ "@igo2/context": "^18.0.1-next.1",
35
+ "@igo2/geo": "^18.0.1-next.1",
38
36
  "@turf/point-on-feature": "^6.5.0",
39
- "jspdf": "^2.5.1",
40
- "jspdf-autotable": "^3.8.0",
37
+ "jspdf": "^3.0.0",
38
+ "jspdf-autotable": "^3.8.4",
41
39
  "rxjs": "^7.8.0"
42
40
  },
43
41
  "engines": {
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1pbnRlZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9pZ28yLWludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,152 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { NgFor, NgIf } from '@angular/common';
3
- import { HttpClient } from '@angular/common/http';
4
- import { ChangeDetectorRef, Component, Input } from '@angular/core';
5
- import { MatButtonModule } from '@angular/material/button';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { MatMenuModule } from '@angular/material/menu';
8
- import { MatTooltipModule } from '@angular/material/tooltip';
9
- import { AuthService } from '@igo2/auth';
10
- import { CustomHtmlComponent } from '@igo2/common/custom-html';
11
- import { InteractiveTourComponent } from '@igo2/common/interactive-tour';
12
- import { ToolComponent } from '@igo2/common/tool';
13
- import { ConfigService, version } from '@igo2/core/config';
14
- import { LanguageService } from '@igo2/core/language';
15
- import { IgoLanguageModule } from '@igo2/core/language';
16
- import { of } from 'rxjs';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@igo2/core/config";
19
- import * as i2 from "@igo2/auth";
20
- import * as i3 from "@angular/common/http";
21
- import * as i4 from "@igo2/core/language";
22
- import * as i5 from "@angular/material/button";
23
- import * as i6 from "@angular/material/tooltip";
24
- import * as i7 from "@angular/material/icon";
25
- import * as i8 from "@angular/material/menu";
26
- import * as i9 from "@ngx-translate/core";
27
- let AboutToolComponent = class AboutToolComponent {
28
- configService;
29
- auth;
30
- http;
31
- cdRef;
32
- languageService;
33
- configOptions;
34
- get headerHtml() {
35
- return this._headerHtml;
36
- }
37
- set headerHtml(value) {
38
- this._headerHtml = Array.isArray(value) ? value.join('\n') : value;
39
- }
40
- get html() {
41
- return this._html;
42
- }
43
- set html(value) {
44
- this._html = Array.isArray(value) ? value.join('\n') : value;
45
- }
46
- _discoverTitleInLocale = 'IGO';
47
- discoverTitleInLocale$ = of(this._discoverTitleInLocale);
48
- get discoverTitleInLocale() {
49
- return this._discoverTitleInLocale;
50
- }
51
- set discoverTitleInLocale(value) {
52
- this._discoverTitleInLocale = value;
53
- this.discoverTitleInLocale$ = of(value);
54
- }
55
- trainingGuideURLs;
56
- effectiveVersion;
57
- _html = 'igo.integration.aboutTool.html';
58
- _headerHtml;
59
- baseUrlProfil;
60
- baseUrlGuide;
61
- loading = false;
62
- constructor(configService, auth, http, cdRef, languageService) {
63
- this.configService = configService;
64
- this.auth = auth;
65
- this.http = http;
66
- this.cdRef = cdRef;
67
- this.languageService = languageService;
68
- this.headerHtml = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');
69
- this.configOptions = this.configService.getConfigs();
70
- const configVersion = this.configOptions.version;
71
- this.effectiveVersion =
72
- configVersion?.app || configVersion?.lib || version.lib;
73
- this.baseUrlProfil = this.configOptions.storage?.url;
74
- this.baseUrlGuide =
75
- this.configOptions.depot?.url +
76
- // todo validate this property
77
- this.configOptions.depot?.guideUrl;
78
- }
79
- ngOnInit() {
80
- if (this.auth.authenticated && this.configOptions.context?.url) {
81
- this.http.get(this.baseUrlProfil).subscribe((profil) => {
82
- const recast = profil;
83
- this.trainingGuideURLs = recast.guides;
84
- this.cdRef.detectChanges();
85
- });
86
- }
87
- else if (this.auth.authenticated &&
88
- !this.configOptions.context?.url &&
89
- this.configOptions.depot?.trainingGuides) {
90
- this.trainingGuideURLs = this.configOptions.depot?.trainingGuides;
91
- }
92
- }
93
- openGuide(guide) {
94
- this.loading = true;
95
- const url = guide
96
- ? this.baseUrlGuide + guide + '?'
97
- : this.baseUrlGuide + this.trainingGuideURLs[0] + '?';
98
- this.http
99
- .get(url, {
100
- responseType: 'blob'
101
- })
102
- .subscribe(() => {
103
- this.loading = false;
104
- window.open(url, '_blank');
105
- this.cdRef.detectChanges();
106
- });
107
- }
108
- formatFileName(name) {
109
- name = name.split('_').join(' ');
110
- const index = name.indexOf('.');
111
- name = name.slice(0, index);
112
- return name;
113
- }
114
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutToolComponent, deps: [{ token: i1.ConfigService }, { token: i2.AuthService }, { token: i3.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i4.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
115
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AboutToolComponent, isStandalone: true, selector: "igo-about-tool", inputs: { headerHtml: "headerHtml", html: "html", discoverTitleInLocale: "discoverTitleInLocale", trainingGuideURLs: "trainingGuideURLs" }, ngImport: i0, template: "<p></p>\n<igo-interactive-tour\n mat-raised-button\n tourToStart=\"global\"\n menuIsOpen=\"true\"\n styleButton=\"raised\"\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\"\n>\n</igo-interactive-tour>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button\n *ngFor=\"let guide of trainingGuideURLs\"\n mat-menu-item\n (click)=\"openGuide(guide)\"\n >\n {{ formatFileName(guide) }}\n </button>\n</mat-menu>\n\n<igo-custom-html\n *ngIf=\"headerHtml !== ''\"\n class=\"mat-typography\"\n [html]=\"headerHtml | translate\"\n>\n</igo-custom-html>\n\n<igo-custom-html\n class=\"mat-typography\"\n [html]=\"html | translate: { version: effectiveVersion }\"\n>\n</igo-custom-html>\n", styles: ["igo-interactive-tour button{margin-left:20px}.training-guide-button{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}\n"], dependencies: [{ kind: "component", type: InteractiveTourComponent, selector: "igo-interactive-tour", inputs: ["tourToStart", "styleButton", "discoverTitleInLocale$"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
116
- };
117
- AboutToolComponent = __decorate([
118
- ToolComponent({
119
- name: 'about',
120
- title: 'igo.integration.tools.about',
121
- icon: 'help'
122
- }),
123
- __metadata("design:paramtypes", [ConfigService,
124
- AuthService,
125
- HttpClient,
126
- ChangeDetectorRef,
127
- LanguageService])
128
- ], AboutToolComponent);
129
- export { AboutToolComponent };
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AboutToolComponent, decorators: [{
131
- type: Component,
132
- args: [{ selector: 'igo-about-tool', standalone: true, imports: [
133
- InteractiveTourComponent,
134
- NgIf,
135
- MatButtonModule,
136
- MatTooltipModule,
137
- MatIconModule,
138
- MatMenuModule,
139
- NgFor,
140
- CustomHtmlComponent,
141
- IgoLanguageModule
142
- ], template: "<p></p>\n<igo-interactive-tour\n mat-raised-button\n tourToStart=\"global\"\n menuIsOpen=\"true\"\n styleButton=\"raised\"\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\"\n>\n</igo-interactive-tour>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<button\n *ngIf=\"\n auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\n \"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\"\n>\n <span>{{ 'igo.integration.aboutTool.trainingGuide' | translate }}</span>\n <mat-icon>description</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button\n *ngFor=\"let guide of trainingGuideURLs\"\n mat-menu-item\n (click)=\"openGuide(guide)\"\n >\n {{ formatFileName(guide) }}\n </button>\n</mat-menu>\n\n<igo-custom-html\n *ngIf=\"headerHtml !== ''\"\n class=\"mat-typography\"\n [html]=\"headerHtml | translate\"\n>\n</igo-custom-html>\n\n<igo-custom-html\n class=\"mat-typography\"\n [html]=\"html | translate: { version: effectiveVersion }\"\n>\n</igo-custom-html>\n", styles: ["igo-interactive-tour button{margin-left:20px}.training-guide-button{margin-left:5px;background-color:#1976d2;color:#fff;padding:0 12px}\n"] }]
143
- }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.AuthService }, { type: i3.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i4.LanguageService }], propDecorators: { headerHtml: [{
144
- type: Input
145
- }], html: [{
146
- type: Input
147
- }], discoverTitleInLocale: [{
148
- type: Input
149
- }], trainingGuideURLs: [{
150
- type: Input
151
- }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2Fib3V0L2Fib3V0LXRvb2wvYWJvdXQtdG9vbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2Fib3V0L2Fib3V0LXRvb2wvYWJvdXQtdG9vbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlC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TmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBDdXN0b21IdG1sQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uL2N1c3RvbS1odG1sJztcbmltcG9ydCB7IEludGVyYWN0aXZlVG91ckNvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbi9pbnRlcmFjdGl2ZS10b3VyJztcbmltcG9ydCB7IFRvb2xDb21wb25lbnQgfSBmcm9tICdAaWdvMi9jb21tb24vdG9vbCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCB2ZXJzaW9uIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFsbEVudmlyb25tZW50T3B0aW9ucyB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50JztcblxuQFRvb2xDb21wb25lbnQoe1xuICBuYW1lOiAnYWJvdXQnLFxuICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi50b29scy5hYm91dCcsXG4gIGljb246ICdoZWxwJ1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1hYm91dC10b29sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Fib3V0LXRvb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hYm91dC10b29sLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJbnRlcmFjdGl2ZVRvdXJDb21wb25lbnQsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQ3VzdG9tSHRtbENvbXBvbmVudCxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFib3V0VG9vbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgY29uZmlnT3B0aW9uczogQWxsRW52aXJvbm1lbnRPcHRpb25zO1xuICBASW5wdXQoKVxuICBnZXQgaGVhZGVySHRtbCgpIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVySHRtbDtcbiAgfVxuICBzZXQgaGVhZGVySHRtbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faGVhZGVySHRtbCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuam9pbignXFxuJykgOiB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBodG1sKCkge1xuICAgIHJldHVybiB0aGlzLl9odG1sO1xuICB9XG4gIHNldCBodG1sKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9odG1sID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCdcXG4nKSA6IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2Rpc2NvdmVyVGl0bGVJbkxvY2FsZSA9ICdJR08nO1xuICBwdWJsaWMgZGlzY292ZXJUaXRsZUluTG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gb2YoXG4gICAgdGhpcy5fZGlzY292ZXJUaXRsZUluTG9jYWxlXG4gICk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2NvdmVyVGl0bGVJbkxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzY292ZXJUaXRsZUluTG9jYWxlO1xuICB9XG4gIHNldCBkaXNjb3ZlclRpdGxlSW5Mb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Rpc2NvdmVyVGl0bGVJbkxvY2FsZSA9IHZhbHVlO1xuICAgIHRoaXMuZGlzY292ZXJUaXRsZUluTG9jYWxlJCA9IG9mKHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHRyYWluaW5nR3VpZGVVUkxzO1xuXG4gIHB1YmxpYyBlZmZlY3RpdmVWZXJzaW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgX2h0bWwgPSAnaWdvLmludGVncmF0aW9uLmFib3V0VG9vbC5odG1sJztcbiAgcHJpdmF0ZSBfaGVhZGVySHRtbDogc3RyaW5nO1xuXG4gIHByaXZhdGUgYmFzZVVybFByb2ZpbDtcbiAgcHJpdmF0ZSBiYXNlVXJsR3VpZGU7XG5cbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwdWJsaWMgYXV0aDogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oZWFkZXJIdG1sID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAnaWdvLmludGVncmF0aW9uLmFib3V0VG9vbC5oZWFkZXJIdG1sJ1xuICAgICk7XG4gICAgdGhpcy5jb25maWdPcHRpb25zID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3MoKTtcbiAgICBjb25zdCBjb25maWdWZXJzaW9uID0gdGhpcy5jb25maWdPcHRpb25zLnZlcnNpb247XG4gICAgdGhpcy5lZmZlY3RpdmVWZXJzaW9uID1cbiAgICAgIGNvbmZpZ1ZlcnNpb24/LmFwcCB8fCBjb25maWdWZXJzaW9uPy5saWIgfHwgdmVyc2lvbi5saWI7XG4gICAgdGhpcy5iYXNlVXJsUHJvZmlsID0gdGhpcy5jb25maWdPcHRpb25zLnN0b3JhZ2U/LnVybDtcbiAgICB0aGlzLmJhc2VVcmxHdWlkZSA9XG4gICAgICB0aGlzLmNvbmZpZ09wdGlvbnMuZGVwb3Q/LnVybCArXG4gICAgICAvLyB0b2RvIHZhbGlkYXRlIHRoaXMgcHJvcGVydHlcbiAgICAgICh0aGlzLmNvbmZpZ09wdGlvbnMuZGVwb3QgYXMgYW55KT8uZ3VpZGVVcmw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRoLmF1dGhlbnRpY2F0ZWQgJiYgdGhpcy5jb25maWdPcHRpb25zLmNvbnRleHQ/LnVybCkge1xuICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmxQcm9maWwpLnN1YnNjcmliZSgocHJvZmlsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY2FzdCA9IHByb2ZpbCBhcyBhbnk7XG4gICAgICAgIHRoaXMudHJhaW5pbmdHdWlkZVVSTHMgPSByZWNhc3QuZ3VpZGVzO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLmF1dGguYXV0aGVudGljYXRlZCAmJlxuICAgICAgIXRoaXMuY29uZmlnT3B0aW9ucy5jb250ZXh0Py51cmwgJiZcbiAgICAgIHRoaXMuY29uZmlnT3B0aW9ucy5kZXBvdD8udHJhaW5pbmdHdWlkZXNcbiAgICApIHtcbiAgICAgIHRoaXMudHJhaW5pbmdHdWlkZVVSTHMgPSB0aGlzLmNvbmZpZ09wdGlvbnMuZGVwb3Q/LnRyYWluaW5nR3VpZGVzO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5HdWlkZShndWlkZT8pIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHVybCA9IGd1aWRlXG4gICAgICA/IHRoaXMuYmFzZVVybEd1aWRlICsgZ3VpZGUgKyAnPydcbiAgICAgIDogdGhpcy5iYXNlVXJsR3VpZGUgKyB0aGlzLnRyYWluaW5nR3VpZGVVUkxzWzBdICsgJz8nO1xuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RmlsZU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbmFtZSA9IG5hbWUuc3BsaXQoJ18nKS5qb2luKCcgJyk7XG4gICAgY29uc3QgaW5kZXggPSBuYW1lLmluZGV4T2YoJy4nKTtcbiAgICBuYW1lID0gbmFtZS5zbGljZSgwLCBpbmRleCk7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn1cbiIsIjxwPjwvcD5cbjxpZ28taW50ZXJhY3RpdmUtdG91clxuICBtYXQtcmFpc2VkLWJ1dHRvblxuICB0b3VyVG9TdGFydD1cImdsb2JhbFwiXG4gIG1lbnVJc09wZW49XCJ0cnVlXCJcbiAgc3R5bGVCdXR0b249XCJyYWlzZWRcIlxuICBbZGlzY292ZXJUaXRsZUluTG9jYWxlJF09XCJkaXNjb3ZlclRpdGxlSW5Mb2NhbGUkXCJcbj5cbjwvaWdvLWludGVyYWN0aXZlLXRvdXI+XG5cbjxidXR0b25cbiAgKm5nSWY9XCJcbiAgICBhdXRoLmF1dGhlbnRpY2F0ZWQgJiYgdHJhaW5pbmdHdWlkZVVSTHMgJiYgdHJhaW5pbmdHdWlkZVVSTHMubGVuZ3RoID09PSAxXG4gIFwiXG4gIGNsYXNzPVwidHJhaW5pbmctZ3VpZGUtYnV0dG9uXCJcbiAgbWF0LXJhaXNlZC1idXR0b25cbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgW21hdFRvb2x0aXBdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hYm91dFRvb2wudHJhaW5pbmdHdWlkZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgKGNsaWNrKT1cIm9wZW5HdWlkZSgpXCJcbj5cbiAgPHNwYW4+e3sgJ2lnby5pbnRlZ3JhdGlvbi5hYm91dFRvb2wudHJhaW5pbmdHdWlkZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDxtYXQtaWNvbj5kZXNjcmlwdGlvbjwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPGJ1dHRvblxuICAqbmdJZj1cIlxuICAgIGF1dGguYXV0aGVudGljYXRlZCAmJiB0cmFpbmluZ0d1aWRlVVJMcyAmJiB0cmFpbmluZ0d1aWRlVVJMcy5sZW5ndGggPiAxXG4gIFwiXG4gIGNsYXNzPVwidHJhaW5pbmctZ3VpZGUtYnV0dG9uXCJcbiAgbWF0LXJhaXNlZC1idXR0b25cbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgW21hdFRvb2x0aXBdPVwiJ2lnby5pbnRlZ3JhdGlvbi5hYm91dFRvb2wudHJhaW5pbmdHdWlkZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuPlxuICA8c3Bhbj57eyAnaWdvLmludGVncmF0aW9uLmFib3V0VG9vbC50cmFpbmluZ0d1aWRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPG1hdC1pY29uPmRlc2NyaXB0aW9uPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgZ3VpZGUgb2YgdHJhaW5pbmdHdWlkZVVSTHNcIlxuICAgIG1hdC1tZW51LWl0ZW1cbiAgICAoY2xpY2spPVwib3Blbkd1aWRlKGd1aWRlKVwiXG4gID5cbiAgICB7eyBmb3JtYXRGaWxlTmFtZShndWlkZSkgfX1cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48aWdvLWN1c3RvbS1odG1sXG4gICpuZ0lmPVwiaGVhZGVySHRtbCAhPT0gJydcIlxuICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcbiAgW2h0bWxdPVwiaGVhZGVySHRtbCB8IHRyYW5zbGF0ZVwiXG4+XG48L2lnby1jdXN0b20taHRtbD5cblxuPGlnby1jdXN0b20taHRtbFxuICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcbiAgW2h0bWxdPVwiaHRtbCB8IHRyYW5zbGF0ZTogeyB2ZXJzaW9uOiBlZmZlY3RpdmVWZXJzaW9uIH1cIlxuPlxuPC9pZ28tY3VzdG9tLWh0bWw+XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './about-tool.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2Fib3V0L2Fib3V0LXRvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJvdXQtdG9vbC5jb21wb25lbnQnO1xuIl19
@@ -1,26 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
- import { AboutToolComponent } from './about-tool/about-tool.component';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @deprecated import the AboutToolComponent directly
6
- */
7
- export class IgoAppAboutModule {
8
- static forRoot() {
9
- return {
10
- ngModule: IgoAppAboutModule,
11
- providers: []
12
- };
13
- }
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent], exports: [AboutToolComponent] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, imports: [AboutToolComponent] });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoAppAboutModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- imports: [AboutToolComponent],
22
- exports: [AboutToolComponent],
23
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9hYm91dC9hYm91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRXZFOztHQUVHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7d0dBTlUsaUJBQWlCO3lHQUFqQixpQkFBaUIsWUFKbEIsa0JBQWtCLGFBQ2xCLGtCQUFrQjt5R0FHakIsaUJBQWlCLFlBSmxCLGtCQUFrQjs7NEZBSWpCLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBYm91dFRvb2xDb21wb25lbnQgfSBmcm9tICcuL2Fib3V0LXRvb2wvYWJvdXQtdG9vbC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgQWJvdXRUb29sQ29tcG9uZW50IGRpcmVjdGx5XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBYm91dFRvb2xDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQWJvdXRUb29sQ29tcG9uZW50XSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIElnb0FwcEFib3V0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29BcHBBYm91dE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogSWdvQXBwQWJvdXRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './about-tool';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL2Fib3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYm91dC10b29sJztcbiJdfQ==