@smartbit4all/ng-client 4.0.149 → 4.1.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 (85) hide show
  1. package/esm2022/lib/smart-client/smart-component-api-client.mjs +32 -7
  2. package/esm2022/lib/smart-client/smart.component.mjs +12 -5
  3. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +18 -1
  4. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +5 -2
  5. package/esm2022/lib/smart-map/abstract-map.mjs +74 -0
  6. package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
  7. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
  8. package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
  9. package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
  10. package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
  11. package/esm2022/lib/smart-map/api/index.mjs +7 -0
  12. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
  13. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
  14. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
  15. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
  16. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +18 -0
  17. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
  18. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
  19. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
  20. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
  21. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
  22. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
  23. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
  24. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +18 -0
  25. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
  26. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
  27. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
  28. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
  29. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
  30. package/esm2022/lib/smart-map/api/model/models.mjs +19 -0
  31. package/esm2022/lib/smart-map/api/param.mjs +2 -0
  32. package/esm2022/lib/smart-map/api/variables.mjs +9 -0
  33. package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
  34. package/esm2022/lib/smart-map/impl/google-map.mjs +220 -0
  35. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +165 -0
  36. package/esm2022/lib/smart-map/projects.mjs +9 -0
  37. package/esm2022/lib/smart-map/smart-map.component.mjs +193 -0
  38. package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
  39. package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
  40. package/esm2022/projects.mjs +2 -1
  41. package/fesm2022/smartbit4all-ng-client.mjs +1415 -140
  42. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  43. package/lib/smart-client/smart-component-api-client.d.ts +9 -6
  44. package/lib/smart-client/smart.component.d.ts +7 -4
  45. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +3 -1
  46. package/lib/smart-component-layout/smart-component-layout.component.d.ts +3 -0
  47. package/lib/smart-map/abstract-map.d.ts +32 -0
  48. package/lib/smart-map/api/api/api.d.ts +3 -0
  49. package/lib/smart-map/api/api/geoMap.service.d.ts +101 -0
  50. package/lib/smart-map/api/api.module.d.ts +11 -0
  51. package/lib/smart-map/api/configuration.d.ts +104 -0
  52. package/lib/smart-map/api/encoder.d.ts +11 -0
  53. package/lib/smart-map/api/index.d.ts +6 -0
  54. package/lib/smart-map/api/model/gPSPosition.d.ts +32 -0
  55. package/lib/smart-map/api/model/geoMapChange.d.ts +19 -0
  56. package/lib/smart-map/api/model/geoMapDataLoadingMode.d.ts +15 -0
  57. package/lib/smart-map/api/model/geoMapDataSourceDescriptor.d.ts +50 -0
  58. package/lib/smart-map/api/model/geoMapDataSourceType.d.ts +16 -0
  59. package/lib/smart-map/api/model/geoMapInteraction.d.ts +22 -0
  60. package/lib/smart-map/api/model/geoMapItem.d.ts +38 -0
  61. package/lib/smart-map/api/model/geoMapItemKind.d.ts +16 -0
  62. package/lib/smart-map/api/model/geoMapLayer.d.ts +19 -0
  63. package/lib/smart-map/api/model/geoMapLayerChange.d.ts +20 -0
  64. package/lib/smart-map/api/model/geoMapLayerDescriptor.d.ts +28 -0
  65. package/lib/smart-map/api/model/geoMapModel.d.ts +27 -0
  66. package/lib/smart-map/api/model/geoMapOperationMode.d.ts +16 -0
  67. package/lib/smart-map/api/model/geoMapSelectionMode.d.ts +16 -0
  68. package/lib/smart-map/api/model/geoMapServerModel.d.ts +28 -0
  69. package/lib/smart-map/api/model/geoMapTextType.d.ts +15 -0
  70. package/lib/smart-map/api/model/geoMapViewState.d.ts +25 -0
  71. package/lib/smart-map/api/model/geoMapViewport.d.ts +20 -0
  72. package/lib/smart-map/api/model/models.d.ts +18 -0
  73. package/lib/smart-map/api/param.d.ts +37 -0
  74. package/lib/smart-map/api/variables.d.ts +8 -0
  75. package/lib/smart-map/api-default/api-default.d.ts +2 -0
  76. package/lib/smart-map/impl/google-map.d.ts +21 -0
  77. package/lib/smart-map/impl/leaflet-map.d.ts +15 -0
  78. package/lib/smart-map/projects.d.ts +8 -0
  79. package/lib/smart-map/smart-map.component.d.ts +33 -0
  80. package/lib/smart-map/smart-map.module.d.ts +11 -0
  81. package/lib/smart-map/smart-map.types.d.ts +21 -0
  82. package/package.json +1 -1
  83. package/projects.d.ts +1 -0
  84. package/smartbit4all-ng-client-4.1.1.tgz +0 -0
  85. package/smartbit4all-ng-client-4.0.149.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Optional, Inject, PLATFORM_ID, NgModule, SkipSelf, Component, RendererStyleFlags2, Input, Directive, HostBinding, HostListener, ViewChild, EventEmitter, Output, forwardRef, Pipe, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, ViewChildren, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, ChangeDetectorRef } from '@angular/core';
2
+ import { InjectionToken, Injectable, Optional, Inject, PLATFORM_ID, NgModule, SkipSelf, Component, RendererStyleFlags2, Input, Directive, HostBinding, HostListener, ViewChild, EventEmitter, Output, forwardRef, Pipe, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, ViewChildren, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, input, computed, effect, signal, ChangeDetectorRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import { HttpHeaders, HttpContext, HttpErrorResponse, HttpParams, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
5
5
  import { Subject, lastValueFrom, take, takeUntil, startWith, map, distinctUntilChanged, catchError, throwError, from } from 'rxjs';
@@ -147,7 +147,7 @@ class SmartSubject extends Subject {
147
147
  * Custom HttpParameterCodec
148
148
  * Workaround for https://github.com/angular/angular/issues/18261
149
149
  */
150
- let CustomHttpParameterCodec$6 = class CustomHttpParameterCodec {
150
+ let CustomHttpParameterCodec$7 = class CustomHttpParameterCodec {
151
151
  encodeKey(k) {
152
152
  return encodeURIComponent(k);
153
153
  }
@@ -162,15 +162,15 @@ let CustomHttpParameterCodec$6 = class CustomHttpParameterCodec {
162
162
  }
163
163
  };
164
164
 
165
- const BASE_PATH$6 = new InjectionToken('basePath');
166
- const COLLECTION_FORMATS$6 = {
165
+ const BASE_PATH$7 = new InjectionToken('basePath');
166
+ const COLLECTION_FORMATS$7 = {
167
167
  'csv': ',',
168
168
  'tsv': ' ',
169
169
  'ssv': ' ',
170
170
  'pipes': '|'
171
171
  };
172
172
 
173
- let Configuration$6 = class Configuration {
173
+ let Configuration$7 = class Configuration {
174
174
  constructor(configurationParameters = {}) {
175
175
  this.apiKeys = configurationParameters.apiKeys;
176
176
  this.username = configurationParameters.username;
@@ -278,7 +278,7 @@ class SessionService {
278
278
  this.httpClient = httpClient;
279
279
  this.basePath = 'http://localhost';
280
280
  this.defaultHeaders = new HttpHeaders();
281
- this.configuration = new Configuration$6();
281
+ this.configuration = new Configuration$7();
282
282
  if (configuration) {
283
283
  this.configuration = configuration;
284
284
  }
@@ -291,7 +291,7 @@ class SessionService {
291
291
  }
292
292
  this.configuration.basePath = basePath;
293
293
  }
294
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$6();
294
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$7();
295
295
  }
296
296
  // @ts-ignore
297
297
  addToHttpParams(httpParams, value, key) {
@@ -541,7 +541,7 @@ class SessionService {
541
541
  reportProgress: reportProgress
542
542
  });
543
543
  }
544
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SessionService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$6, optional: true }, { token: Configuration$6, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
544
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SessionService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$7, optional: true }, { token: Configuration$7, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
545
545
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SessionService, providedIn: 'root' }); }
546
546
  }
547
547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SessionService, decorators: [{
@@ -553,8 +553,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
553
553
  type: Optional
554
554
  }, {
555
555
  type: Inject,
556
- args: [BASE_PATH$6]
557
- }] }, { type: Configuration$6, decorators: [{
556
+ args: [BASE_PATH$7]
557
+ }] }, { type: Configuration$7, decorators: [{
558
558
  type: Optional
559
559
  }] }] });
560
560
 
@@ -1069,7 +1069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
1069
1069
  * Custom HttpParameterCodec
1070
1070
  * Workaround for https://github.com/angular/angular/issues/18261
1071
1071
  */
1072
- let CustomHttpParameterCodec$5 = class CustomHttpParameterCodec {
1072
+ let CustomHttpParameterCodec$6 = class CustomHttpParameterCodec {
1073
1073
  encodeKey(k) {
1074
1074
  return encodeURIComponent(k);
1075
1075
  }
@@ -1084,15 +1084,15 @@ let CustomHttpParameterCodec$5 = class CustomHttpParameterCodec {
1084
1084
  }
1085
1085
  };
1086
1086
 
1087
- const BASE_PATH$5 = new InjectionToken('basePath');
1088
- const COLLECTION_FORMATS$5 = {
1087
+ const BASE_PATH$6 = new InjectionToken('basePath');
1088
+ const COLLECTION_FORMATS$6 = {
1089
1089
  'csv': ',',
1090
1090
  'tsv': ' ',
1091
1091
  'ssv': ' ',
1092
1092
  'pipes': '|'
1093
1093
  };
1094
1094
 
1095
- let Configuration$5 = class Configuration {
1095
+ let Configuration$6 = class Configuration {
1096
1096
  constructor(configurationParameters = {}) {
1097
1097
  this.apiKeys = configurationParameters.apiKeys;
1098
1098
  this.username = configurationParameters.username;
@@ -1200,7 +1200,7 @@ class ViewService {
1200
1200
  this.httpClient = httpClient;
1201
1201
  this.basePath = 'http://localhost';
1202
1202
  this.defaultHeaders = new HttpHeaders();
1203
- this.configuration = new Configuration$5();
1203
+ this.configuration = new Configuration$6();
1204
1204
  if (configuration) {
1205
1205
  this.configuration = configuration;
1206
1206
  }
@@ -1213,7 +1213,7 @@ class ViewService {
1213
1213
  }
1214
1214
  this.configuration.basePath = basePath;
1215
1215
  }
1216
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$5();
1216
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$6();
1217
1217
  }
1218
1218
  /**
1219
1219
  * @param consumes string[] mime-types
@@ -2034,7 +2034,7 @@ class ViewService {
2034
2034
  });
2035
2035
  }
2036
2036
  else {
2037
- localVarFormParams = localVarFormParams.append('contents', [...contents].join(COLLECTION_FORMATS$5['csv'])) || localVarFormParams;
2037
+ localVarFormParams = localVarFormParams.append('contents', [...contents].join(COLLECTION_FORMATS$6['csv'])) || localVarFormParams;
2038
2038
  }
2039
2039
  }
2040
2040
  let responseType_ = 'json';
@@ -2060,7 +2060,7 @@ class ViewService {
2060
2060
  reportProgress: reportProgress
2061
2061
  });
2062
2062
  }
2063
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ViewService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$5, optional: true }, { token: Configuration$5, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2063
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ViewService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$6, optional: true }, { token: Configuration$6, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2064
2064
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ViewService, providedIn: 'root' }); }
2065
2065
  }
2066
2066
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ViewService, decorators: [{
@@ -2072,12 +2072,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
2072
2072
  type: Optional
2073
2073
  }, {
2074
2074
  type: Inject,
2075
- args: [BASE_PATH$5]
2076
- }] }, { type: Configuration$5, decorators: [{
2075
+ args: [BASE_PATH$6]
2076
+ }] }, { type: Configuration$6, decorators: [{
2077
2077
  type: Optional
2078
2078
  }] }] });
2079
2079
 
2080
- const APIS$3 = [ViewService];
2080
+ const APIS$4 = [ViewService];
2081
2081
 
2082
2082
  /**
2083
2083
  * View API
@@ -2536,11 +2536,11 @@ var ViewType;
2536
2536
  ViewType["EMBEDDED"] = "embedded";
2537
2537
  })(ViewType || (ViewType = {}));
2538
2538
 
2539
- let ApiModule$3 = class ApiModule {
2539
+ let ApiModule$4 = class ApiModule {
2540
2540
  static forRoot(configurationFactory) {
2541
2541
  return {
2542
2542
  ngModule: ApiModule,
2543
- providers: [{ provide: Configuration$5, useFactory: configurationFactory }]
2543
+ providers: [{ provide: Configuration$6, useFactory: configurationFactory }]
2544
2544
  };
2545
2545
  }
2546
2546
  constructor(parentModule, http) {
@@ -2556,7 +2556,7 @@ let ApiModule$3 = class ApiModule {
2556
2556
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
2557
2557
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
2558
2558
  };
2559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$3, decorators: [{
2559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$4, decorators: [{
2560
2560
  type: NgModule,
2561
2561
  args: [{
2562
2562
  imports: [],
@@ -2564,7 +2564,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
2564
2564
  exports: [],
2565
2565
  providers: []
2566
2566
  }]
2567
- }], ctorParameters: () => [{ type: ApiModule$3, decorators: [{
2567
+ }], ctorParameters: () => [{ type: ApiModule$4, decorators: [{
2568
2568
  type: Optional
2569
2569
  }, {
2570
2570
  type: SkipSelf
@@ -3623,7 +3623,7 @@ SmartdialogService = __decorate([
3623
3623
  * Custom HttpParameterCodec
3624
3624
  * Workaround for https://github.com/angular/angular/issues/18261
3625
3625
  */
3626
- let CustomHttpParameterCodec$4 = class CustomHttpParameterCodec {
3626
+ let CustomHttpParameterCodec$5 = class CustomHttpParameterCodec {
3627
3627
  encodeKey(k) {
3628
3628
  return encodeURIComponent(k);
3629
3629
  }
@@ -3638,15 +3638,15 @@ let CustomHttpParameterCodec$4 = class CustomHttpParameterCodec {
3638
3638
  }
3639
3639
  };
3640
3640
 
3641
- const BASE_PATH$4 = new InjectionToken('basePath');
3642
- const COLLECTION_FORMATS$4 = {
3641
+ const BASE_PATH$5 = new InjectionToken('basePath');
3642
+ const COLLECTION_FORMATS$5 = {
3643
3643
  'csv': ',',
3644
3644
  'tsv': ' ',
3645
3645
  'ssv': ' ',
3646
3646
  'pipes': '|'
3647
3647
  };
3648
3648
 
3649
- let Configuration$4 = class Configuration {
3649
+ let Configuration$5 = class Configuration {
3650
3650
  constructor(configurationParameters = {}) {
3651
3651
  this.apiKeys = configurationParameters.apiKeys;
3652
3652
  this.username = configurationParameters.username;
@@ -3754,7 +3754,7 @@ let DefaultService$1 = class DefaultService {
3754
3754
  this.httpClient = httpClient;
3755
3755
  this.basePath = 'http://localhost';
3756
3756
  this.defaultHeaders = new HttpHeaders();
3757
- this.configuration = new Configuration$4();
3757
+ this.configuration = new Configuration$5();
3758
3758
  if (configuration) {
3759
3759
  this.configuration = configuration;
3760
3760
  }
@@ -3767,7 +3767,7 @@ let DefaultService$1 = class DefaultService {
3767
3767
  }
3768
3768
  this.configuration.basePath = basePath;
3769
3769
  }
3770
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$4();
3770
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$5();
3771
3771
  }
3772
3772
  // @ts-ignore
3773
3773
  addToHttpParams(httpParams, value, key) {
@@ -3844,7 +3844,7 @@ let DefaultService$1 = class DefaultService {
3844
3844
  reportProgress: reportProgress
3845
3845
  });
3846
3846
  }
3847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$4, optional: true }, { token: Configuration$4, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
3847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$5, optional: true }, { token: Configuration$5, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
3848
3848
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, providedIn: 'root' }); }
3849
3849
  };
3850
3850
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService$1, decorators: [{
@@ -3856,12 +3856,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
3856
3856
  type: Optional
3857
3857
  }, {
3858
3858
  type: Inject,
3859
- args: [BASE_PATH$4]
3860
- }] }, { type: Configuration$4, decorators: [{
3859
+ args: [BASE_PATH$5]
3860
+ }] }, { type: Configuration$5, decorators: [{
3861
3861
  type: Optional
3862
3862
  }] }] });
3863
3863
 
3864
- const APIS$2 = [DefaultService$1];
3864
+ const APIS$3 = [DefaultService$1];
3865
3865
 
3866
3866
  /**
3867
3867
  * Form layout definition
@@ -4005,11 +4005,11 @@ var ValueChangeMode;
4005
4005
  ValueChangeMode["IMMEDIATE_ACTION"] = "IMMEDIATE_ACTION";
4006
4006
  })(ValueChangeMode || (ValueChangeMode = {}));
4007
4007
 
4008
- let ApiModule$2 = class ApiModule {
4008
+ let ApiModule$3 = class ApiModule {
4009
4009
  static forRoot(configurationFactory) {
4010
4010
  return {
4011
4011
  ngModule: ApiModule,
4012
- providers: [{ provide: Configuration$4, useFactory: configurationFactory }]
4012
+ providers: [{ provide: Configuration$5, useFactory: configurationFactory }]
4013
4013
  };
4014
4014
  }
4015
4015
  constructor(parentModule, http) {
@@ -4025,7 +4025,7 @@ let ApiModule$2 = class ApiModule {
4025
4025
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
4026
4026
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
4027
4027
  };
4028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$2, decorators: [{
4028
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$3, decorators: [{
4029
4029
  type: NgModule,
4030
4030
  args: [{
4031
4031
  imports: [],
@@ -4033,7 +4033,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
4033
4033
  exports: [],
4034
4034
  providers: []
4035
4035
  }]
4036
- }], ctorParameters: () => [{ type: ApiModule$2, decorators: [{
4036
+ }], ctorParameters: () => [{ type: ApiModule$3, decorators: [{
4037
4037
  type: Optional
4038
4038
  }, {
4039
4039
  type: SkipSelf
@@ -10007,7 +10007,7 @@ var FilterExpressionOrderBy;
10007
10007
  * Custom HttpParameterCodec
10008
10008
  * Workaround for https://github.com/angular/angular/issues/18261
10009
10009
  */
10010
- let CustomHttpParameterCodec$3 = class CustomHttpParameterCodec {
10010
+ let CustomHttpParameterCodec$4 = class CustomHttpParameterCodec {
10011
10011
  encodeKey(k) {
10012
10012
  return encodeURIComponent(k);
10013
10013
  }
@@ -10022,15 +10022,15 @@ let CustomHttpParameterCodec$3 = class CustomHttpParameterCodec {
10022
10022
  }
10023
10023
  };
10024
10024
 
10025
- const BASE_PATH$3 = new InjectionToken('basePath');
10026
- const COLLECTION_FORMATS$3 = {
10025
+ const BASE_PATH$4 = new InjectionToken('basePath');
10026
+ const COLLECTION_FORMATS$4 = {
10027
10027
  'csv': ',',
10028
10028
  'tsv': ' ',
10029
10029
  'ssv': ' ',
10030
10030
  'pipes': '|'
10031
10031
  };
10032
10032
 
10033
- let Configuration$3 = class Configuration {
10033
+ let Configuration$4 = class Configuration {
10034
10034
  constructor(configurationParameters = {}) {
10035
10035
  this.apiKeys = configurationParameters.apiKeys;
10036
10036
  this.username = configurationParameters.username;
@@ -10138,7 +10138,7 @@ class GridService {
10138
10138
  this.httpClient = httpClient;
10139
10139
  this.basePath = 'http://localhost';
10140
10140
  this.defaultHeaders = new HttpHeaders();
10141
- this.configuration = new Configuration$3();
10141
+ this.configuration = new Configuration$4();
10142
10142
  if (configuration) {
10143
10143
  this.configuration = configuration;
10144
10144
  }
@@ -10151,7 +10151,7 @@ class GridService {
10151
10151
  }
10152
10152
  this.configuration.basePath = basePath;
10153
10153
  }
10154
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$3();
10154
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$4();
10155
10155
  }
10156
10156
  // @ts-ignore
10157
10157
  addToHttpParams(httpParams, value, key) {
@@ -10546,7 +10546,7 @@ class GridService {
10546
10546
  reportProgress: reportProgress
10547
10547
  });
10548
10548
  }
10549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$3, optional: true }, { token: Configuration$3, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
10549
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$4, optional: true }, { token: Configuration$4, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
10550
10550
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridService, providedIn: 'root' }); }
10551
10551
  }
10552
10552
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridService, decorators: [{
@@ -10558,12 +10558,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
10558
10558
  type: Optional
10559
10559
  }, {
10560
10560
  type: Inject,
10561
- args: [BASE_PATH$3]
10562
- }] }, { type: Configuration$3, decorators: [{
10561
+ args: [BASE_PATH$4]
10562
+ }] }, { type: Configuration$4, decorators: [{
10563
10563
  type: Optional
10564
10564
  }] }] });
10565
10565
 
10566
- const APIS$1 = [GridService];
10566
+ const APIS$2 = [GridService];
10567
10567
 
10568
10568
  /**
10569
10569
  * Grid api
@@ -10657,11 +10657,11 @@ var GridViewDescriptorKindEnum;
10657
10657
  })(GridViewDescriptorKindEnum || (GridViewDescriptorKindEnum = {}));
10658
10658
  ;
10659
10659
 
10660
- let ApiModule$1 = class ApiModule {
10660
+ let ApiModule$2 = class ApiModule {
10661
10661
  static forRoot(configurationFactory) {
10662
10662
  return {
10663
10663
  ngModule: ApiModule,
10664
- providers: [{ provide: Configuration$3, useFactory: configurationFactory }]
10664
+ providers: [{ provide: Configuration$4, useFactory: configurationFactory }]
10665
10665
  };
10666
10666
  }
10667
10667
  constructor(parentModule, http) {
@@ -10677,7 +10677,7 @@ let ApiModule$1 = class ApiModule {
10677
10677
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
10678
10678
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
10679
10679
  };
10680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$1, decorators: [{
10680
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$2, decorators: [{
10681
10681
  type: NgModule,
10682
10682
  args: [{
10683
10683
  imports: [],
@@ -10685,7 +10685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
10685
10685
  exports: [],
10686
10686
  providers: []
10687
10687
  }]
10688
- }], ctorParameters: () => [{ type: ApiModule$1, decorators: [{
10688
+ }], ctorParameters: () => [{ type: ApiModule$2, decorators: [{
10689
10689
  type: Optional
10690
10690
  }, {
10691
10691
  type: SkipSelf
@@ -12497,7 +12497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
12497
12497
  * Custom HttpParameterCodec
12498
12498
  * Workaround for https://github.com/angular/angular/issues/18261
12499
12499
  */
12500
- let CustomHttpParameterCodec$2 = class CustomHttpParameterCodec {
12500
+ let CustomHttpParameterCodec$3 = class CustomHttpParameterCodec {
12501
12501
  encodeKey(k) {
12502
12502
  return encodeURIComponent(k);
12503
12503
  }
@@ -12512,15 +12512,15 @@ let CustomHttpParameterCodec$2 = class CustomHttpParameterCodec {
12512
12512
  }
12513
12513
  };
12514
12514
 
12515
- const BASE_PATH$2 = new InjectionToken('basePath');
12516
- const COLLECTION_FORMATS$2 = {
12515
+ const BASE_PATH$3 = new InjectionToken('basePath');
12516
+ const COLLECTION_FORMATS$3 = {
12517
12517
  'csv': ',',
12518
12518
  'tsv': ' ',
12519
12519
  'ssv': ' ',
12520
12520
  'pipes': '|'
12521
12521
  };
12522
12522
 
12523
- let Configuration$2 = class Configuration {
12523
+ let Configuration$3 = class Configuration {
12524
12524
  constructor(configurationParameters = {}) {
12525
12525
  this.apiKeys = configurationParameters.apiKeys;
12526
12526
  this.username = configurationParameters.username;
@@ -12628,7 +12628,7 @@ class TreeService {
12628
12628
  this.httpClient = httpClient;
12629
12629
  this.basePath = 'http://localhost';
12630
12630
  this.defaultHeaders = new HttpHeaders();
12631
- this.configuration = new Configuration$2();
12631
+ this.configuration = new Configuration$3();
12632
12632
  if (configuration) {
12633
12633
  this.configuration = configuration;
12634
12634
  }
@@ -12641,7 +12641,7 @@ class TreeService {
12641
12641
  }
12642
12642
  this.configuration.basePath = basePath;
12643
12643
  }
12644
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$2();
12644
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$3();
12645
12645
  }
12646
12646
  // @ts-ignore
12647
12647
  addToHttpParams(httpParams, value, key) {
@@ -13775,7 +13775,7 @@ class TreeService {
13775
13775
  reportProgress: reportProgress,
13776
13776
  });
13777
13777
  }
13778
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TreeService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$2, optional: true }, { token: Configuration$2, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
13778
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TreeService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$3, optional: true }, { token: Configuration$3, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
13779
13779
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TreeService, providedIn: 'root' }); }
13780
13780
  }
13781
13781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TreeService, decorators: [{
@@ -13787,8 +13787,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
13787
13787
  type: Optional
13788
13788
  }, {
13789
13789
  type: Inject,
13790
- args: [BASE_PATH$2]
13791
- }] }, { type: Configuration$2, decorators: [{
13790
+ args: [BASE_PATH$3]
13791
+ }] }, { type: Configuration$3, decorators: [{
13792
13792
  type: Optional
13793
13793
  }] }] });
13794
13794
 
@@ -14341,7 +14341,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
14341
14341
  * Custom HttpParameterCodec
14342
14342
  * Workaround for https://github.com/angular/angular/issues/18261
14343
14343
  */
14344
- let CustomHttpParameterCodec$1 = class CustomHttpParameterCodec {
14344
+ let CustomHttpParameterCodec$2 = class CustomHttpParameterCodec {
14345
14345
  encodeKey(k) {
14346
14346
  return encodeURIComponent(k);
14347
14347
  }
@@ -14356,15 +14356,15 @@ let CustomHttpParameterCodec$1 = class CustomHttpParameterCodec {
14356
14356
  }
14357
14357
  };
14358
14358
 
14359
- const BASE_PATH$1 = new InjectionToken('basePath');
14360
- const COLLECTION_FORMATS$1 = {
14359
+ const BASE_PATH$2 = new InjectionToken('basePath');
14360
+ const COLLECTION_FORMATS$2 = {
14361
14361
  'csv': ',',
14362
14362
  'tsv': ' ',
14363
14363
  'ssv': ' ',
14364
14364
  'pipes': '|'
14365
14365
  };
14366
14366
 
14367
- let Configuration$1 = class Configuration {
14367
+ let Configuration$2 = class Configuration {
14368
14368
  constructor(configurationParameters = {}) {
14369
14369
  this.apiKeys = configurationParameters.apiKeys;
14370
14370
  this.username = configurationParameters.username;
@@ -14472,7 +14472,7 @@ class DefaultService {
14472
14472
  this.httpClient = httpClient;
14473
14473
  this.basePath = 'http://localhost';
14474
14474
  this.defaultHeaders = new HttpHeaders();
14475
- this.configuration = new Configuration$1();
14475
+ this.configuration = new Configuration$2();
14476
14476
  if (configuration) {
14477
14477
  this.configuration = configuration;
14478
14478
  }
@@ -14485,7 +14485,7 @@ class DefaultService {
14485
14485
  }
14486
14486
  this.configuration.basePath = basePath;
14487
14487
  }
14488
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$1();
14488
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$2();
14489
14489
  }
14490
14490
  // @ts-ignore
14491
14491
  addToHttpParams(httpParams, value, key) {
@@ -14562,7 +14562,7 @@ class DefaultService {
14562
14562
  reportProgress: reportProgress
14563
14563
  });
14564
14564
  }
14565
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$1, optional: true }, { token: Configuration$1, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
14565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$2, optional: true }, { token: Configuration$2, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
14566
14566
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, providedIn: 'root' }); }
14567
14567
  }
14568
14568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DefaultService, decorators: [{
@@ -14574,12 +14574,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
14574
14574
  type: Optional
14575
14575
  }, {
14576
14576
  type: Inject,
14577
- args: [BASE_PATH$1]
14578
- }] }, { type: Configuration$1, decorators: [{
14577
+ args: [BASE_PATH$2]
14578
+ }] }, { type: Configuration$2, decorators: [{
14579
14579
  type: Optional
14580
14580
  }] }] });
14581
14581
 
14582
- const APIS = [DefaultService];
14582
+ const APIS$1 = [DefaultService];
14583
14583
 
14584
14584
  /**
14585
14585
  * Form layout definition
@@ -14635,11 +14635,11 @@ var LayoutDirection;
14635
14635
  LayoutDirection["VERTICAL"] = "vertical";
14636
14636
  })(LayoutDirection || (LayoutDirection = {}));
14637
14637
 
14638
- class ApiModule {
14638
+ let ApiModule$1 = class ApiModule {
14639
14639
  static forRoot(configurationFactory) {
14640
14640
  return {
14641
14641
  ngModule: ApiModule,
14642
- providers: [{ provide: Configuration$1, useFactory: configurationFactory }]
14642
+ providers: [{ provide: Configuration$2, useFactory: configurationFactory }]
14643
14643
  };
14644
14644
  }
14645
14645
  constructor(parentModule, http) {
@@ -14654,8 +14654,8 @@ class ApiModule {
14654
14654
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
14655
14655
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
14656
14656
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
14657
- }
14658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule, decorators: [{
14657
+ };
14658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule$1, decorators: [{
14659
14659
  type: NgModule,
14660
14660
  args: [{
14661
14661
  imports: [],
@@ -14663,7 +14663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
14663
14663
  exports: [],
14664
14664
  providers: []
14665
14665
  }]
14666
- }], ctorParameters: () => [{ type: ApiModule, decorators: [{
14666
+ }], ctorParameters: () => [{ type: ApiModule$1, decorators: [{
14667
14667
  type: Optional
14668
14668
  }, {
14669
14669
  type: SkipSelf
@@ -14903,7 +14903,7 @@ class SmartComponentLayoutComponent {
14903
14903
  }
14904
14904
  }
14905
14905
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, deps: [{ token: SmartformLayoutDefinitionService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
14906
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, viewQueries: [{ propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar *ngIf=\"!!toolbarId\" #toolbar [id]=\"toolbarId\"></smart-ui-action-toolbar>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "dev"] }, { kind: "component", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id"] }, { kind: "component", type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
14906
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, viewQueries: [{ propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartMapList", predicate: ["map"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar *ngIf=\"!!toolbarId\" #toolbar [id]=\"toolbarId\"></smart-ui-action-toolbar>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "dev"] }, { kind: "component", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id"] }, { kind: "component", type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
14907
14907
  }
14908
14908
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, decorators: [{
14909
14909
  type: Component,
@@ -14922,6 +14922,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
14922
14922
  }], smartGridList: [{
14923
14923
  type: ViewChildren,
14924
14924
  args: ['grid']
14925
+ }], smartMapList: [{
14926
+ type: ViewChildren,
14927
+ args: ['map']
14925
14928
  }], smartFilterList: [{
14926
14929
  type: ViewChildren,
14927
14930
  args: ['filter']
@@ -15858,10 +15861,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
15858
15861
  type: Injectable
15859
15862
  }] });
15860
15863
 
15861
- /*
15862
- * Public API Surface of smarttree
15863
- */
15864
-
15865
15864
  class SmartComponentLayoutUtility {
15866
15865
  static getForms(comp) {
15867
15866
  let result = [];
@@ -15897,6 +15896,23 @@ class SmartComponentLayoutUtility {
15897
15896
  }
15898
15897
  return result;
15899
15898
  }
15899
+ static getMaps(comp) {
15900
+ const result = [];
15901
+ if (comp.components) {
15902
+ const children = comp.components
15903
+ .map((c) => SmartComponentLayoutUtility.getMaps(c))
15904
+ .reduce((acc, value) => acc.concat(value), []);
15905
+ result.push(...children);
15906
+ }
15907
+ const expandable = this.getExpandableComponent(comp);
15908
+ if (expandable) {
15909
+ result.push(...this.getMaps(expandable));
15910
+ }
15911
+ if (comp.smartMapComponent) {
15912
+ result.push(comp.smartMapComponent);
15913
+ }
15914
+ return result;
15915
+ }
15900
15916
  static getTrees(comp) {
15901
15917
  let result = [];
15902
15918
  if (comp.components) {
@@ -15963,7 +15979,7 @@ class SmartComponentLayoutUtility {
15963
15979
  * Custom HttpParameterCodec
15964
15980
  * Workaround for https://github.com/angular/angular/issues/18261
15965
15981
  */
15966
- class CustomHttpParameterCodec {
15982
+ let CustomHttpParameterCodec$1 = class CustomHttpParameterCodec {
15967
15983
  encodeKey(k) {
15968
15984
  return encodeURIComponent(k);
15969
15985
  }
@@ -15976,17 +15992,17 @@ class CustomHttpParameterCodec {
15976
15992
  decodeValue(v) {
15977
15993
  return decodeURIComponent(v);
15978
15994
  }
15979
- }
15995
+ };
15980
15996
 
15981
- const BASE_PATH = new InjectionToken('basePath');
15982
- const COLLECTION_FORMATS = {
15997
+ const BASE_PATH$1 = new InjectionToken('basePath');
15998
+ const COLLECTION_FORMATS$1 = {
15983
15999
  'csv': ',',
15984
16000
  'tsv': ' ',
15985
16001
  'ssv': ' ',
15986
16002
  'pipes': '|'
15987
16003
  };
15988
16004
 
15989
- class Configuration {
16005
+ let Configuration$1 = class Configuration {
15990
16006
  constructor(configurationParameters = {}) {
15991
16007
  this.apiKeys = configurationParameters.apiKeys;
15992
16008
  this.username = configurationParameters.username;
@@ -16075,7 +16091,7 @@ class Configuration {
16075
16091
  : param.value;
16076
16092
  return encodeURIComponent(String(value));
16077
16093
  }
16078
- }
16094
+ };
16079
16095
 
16080
16096
  /**
16081
16097
  * Filter API 2
@@ -16094,7 +16110,7 @@ class FilterService {
16094
16110
  this.httpClient = httpClient;
16095
16111
  this.basePath = 'http://localhost';
16096
16112
  this.defaultHeaders = new HttpHeaders();
16097
- this.configuration = new Configuration();
16113
+ this.configuration = new Configuration$1();
16098
16114
  if (configuration) {
16099
16115
  this.configuration = configuration;
16100
16116
  }
@@ -16107,7 +16123,7 @@ class FilterService {
16107
16123
  }
16108
16124
  this.configuration.basePath = basePath;
16109
16125
  }
16110
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
16126
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec$1();
16111
16127
  }
16112
16128
  // @ts-ignore
16113
16129
  addToHttpParams(httpParams, value, key) {
@@ -16249,7 +16265,7 @@ class FilterService {
16249
16265
  reportProgress: reportProgress
16250
16266
  });
16251
16267
  }
16252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
16268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH$1, optional: true }, { token: Configuration$1, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
16253
16269
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, providedIn: 'root' }); }
16254
16270
  }
16255
16271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, decorators: [{
@@ -16261,8 +16277,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
16261
16277
  type: Optional
16262
16278
  }, {
16263
16279
  type: Inject,
16264
- args: [BASE_PATH]
16265
- }] }, { type: Configuration, decorators: [{
16280
+ args: [BASE_PATH$1]
16281
+ }] }, { type: Configuration$1, decorators: [{
16266
16282
  type: Optional
16267
16283
  }] }] });
16268
16284
 
@@ -16309,57 +16325,1271 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
16309
16325
  type: Injectable
16310
16326
  }], ctorParameters: () => [{ type: FilterService }] });
16311
16327
 
16312
- class SmartComponentApiClient {
16313
- get uuid() {
16314
- return this._uuid;
16328
+ /**
16329
+ * Custom HttpParameterCodec
16330
+ * Workaround for https://github.com/angular/angular/issues/18261
16331
+ */
16332
+ class CustomHttpParameterCodec {
16333
+ encodeKey(k) {
16334
+ return encodeURIComponent(k);
16315
16335
  }
16316
- set uuid(uuid) {
16317
- if (this._uuid === uuid) {
16318
- return;
16336
+ encodeValue(v) {
16337
+ return encodeURIComponent(v);
16338
+ }
16339
+ decodeKey(k) {
16340
+ return decodeURIComponent(k);
16341
+ }
16342
+ decodeValue(v) {
16343
+ return decodeURIComponent(v);
16344
+ }
16345
+ }
16346
+
16347
+ const BASE_PATH = new InjectionToken('basePath');
16348
+ const COLLECTION_FORMATS = {
16349
+ 'csv': ',',
16350
+ 'tsv': ' ',
16351
+ 'ssv': ' ',
16352
+ 'pipes': '|'
16353
+ };
16354
+
16355
+ class Configuration {
16356
+ constructor(configurationParameters = {}) {
16357
+ this.apiKeys = configurationParameters.apiKeys;
16358
+ this.username = configurationParameters.username;
16359
+ this.password = configurationParameters.password;
16360
+ this.accessToken = configurationParameters.accessToken;
16361
+ this.basePath = configurationParameters.basePath;
16362
+ this.withCredentials = configurationParameters.withCredentials;
16363
+ this.encoder = configurationParameters.encoder;
16364
+ if (configurationParameters.encodeParam) {
16365
+ this.encodeParam = configurationParameters.encodeParam;
16319
16366
  }
16320
- let firstUuid = true;
16321
- if (this.uuid) {
16322
- this.viewContext.unfollow(this.uuid);
16323
- firstUuid = false;
16367
+ else {
16368
+ this.encodeParam = param => this.defaultEncodeParam(param);
16324
16369
  }
16325
- this._uuid = uuid;
16326
- this.getWidgets().forEach((ref, key) => {
16327
- if (ref instanceof SmartGridComponent) {
16328
- ref.uuid = this.componentModelLoaded ? uuid : undefined;
16329
- }
16330
- else if (ref instanceof SmartFilterEditorContentComponent) {
16331
- ref.service.config.uuid = this.componentModelLoaded ? uuid : undefined;
16332
- }
16333
- else if (!ref && !firstUuid) {
16334
- console.error(`Provided reference for ${key} is undefined on uuid change.`);
16335
- }
16336
- });
16337
- if (!this.uuidOfPageHasBeenChangedSubscription) {
16338
- this.uuidOfPageHasBeenChangedSubscription = this.viewContext.uuidOfPageHasBeenChanged
16339
- .pipe(takeUntil(this._destroy$))
16340
- .subscribe((pageName) => {
16341
- if (pageName === this.pageName) {
16342
- this.run();
16343
- }
16344
- });
16370
+ if (configurationParameters.credentials) {
16371
+ this.credentials = configurationParameters.credentials;
16345
16372
  }
16346
- if (uuid) {
16347
- this.viewContext.follow(this._uuid, this.detectChange);
16373
+ else {
16374
+ this.credentials = {};
16348
16375
  }
16349
16376
  }
16350
- get model() {
16351
- return this._model;
16352
- }
16353
- set model(model) {
16354
- this._model = model;
16355
- this.initComponentByModel();
16356
- }
16357
- get data() {
16358
- return this._data;
16359
- }
16360
- set data(model) {
16361
- this._data = model;
16362
- this.dataChanged.next();
16377
+ /**
16378
+ * Select the correct content-type to use for a request.
16379
+ * Uses {@link Configuration#isJsonMime} to determine the correct content-type.
16380
+ * If no content type is found return the first found type if the contentTypes is not empty
16381
+ * @param contentTypes - the array of content types that are available for selection
16382
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
16383
+ */
16384
+ selectHeaderContentType(contentTypes) {
16385
+ if (contentTypes.length === 0) {
16386
+ return undefined;
16387
+ }
16388
+ const type = contentTypes.find((x) => this.isJsonMime(x));
16389
+ if (type === undefined) {
16390
+ return contentTypes[0];
16391
+ }
16392
+ return type;
16393
+ }
16394
+ /**
16395
+ * Select the correct accept content-type to use for a request.
16396
+ * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
16397
+ * If no content type is found return the first found type if the contentTypes is not empty
16398
+ * @param accepts - the array of content types that are available for selection.
16399
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
16400
+ */
16401
+ selectHeaderAccept(accepts) {
16402
+ if (accepts.length === 0) {
16403
+ return undefined;
16404
+ }
16405
+ const type = accepts.find((x) => this.isJsonMime(x));
16406
+ if (type === undefined) {
16407
+ return accepts[0];
16408
+ }
16409
+ return type;
16410
+ }
16411
+ /**
16412
+ * Check if the given MIME is a JSON MIME.
16413
+ * JSON MIME examples:
16414
+ * application/json
16415
+ * application/json; charset=UTF8
16416
+ * APPLICATION/JSON
16417
+ * application/vnd.company+json
16418
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
16419
+ * @return True if the given MIME is JSON, false otherwise.
16420
+ */
16421
+ isJsonMime(mime) {
16422
+ const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
16423
+ return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
16424
+ }
16425
+ lookupCredential(key) {
16426
+ const value = this.credentials[key];
16427
+ return typeof value === 'function'
16428
+ ? value()
16429
+ : value;
16430
+ }
16431
+ defaultEncodeParam(param) {
16432
+ // This implementation exists as fallback for missing configuration
16433
+ // and for backwards compatibility to older typescript-angular generator versions.
16434
+ // It only works for the 'simple' parameter style.
16435
+ // Date-handling only works for the 'date-time' format.
16436
+ // All other styles and Date-formats are probably handled incorrectly.
16437
+ //
16438
+ // But: if that's all you need (i.e.: the most common use-case): no need for customization!
16439
+ const value = param.dataFormat === 'date-time' && param.value instanceof Date
16440
+ ? param.value.toISOString()
16441
+ : param.value;
16442
+ return encodeURIComponent(String(value));
16443
+ }
16444
+ }
16445
+
16446
+ /**
16447
+ * GeoMap api
16448
+ * The geomap api is resposible for the geomap components that shows a list of item.
16449
+ *
16450
+ * The version of the OpenAPI document: 1.0.0
16451
+ * Contact: info@it4all.hu
16452
+ *
16453
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16454
+ * https://openapi-generator.tech
16455
+ * Do not edit the class manually.
16456
+ */
16457
+ /* tslint:disable:no-unused-variable member-ordering */
16458
+ class GeoMapService {
16459
+ constructor(httpClient, basePath, configuration) {
16460
+ this.httpClient = httpClient;
16461
+ this.basePath = 'http://localhost';
16462
+ this.defaultHeaders = new HttpHeaders();
16463
+ this.configuration = new Configuration();
16464
+ if (configuration) {
16465
+ this.configuration = configuration;
16466
+ }
16467
+ if (typeof this.configuration.basePath !== 'string') {
16468
+ if (Array.isArray(basePath) && basePath.length > 0) {
16469
+ basePath = basePath[0];
16470
+ }
16471
+ if (typeof basePath !== 'string') {
16472
+ basePath = this.basePath;
16473
+ }
16474
+ this.configuration.basePath = basePath;
16475
+ }
16476
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
16477
+ }
16478
+ // @ts-ignore
16479
+ addToHttpParams(httpParams, value, key) {
16480
+ if (typeof value === "object" && value instanceof Date === false) {
16481
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
16482
+ }
16483
+ else {
16484
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
16485
+ }
16486
+ return httpParams;
16487
+ }
16488
+ addToHttpParamsRecursive(httpParams, value, key) {
16489
+ if (value == null) {
16490
+ return httpParams;
16491
+ }
16492
+ if (typeof value === "object") {
16493
+ if (Array.isArray(value)) {
16494
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
16495
+ }
16496
+ else if (value instanceof Date) {
16497
+ if (key != null) {
16498
+ httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
16499
+ }
16500
+ else {
16501
+ throw Error("key may not be null if value is Date");
16502
+ }
16503
+ }
16504
+ else {
16505
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
16506
+ }
16507
+ }
16508
+ else if (key != null) {
16509
+ httpParams = httpParams.append(key, value);
16510
+ }
16511
+ else {
16512
+ throw Error("key may not be null if value is not object or array");
16513
+ }
16514
+ return httpParams;
16515
+ }
16516
+ interact(uuid, identifier, geoMapInteraction, observe = 'body', reportProgress = false, options) {
16517
+ if (uuid === null || uuid === undefined) {
16518
+ throw new Error('Required parameter uuid was null or undefined when calling interact.');
16519
+ }
16520
+ if (identifier === null || identifier === undefined) {
16521
+ throw new Error('Required parameter identifier was null or undefined when calling interact.');
16522
+ }
16523
+ if (geoMapInteraction === null || geoMapInteraction === undefined) {
16524
+ throw new Error('Required parameter geoMapInteraction was null or undefined when calling interact.');
16525
+ }
16526
+ let localVarHeaders = this.defaultHeaders;
16527
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
16528
+ if (localVarHttpHeaderAcceptSelected === undefined) {
16529
+ // to determine the Accept header
16530
+ const httpHeaderAccepts = [
16531
+ 'application/json'
16532
+ ];
16533
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
16534
+ }
16535
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
16536
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
16537
+ }
16538
+ let localVarHttpContext = options && options.context;
16539
+ if (localVarHttpContext === undefined) {
16540
+ localVarHttpContext = new HttpContext();
16541
+ }
16542
+ // to determine the Content-Type header
16543
+ const consumes = [
16544
+ 'application/json'
16545
+ ];
16546
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
16547
+ if (httpContentTypeSelected !== undefined) {
16548
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
16549
+ }
16550
+ let responseType_ = 'json';
16551
+ if (localVarHttpHeaderAcceptSelected) {
16552
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
16553
+ responseType_ = 'text';
16554
+ }
16555
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
16556
+ responseType_ = 'json';
16557
+ }
16558
+ else {
16559
+ responseType_ = 'blob';
16560
+ }
16561
+ }
16562
+ let localVarPath = `/geomap/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "identifier", value: identifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/interact`;
16563
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
16564
+ context: localVarHttpContext,
16565
+ body: geoMapInteraction,
16566
+ responseType: responseType_,
16567
+ withCredentials: this.configuration.withCredentials,
16568
+ headers: localVarHeaders,
16569
+ observe: observe,
16570
+ reportProgress: reportProgress
16571
+ });
16572
+ }
16573
+ load(uuid, identifier, observe = 'body', reportProgress = false, options) {
16574
+ if (uuid === null || uuid === undefined) {
16575
+ throw new Error('Required parameter uuid was null or undefined when calling load.');
16576
+ }
16577
+ if (identifier === null || identifier === undefined) {
16578
+ throw new Error('Required parameter identifier was null or undefined when calling load.');
16579
+ }
16580
+ let localVarHeaders = this.defaultHeaders;
16581
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
16582
+ if (localVarHttpHeaderAcceptSelected === undefined) {
16583
+ // to determine the Accept header
16584
+ const httpHeaderAccepts = [
16585
+ 'application/json'
16586
+ ];
16587
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
16588
+ }
16589
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
16590
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
16591
+ }
16592
+ let localVarHttpContext = options && options.context;
16593
+ if (localVarHttpContext === undefined) {
16594
+ localVarHttpContext = new HttpContext();
16595
+ }
16596
+ let responseType_ = 'json';
16597
+ if (localVarHttpHeaderAcceptSelected) {
16598
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
16599
+ responseType_ = 'text';
16600
+ }
16601
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
16602
+ responseType_ = 'json';
16603
+ }
16604
+ else {
16605
+ responseType_ = 'blob';
16606
+ }
16607
+ }
16608
+ let localVarPath = `/geomap/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "identifier", value: identifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/load`;
16609
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
16610
+ context: localVarHttpContext,
16611
+ responseType: responseType_,
16612
+ withCredentials: this.configuration.withCredentials,
16613
+ headers: localVarHeaders,
16614
+ observe: observe,
16615
+ reportProgress: reportProgress
16616
+ });
16617
+ }
16618
+ move(uuid, identifier, geoMapViewport, observe = 'body', reportProgress = false, options) {
16619
+ if (uuid === null || uuid === undefined) {
16620
+ throw new Error('Required parameter uuid was null or undefined when calling move.');
16621
+ }
16622
+ if (identifier === null || identifier === undefined) {
16623
+ throw new Error('Required parameter identifier was null or undefined when calling move.');
16624
+ }
16625
+ if (geoMapViewport === null || geoMapViewport === undefined) {
16626
+ throw new Error('Required parameter geoMapViewport was null or undefined when calling move.');
16627
+ }
16628
+ let localVarHeaders = this.defaultHeaders;
16629
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
16630
+ if (localVarHttpHeaderAcceptSelected === undefined) {
16631
+ // to determine the Accept header
16632
+ const httpHeaderAccepts = [
16633
+ 'application/json'
16634
+ ];
16635
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
16636
+ }
16637
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
16638
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
16639
+ }
16640
+ let localVarHttpContext = options && options.context;
16641
+ if (localVarHttpContext === undefined) {
16642
+ localVarHttpContext = new HttpContext();
16643
+ }
16644
+ // to determine the Content-Type header
16645
+ const consumes = [
16646
+ 'application/json'
16647
+ ];
16648
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
16649
+ if (httpContentTypeSelected !== undefined) {
16650
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
16651
+ }
16652
+ let responseType_ = 'json';
16653
+ if (localVarHttpHeaderAcceptSelected) {
16654
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
16655
+ responseType_ = 'text';
16656
+ }
16657
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
16658
+ responseType_ = 'json';
16659
+ }
16660
+ else {
16661
+ responseType_ = 'blob';
16662
+ }
16663
+ }
16664
+ let localVarPath = `/goemap/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "identifier", value: identifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/move`;
16665
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
16666
+ context: localVarHttpContext,
16667
+ body: geoMapViewport,
16668
+ responseType: responseType_,
16669
+ withCredentials: this.configuration.withCredentials,
16670
+ headers: localVarHeaders,
16671
+ observe: observe,
16672
+ reportProgress: reportProgress
16673
+ });
16674
+ }
16675
+ update(uuid, identifier, geoMapViewState, observe = 'body', reportProgress = false, options) {
16676
+ if (uuid === null || uuid === undefined) {
16677
+ throw new Error('Required parameter uuid was null or undefined when calling update.');
16678
+ }
16679
+ if (identifier === null || identifier === undefined) {
16680
+ throw new Error('Required parameter identifier was null or undefined when calling update.');
16681
+ }
16682
+ if (geoMapViewState === null || geoMapViewState === undefined) {
16683
+ throw new Error('Required parameter geoMapViewState was null or undefined when calling update.');
16684
+ }
16685
+ let localVarHeaders = this.defaultHeaders;
16686
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
16687
+ if (localVarHttpHeaderAcceptSelected === undefined) {
16688
+ // to determine the Accept header
16689
+ const httpHeaderAccepts = [
16690
+ 'application/json'
16691
+ ];
16692
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
16693
+ }
16694
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
16695
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
16696
+ }
16697
+ let localVarHttpContext = options && options.context;
16698
+ if (localVarHttpContext === undefined) {
16699
+ localVarHttpContext = new HttpContext();
16700
+ }
16701
+ // to determine the Content-Type header
16702
+ const consumes = [
16703
+ 'application/json'
16704
+ ];
16705
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
16706
+ if (httpContentTypeSelected !== undefined) {
16707
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
16708
+ }
16709
+ let responseType_ = 'json';
16710
+ if (localVarHttpHeaderAcceptSelected) {
16711
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
16712
+ responseType_ = 'text';
16713
+ }
16714
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
16715
+ responseType_ = 'json';
16716
+ }
16717
+ else {
16718
+ responseType_ = 'blob';
16719
+ }
16720
+ }
16721
+ let localVarPath = `/geomap/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "identifier", value: identifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/update`;
16722
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
16723
+ context: localVarHttpContext,
16724
+ body: geoMapViewState,
16725
+ responseType: responseType_,
16726
+ withCredentials: this.configuration.withCredentials,
16727
+ headers: localVarHeaders,
16728
+ observe: observe,
16729
+ reportProgress: reportProgress
16730
+ });
16731
+ }
16732
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GeoMapService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
16733
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GeoMapService, providedIn: 'root' }); }
16734
+ }
16735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GeoMapService, decorators: [{
16736
+ type: Injectable,
16737
+ args: [{
16738
+ providedIn: 'root'
16739
+ }]
16740
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
16741
+ type: Optional
16742
+ }, {
16743
+ type: Inject,
16744
+ args: [BASE_PATH]
16745
+ }] }, { type: Configuration, decorators: [{
16746
+ type: Optional
16747
+ }] }] });
16748
+
16749
+ const APIS = [GeoMapService];
16750
+
16751
+ /**
16752
+ * GeoMap api
16753
+ * The geomap api is resposible for the geomap components that shows a list of item.
16754
+ *
16755
+ * The version of the OpenAPI document: 1.0.0
16756
+ * Contact: info@it4all.hu
16757
+ *
16758
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16759
+ * https://openapi-generator.tech
16760
+ * Do not edit the class manually.
16761
+ */
16762
+
16763
+ /**
16764
+ * GeoMap api
16765
+ * The geomap api is resposible for the geomap components that shows a list of item.
16766
+ *
16767
+ * The version of the OpenAPI document: 1.0.0
16768
+ * Contact: info@it4all.hu
16769
+ *
16770
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16771
+ * https://openapi-generator.tech
16772
+ * Do not edit the class manually.
16773
+ */
16774
+ var GeoMapDataLoadingMode;
16775
+ (function (GeoMapDataLoadingMode) {
16776
+ GeoMapDataLoadingMode["INTERACTION"] = "ON_INTERACTION";
16777
+ GeoMapDataLoadingMode["CREATION"] = "ON_CREATION";
16778
+ })(GeoMapDataLoadingMode || (GeoMapDataLoadingMode = {}));
16779
+
16780
+ /**
16781
+ * GeoMap api
16782
+ * The geomap api is resposible for the geomap components that shows a list of item.
16783
+ *
16784
+ * The version of the OpenAPI document: 1.0.0
16785
+ * Contact: info@it4all.hu
16786
+ *
16787
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16788
+ * https://openapi-generator.tech
16789
+ * Do not edit the class manually.
16790
+ */
16791
+ var GeoMapDataSourceType;
16792
+ (function (GeoMapDataSourceType) {
16793
+ GeoMapDataSourceType["STORED_COLLECTION"] = "STORED_COLLECTION";
16794
+ GeoMapDataSourceType["SEARCH_INDEX"] = "SEARCH_INDEX";
16795
+ GeoMapDataSourceType["INVOCATION_REQUEST"] = "INVOCATION_REQUEST";
16796
+ })(GeoMapDataSourceType || (GeoMapDataSourceType = {}));
16797
+
16798
+ /**
16799
+ * GeoMap api
16800
+ * The geomap api is resposible for the geomap components that shows a list of item.
16801
+ *
16802
+ * The version of the OpenAPI document: 1.0.0
16803
+ * Contact: info@it4all.hu
16804
+ *
16805
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16806
+ * https://openapi-generator.tech
16807
+ * Do not edit the class manually.
16808
+ */
16809
+ var GeoMapItemKind;
16810
+ (function (GeoMapItemKind) {
16811
+ GeoMapItemKind["MARKER"] = "MARKER";
16812
+ GeoMapItemKind["POLYGON"] = "POLYGON";
16813
+ GeoMapItemKind["LINE"] = "LINE";
16814
+ })(GeoMapItemKind || (GeoMapItemKind = {}));
16815
+
16816
+ /**
16817
+ * GeoMap api
16818
+ * The geomap api is resposible for the geomap components that shows a list of item.
16819
+ *
16820
+ * The version of the OpenAPI document: 1.0.0
16821
+ * Contact: info@it4all.hu
16822
+ *
16823
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16824
+ * https://openapi-generator.tech
16825
+ * Do not edit the class manually.
16826
+ */
16827
+ var GeoMapOperationMode;
16828
+ (function (GeoMapOperationMode) {
16829
+ GeoMapOperationMode["ACTION"] = "ACTION";
16830
+ GeoMapOperationMode["SELECTION"] = "SELECTION";
16831
+ GeoMapOperationMode["PLACEMENT"] = "PLACEMENT";
16832
+ })(GeoMapOperationMode || (GeoMapOperationMode = {}));
16833
+
16834
+ /**
16835
+ * GeoMap api
16836
+ * The geomap api is resposible for the geomap components that shows a list of item.
16837
+ *
16838
+ * The version of the OpenAPI document: 1.0.0
16839
+ * Contact: info@it4all.hu
16840
+ *
16841
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16842
+ * https://openapi-generator.tech
16843
+ * Do not edit the class manually.
16844
+ */
16845
+ var GeoMapSelectionMode;
16846
+ (function (GeoMapSelectionMode) {
16847
+ GeoMapSelectionMode["NONE"] = "NONE";
16848
+ GeoMapSelectionMode["SINGLE"] = "SINGLE";
16849
+ GeoMapSelectionMode["MULTIPLE"] = "MULTIPLE";
16850
+ })(GeoMapSelectionMode || (GeoMapSelectionMode = {}));
16851
+
16852
+ /**
16853
+ * GeoMap api
16854
+ * The geomap api is resposible for the geomap components that shows a list of item.
16855
+ *
16856
+ * The version of the OpenAPI document: 1.0.0
16857
+ * Contact: info@it4all.hu
16858
+ *
16859
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
16860
+ * https://openapi-generator.tech
16861
+ * Do not edit the class manually.
16862
+ */
16863
+ var GeoMapTextType;
16864
+ (function (GeoMapTextType) {
16865
+ GeoMapTextType["TEXT"] = "TEXT";
16866
+ GeoMapTextType["HTML"] = "HTML";
16867
+ })(GeoMapTextType || (GeoMapTextType = {}));
16868
+
16869
+ class ApiModule {
16870
+ static forRoot(configurationFactory) {
16871
+ return {
16872
+ ngModule: ApiModule,
16873
+ providers: [{ provide: Configuration, useFactory: configurationFactory }]
16874
+ };
16875
+ }
16876
+ constructor(parentModule, http) {
16877
+ if (parentModule) {
16878
+ throw new Error('ApiModule is already loaded. Import in your base AppModule only.');
16879
+ }
16880
+ if (!http) {
16881
+ throw new Error('You need to import the HttpClientModule in your AppModule! \n' +
16882
+ 'See also https://github.com/angular/angular/issues/20575');
16883
+ }
16884
+ }
16885
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
16886
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
16887
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule }); }
16888
+ }
16889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ApiModule, decorators: [{
16890
+ type: NgModule,
16891
+ args: [{
16892
+ imports: [],
16893
+ declarations: [],
16894
+ exports: [],
16895
+ providers: []
16896
+ }]
16897
+ }], ctorParameters: () => [{ type: ApiModule, decorators: [{
16898
+ type: Optional
16899
+ }, {
16900
+ type: SkipSelf
16901
+ }] }, { type: i1.HttpClient, decorators: [{
16902
+ type: Optional
16903
+ }] }] });
16904
+
16905
+ class AbstractMap {
16906
+ constructor(el, cd, zone, itemFactory) {
16907
+ this.el = el;
16908
+ this.cd = cd;
16909
+ this.zone = zone;
16910
+ this.itemFactory = itemFactory;
16911
+ this.model = input.required();
16912
+ this.items = input.required();
16913
+ this.onMapClick = new EventEmitter();
16914
+ this.onOverlayClick = new EventEmitter();
16915
+ this.onMapDragEnd = new EventEmitter();
16916
+ this.onZoomChanged = new EventEmitter();
16917
+ this.selection = computed(() => this.items()
16918
+ .filter((it) => !!it.selected)
16919
+ .map((it) => it.id));
16920
+ this.pending = computed(() => this.model().pendingItems);
16921
+ this.operationMode = computed(() => this.model().viewState?.operationMode ?? GeoMapOperationMode.ACTION);
16922
+ this.overlays = new Map();
16923
+ this.onItemsChanged = this.initChangeEffect();
16924
+ }
16925
+ initChangeEffect() {
16926
+ return effect((onCleanup) => {
16927
+ const items = this.items();
16928
+ const present = new Set(this.overlays.keys());
16929
+ const toAdd = [];
16930
+ const toRemove = [];
16931
+ for (const item of items) {
16932
+ if (!item.id) {
16933
+ continue;
16934
+ }
16935
+ if (present.has(item.id)) {
16936
+ present.delete(item.id);
16937
+ }
16938
+ else {
16939
+ toAdd.push({
16940
+ id: item.id,
16941
+ record: this.itemFactory(item),
16942
+ });
16943
+ }
16944
+ }
16945
+ present.forEach((id) => {
16946
+ const record = this.overlays.get(id);
16947
+ if (!record) {
16948
+ return;
16949
+ }
16950
+ toRemove.push({ id, record });
16951
+ });
16952
+ this.handleItemChanges(toRemove, toAdd);
16953
+ onCleanup(() => {
16954
+ const remove = [...this.overlays.entries()].map(([id, record]) => {
16955
+ return { id, record };
16956
+ });
16957
+ this.handleItemChanges(remove, []);
16958
+ });
16959
+ });
16960
+ }
16961
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AbstractMap, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
16962
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.11", type: AbstractMap, inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onMapClick: "onMapClick", onOverlayClick: "onOverlayClick", onMapDragEnd: "onMapDragEnd", onZoomChanged: "onZoomChanged" }, ngImport: i0 }); }
16963
+ }
16964
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AbstractMap, decorators: [{
16965
+ type: Directive
16966
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined }], propDecorators: { onMapClick: [{
16967
+ type: Output
16968
+ }], onOverlayClick: [{
16969
+ type: Output
16970
+ }], onMapDragEnd: [{
16971
+ type: Output
16972
+ }], onZoomChanged: [{
16973
+ type: Output
16974
+ }] } });
16975
+
16976
+ function createGoogleMapsItem(item) {
16977
+ switch (item.kind) {
16978
+ case GeoMapItemKind.MARKER:
16979
+ return new google.maps.Marker({
16980
+ position: {
16981
+ lat: item.position.latitude,
16982
+ lng: item.position.longitude,
16983
+ },
16984
+ title: item.label,
16985
+ });
16986
+ case GeoMapItemKind.LINE:
16987
+ return new google.maps.Polyline({
16988
+ path: item.bounds.map((it) => {
16989
+ return { lat: it.latitude, lng: it.longitude };
16990
+ }),
16991
+ geodesic: true,
16992
+ strokeColor: '#FF0000',
16993
+ strokeOpacity: 0.5,
16994
+ strokeWeight: 2,
16995
+ });
16996
+ case GeoMapItemKind.POLYGON:
16997
+ return new google.maps.Polygon({
16998
+ path: item.bounds.map((it) => {
16999
+ return { lat: it.latitude, lng: it.longitude };
17000
+ }),
17001
+ strokeOpacity: 0.5,
17002
+ storeWeight: 1,
17003
+ fillColor: '#1976D2',
17004
+ fillOpacity: 0.35,
17005
+ });
17006
+ }
17007
+ return null;
17008
+ }
17009
+ class GoogleMap extends AbstractMap {
17010
+ constructor(el, cd, zone) {
17011
+ super(el, cd, zone, createGoogleMapsItem);
17012
+ this.onOverlayDblClick = new EventEmitter();
17013
+ this.onOverlayDragStart = new EventEmitter();
17014
+ this.onOverlayDrag = new EventEmitter();
17015
+ this.onOverlayDragEnd = new EventEmitter();
17016
+ this.onMapReady = new EventEmitter();
17017
+ }
17018
+ ngAfterViewChecked() {
17019
+ if (!this.map && this.el.nativeElement.offsetParent) {
17020
+ this.initialize();
17021
+ }
17022
+ }
17023
+ initialize() {
17024
+ this.map = new google.maps.Map(this.el.nativeElement.children[0], this.createGoogleMapsOptions());
17025
+ const items = this.items();
17026
+ const toAdd = items.map((it) => ({
17027
+ id: it.id,
17028
+ record: createGoogleMapsItem(it),
17029
+ }));
17030
+ this.handleItemChanges([], toAdd);
17031
+ this.onMapReady.emit({
17032
+ map: this.map,
17033
+ });
17034
+ this.map.addListener('click', (event) => {
17035
+ this.zone.run(() => {
17036
+ const center = this.map.getCenter(); // FIXME get actual coordinates
17037
+ this.onMapClick.emit({
17038
+ coordinates: {
17039
+ latitude: center.lat,
17040
+ longitude: center.lng,
17041
+ },
17042
+ originalEvent: event,
17043
+ });
17044
+ });
17045
+ });
17046
+ this.map.addListener('dragend', (event) => {
17047
+ this.zone.run(() => {
17048
+ const center = this.map.getCenter();
17049
+ const zoom = this.map.getZoom();
17050
+ const bounds = this.map.getBounds();
17051
+ const ne = bounds.getNorthEast();
17052
+ const sw = bounds.getSouthWest();
17053
+ this.onMapDragEnd.emit({
17054
+ originalEvent: event,
17055
+ viewport: {
17056
+ center: {
17057
+ latitude: center.lat,
17058
+ longitude: center.lng,
17059
+ },
17060
+ zoomLevel: zoom,
17061
+ bounds: [
17062
+ { latitude: ne.lat, longitude: ne.lng },
17063
+ { latitude: sw.lat, longitude: sw.lng },
17064
+ ],
17065
+ },
17066
+ });
17067
+ });
17068
+ });
17069
+ this.map.addListener('zoom_changed', (event) => {
17070
+ this.zone.run(() => {
17071
+ this.onZoomChanged.emit({
17072
+ viewport: {
17073
+ zoomLevel: this.map.getZoom(),
17074
+ ...this.model().viewport,
17075
+ },
17076
+ originalEvent: event,
17077
+ });
17078
+ });
17079
+ });
17080
+ }
17081
+ createGoogleMapsOptions() {
17082
+ const viewport = this.model().viewport;
17083
+ return {
17084
+ center: {
17085
+ lat: viewport.center?.latitude,
17086
+ lng: viewport.center?.longitude,
17087
+ },
17088
+ zoom: viewport.zoomLevel,
17089
+ };
17090
+ }
17091
+ handleItemChanges(toRemove, toAdd) {
17092
+ if (!this.map) {
17093
+ return;
17094
+ }
17095
+ toRemove.forEach((it) => {
17096
+ google.maps.event.clearInstanceListeners(it.record.item);
17097
+ it.record.item.setMap(null);
17098
+ this.overlays.delete(it.id);
17099
+ });
17100
+ toAdd.forEach((it) => {
17101
+ it.record.item.setMap(this.map);
17102
+ it.record.item.addListener('click', (event) => {
17103
+ this.zone.run(() => {
17104
+ this.onOverlayClick.emit({
17105
+ itemId: it.id,
17106
+ originalEvent: {
17107
+ originalEvent: event,
17108
+ overlay: it.record.item,
17109
+ map: this.map,
17110
+ },
17111
+ });
17112
+ });
17113
+ });
17114
+ it.record.item.addListener('dblclick', (event) => {
17115
+ this.zone.run(() => {
17116
+ this.onOverlayDblClick.emit({
17117
+ originalEvent: event,
17118
+ overlay: it,
17119
+ map: this.map,
17120
+ });
17121
+ });
17122
+ });
17123
+ if (it.record.item.getDraggable()) {
17124
+ this.bindDragEvents(it.record.item);
17125
+ }
17126
+ this.overlays.set(it.id, it.record);
17127
+ });
17128
+ }
17129
+ bindDragEvents(overlay) {
17130
+ overlay.addListener('dragstart', (event) => {
17131
+ this.zone.run(() => {
17132
+ this.onOverlayDragStart.emit({
17133
+ originalEvent: event,
17134
+ overlay: overlay,
17135
+ map: this.map,
17136
+ });
17137
+ });
17138
+ });
17139
+ overlay.addListener('drag', (event) => {
17140
+ this.zone.run(() => {
17141
+ this.onOverlayDrag.emit({
17142
+ originalEvent: event,
17143
+ overlay: overlay,
17144
+ map: this.map,
17145
+ });
17146
+ });
17147
+ });
17148
+ overlay.addListener('dragend', (event) => {
17149
+ this.zone.run(() => {
17150
+ this.onOverlayDragEnd.emit({
17151
+ originalEvent: event,
17152
+ overlay: overlay,
17153
+ map: this.map,
17154
+ });
17155
+ });
17156
+ });
17157
+ }
17158
+ getMap() {
17159
+ return this.map;
17160
+ }
17161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GoogleMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
17162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GoogleMap, selector: "google-map", inputs: { style: "style", styleClass: "styleClass" }, outputs: { onOverlayDblClick: "onOverlayDblClick", onOverlayDragStart: "onOverlayDragStart", onOverlayDrag: "onOverlayDrag", onOverlayDragEnd: "onOverlayDragEnd", onMapReady: "onMapReady" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: ` <div [ngStyle]="style" [class]="styleClass"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17163
+ }
17164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GoogleMap, decorators: [{
17165
+ type: Component,
17166
+ args: [{
17167
+ selector: 'google-map',
17168
+ template: ` <div [ngStyle]="style" [class]="styleClass"></div>`,
17169
+ changeDetection: ChangeDetectionStrategy.OnPush,
17170
+ encapsulation: ViewEncapsulation.None,
17171
+ host: {
17172
+ class: 'p-element', // this is fancy, but can we use it actually?
17173
+ },
17174
+ }]
17175
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { style: [{
17176
+ type: Input
17177
+ }], styleClass: [{
17178
+ type: Input
17179
+ }], onOverlayDblClick: [{
17180
+ type: Output
17181
+ }], onOverlayDragStart: [{
17182
+ type: Output
17183
+ }], onOverlayDrag: [{
17184
+ type: Output
17185
+ }], onOverlayDragEnd: [{
17186
+ type: Output
17187
+ }], onMapReady: [{
17188
+ type: Output
17189
+ }] } });
17190
+
17191
+ function createLeafletMapItem(item) {
17192
+ switch (item.kind) {
17193
+ case GeoMapItemKind.MARKER:
17194
+ return L.marker(L.latLng(item.position.latitude, item.position.longitude), {
17195
+ title: item.label,
17196
+ });
17197
+ case GeoMapItemKind.POLYGON:
17198
+ return L.polygon(item.bounds.map((p) => [p.latitude, p.longitude]), { title: item.label });
17199
+ }
17200
+ throw new Error('Foo!');
17201
+ }
17202
+ class LeafletMap extends AbstractMap {
17203
+ constructor(el, cd, zone) {
17204
+ super(el, cd, zone, createLeafletMapItem);
17205
+ }
17206
+ ngAfterViewChecked() {
17207
+ if (!this.map && this.el.nativeElement.offsetParent) {
17208
+ this.initialize();
17209
+ }
17210
+ }
17211
+ initialize() {
17212
+ const options = this.createLeafletMapOptions();
17213
+ this.map = L.map('leaflet').setView(options.centre, options.zoom);
17214
+ L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
17215
+ maxZoom: 19,
17216
+ attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
17217
+ }).addTo(this.map);
17218
+ const items = this.items();
17219
+ const toAdd = items.map((it) => ({
17220
+ id: it.id,
17221
+ record: createLeafletMapItem(it),
17222
+ }));
17223
+ this.handleItemChanges([], toAdd);
17224
+ const model = this.model();
17225
+ if (model.viewState?.fitToInitialItems) {
17226
+ const datasetBounds = this.findDatasetBounds();
17227
+ if (datasetBounds) {
17228
+ const { a, b } = datasetBounds;
17229
+ const pntA = L.latLng(a.x, a.y);
17230
+ const pntB = L.latLng(b.x, b.y);
17231
+ const bounds = L.latLngBounds(pntA, pntB);
17232
+ this.zone.run(() => {
17233
+ this.map.fitBounds(bounds);
17234
+ });
17235
+ }
17236
+ }
17237
+ this.map.on('click', (event) => {
17238
+ this.zone.run(() => {
17239
+ const pos = event.latlng;
17240
+ this.onMapClick.emit({
17241
+ coordinates: {
17242
+ latitude: pos.lat,
17243
+ longitude: pos.lng,
17244
+ },
17245
+ originalEvent: event,
17246
+ });
17247
+ });
17248
+ });
17249
+ this.map.on('moveend', (event) => {
17250
+ this.zone.run(() => {
17251
+ const viewport = this.getViewport();
17252
+ this.onMapDragEnd.emit({
17253
+ viewport,
17254
+ originalEvent: event,
17255
+ });
17256
+ });
17257
+ });
17258
+ this.map.on('zoomend', (event) => {
17259
+ this.zone.run(() => {
17260
+ const viewport = this.getViewport();
17261
+ this.onMapDragEnd.emit({
17262
+ viewport,
17263
+ originalEvent: event,
17264
+ });
17265
+ });
17266
+ });
17267
+ }
17268
+ getViewport() {
17269
+ if (!this.map) {
17270
+ throw new Error('Map is not yet initialised!');
17271
+ }
17272
+ const center = this.map.getCenter();
17273
+ const zoomLevel = this.map.getZoom();
17274
+ const leafletBounds = this.map.getBounds();
17275
+ const { lat: swLat, lng: swLng } = leafletBounds.getSouthWest();
17276
+ const { lat: neLat, lng: neLng } = leafletBounds.getNorthEast();
17277
+ return {
17278
+ center: {
17279
+ latitude: center.lat,
17280
+ longitude: center.lng,
17281
+ },
17282
+ zoomLevel,
17283
+ bounds: [
17284
+ { latitude: swLat, longitude: swLng },
17285
+ { latitude: neLat, longitude: neLng },
17286
+ ],
17287
+ };
17288
+ }
17289
+ createLeafletMapOptions() {
17290
+ const viewport = this.model().viewport;
17291
+ return {
17292
+ centre: [viewport.center.latitude, viewport.center.longitude],
17293
+ zoom: viewport.zoomLevel,
17294
+ };
17295
+ }
17296
+ handleItemChanges(toRemove, toAdd) {
17297
+ if (!this.map) {
17298
+ return;
17299
+ }
17300
+ toRemove.forEach((it) => {
17301
+ it.record.remove();
17302
+ this.overlays.delete(it.id);
17303
+ });
17304
+ toAdd.forEach((it) => {
17305
+ it.record.on('click', (event) => {
17306
+ this.zone.run(() => {
17307
+ this.onOverlayClick.emit({
17308
+ itemId: it.id,
17309
+ originalEvent: {
17310
+ originalEvent: event,
17311
+ overlay: it.record,
17312
+ map: this.map,
17313
+ },
17314
+ });
17315
+ });
17316
+ });
17317
+ it.record.addTo(this.map);
17318
+ this.overlays.set(it.id, it.record);
17319
+ });
17320
+ }
17321
+ findDatasetBounds() {
17322
+ const items = this.items()
17323
+ .flatMap((it) => (it.position ? [it.position] : []))
17324
+ .map((it) => {
17325
+ return { x: it.latitude, y: it.longitude };
17326
+ });
17327
+ if (!items || items.length === 0) {
17328
+ return null;
17329
+ }
17330
+ let southwest = { x: items[0].x, y: items[0].y };
17331
+ let northeast = { x: items[0].x, y: items[0].y };
17332
+ items.forEach((it) => {
17333
+ if (it.x < southwest.x)
17334
+ southwest.x = it.x;
17335
+ if (it.y < southwest.y)
17336
+ southwest.y = it.y;
17337
+ if (it.x > northeast.x)
17338
+ northeast.x = it.x;
17339
+ if (it.y > northeast.y)
17340
+ northeast.y = it.y;
17341
+ });
17342
+ return { a: southwest, b: northeast };
17343
+ }
17344
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
17345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LeafletMap, selector: "leaflet-map", usesInheritance: true, ngImport: i0, template: ` <div id="leaflet"></div>`, isInline: true, styles: ["#leaflet{height:720px}\n"] }); }
17346
+ }
17347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, decorators: [{
17348
+ type: Component,
17349
+ args: [{ selector: 'leaflet-map', template: ` <div id="leaflet"></div>`, styles: ["#leaflet{height:720px}\n"] }]
17350
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
17351
+
17352
+ var MapEngine;
17353
+ (function (MapEngine) {
17354
+ MapEngine["GOOGLE"] = "GOOGLE";
17355
+ MapEngine["LEAFLET"] = "LEAFLET";
17356
+ })(MapEngine || (MapEngine = {}));
17357
+ const MAP_ENGINE = new InjectionToken('MAP_ENGINE');
17358
+ const itemEq = (a, b) => {
17359
+ const positions = new Set(a.map((it) => it.position));
17360
+ b.forEach((it) => positions.delete(it.position));
17361
+ return a.length === b.length && positions.size === 0;
17362
+ };
17363
+ class SmartMapComponent {
17364
+ constructor(mapEngine, api) {
17365
+ this.mapEngine = mapEngine;
17366
+ this.api = api;
17367
+ this.MapEngine = MapEngine;
17368
+ this.model = signal(undefined);
17369
+ this.items = computed(() => {
17370
+ const model = this.model();
17371
+ return model?.layers.flatMap((l) => l.items ?? []) ?? [];
17372
+ });
17373
+ this.selection = computed(() => new Set(this.items()
17374
+ .filter((it) => !!it.selected)
17375
+ .map((it) => it.id)
17376
+ .values()));
17377
+ }
17378
+ ngOnInit() {
17379
+ // this.load();
17380
+ }
17381
+ ngAfterViewInit() {
17382
+ this.load();
17383
+ }
17384
+ async load() {
17385
+ const model = await lastValueFrom(this.api.load(this.uuid, this.identifier));
17386
+ if (!model.viewport) {
17387
+ throw new Error('GeoMapModel contains no viewport!');
17388
+ }
17389
+ this.model.update(() => model);
17390
+ }
17391
+ async move(viewport) {
17392
+ this.model.update((it) => {
17393
+ console.log('model update is running!');
17394
+ if (it) {
17395
+ it.viewport = viewport;
17396
+ }
17397
+ return it;
17398
+ });
17399
+ const change = await lastValueFrom(this.api.move(this.uuid, this.identifier, viewport));
17400
+ this.handleChange(change);
17401
+ }
17402
+ async update(mapState) {
17403
+ this.model.update((it) => {
17404
+ if (it) {
17405
+ it.viewState = mapState;
17406
+ }
17407
+ return it;
17408
+ });
17409
+ const change = await lastValueFrom(this.api.update(this.uuid, this.identifier, mapState));
17410
+ this.handleChange(change);
17411
+ }
17412
+ handleChange(change) {
17413
+ if (!change.items) {
17414
+ return;
17415
+ }
17416
+ this.model.update((it) => {
17417
+ const layersById = new Map();
17418
+ if (!it) {
17419
+ return it;
17420
+ }
17421
+ it.layers.forEach((layer) => layersById.set(layer.code, layer));
17422
+ for (const layerChange of change.items) {
17423
+ const layerId = layerChange.code;
17424
+ const toAdd = layerChange.toAdd;
17425
+ layersById.set(layerId, {
17426
+ code: layerId,
17427
+ items: toAdd,
17428
+ });
17429
+ }
17430
+ return {
17431
+ ...it,
17432
+ layers: [...layersById.values()],
17433
+ };
17434
+ });
17435
+ }
17436
+ handleMapClick(position) {
17437
+ const operationMode = this.model()?.viewState?.operationMode ?? GeoMapOperationMode.ACTION;
17438
+ switch (operationMode) {
17439
+ case GeoMapOperationMode.ACTION:
17440
+ // TODO: Fire action for layer, if applicable (maybe only on double click).
17441
+ break;
17442
+ case GeoMapOperationMode.SELECTION:
17443
+ // no-op, can't select empty space.
17444
+ break;
17445
+ case GeoMapOperationMode.PLACEMENT:
17446
+ lastValueFrom(this.api.interact(this.uuid, this.identifier, {
17447
+ operationMode,
17448
+ targetItem: {
17449
+ kind: GeoMapItemKind.MARKER, // FIXME: We shall support more item kinds!
17450
+ position,
17451
+ icons: {},
17452
+ bounds: [],
17453
+ actions: [],
17454
+ },
17455
+ targetLayer: '',
17456
+ inverse: false,
17457
+ })).then((change) => {
17458
+ if (!this.viewContextService) {
17459
+ console.warn('Smart Map has no ViewContext Service set up!');
17460
+ return null;
17461
+ }
17462
+ else {
17463
+ return this.viewContextService.handlePerformActionResponse(change);
17464
+ }
17465
+ }, (err) => {
17466
+ console.warn('Could not submit selection change! ', err);
17467
+ });
17468
+ }
17469
+ }
17470
+ handleItemClick(id) {
17471
+ const operationMode = this.model()?.viewState?.operationMode ?? GeoMapOperationMode.ACTION;
17472
+ const targetItem = this.items().find((it) => id === it.id);
17473
+ if (!targetItem) {
17474
+ console.warn('Selection item is seemingly missing from known items: ', id);
17475
+ return;
17476
+ }
17477
+ switch (operationMode) {
17478
+ case GeoMapOperationMode.ACTION:
17479
+ // TODO: fire action!
17480
+ break;
17481
+ case GeoMapOperationMode.SELECTION:
17482
+ lastValueFrom(this.api.interact(this.uuid, this.identifier, {
17483
+ operationMode,
17484
+ targetItem,
17485
+ targetLayer: '',
17486
+ inverse: this.selection().has(id),
17487
+ })).then((change) => {
17488
+ if (!this.viewContextService) {
17489
+ console.warn('Smart Map has no ViewContext Service set up!');
17490
+ return null;
17491
+ }
17492
+ else {
17493
+ return this.viewContextService.handlePerformActionResponse(change);
17494
+ }
17495
+ }, (err) => {
17496
+ console.warn('Could not submit selection change! ', err);
17497
+ });
17498
+ break;
17499
+ case GeoMapOperationMode.PLACEMENT:
17500
+ // clicking an item may remove it, if it's only a pending item. To reposition existing
17501
+ // items, we shall react to dragEnd events only.
17502
+ lastValueFrom(this.api.interact(this.uuid, this.identifier, {
17503
+ operationMode,
17504
+ targetItem,
17505
+ targetLayer: '',
17506
+ inverse: true,
17507
+ })).then((change) => {
17508
+ if (!this.viewContextService) {
17509
+ console.warn('Smart Map has no ViewContext Service set up!');
17510
+ return null;
17511
+ }
17512
+ else {
17513
+ return this.viewContextService.handlePerformActionResponse(change);
17514
+ }
17515
+ }, (err) => {
17516
+ console.warn('Could not submit placement change! ', err);
17517
+ });
17518
+ break;
17519
+ }
17520
+ }
17521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, deps: [{ token: MAP_ENGINE }, { token: GeoMapService }], target: i0.ɵɵFactoryTarget.Component }); }
17522
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMapComponent, selector: "smart-map", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, ngImport: i0, template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n", styles: [""], dependencies: [{ kind: "component", type: GoogleMap, selector: "google-map", inputs: ["style", "styleClass"], outputs: ["onOverlayDblClick", "onOverlayDragStart", "onOverlayDrag", "onOverlayDragEnd", "onMapReady"] }, { kind: "component", type: LeafletMap, selector: "leaflet-map" }] }); }
17523
+ }
17524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, decorators: [{
17525
+ type: Component,
17526
+ args: [{ selector: 'smart-map', template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n" }]
17527
+ }], ctorParameters: () => [{ type: MapEngine, decorators: [{
17528
+ type: Inject,
17529
+ args: [MAP_ENGINE]
17530
+ }] }, { type: GeoMapService }], propDecorators: { uuid: [{
17531
+ type: Input
17532
+ }], identifier: [{
17533
+ type: Input
17534
+ }], parent: [{
17535
+ type: Input
17536
+ }] } });
17537
+
17538
+ /*
17539
+ * Public API Surface of smarttree
17540
+ */
17541
+
17542
+ class SmartComponentApiClient {
17543
+ get uuid() {
17544
+ return this._uuid;
17545
+ }
17546
+ set uuid(uuid) {
17547
+ if (this._uuid === uuid) {
17548
+ return;
17549
+ }
17550
+ let firstUuid = true;
17551
+ if (this.uuid) {
17552
+ this.viewContext.unfollow(this.uuid);
17553
+ firstUuid = false;
17554
+ }
17555
+ this._uuid = uuid;
17556
+ this.getWidgets().forEach((ref, key) => {
17557
+ if (ref instanceof SmartGridComponent) {
17558
+ ref.uuid = this.componentModelLoaded ? uuid : undefined;
17559
+ }
17560
+ else if (ref instanceof SmartFilterEditorContentComponent) {
17561
+ ref.service.config.uuid = this.componentModelLoaded ? uuid : undefined;
17562
+ }
17563
+ else if (!ref && !firstUuid) {
17564
+ console.error(`Provided reference for ${key} is undefined on uuid change.`);
17565
+ }
17566
+ });
17567
+ if (!this.uuidOfPageHasBeenChangedSubscription) {
17568
+ this.uuidOfPageHasBeenChangedSubscription = this.viewContext.uuidOfPageHasBeenChanged
17569
+ .pipe(takeUntil(this._destroy$))
17570
+ .subscribe((pageName) => {
17571
+ if (pageName === this.pageName) {
17572
+ this.run();
17573
+ }
17574
+ });
17575
+ }
17576
+ if (uuid) {
17577
+ this.viewContext.follow(this._uuid, this.detectChange);
17578
+ }
17579
+ }
17580
+ get model() {
17581
+ return this._model;
17582
+ }
17583
+ set model(model) {
17584
+ this._model = model;
17585
+ this.initComponentByModel();
17586
+ }
17587
+ get data() {
17588
+ return this._data;
17589
+ }
17590
+ set data(model) {
17591
+ this._data = model;
17592
+ this.dataChanged.next();
16363
17593
  }
16364
17594
  get smartTreeService() {
16365
17595
  return this._smartTreeService;
@@ -16470,6 +17700,17 @@ class SmartComponentApiClient {
16470
17700
  }
16471
17701
  });
16472
17702
  }
17703
+ if (!this.getSmartMapQL()) {
17704
+ console.warn('SmartMapsQL is not available!');
17705
+ }
17706
+ else {
17707
+ this.handleQueryList(this.getSmartMapQL(), (map) => {
17708
+ map.viewContextService = this.viewContext;
17709
+ if (this.uuid && this.uuid !== map.uuid) {
17710
+ map.uuid = this.uuid;
17711
+ }
17712
+ });
17713
+ }
16473
17714
  if (!this.getSmartFilterEditorContentComponentsQL()) {
16474
17715
  console.warn('SmartFilterEditorContentComponentsQL not available!');
16475
17716
  }
@@ -16540,6 +17781,9 @@ class SmartComponentApiClient {
16540
17781
  this.getAllSmartFilterEditorContentComponents()
16541
17782
  .filter((filter) => (filter.service.config.identifier ? true : false))
16542
17783
  .forEach((filter) => widgets.set(filter.service.config.identifier, filter));
17784
+ this.getAllSmartMapComponents()
17785
+ .filter((map) => !!map.identifier)
17786
+ .forEach((map) => widgets.set(map.identifier, map));
16543
17787
  return widgets;
16544
17788
  }
16545
17789
  return this.widgets;
@@ -16575,6 +17819,13 @@ class SmartComponentApiClient {
16575
17819
  });
16576
17820
  return grids;
16577
17821
  }
17822
+ getAllSmartMapComponents() {
17823
+ const maps = this.getSmartMapQL()?.toArray() ?? [];
17824
+ this.getSmartComponentLayoutsQL()?.forEach((comp) => {
17825
+ maps.push(...SmartComponentLayoutUtility.getMaps(comp));
17826
+ });
17827
+ return maps;
17828
+ }
16578
17829
  getAllSmartTreeComponents() {
16579
17830
  let trees = this.getSmartTreesQL()?.toArray() ?? [];
16580
17831
  this.getSmartComponentLayoutsQL()?.forEach((comp) => {
@@ -16995,6 +18246,9 @@ class SmartComponentApiClient {
16995
18246
  reference.service.load();
16996
18247
  //}
16997
18248
  }
18249
+ else if (reference instanceof SmartMapComponent) {
18250
+ reference.load();
18251
+ }
16998
18252
  else if (!skipLoad && reference === undefined) {
16999
18253
  console.error(`Provided reference for ${key} is undefined.`);
17000
18254
  }
@@ -17091,8 +18345,11 @@ class SmartComponent extends SmartComponentApiClient {
17091
18345
  getSmartUiActionToolbarsQL() {
17092
18346
  return this.smartUiActionToolbarsQL;
17093
18347
  }
18348
+ getSmartMapQL() {
18349
+ return this.smartMapQL;
18350
+ }
17094
18351
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponent, deps: [{ token: i0.Injector }, { token: 'SmartAuthService' }, { token: 'pageName' }, { token: 'componentName' }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
17095
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponent, selector: "ng-component", viewQueries: [{ propertyName: "smartFormsQL", predicate: SmartformComponent, descendants: true }, { propertyName: "smartGridsQL", predicate: SmartGridComponent, descendants: true }, { propertyName: "smartTreesQL", predicate: SmarttreeGenericService, descendants: true }, { propertyName: "smartComponentLayoutsQL", predicate: SmartComponentLayoutComponent, descendants: true }, { propertyName: "smartFilterEditorContentComponentsQL", predicate: SmartFilterEditorContentComponent, descendants: true }, { propertyName: "smartUiActionToolbarsQL", predicate: UiActionToolbarComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
18352
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponent, selector: "ng-component", viewQueries: [{ propertyName: "smartFormsQL", predicate: SmartformComponent, descendants: true }, { propertyName: "smartGridsQL", predicate: SmartGridComponent, descendants: true }, { propertyName: "smartTreesQL", predicate: SmarttreeGenericService, descendants: true }, { propertyName: "smartComponentLayoutsQL", predicate: SmartComponentLayoutComponent, descendants: true }, { propertyName: "smartFilterEditorContentComponentsQL", predicate: SmartFilterEditorContentComponent, descendants: true }, { propertyName: "smartUiActionToolbarsQL", predicate: UiActionToolbarComponent, descendants: true }, { propertyName: "smartMapQL", predicate: SmartMapComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
17096
18353
  }
17097
18354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponent, decorators: [{
17098
18355
  type: Component,
@@ -17126,6 +18383,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
17126
18383
  }], smartUiActionToolbarsQL: [{
17127
18384
  type: ViewChildren,
17128
18385
  args: [UiActionToolbarComponent]
18386
+ }], smartMapQL: [{
18387
+ type: ViewChildren,
18388
+ args: [SmartMapComponent]
17129
18389
  }] } });
17130
18390
 
17131
18391
  class SmartService extends SmartComponentApiClient {
@@ -17225,6 +18485,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
17225
18485
  * Public API Surface of smart-tab-group
17226
18486
  */
17227
18487
 
18488
+ class SmartMapModule {
18489
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18490
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, declarations: [SmartMapComponent, GoogleMap, LeafletMap], imports: [CommonModule, BrowserModule], exports: [SmartMapComponent, GoogleMap, LeafletMap] }); }
18491
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, providers: [{ provide: MAP_ENGINE, useValue: MapEngine.GOOGLE }], imports: [CommonModule, BrowserModule] }); }
18492
+ }
18493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, decorators: [{
18494
+ type: NgModule,
18495
+ args: [{
18496
+ declarations: [SmartMapComponent, GoogleMap, LeafletMap],
18497
+ imports: [CommonModule, BrowserModule],
18498
+ providers: [{ provide: MAP_ENGINE, useValue: MapEngine.GOOGLE }],
18499
+ exports: [SmartMapComponent, GoogleMap, LeafletMap],
18500
+ }]
18501
+ }] });
18502
+
17228
18503
  /*
17229
18504
  * Public API Surface of smart-ng-client
17230
18505
  */
@@ -17233,5 +18508,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
17233
18508
  * Generated bundle index. Do not edit.
17234
18509
  */
17235
18510
 
17236
- export { APIS$3 as APIS, ApiModule$3 as ApiModule, ApiQueueService, BASE_PATH$5 as BASE_PATH, COLLECTION_FORMATS$5 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$5 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultUiActionCode_CLOSE, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, LayoutDirection, LinkTargetEnum, MessageOptionType, MessageTextType, MessageType, SelectionDefinitionTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SimplifiedTabGroupComponent, SmartActionType, SmartAuthService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDialog, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkUuidVariableInPath, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSessionTimerService, SmartSubject, SmartTabGroupModule, SmartTabGroupService, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, TabGroupComponent, ToggleLabelPosition, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, ValueChangeMode, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType };
18511
+ export { APIS$4 as APIS, AbstractMap, ApiModule$4 as ApiModule, ApiQueueService, BASE_PATH$6 as BASE_PATH, COLLECTION_FORMATS$6 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$6 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultUiActionCode_CLOSE, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GeoMapDataLoadingMode, GeoMapDataSourceType, GeoMapItemKind, GeoMapOperationMode, GeoMapSelectionMode, GeoMapTextType, GoogleMap, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, LayoutDirection, LeafletMap, LinkTargetEnum, MAP_ENGINE, MapEngine, MessageOptionType, MessageTextType, MessageType, SelectionDefinitionTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SimplifiedTabGroupComponent, SmartActionType, SmartAuthService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDialog, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkUuidVariableInPath, SmartMapComponent, SmartMapModule, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSessionTimerService, SmartSubject, SmartTabGroupModule, SmartTabGroupService, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, TabGroupComponent, ToggleLabelPosition, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, ValueChangeMode, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType };
17237
18512
  //# sourceMappingURL=smartbit4all-ng-client.mjs.map