@igo2/integration 1.15.3 → 1.15.5

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 (214) hide show
  1. package/esm2020/igo2-integration.mjs +4 -4
  2. package/esm2020/lib/about/about-tool/about-tool.component.mjs +185 -185
  3. package/esm2020/lib/about/about-tool/index.mjs +2 -2
  4. package/esm2020/lib/about/about.module.mjs +55 -55
  5. package/esm2020/lib/about/index.mjs +2 -2
  6. package/esm2020/lib/analytics/analytics-listener.service.mjs +127 -127
  7. package/esm2020/lib/analytics/analytics.module.mjs +16 -16
  8. package/esm2020/lib/analytics/index.mjs +2 -2
  9. package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +113 -113
  10. package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +29 -29
  11. package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +89 -89
  12. package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +29 -29
  13. package/esm2020/lib/catalog/catalog.module.mjs +24 -24
  14. package/esm2020/lib/catalog/catalog.state.mjs +54 -54
  15. package/esm2020/lib/catalog/index.mjs +6 -6
  16. package/esm2020/lib/context/context-editor-tool/context-editor-tool.component.mjs +34 -34
  17. package/esm2020/lib/context/context-manager-tool/context-manager-tool.component.mjs +44 -44
  18. package/esm2020/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +25 -25
  19. package/esm2020/lib/context/context-share-tool/context-share-tool.component.mjs +34 -34
  20. package/esm2020/lib/context/context.module.mjs +39 -39
  21. package/esm2020/lib/context/context.state.mjs +88 -88
  22. package/esm2020/lib/context/index.mjs +6 -6
  23. package/esm2020/lib/directions/directions-tool/directions-tool.component.mjs +84 -84
  24. package/esm2020/lib/directions/directions-tool/index.mjs +2 -2
  25. package/esm2020/lib/directions/directions.module.mjs +26 -26
  26. package/esm2020/lib/directions/directions.state.mjs +64 -64
  27. package/esm2020/lib/directions/index.mjs +3 -3
  28. package/esm2020/lib/draw/draw.module.mjs +21 -21
  29. package/esm2020/lib/draw/draw.state.mjs +39 -39
  30. package/esm2020/lib/draw/drawing-tool/drawing-tool.component.mjs +72 -72
  31. package/esm2020/lib/draw/index.mjs +3 -3
  32. package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.mjs +10 -10
  33. package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +44 -44
  34. package/esm2020/lib/filter/active-ogc-filter-tool/index.mjs +2 -2
  35. package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.mjs +10 -10
  36. package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +44 -44
  37. package/esm2020/lib/filter/active-time-filter-tool/index.mjs +2 -2
  38. package/esm2020/lib/filter/filter.module.mjs +51 -51
  39. package/esm2020/lib/filter/index.mjs +6 -6
  40. package/esm2020/lib/filter/ogc-filter-tool/index.mjs +2 -2
  41. package/esm2020/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +25 -25
  42. package/esm2020/lib/filter/spatial-filter-tool/index.mjs +2 -2
  43. package/esm2020/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +535 -535
  44. package/esm2020/lib/filter/time-filter-tool/index.mjs +2 -2
  45. package/esm2020/lib/filter/time-filter-tool/time-filter-tool.component.mjs +25 -25
  46. package/esm2020/lib/import-export/import-export-tool/import-export-tool.component.mjs +141 -141
  47. package/esm2020/lib/import-export/import-export-tool/index.mjs +2 -2
  48. package/esm2020/lib/import-export/import-export.module.mjs +51 -51
  49. package/esm2020/lib/import-export/import-export.state.mjs +41 -41
  50. package/esm2020/lib/import-export/index.mjs +3 -3
  51. package/esm2020/lib/integration.module.mjs +72 -72
  52. package/esm2020/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +472 -472
  53. package/esm2020/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +89 -89
  54. package/esm2020/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +218 -218
  55. package/esm2020/lib/map/advanced-map-tool/index.mjs +2 -2
  56. package/esm2020/lib/map/index.mjs +9 -9
  57. package/esm2020/lib/map/layer-list-tool.state.mjs +42 -42
  58. package/esm2020/lib/map/map-details-tool/index.mjs +2 -2
  59. package/esm2020/lib/map/map-details-tool/map-details-tool.component.mjs +256 -256
  60. package/esm2020/lib/map/map-legend/index.mjs +2 -2
  61. package/esm2020/lib/map/map-legend/map-legend-tool.component.mjs +275 -275
  62. package/esm2020/lib/map/map-proximity-tool/index.mjs +2 -2
  63. package/esm2020/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +203 -203
  64. package/esm2020/lib/map/map-proximity.state.mjs +167 -167
  65. package/esm2020/lib/map/map-tool/index.mjs +2 -2
  66. package/esm2020/lib/map/map-tool/map-tool.component.mjs +130 -130
  67. package/esm2020/lib/map/map-tools/index.mjs +2 -2
  68. package/esm2020/lib/map/map-tools/map-tools.component.mjs +495 -495
  69. package/esm2020/lib/map/map.module.mjs +144 -144
  70. package/esm2020/lib/map/map.state.mjs +47 -47
  71. package/esm2020/lib/measure/index.mjs +4 -4
  72. package/esm2020/lib/measure/measure.module.mjs +20 -20
  73. package/esm2020/lib/measure/measure.state.mjs +35 -35
  74. package/esm2020/lib/measure/measurer-tool/measurer-tool.component.mjs +45 -45
  75. package/esm2020/lib/measure/measurer-tool/measurer-tool.module.mjs +25 -25
  76. package/esm2020/lib/print/index.mjs +2 -2
  77. package/esm2020/lib/print/print-tool/index.mjs +2 -2
  78. package/esm2020/lib/print/print-tool/print-tool.component.mjs +33 -33
  79. package/esm2020/lib/print/print.module.mjs +26 -26
  80. package/esm2020/lib/search/index.mjs +7 -7
  81. package/esm2020/lib/search/query.state.mjs +42 -34
  82. package/esm2020/lib/search/search-bar/search-bar-binding.directive.mjs +61 -61
  83. package/esm2020/lib/search/search-bar/search-bar.module.mjs +22 -22
  84. package/esm2020/lib/search/search-results-tool/search-results-tool.component.mjs +593 -593
  85. package/esm2020/lib/search/search-results-tool/search-results-tool.module.mjs +65 -65
  86. package/esm2020/lib/search/search.module.mjs +24 -24
  87. package/esm2020/lib/search/search.state.mjs +132 -132
  88. package/esm2020/lib/storage/index.mjs +2 -2
  89. package/esm2020/lib/storage/storage.module.mjs +16 -16
  90. package/esm2020/lib/storage/storage.state.mjs +23 -23
  91. package/esm2020/lib/tool/index.mjs +2 -2
  92. package/esm2020/lib/tool/tool.module.mjs +16 -16
  93. package/esm2020/lib/tool/tool.state.mjs +52 -52
  94. package/esm2020/lib/workspace/index.mjs +4 -4
  95. package/esm2020/lib/workspace/shared/edition-actions.service.mjs +156 -156
  96. package/esm2020/lib/workspace/shared/feature-actions.service.mjs +144 -144
  97. package/esm2020/lib/workspace/shared/index.mjs +3 -3
  98. package/esm2020/lib/workspace/shared/wfs-actions.service.mjs +158 -158
  99. package/esm2020/lib/workspace/shared/workspace.utils.mjs +7 -7
  100. package/esm2020/lib/workspace/workspace-button/index.mjs +2 -2
  101. package/esm2020/lib/workspace/workspace-button/workspace-button.component.mjs +69 -69
  102. package/esm2020/lib/workspace/workspace.module.mjs +37 -37
  103. package/esm2020/lib/workspace/workspace.state.mjs +188 -188
  104. package/esm2020/public_api.mjs +35 -35
  105. package/fesm2015/igo2-integration.mjs +6558 -6553
  106. package/fesm2015/igo2-integration.mjs.map +1 -1
  107. package/fesm2020/igo2-integration.mjs +6114 -6109
  108. package/fesm2020/igo2-integration.mjs.map +1 -1
  109. package/index.d.ts +5 -5
  110. package/lib/about/about-tool/about-tool.component.d.ts +34 -34
  111. package/lib/about/about-tool/index.d.ts +1 -1
  112. package/lib/about/about.module.d.ts +16 -16
  113. package/lib/about/index.d.ts +1 -1
  114. package/lib/analytics/analytics-listener.service.d.ts +33 -33
  115. package/lib/analytics/analytics.module.d.ts +6 -6
  116. package/lib/analytics/index.d.ts +1 -1
  117. package/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.d.ts +57 -57
  118. package/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.d.ts +12 -12
  119. package/lib/catalog/catalog-library-tool/catalog-library-tool.component.d.ts +50 -50
  120. package/lib/catalog/catalog-library-tool/catalog-library-tool.module.d.ts +12 -12
  121. package/lib/catalog/catalog.module.d.ts +8 -8
  122. package/lib/catalog/catalog.state.d.ts +37 -37
  123. package/lib/catalog/index.d.ts +5 -5
  124. package/lib/context/context-editor-tool/context-editor-tool.component.d.ts +9 -9
  125. package/lib/context/context-manager-tool/context-manager-tool.component.d.ts +15 -15
  126. package/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.d.ts +5 -5
  127. package/lib/context/context-share-tool/context-share-tool.component.d.ts +13 -13
  128. package/lib/context/context.module.d.ts +11 -11
  129. package/lib/context/context.state.d.ts +37 -37
  130. package/lib/context/index.d.ts +5 -5
  131. package/lib/directions/directions-tool/directions-tool.component.d.ts +54 -54
  132. package/lib/directions/directions-tool/index.d.ts +1 -1
  133. package/lib/directions/directions.module.d.ts +10 -10
  134. package/lib/directions/directions.state.d.ts +28 -28
  135. package/lib/directions/index.d.ts +2 -2
  136. package/lib/draw/draw.module.d.ts +8 -8
  137. package/lib/draw/draw.state.d.ts +16 -16
  138. package/lib/draw/drawing-tool/drawing-tool.component.d.ts +31 -31
  139. package/lib/draw/index.d.ts +2 -2
  140. package/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.d.ts +2 -2
  141. package/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.d.ts +12 -12
  142. package/lib/filter/active-ogc-filter-tool/index.d.ts +1 -1
  143. package/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.d.ts +2 -2
  144. package/lib/filter/active-time-filter-tool/active-time-filter-tool.component.d.ts +12 -12
  145. package/lib/filter/active-time-filter-tool/index.d.ts +1 -1
  146. package/lib/filter/filter.module.d.ts +15 -15
  147. package/lib/filter/index.d.ts +5 -5
  148. package/lib/filter/ogc-filter-tool/index.d.ts +1 -1
  149. package/lib/filter/ogc-filter-tool/ogc-filter-tool.component.d.ts +6 -6
  150. package/lib/filter/spatial-filter-tool/index.d.ts +1 -1
  151. package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +82 -82
  152. package/lib/filter/time-filter-tool/index.d.ts +1 -1
  153. package/lib/filter/time-filter-tool/time-filter-tool.component.d.ts +6 -6
  154. package/lib/import-export/import-export-tool/import-export-tool.component.d.ts +33 -33
  155. package/lib/import-export/import-export-tool/index.d.ts +1 -1
  156. package/lib/import-export/import-export.module.d.ts +15 -15
  157. package/lib/import-export/import-export.state.d.ts +24 -24
  158. package/lib/import-export/index.d.ts +2 -2
  159. package/lib/integration.module.d.ts +20 -20
  160. package/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.d.ts +97 -97
  161. package/lib/map/advanced-map-tool/advanced-map-tool.component.d.ts +12 -12
  162. package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +65 -65
  163. package/lib/map/advanced-map-tool/index.d.ts +1 -1
  164. package/lib/map/index.d.ts +8 -8
  165. package/lib/map/layer-list-tool.state.d.ts +19 -19
  166. package/lib/map/map-details-tool/index.d.ts +1 -1
  167. package/lib/map/map-details-tool/map-details-tool.component.d.ts +38 -38
  168. package/lib/map/map-legend/index.d.ts +1 -1
  169. package/lib/map/map-legend/map-legend-tool.component.d.ts +40 -40
  170. package/lib/map/map-proximity-tool/index.d.ts +1 -1
  171. package/lib/map/map-proximity-tool/map-proximity-tool.component.d.ts +36 -36
  172. package/lib/map/map-proximity.state.d.ts +31 -31
  173. package/lib/map/map-tool/index.d.ts +1 -1
  174. package/lib/map/map-tool/map-tool.component.d.ts +27 -27
  175. package/lib/map/map-tools/index.d.ts +1 -1
  176. package/lib/map/map-tools/map-tools.component.d.ts +66 -66
  177. package/lib/map/map.module.d.ts +38 -38
  178. package/lib/map/map.state.d.ts +24 -24
  179. package/lib/measure/index.d.ts +3 -3
  180. package/lib/measure/measure.module.d.ts +7 -7
  181. package/lib/measure/measure.state.d.ts +16 -16
  182. package/lib/measure/measurer-tool/measurer-tool.component.d.ts +24 -24
  183. package/lib/measure/measurer-tool/measurer-tool.module.d.ts +11 -11
  184. package/lib/print/index.d.ts +1 -1
  185. package/lib/print/print-tool/index.d.ts +1 -1
  186. package/lib/print/print-tool/print-tool.component.d.ts +10 -10
  187. package/lib/print/print.module.d.ts +10 -10
  188. package/lib/search/index.d.ts +6 -6
  189. package/lib/search/query.state.d.ts +24 -20
  190. package/lib/search/search-bar/search-bar-binding.directive.d.ts +20 -20
  191. package/lib/search/search-bar/search-bar.module.d.ts +11 -11
  192. package/lib/search/search-results-tool/search-results-tool.component.d.ts +100 -100
  193. package/lib/search/search-results-tool/search-results-tool.module.d.ts +18 -18
  194. package/lib/search/search.module.d.ts +8 -8
  195. package/lib/search/search.state.d.ts +60 -60
  196. package/lib/storage/index.d.ts +1 -1
  197. package/lib/storage/storage.module.d.ts +6 -6
  198. package/lib/storage/storage.state.d.ts +12 -12
  199. package/lib/tool/index.d.ts +1 -1
  200. package/lib/tool/tool.module.d.ts +6 -6
  201. package/lib/tool/tool.state.d.ts +22 -22
  202. package/lib/workspace/index.d.ts +3 -3
  203. package/lib/workspace/shared/edition-actions.service.d.ts +26 -26
  204. package/lib/workspace/shared/feature-actions.service.d.ts +25 -25
  205. package/lib/workspace/shared/index.d.ts +2 -2
  206. package/lib/workspace/shared/wfs-actions.service.d.ts +27 -27
  207. package/lib/workspace/shared/workspace.utils.d.ts +2 -2
  208. package/lib/workspace/workspace-button/index.d.ts +1 -1
  209. package/lib/workspace/workspace-button/workspace-button.component.d.ts +21 -21
  210. package/lib/workspace/workspace.module.d.ts +12 -12
  211. package/lib/workspace/workspace.state.d.ts +63 -63
  212. package/ngcc.config.js +3 -3
  213. package/package.json +3 -3
  214. package/public_api.d.ts +31 -31
@@ -1,144 +1,144 @@
1
- import { Injectable } from '@angular/core';
2
- import { EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { mapExtentStrategyActiveToolTip, noElementSelected } from '@igo2/geo';
5
- import { StorageServiceEventEnum } from '@igo2/core';
6
- import { map, skipWhile } from 'rxjs/operators';
7
- import { handleZoomAuto } from './workspace.utils';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../storage/storage.state";
10
- import * as i2 from "@igo2/core";
11
- import * as i3 from "../../tool/tool.state";
12
- export class FeatureActionsService {
13
- constructor(storageState, languageService, toolState, mediaService) {
14
- this.storageState = storageState;
15
- this.languageService = languageService;
16
- this.toolState = toolState;
17
- this.mediaService = mediaService;
18
- this.maximize$ = new BehaviorSubject(this.storageService.get('workspaceMaximize'));
19
- this.zoomAuto$ = new BehaviorSubject(false);
20
- }
21
- get storageService() {
22
- return this.storageState.storageService;
23
- }
24
- get zoomAuto() {
25
- return this.storageService.get('zoomAuto');
26
- }
27
- ngOnDestroy() {
28
- if (this.storageChange$$) {
29
- this.storageChange$$.unsubscribe();
30
- }
31
- }
32
- loadActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
33
- const actions = this.buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$);
34
- workspace.actionStore.load(actions);
35
- }
36
- buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
37
- this.zoomAuto$.next(this.zoomAuto);
38
- this.storageChange$$ = this.storageService.storageChange$
39
- .pipe(skipWhile((storageChange) => storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))
40
- .subscribe(() => {
41
- this.zoomAuto$.next(this.zoomAuto);
42
- handleZoomAuto(workspace, this.storageService);
43
- });
44
- return [
45
- {
46
- id: 'zoomAuto',
47
- checkbox: true,
48
- title: 'igo.integration.workspace.zoomAuto.title',
49
- tooltip: 'igo.integration.workspace.zoomAuto.tooltip',
50
- checkCondition: this.zoomAuto$,
51
- handler: () => {
52
- handleZoomAuto(workspace, this.storageService);
53
- this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto'));
54
- }
55
- },
56
- {
57
- id: 'filterInMapExtent',
58
- checkbox: true,
59
- title: 'igo.integration.workspace.inMapExtent.title',
60
- tooltip: mapExtentStrategyActiveToolTip(workspace),
61
- checkCondition: rowsInMapExtentCheckCondition$,
62
- handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)
63
- },
64
- {
65
- id: 'selectedOnly',
66
- checkbox: true,
67
- title: 'igo.integration.workspace.selected.title',
68
- tooltip: 'igo.integration.workspace.selected.tooltip',
69
- checkCondition: selectOnlyCheckCondition$,
70
- handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)
71
- },
72
- {
73
- id: 'clearselection',
74
- icon: 'select-off',
75
- title: 'igo.integration.workspace.clearSelection.title',
76
- tooltip: 'igo.integration.workspace.clearSelection.tooltip',
77
- handler: (ws) => {
78
- ws.entityStore.state.updateMany(ws.entityStore.view.all(), {
79
- selected: false
80
- });
81
- },
82
- args: [workspace],
83
- availability: (ws) => noElementSelected(ws)
84
- },
85
- {
86
- id: 'featureDownload',
87
- icon: 'file-export',
88
- title: 'igo.integration.workspace.download.title',
89
- tooltip: 'igo.integration.workspace.download.tooltip',
90
- handler: (ws) => {
91
- const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
92
- const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);
93
- const layersWithSelection = filterSelectionStrategy.active
94
- ? [ws.layer.id]
95
- : [];
96
- this.toolState.toolToActivateFromOptions({
97
- tool: 'importExport',
98
- options: {
99
- layers: [ws.layer.id],
100
- featureInMapExtent: filterStrategy.active,
101
- layersWithSelection
102
- }
103
- });
104
- },
105
- args: [workspace]
106
- },
107
- {
108
- id: 'maximize',
109
- title: this.languageService.translate.instant('igo.integration.workspace.maximize'),
110
- tooltip: this.languageService.translate.instant('igo.integration.workspace.maximizeTooltip'),
111
- icon: 'resize',
112
- display: () => {
113
- return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));
114
- },
115
- handler: () => {
116
- if (!this.mediaService.isMobile()) {
117
- this.maximize$.next(true);
118
- }
119
- },
120
- },
121
- {
122
- id: 'standardExtent',
123
- title: this.languageService.translate.instant('igo.integration.workspace.standardExtent'),
124
- tooltip: this.languageService.translate.instant('igo.integration.workspace.standardExtentTooltip'),
125
- icon: 'resize',
126
- display: () => {
127
- return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));
128
- },
129
- handler: () => {
130
- this.maximize$.next(false);
131
- }
132
- }
133
- ];
134
- }
135
- }
136
- FeatureActionsService.ɵfac = function FeatureActionsService_Factory(t) { return new (t || FeatureActionsService)(i0.ɵɵinject(i1.StorageState), i0.ɵɵinject(i2.LanguageService), i0.ɵɵinject(i3.ToolState), i0.ɵɵinject(i2.MediaService)); };
137
- FeatureActionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureActionsService, factory: FeatureActionsService.ɵfac, providedIn: 'root' });
138
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureActionsService, [{
139
- type: Injectable,
140
- args: [{
141
- providedIn: 'root'
142
- }]
143
- }], function () { return [{ type: i1.StorageState }, { type: i2.LanguageService }, { type: i3.ToolState }, { type: i2.MediaService }]; }, null); })();
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBRUwsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNuQyxNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBRUwsOEJBQThCLEVBQzlCLGlCQUFpQixFQUVsQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQXVDLHVCQUF1QixFQUFnQyxNQUFNLFlBQVksQ0FBQztBQUV4SCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFLbkQsTUFBTSxPQUFPLHFCQUFxQjtJQWlCaEMsWUFDVSxZQUEwQixFQUMzQixlQUFnQyxFQUMvQixTQUFvQixFQUNwQixZQUEwQjtRQUgxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQW5CN0IsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQVksQ0FDeEQsQ0FBQztRQUVGLGNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFnQjlELENBQUM7SUFiSixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMs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N0IsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBGQW5LVSxxQkFBcUI7MkVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRnBCLE1BQU07dUZBRVAscUJBQXFCO2NBSGpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBY3Rpb24sXHJcbiAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3ksXHJcbiAgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneVxyXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEZlYXR1cmVXb3Jrc3BhY2UsXHJcbiAgbWFwRXh0ZW50U3RyYXRlZ3lBY3RpdmVUb29sVGlwLFxyXG4gIG5vRWxlbWVudFNlbGVjdGVkLFxyXG4gIEV4cG9ydE9wdGlvbnNcclxufSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2VFdmVudCwgU3RvcmFnZVNlcnZpY2VFdmVudEVudW0sIExhbmd1YWdlU2VydmljZSwgTWVkaWFTZXJ2aWNlfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgU3RvcmFnZVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmFnZS9zdG9yYWdlLnN0YXRlJztcclxuaW1wb3J0IHsgbWFwLCBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRvb2xTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2wvdG9vbC5zdGF0ZSc7XHJcbmltcG9ydCB7IGhhbmRsZVpvb21BdXRvIH0gZnJvbSAnLi93b3Jrc3BhY2UudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUFjdGlvbnNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIG1heGltaXplJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCd3b3Jrc3BhY2VNYXhpbWl6ZScpIGFzIGJvb2xlYW5cclxuICApO1xyXG5cclxuICB6b29tQXV0byQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHByaXZhdGUgc3RvcmFnZUNoYW5nZSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGdldCBzdG9yYWdlU2VydmljZSgpOiBTdG9yYWdlU2VydmljZSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU3RhdGUuc3RvcmFnZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBnZXQgem9vbUF1dG8oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ3pvb21BdXRvJykgYXMgYm9vbGVhbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU3RhdGU6IFN0b3JhZ2VTdGF0ZSxcclxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9vbFN0YXRlOiBUb29sU3RhdGUsXHJcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VDaGFuZ2UkJCkge1xyXG4gICAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEFjdGlvbnMoXHJcbiAgICB3b3Jrc3BhY2U6IEZlYXR1cmVXb3Jrc3BhY2UsXHJcbiAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcclxuICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICAgKSB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5idWlsZEFjdGlvbnMoXHJcbiAgICAgIHdvcmtzcGFjZSxcclxuICAgICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxyXG4gICAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kXHJcbiAgICAgICk7XHJcbiAgICB3b3Jrc3BhY2UuYWN0aW9uU3RvcmUubG9hZChhY3Rpb25zKTtcclxuICB9XHJcblxyXG4gIGJ1aWxkQWN0aW9ucyhcclxuICAgIHdvcmtzcGFjZTogRmVhdHVyZVdvcmtzcGFjZSxcclxuICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxyXG4gICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+XHJcbiAgICApOiBBY3Rpb25bXSB7XHJcbiAgICB0aGlzLnpvb21BdXRvJC5uZXh0KHRoaXMuem9vbUF1dG8pO1xyXG4gICAgdGhpcy5zdG9yYWdlQ2hhbmdlJCQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JhZ2VDaGFuZ2UkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHNraXBXaGlsZShcclxuICAgICAgICAgIChzdG9yYWdlQ2hhbmdlOiBTdG9yYWdlU2VydmljZUV2ZW50KSA9PlxyXG4gICAgICAgICAgICBzdG9yYWdlQ2hhbmdlLmtleSAhPT0gJ3pvb21BdXRvJyB8fCBzdG9yYWdlQ2hhbmdlLmV2ZW50ID09PSBTdG9yYWdlU2VydmljZUV2ZW50RW51bS5DTEVBUkVEXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuem9vbUF1dG8kLm5leHQodGhpcy56b29tQXV0byk7XHJcbiAgICAgICAgaGFuZGxlWm9vbUF1dG8od29ya3NwYWNlLCB0aGlzLnN0b3JhZ2VTZXJ2aWNlKTtcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICd6b29tQXV0bycsXHJcbiAgICAgICAgY2hlY2tib3g6IHRydWUsXHJcbiAgICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnpvb21BdXRvLnRpdGxlJyxcclxuICAgICAgICB0b29sdGlwOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS56b29tQXV0by50b29sdGlwJyxcclxuICAgICAgICBjaGVja0NvbmRpdGlvbjogdGhpcy56b29tQXV0byQsXHJcbiAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgaGFuZGxlWm9vbUF1dG8od29ya3NwYWNlLCB0aGlzLnN0b3JhZ2VTZXJ2aWNlKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KFxyXG4gICAgICAgICAgICAnem9vbUF1dG8nLFxyXG4gICAgICAgICAgICAhdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ3pvb21BdXRvJykgYXMgYm9vbGVhblxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ2ZpbHRlckluTWFwRXh0ZW50JyxcclxuICAgICAgICBjaGVja2JveDogdHJ1ZSxcclxuICAgICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuaW5NYXBFeHRlbnQudGl0bGUnLFxyXG4gICAgICAgIHRvb2x0aXA6IG1hcEV4dGVudFN0cmF0ZWd5QWN0aXZlVG9vbFRpcCh3b3Jrc3BhY2UpLFxyXG4gICAgICAgIGNoZWNrQ29uZGl0aW9uOiByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQsXHJcbiAgICAgICAgaGFuZGxlcjogKCkgPT4gcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLm5leHQoIXJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC52YWx1ZSlcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnc2VsZWN0ZWRPbmx5JyxcclxuICAgICAgICBjaGVja2JveDogdHJ1ZSxcclxuICAgICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc2VsZWN0ZWQudGl0bGUnLFxyXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnNlbGVjdGVkLnRvb2x0aXAnLFxyXG4gICAgICAgIGNoZWNrQ29uZGl0aW9uOiBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kLFxyXG4gICAgICAgIGhhbmRsZXI6ICgpID0+IHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQubmV4dCghc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJC52YWx1ZSlcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAnY2xlYXJzZWxlY3Rpb24nLFxyXG4gICAgICAgIGljb246ICdzZWxlY3Qtb2ZmJyxcclxuICAgICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuY2xlYXJTZWxlY3Rpb24udGl0bGUnLFxyXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmNsZWFyU2VsZWN0aW9uLnRvb2x0aXAnLFxyXG4gICAgICAgIGhhbmRsZXI6ICh3czogRmVhdHVyZVdvcmtzcGFjZSkgPT4ge1xyXG4gICAgICAgICAgd3MuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlTWFueSh3cy5lbnRpdHlTdG9yZS52aWV3LmFsbCgpLCB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBhcmdzOiBbd29ya3NwYWNlXSxcclxuICAgICAgICBhdmFpbGFiaWxpdHk6ICh3czogRmVhdHVyZVdvcmtzcGFjZSkgPT4gbm9FbGVtZW50U2VsZWN0ZWQod3MpXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ2ZlYXR1cmVEb3dubG9hZCcsXHJcbiAgICAgICAgaWNvbjogJ2ZpbGUtZXhwb3J0JyxcclxuICAgICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuZG93bmxvYWQudGl0bGUnLFxyXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRvb2x0aXAnLFxyXG4gICAgICAgIGhhbmRsZXI6ICh3czogRmVhdHVyZVdvcmtzcGFjZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyU3RyYXRlZ3kgPSB3cy5lbnRpdHlTdG9yZS5nZXRTdHJhdGVneU9mVHlwZShcclxuICAgICAgICAgICAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3lcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXJTZWxlY3Rpb25TdHJhdGVneSA9IHdzLmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICAgICAgICBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3QgbGF5ZXJzV2l0aFNlbGVjdGlvbiA9IGZpbHRlclNlbGVjdGlvblN0cmF0ZWd5LmFjdGl2ZVxyXG4gICAgICAgICAgICA/IFt3cy5sYXllci5pZF1cclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgIHRoaXMudG9vbFN0YXRlLnRvb2xUb0FjdGl2YXRlRnJvbU9wdGlvbnMoe1xyXG4gICAgICAgICAgICB0b29sOiAnaW1wb3J0RXhwb3J0JyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgIGxheWVyczogW3dzLmxheWVyLmlkXSxcclxuICAgICAgICAgICAgICBmZWF0dXJlSW5NYXBFeHRlbnQ6IGZpbHRlclN0cmF0ZWd5LmFjdGl2ZSxcclxuICAgICAgICAgICAgICBsYXllcnNXaXRoU2VsZWN0aW9uXHJcbiAgICAgICAgICAgIH0gYXMgRXhwb3J0T3B0aW9uc1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBhcmdzOiBbd29ya3NwYWNlXVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICdtYXhpbWl6ZScsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm1heGltaXplJyksXHJcbiAgICAgICAgdG9vbHRpcDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5tYXhpbWl6ZVRvb2x0aXAnXHJcbiAgICAgICAgKSxcclxuICAgICAgICBpY29uOiAncmVzaXplJyxcclxuICAgICAgICBkaXNwbGF5OiAoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXhpbWl6ZSQucGlwZShtYXAoKHYpID0+ICF2ICYmICF0aGlzLm1lZGlhU2VydmljZS5pc01vYmlsZSgpKSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMubWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXhpbWl6ZSQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICdzdGFuZGFyZEV4dGVudCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc3RhbmRhcmRFeHRlbnQnXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0b29sdGlwOiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnN0YW5kYXJkRXh0ZW50VG9vbHRpcCdcclxuICAgICAgICApLFxyXG4gICAgICAgIGljb246ICdyZXNpemUnLFxyXG4gICAgICAgIGRpc3BsYXk6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLm1heGltaXplJC5waXBlKG1hcCgodikgPT4gdiAmJiAhdGhpcy5tZWRpYVNlcnZpY2UuaXNNb2JpbGUoKSkpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tYXhpbWl6ZSQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { mapExtentStrategyActiveToolTip, noElementSelected } from '@igo2/geo';
5
+ import { StorageServiceEventEnum } from '@igo2/core';
6
+ import { map, skipWhile } from 'rxjs/operators';
7
+ import { handleZoomAuto } from './workspace.utils';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../storage/storage.state";
10
+ import * as i2 from "@igo2/core";
11
+ import * as i3 from "../../tool/tool.state";
12
+ export class FeatureActionsService {
13
+ constructor(storageState, languageService, toolState, mediaService) {
14
+ this.storageState = storageState;
15
+ this.languageService = languageService;
16
+ this.toolState = toolState;
17
+ this.mediaService = mediaService;
18
+ this.maximize$ = new BehaviorSubject(this.storageService.get('workspaceMaximize'));
19
+ this.zoomAuto$ = new BehaviorSubject(false);
20
+ }
21
+ get storageService() {
22
+ return this.storageState.storageService;
23
+ }
24
+ get zoomAuto() {
25
+ return this.storageService.get('zoomAuto');
26
+ }
27
+ ngOnDestroy() {
28
+ if (this.storageChange$$) {
29
+ this.storageChange$$.unsubscribe();
30
+ }
31
+ }
32
+ loadActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
33
+ const actions = this.buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$);
34
+ workspace.actionStore.load(actions);
35
+ }
36
+ buildActions(workspace, rowsInMapExtentCheckCondition$, selectOnlyCheckCondition$) {
37
+ this.zoomAuto$.next(this.zoomAuto);
38
+ this.storageChange$$ = this.storageService.storageChange$
39
+ .pipe(skipWhile((storageChange) => storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED))
40
+ .subscribe(() => {
41
+ this.zoomAuto$.next(this.zoomAuto);
42
+ handleZoomAuto(workspace, this.storageService);
43
+ });
44
+ return [
45
+ {
46
+ id: 'zoomAuto',
47
+ checkbox: true,
48
+ title: 'igo.integration.workspace.zoomAuto.title',
49
+ tooltip: 'igo.integration.workspace.zoomAuto.tooltip',
50
+ checkCondition: this.zoomAuto$,
51
+ handler: () => {
52
+ handleZoomAuto(workspace, this.storageService);
53
+ this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto'));
54
+ }
55
+ },
56
+ {
57
+ id: 'filterInMapExtent',
58
+ checkbox: true,
59
+ title: 'igo.integration.workspace.inMapExtent.title',
60
+ tooltip: mapExtentStrategyActiveToolTip(workspace),
61
+ checkCondition: rowsInMapExtentCheckCondition$,
62
+ handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)
63
+ },
64
+ {
65
+ id: 'selectedOnly',
66
+ checkbox: true,
67
+ title: 'igo.integration.workspace.selected.title',
68
+ tooltip: 'igo.integration.workspace.selected.tooltip',
69
+ checkCondition: selectOnlyCheckCondition$,
70
+ handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)
71
+ },
72
+ {
73
+ id: 'clearselection',
74
+ icon: 'select-off',
75
+ title: 'igo.integration.workspace.clearSelection.title',
76
+ tooltip: 'igo.integration.workspace.clearSelection.tooltip',
77
+ handler: (ws) => {
78
+ ws.entityStore.state.updateMany(ws.entityStore.view.all(), {
79
+ selected: false
80
+ });
81
+ },
82
+ args: [workspace],
83
+ availability: (ws) => noElementSelected(ws)
84
+ },
85
+ {
86
+ id: 'featureDownload',
87
+ icon: 'file-export',
88
+ title: 'igo.integration.workspace.download.title',
89
+ tooltip: 'igo.integration.workspace.download.tooltip',
90
+ handler: (ws) => {
91
+ const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
92
+ const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);
93
+ const layersWithSelection = filterSelectionStrategy.active
94
+ ? [ws.layer.id]
95
+ : [];
96
+ this.toolState.toolToActivateFromOptions({
97
+ tool: 'importExport',
98
+ options: {
99
+ layers: [ws.layer.id],
100
+ featureInMapExtent: filterStrategy.active,
101
+ layersWithSelection
102
+ }
103
+ });
104
+ },
105
+ args: [workspace]
106
+ },
107
+ {
108
+ id: 'maximize',
109
+ title: this.languageService.translate.instant('igo.integration.workspace.maximize'),
110
+ tooltip: this.languageService.translate.instant('igo.integration.workspace.maximizeTooltip'),
111
+ icon: 'resize',
112
+ display: () => {
113
+ return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));
114
+ },
115
+ handler: () => {
116
+ if (!this.mediaService.isMobile()) {
117
+ this.maximize$.next(true);
118
+ }
119
+ },
120
+ },
121
+ {
122
+ id: 'standardExtent',
123
+ title: this.languageService.translate.instant('igo.integration.workspace.standardExtent'),
124
+ tooltip: this.languageService.translate.instant('igo.integration.workspace.standardExtentTooltip'),
125
+ icon: 'resize',
126
+ display: () => {
127
+ return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));
128
+ },
129
+ handler: () => {
130
+ this.maximize$.next(false);
131
+ }
132
+ }
133
+ ];
134
+ }
135
+ }
136
+ FeatureActionsService.ɵfac = function FeatureActionsService_Factory(t) { return new (t || FeatureActionsService)(i0.ɵɵinject(i1.StorageState), i0.ɵɵinject(i2.LanguageService), i0.ɵɵinject(i3.ToolState), i0.ɵɵinject(i2.MediaService)); };
137
+ FeatureActionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeatureActionsService, factory: FeatureActionsService.ɵfac, providedIn: 'root' });
138
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureActionsService, [{
139
+ type: Injectable,
140
+ args: [{
141
+ providedIn: 'root'
142
+ }]
143
+ }], function () { return [{ type: i1.StorageState }, { type: i2.LanguageService }, { type: i3.ToolState }, { type: i2.MediaService }]; }, null); })();
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBRUwsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNuQyxNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBRUwsOEJBQThCLEVBQzlCLGlCQUFpQixFQUVsQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQXVDLHVCQUF1QixFQUFnQyxNQUFNLFlBQVksQ0FBQztBQUV4SCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFLbkQsTUFBTSxPQUFPLHFCQUFxQjtJQWlCaEMsWUFDVSxZQUEwQixFQUMzQixlQUFnQyxFQUMvQixTQUFvQixFQUNwQixZQUEwQjtRQUgxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQW5CN0IsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQVksQ0FDeEQsQ0FBQztRQUVGLGNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFnQjlELENBQUM7SUFiSixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMs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N0IsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBGQW5LVSxxQkFBcUI7MkVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRnBCLE1BQU07dUZBRVAscUJBQXFCO2NBSGpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5LFxuICBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBGZWF0dXJlV29ya3NwYWNlLFxuICBtYXBFeHRlbnRTdHJhdGVneUFjdGl2ZVRvb2xUaXAsXG4gIG5vRWxlbWVudFNlbGVjdGVkLFxuICBFeHBvcnRPcHRpb25zXG59IGZyb20gJ0BpZ28yL2dlbyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2VFdmVudCwgU3RvcmFnZVNlcnZpY2VFdmVudEVudW0sIExhbmd1YWdlU2VydmljZSwgTWVkaWFTZXJ2aWNlfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2VTdGF0ZSB9IGZyb20gJy4uLy4uL3N0b3JhZ2Uvc3RvcmFnZS5zdGF0ZSc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvb2xTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2wvdG9vbC5zdGF0ZSc7XG5pbXBvcnQgeyBoYW5kbGVab29tQXV0byB9IGZyb20gJy4vd29ya3NwYWNlLnV0aWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUFjdGlvbnNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwdWJsaWMgbWF4aW1pemUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCd3b3Jrc3BhY2VNYXhpbWl6ZScpIGFzIGJvb2xlYW5cbiAgKTtcblxuICB6b29tQXV0byQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHN0b3JhZ2VDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpOiBTdG9yYWdlU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVN0YXRlLnN0b3JhZ2VTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IHpvb21BdXRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU3RhdGU6IFN0b3JhZ2VTdGF0ZSxcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9yYWdlQ2hhbmdlJCQpIHtcbiAgICAgIHRoaXMuc3RvcmFnZUNoYW5nZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZEFjdGlvbnMoXG4gICAgd29ya3NwYWNlOiBGZWF0dXJlV29ya3NwYWNlLFxuICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxuICAgICkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmJ1aWxkQWN0aW9ucyhcbiAgICAgIHdvcmtzcGFjZSxcbiAgICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcbiAgICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiRcbiAgICAgICk7XG4gICAgd29ya3NwYWNlLmFjdGlvblN0b3JlLmxvYWQoYWN0aW9ucyk7XG4gIH1cblxuICBidWlsZEFjdGlvbnMoXG4gICAgd29ya3NwYWNlOiBGZWF0dXJlV29ya3NwYWNlLFxuICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxuICAgICk6IEFjdGlvbltdIHtcbiAgICB0aGlzLnpvb21BdXRvJC5uZXh0KHRoaXMuem9vbUF1dG8pO1xuICAgIHRoaXMuc3RvcmFnZUNoYW5nZSQkID0gdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yYWdlQ2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShcbiAgICAgICAgICAoc3RvcmFnZUNoYW5nZTogU3RvcmFnZVNlcnZpY2VFdmVudCkgPT5cbiAgICAgICAgICAgIHN0b3JhZ2VDaGFuZ2Uua2V5ICE9PSAnem9vbUF1dG8nIHx8IHN0b3JhZ2VDaGFuZ2UuZXZlbnQgPT09IFN0b3JhZ2VTZXJ2aWNlRXZlbnRFbnVtLkNMRUFSRURcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuem9vbUF1dG8kLm5leHQodGhpcy56b29tQXV0byk7XG4gICAgICAgIGhhbmRsZVpvb21BdXRvKHdvcmtzcGFjZSwgdGhpcy5zdG9yYWdlU2VydmljZSk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3pvb21BdXRvJyxcbiAgICAgICAgY2hlY2tib3g6IHRydWUsXG4gICAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS56b29tQXV0by50aXRsZScsXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnpvb21BdXRvLnRvb2x0aXAnLFxuICAgICAgICBjaGVja0NvbmRpdGlvbjogdGhpcy56b29tQXV0byQsXG4gICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICBoYW5kbGVab29tQXV0byh3b3Jrc3BhY2UsIHRoaXMuc3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KFxuICAgICAgICAgICAgJ3pvb21BdXRvJyxcbiAgICAgICAgICAgICF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdmaWx0ZXJJbk1hcEV4dGVudCcsXG4gICAgICAgIGNoZWNrYm94OiB0cnVlLFxuICAgICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuaW5NYXBFeHRlbnQudGl0bGUnLFxuICAgICAgICB0b29sdGlwOiBtYXBFeHRlbnRTdHJhdGVneUFjdGl2ZVRvb2xUaXAod29ya3NwYWNlKSxcbiAgICAgICAgY2hlY2tDb25kaXRpb246IHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcbiAgICAgICAgaGFuZGxlcjogKCkgPT4gcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLm5leHQoIXJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC52YWx1ZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc2VsZWN0ZWRPbmx5JyxcbiAgICAgICAgY2hlY2tib3g6IHRydWUsXG4gICAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zZWxlY3RlZC50aXRsZScsXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnNlbGVjdGVkLnRvb2x0aXAnLFxuICAgICAgICBjaGVja0NvbmRpdGlvbjogc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCxcbiAgICAgICAgaGFuZGxlcjogKCkgPT4gc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJC5uZXh0KCFzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kLnZhbHVlKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjbGVhcnNlbGVjdGlvbicsXG4gICAgICAgIGljb246ICdzZWxlY3Qtb2ZmJyxcbiAgICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmNsZWFyU2VsZWN0aW9uLnRpdGxlJyxcbiAgICAgICAgdG9vbHRpcDogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuY2xlYXJTZWxlY3Rpb24udG9vbHRpcCcsXG4gICAgICAgIGhhbmRsZXI6ICh3czogRmVhdHVyZVdvcmtzcGFjZSkgPT4ge1xuICAgICAgICAgIHdzLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZU1hbnkod3MuZW50aXR5U3RvcmUudmlldy5hbGwoKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFyZ3M6IFt3b3Jrc3BhY2VdLFxuICAgICAgICBhdmFpbGFiaWxpdHk6ICh3czogRmVhdHVyZVdvcmtzcGFjZSkgPT4gbm9FbGVtZW50U2VsZWN0ZWQod3MpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2ZlYXR1cmVEb3dubG9hZCcsXG4gICAgICAgIGljb246ICdmaWxlLWV4cG9ydCcsXG4gICAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5kb3dubG9hZC50aXRsZScsXG4gICAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRvb2x0aXAnLFxuICAgICAgICBoYW5kbGVyOiAod3M6IEZlYXR1cmVXb3Jrc3BhY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJTdHJhdGVneSA9IHdzLmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxuICAgICAgICAgICAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3lcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGZpbHRlclNlbGVjdGlvblN0cmF0ZWd5ID0gd3MuZW50aXR5U3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoXG4gICAgICAgICAgICBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5XG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBsYXllcnNXaXRoU2VsZWN0aW9uID0gZmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3kuYWN0aXZlXG4gICAgICAgICAgICA/IFt3cy5sYXllci5pZF1cbiAgICAgICAgICAgIDogW107XG4gICAgICAgICAgdGhpcy50b29sU3RhdGUudG9vbFRvQWN0aXZhdGVGcm9tT3B0aW9ucyh7XG4gICAgICAgICAgICB0b29sOiAnaW1wb3J0RXhwb3J0JyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgbGF5ZXJzOiBbd3MubGF5ZXIuaWRdLFxuICAgICAgICAgICAgICBmZWF0dXJlSW5NYXBFeHRlbnQ6IGZpbHRlclN0cmF0ZWd5LmFjdGl2ZSxcbiAgICAgICAgICAgICAgbGF5ZXJzV2l0aFNlbGVjdGlvblxuICAgICAgICAgICAgfSBhcyBFeHBvcnRPcHRpb25zXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFyZ3M6IFt3b3Jrc3BhY2VdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ21heGltaXplJyxcbiAgICAgICAgdGl0bGU6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm1heGltaXplJyksXG4gICAgICAgIHRvb2x0aXA6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm1heGltaXplVG9vbHRpcCdcbiAgICAgICAgKSxcbiAgICAgICAgaWNvbjogJ3Jlc2l6ZScsXG4gICAgICAgIGRpc3BsYXk6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXhpbWl6ZSQucGlwZShtYXAoKHYpID0+ICF2ICYmICF0aGlzLm1lZGlhU2VydmljZS5pc01vYmlsZSgpKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMubWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMubWF4aW1pemUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdzdGFuZGFyZEV4dGVudCcsXG4gICAgICAgIHRpdGxlOiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zdGFuZGFyZEV4dGVudCdcbiAgICAgICAgKSxcbiAgICAgICAgdG9vbHRpcDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc3RhbmRhcmRFeHRlbnRUb29sdGlwJ1xuICAgICAgICApLFxuICAgICAgICBpY29uOiAncmVzaXplJyxcbiAgICAgICAgZGlzcGxheTogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLm1heGltaXplJC5waXBlKG1hcCgodikgPT4gdiAmJiAhdGhpcy5tZWRpYVNlcnZpY2UuaXNNb2JpbGUoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tYXhpbWl6ZSQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
- export * from './wfs-actions.service';
2
- export * from './feature-actions.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCAqIGZyb20gJy4vd2ZzLWFjdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UnO1xyXG4iXX0=
1
+ export * from './wfs-actions.service';
2
+ export * from './feature-actions.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL3dmcy1hY3Rpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWFjdGlvbnMuc2VydmljZSc7XG4iXX0=