@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,37 +1,37 @@
1
- import { NgModule } from '@angular/core';
2
- import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatTooltipModule } from '@angular/material/tooltip';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { IgoLanguageModule } from '@igo2/core';
7
- import { CommonModule } from '@angular/common';
8
- import * as i0 from "@angular/core";
9
- export class IgoAppWorkspaceModule {
10
- }
11
- IgoAppWorkspaceModule.ɵfac = function IgoAppWorkspaceModule_Factory(t) { return new (t || IgoAppWorkspaceModule)(); };
12
- IgoAppWorkspaceModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoAppWorkspaceModule });
13
- IgoAppWorkspaceModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
14
- MatIconModule,
15
- MatButtonModule,
16
- MatTooltipModule,
17
- IgoLanguageModule] });
18
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoAppWorkspaceModule, [{
19
- type: NgModule,
20
- args: [{
21
- imports: [
22
- CommonModule,
23
- MatIconModule,
24
- MatButtonModule,
25
- MatTooltipModule,
26
- IgoLanguageModule
27
- ],
28
- declarations: [WorkspaceButtonComponent],
29
- exports: [WorkspaceButtonComponent]
30
- }]
31
- }], null, null); })();
32
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppWorkspaceModule, { declarations: [WorkspaceButtonComponent], imports: [CommonModule,
33
- MatIconModule,
34
- MatButtonModule,
35
- MatTooltipModule,
36
- IgoLanguageModule], exports: [WorkspaceButtonComponent] }); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvd29ya3NwYWNlL3dvcmtzcGFjZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYS9DLE1BQU0sT0FBTyxxQkFBcUI7OzBGQUFyQixxQkFBcUI7dUVBQXJCLHFCQUFxQjsyRUFUOUIsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGlCQUFpQjt1RkFLUixxQkFBcUI7Y0FYakMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2FBQ3BDOzt3RkFDWSxxQkFBcUIsbUJBSGpCLHdCQUF3QixhQU5yQyxZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsaUJBQWlCLGFBR1Qsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV29ya3NwYWNlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi93b3Jrc3BhY2UtYnV0dG9uL3dvcmtzcGFjZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1dvcmtzcGFjZUJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW1dvcmtzcGFjZUJ1dHRvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0FwcFdvcmtzcGFjZU1vZHVsZSB7fVxyXG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatTooltipModule } from '@angular/material/tooltip';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { IgoLanguageModule } from '@igo2/core';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i0 from "@angular/core";
9
+ export class IgoAppWorkspaceModule {
10
+ }
11
+ IgoAppWorkspaceModule.ɵfac = function IgoAppWorkspaceModule_Factory(t) { return new (t || IgoAppWorkspaceModule)(); };
12
+ IgoAppWorkspaceModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoAppWorkspaceModule });
13
+ IgoAppWorkspaceModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
14
+ MatIconModule,
15
+ MatButtonModule,
16
+ MatTooltipModule,
17
+ IgoLanguageModule] });
18
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoAppWorkspaceModule, [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [
22
+ CommonModule,
23
+ MatIconModule,
24
+ MatButtonModule,
25
+ MatTooltipModule,
26
+ IgoLanguageModule
27
+ ],
28
+ declarations: [WorkspaceButtonComponent],
29
+ exports: [WorkspaceButtonComponent]
30
+ }]
31
+ }], null, null); })();
32
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoAppWorkspaceModule, { declarations: [WorkspaceButtonComponent], imports: [CommonModule,
33
+ MatIconModule,
34
+ MatButtonModule,
35
+ MatTooltipModule,
36
+ IgoLanguageModule], exports: [WorkspaceButtonComponent] }); })();
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvd29ya3NwYWNlL3dvcmtzcGFjZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYS9DLE1BQU0sT0FBTyxxQkFBcUI7OzBGQUFyQixxQkFBcUI7dUVBQXJCLHFCQUFxQjsyRUFUOUIsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGlCQUFpQjt1RkFLUixxQkFBcUI7Y0FYakMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2FBQ3BDOzt3RkFDWSxxQkFBcUIsbUJBSGpCLHdCQUF3QixhQU5yQyxZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsaUJBQWlCLGFBR1Qsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdvcmtzcGFjZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vd29ya3NwYWNlLWJ1dHRvbi93b3Jrc3BhY2UtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtXb3Jrc3BhY2VCdXR0b25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbV29ya3NwYWNlQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29BcHBXb3Jrc3BhY2VNb2R1bGUge31cbiJdfQ==
@@ -1,188 +1,188 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, of } from 'rxjs';
3
- import { WorkspaceStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common';
4
- import { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./shared/feature-actions.service";
7
- import * as i2 from "./shared/wfs-actions.service";
8
- import * as i3 from "./shared/edition-actions.service";
9
- import * as i4 from "@igo2/core";
10
- /**
11
- * Service that holds the state of the workspace module
12
- */
13
- export class WorkspaceState {
14
- constructor(featureActionsService, wfsActionsService, editionActionsService, storageService) {
15
- this.featureActionsService = featureActionsService;
16
- this.wfsActionsService = wfsActionsService;
17
- this.editionActionsService = editionActionsService;
18
- this.storageService = storageService;
19
- this.workspacePanelExpanded = false;
20
- this.workspaceEnabled$ = new BehaviorSubject(false);
21
- this.rowsInMapExtentCheckCondition$ = new BehaviorSubject(true);
22
- this.selectOnlyCheckCondition$ = new BehaviorSubject(false);
23
- this.workspaceMaximize$ = new BehaviorSubject(this.storageService.get('workspaceMaximize'));
24
- this.actionMaximize$$ = [];
25
- /** Active widget observable. Only one may be active for all available workspaces */
26
- this.activeWorkspaceWidget$ = new BehaviorSubject(undefined);
27
- /**
28
- * Observable of the active workspace
29
- */
30
- this.workspace$ = new BehaviorSubject(undefined);
31
- this.initWorkspaces();
32
- }
33
- /**
34
- * Store that holds all the available workspaces
35
- */
36
- get store() { return this._store; }
37
- get workspaceSelection() {
38
- if (this.workspace$.value) {
39
- return this.workspace$.value?.entityStore.stateView.manyBy((r) => r.state.selected === true);
40
- }
41
- else {
42
- return [];
43
- }
44
- }
45
- get workspaceSelection$() {
46
- if (this.workspace$.value) {
47
- return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);
48
- }
49
- else {
50
- return of([]);
51
- }
52
- }
53
- /**
54
- * Initialize the workspace store. Each time a workspace is activated,
55
- * subscribe to it's active widget. Tracking the active widget is useful
56
- * to make sure only one widget is active at a time.
57
- */
58
- initWorkspaces() {
59
- this._store = new WorkspaceStore([]);
60
- this._store.stateView
61
- .firstBy$((record) => record.state.active === true)
62
- .subscribe((record) => {
63
- const workspace = record ? record.entity : undefined;
64
- this.workspace$.next(workspace);
65
- });
66
- this._store.stateView.all$()
67
- .subscribe((workspaces) => {
68
- workspaces.map((wks) => {
69
- if (wks.entity.actionStore.empty) {
70
- if (wks.entity instanceof WfsWorkspace) {
71
- this.wfsActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
72
- }
73
- else if (wks.entity instanceof FeatureWorkspace) {
74
- this.featureActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
75
- }
76
- else if (wks.entity instanceof EditionWorkspace) {
77
- this.editionActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
78
- }
79
- }
80
- });
81
- });
82
- this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {
83
- this.setWorkspaceIsMaximized(maximized);
84
- }));
85
- this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {
86
- this.setWorkspaceIsMaximized(maximized);
87
- }));
88
- this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {
89
- this.setWorkspaceIsMaximized(maximized);
90
- }));
91
- this.activeWorkspace$$ = this.workspace$
92
- .subscribe((workspace) => {
93
- if (this.activeWorkspaceWidget$$ !== undefined) {
94
- this.activeWorkspaceWidget$$.unsubscribe();
95
- this.activeWorkspaceWidget$$ = undefined;
96
- }
97
- if (workspace !== undefined) {
98
- this.activeWorkspaceWidget$$ = workspace.widget$
99
- .subscribe((widget) => this.activeWorkspaceWidget$.next(widget));
100
- }
101
- });
102
- this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {
103
- this._store.stateView.all().map((wks) => {
104
- if (!wks.entity.actionStore.empty) {
105
- const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
106
- if (filterStrategy) {
107
- if (rowsInMapExtent) {
108
- filterStrategy.activate();
109
- }
110
- else {
111
- filterStrategy.deactivate();
112
- }
113
- }
114
- }
115
- });
116
- });
117
- this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {
118
- this._store.stateView.all().map((wks) => {
119
- if (!wks.entity.actionStore.empty) {
120
- const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);
121
- if (filterStrategy) {
122
- if (selectOnly) {
123
- filterStrategy.activate();
124
- }
125
- else {
126
- filterStrategy.deactivate();
127
- }
128
- }
129
- }
130
- });
131
- });
132
- }
133
- setWorkspaceIsMaximized(maximized) {
134
- this.storageService.set('workspaceMaximize', maximized);
135
- this.workspaceMaximize$.next(maximized);
136
- }
137
- setActiveWorkspaceById(id) {
138
- const wksFromId = this.store
139
- .all()
140
- .find(workspace => workspace.id === id);
141
- if (wksFromId) {
142
- this.store.activateWorkspace(wksFromId);
143
- }
144
- }
145
- setActiveWorkspaceByTitle(title) {
146
- const wksFromTitle = this.store
147
- .all()
148
- .find(workspace => workspace.title === title);
149
- if (wksFromTitle) {
150
- this.store.activateWorkspace(wksFromTitle);
151
- }
152
- }
153
- /**
154
- * Teardown all the workspaces
155
- * @internal
156
- */
157
- ngOnDestroy() {
158
- this.teardownWorkspaces();
159
- this.actionMaximize$$.map(a => a.unsubscribe());
160
- if (this.rowsInMapExtentCheckCondition$$) {
161
- this.selectOnlyCheckCondition$$.unsubscribe();
162
- }
163
- if (this.selectOnlyCheckCondition$$) {
164
- this.selectOnlyCheckCondition$$.unsubscribe();
165
- }
166
- }
167
- /**
168
- * Teardown the workspace store and any subscribers
169
- */
170
- teardownWorkspaces() {
171
- this.store.clear();
172
- if (this.activeWorkspaceWidget$$ !== undefined) {
173
- this.activeWorkspaceWidget$$.unsubscribe();
174
- }
175
- if (this.activeWorkspace$$ !== undefined) {
176
- this.activeWorkspace$$.unsubscribe();
177
- }
178
- }
179
- }
180
- WorkspaceState.ɵfac = function WorkspaceState_Factory(t) { return new (t || WorkspaceState)(i0.ɵɵinject(i1.FeatureActionsService), i0.ɵɵinject(i2.WfsActionsService), i0.ɵɵinject(i3.EditionActionsService), i0.ɵɵinject(i4.StorageService)); };
181
- WorkspaceState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WorkspaceState, factory: WorkspaceState.ɵfac, providedIn: 'root' });
182
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceState, [{
183
- type: Injectable,
184
- args: [{
185
- providedIn: 'root'
186
- }]
187
- }], function () { return [{ type: i1.FeatureActionsService }, { type: i2.WfsActionsService }, { type: i3.EditionActionsService }, { type: i4.StorageService }]; }, null); })();
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvd29ya3NwYWNlLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJFLE9BQU8sRUFHTCxjQUFjLEVBRWQsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNyQixNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFNN0U7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQW9EekIsWUFDVSxxQkFBNEMsRUFDNUMsaUJBQW9DLEVBQ3BDLHFCQUE0QyxFQUM1QyxjQUE4QjtRQUg5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0RGpDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUV0QyxzQkFBaUIsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEYsbUNBQThCLEdBQTZCLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlGLDhCQUF5QixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUUxRix1QkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFZLENBQ3hELENBQUM7UUFDTSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFD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QUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEtBQUssU0FBUyxFQUFFO1lBQzlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs0RUE3TVUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UmVjb3JkLFxyXG4gIFdvcmtzcGFjZSxcclxuICBXb3Jrc3BhY2VTdG9yZSxcclxuICBXaWRnZXQsXHJcbiAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3ksXHJcbiAgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneSxcclxuICBFbnRpdHlTdGF0ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IFdmc1dvcmtzcGFjZSwgRmVhdHVyZVdvcmtzcGFjZSwgRWRpdGlvbldvcmtzcGFjZSB9IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB7IEZlYXR1cmVBY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2ZlYXR1cmUtYWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ZzQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC93ZnMtYWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgRWRpdGlvbkFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZWRpdGlvbi1hY3Rpb25zLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBob2xkcyB0aGUgc3RhdGUgb2YgdGhlIHdvcmtzcGFjZSBtb2R1bGVcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN0YXRlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIHdvcmtzcGFjZVBhbmVsRXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcmVhZG9ubHkgd29ya3NwYWNlRW5hYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlYWRvbmx5IHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICByZWFkb25seSBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgcmVhZG9ubHkgd29ya3NwYWNlTWF4aW1pemUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ3dvcmtzcGFjZU1heGltaXplJykgYXMgYm9vbGVhblxyXG4gICk7XHJcbiAgcHJpdmF0ZSBhY3Rpb25NYXhpbWl6ZSQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKiBTdWJzY3JpcHRpb24gdG8gdGhlIGFjdGl2ZSB3b3Jrc3BhY2UgKi9cclxuICBwcml2YXRlIGFjdGl2ZVdvcmtzcGFjZSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKiBTdWJzY3JpcHRpb24gdG8gdGhlIGFjdGl2ZSB3b3Jrc3BhY2Ugd2lkZ2V0ICovXHJcbiAgcHJpdmF0ZSBhY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKiogQWN0aXZlIHdpZGdldCBvYnNlcnZhYmxlLiBPbmx5IG9uZSBtYXkgYmUgYWN0aXZlIGZvciBhbGwgYXZhaWxhYmxlIHdvcmtzcGFjZXMgKi9cclxuICByZWFkb25seSBhY3RpdmVXb3Jrc3BhY2VXaWRnZXQkOiBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0Pih1bmRlZmluZWQpO1xyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgd29ya3NwYWNlXHJcbiAgICovXHJcbiAgcHVibGljIHdvcmtzcGFjZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtzcGFjZT4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgdGhhdCBob2xkcyBhbGwgdGhlIGF2YWlsYWJsZSB3b3Jrc3BhY2VzXHJcbiAgICovXHJcbiAgZ2V0IHN0b3JlKCk6IFdvcmtzcGFjZVN0b3JlIHsgcmV0dXJuIHRoaXMuX3N0b3JlOyB9XHJcbiAgcHJpdmF0ZSBfc3RvcmU6IFdvcmtzcGFjZVN0b3JlO1xyXG5cclxuICBnZXQgd29ya3NwYWNlU2VsZWN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMud29ya3NwYWNlJC52YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NwYWNlJC52YWx1ZT8uZW50aXR5U3RvcmUuc3RhdGVWaWV3Lm1hbnlCeSgocikgPT4gci5zdGF0ZS5zZWxlY3RlZCA9PT0gdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgd29ya3NwYWNlU2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPEVudGl0eVJlY29yZDxvYmplY3QsIEVudGl0eVN0YXRlPltdPiB7XHJcbiAgICBpZiAodGhpcy53b3Jrc3BhY2UkLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndvcmtzcGFjZSQudmFsdWU/LmVudGl0eVN0b3JlPy5zdGF0ZVZpZXcubWFueUJ5JCgocikgPT4gci5zdGF0ZS5zZWxlY3RlZCA9PT0gdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZlYXR1cmVBY3Rpb25zU2VydmljZTogRmVhdHVyZUFjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZnNBY3Rpb25zU2VydmljZTogV2ZzQWN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVkaXRpb25BY3Rpb25zU2VydmljZTogRWRpdGlvbkFjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaW5pdFdvcmtzcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIHdvcmtzcGFjZSBzdG9yZS4gRWFjaCB0aW1lIGEgd29ya3NwYWNlIGlzIGFjdGl2YXRlZCxcclxuICAgKiBzdWJzY3JpYmUgdG8gaXQncyBhY3RpdmUgd2lkZ2V0LiBUcmFja2luZyB0aGUgYWN0aXZlIHdpZGdldCBpcyB1c2VmdWxcclxuICAgKiB0byBtYWtlIHN1cmUgb25seSBvbmUgd2lkZ2V0IGlzIGFjdGl2ZSBhdCBhIHRpbWUuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0V29ya3NwYWNlcygpIHtcclxuICAgIHRoaXMuX3N0b3JlID0gbmV3IFdvcmtzcGFjZVN0b3JlKFtdKTtcclxuICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlld1xyXG4gICAgICAuZmlyc3RCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHJlY29yZC5zdGF0ZS5hY3RpdmUgPT09IHRydWUpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlY29yZDogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcclxuICAgICAgICBjb25zdCB3b3Jrc3BhY2UgPSByZWNvcmQgPyByZWNvcmQuZW50aXR5IDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMud29ya3NwYWNlJC5uZXh0KHdvcmtzcGFjZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwkKClcclxuICAgIC5zdWJzY3JpYmUoKHdvcmtzcGFjZXM6IEVudGl0eVJlY29yZDxXb3Jrc3BhY2U+W10pID0+IHtcclxuICAgICAgd29ya3NwYWNlcy5tYXAoKHdrczogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcclxuICAgICAgICBpZiAod2tzLmVudGl0eS5hY3Rpb25TdG9yZS5lbXB0eSkge1xyXG4gICAgICAgICAgaWYgKHdrcy5lbnRpdHkgaW5zdGFuY2VvZiBXZnNXb3Jrc3BhY2UpIHtcclxuICAgICAgICAgICAgdGhpcy53ZnNBY3Rpb25zU2VydmljZS5sb2FkQWN0aW9ucyhcclxuICAgICAgICAgICAgICB3a3MuZW50aXR5LFxyXG4gICAgICAgICAgICAgIHRoaXMucm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHdrcy5lbnRpdHkgaW5zdGFuY2VvZiBGZWF0dXJlV29ya3NwYWNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmVhdHVyZUFjdGlvbnNTZXJ2aWNlLmxvYWRBY3Rpb25zKFxyXG4gICAgICAgICAgICAgIHdrcy5lbnRpdHksXHJcbiAgICAgICAgICAgICAgdGhpcy5yb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQsXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAod2tzLmVudGl0eSBpbnN0YW5jZW9mIEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0aW9uQWN0aW9uc1NlcnZpY2UubG9hZEFjdGlvbnMoXHJcbiAgICAgICAgICAgICAgd2tzLmVudGl0eSxcclxuICAgICAgICAgICAgICB0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hY3Rpb25NYXhpbWl6ZSQkLnB1c2godGhpcy5mZWF0dXJlQWN0aW9uc1NlcnZpY2UubWF4aW1pemUkLnN1YnNjcmliZShtYXhpbWl6ZWQgPT4ge1xyXG4gICAgICB0aGlzLnNldFdvcmtzcGFjZUlzTWF4aW1pemVkKG1heGltaXplZCk7XHJcbiAgICB9KSk7XHJcblxyXG4gICAgdGhpcy5hY3Rpb25NYXhpbWl6ZSQkLnB1c2godGhpcy53ZnNBY3Rpb25zU2VydmljZS5tYXhpbWl6ZSQuc3Vic2NyaWJlKG1heGltaXplZCA9PiB7XHJcbiAgICAgIHRoaXMuc2V0V29ya3NwYWNlSXNNYXhpbWl6ZWQobWF4aW1pemVkKTtcclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLmFjdGlvbk1heGltaXplJCQucHVzaCh0aGlzLmVkaXRpb25BY3Rpb25zU2VydmljZS5tYXhpbWl6ZSQuc3Vic2NyaWJlKG1heGltaXplZCA9PiB7XHJcbiAgICAgIHRoaXMuc2V0V29ya3NwYWNlSXNNYXhpbWl6ZWQobWF4aW1pemVkKTtcclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVdvcmtzcGFjZSQkID0gdGhpcy53b3Jrc3BhY2UkXHJcbiAgICAgIC5zdWJzY3JpYmUoKHdvcmtzcGFjZTogV29ya3NwYWNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlV29ya3NwYWNlV2lkZ2V0JCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh3b3Jrc3BhY2UgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJCA9IHdvcmtzcGFjZS53aWRnZXQkXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHdpZGdldDogV2lkZ2V0KSA9PiB0aGlzLmFjdGl2ZVdvcmtzcGFjZVdpZGdldCQubmV4dCh3aWRnZXQpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMucm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kJCA9IHRoaXMucm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLnN1YnNjcmliZSgocm93c0luTWFwRXh0ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwoKS5tYXAoKHdrczogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcclxuICAgICAgICBpZiAoIXdrcy5lbnRpdHkuYWN0aW9uU3RvcmUuZW1wdHkpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbHRlclN0cmF0ZWd5ID0gd2tzLmVudGl0eS5lbnRpdHlTdG9yZS5nZXRTdHJhdGVneU9mVHlwZShFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSk7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyU3RyYXRlZ3kpIHtcclxuICAgICAgICAgICAgaWYgKHJvd3NJbk1hcEV4dGVudCkge1xyXG4gICAgICAgICAgICAgIGZpbHRlclN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyU3RyYXRlZ3kuZGVhY3RpdmF0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQgPSB0aGlzLnNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQuc3Vic2NyaWJlKChzZWxlY3RPbmx5KSA9PiB7XHJcbiAgICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwoKS5tYXAoKHdrczogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcclxuICAgICAgICBpZiAoIXdrcy5lbnRpdHkuYWN0aW9uU3RvcmUuZW1wdHkpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbHRlclN0cmF0ZWd5ID0gd2tzLmVudGl0eS5lbnRpdHlTdG9yZS5nZXRTdHJhdGVneU9mVHlwZShFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5KTtcclxuICAgICAgICAgIGlmIChmaWx0ZXJTdHJhdGVneSkge1xyXG4gICAgICAgICAgICBpZiAoc2VsZWN0T25seSkge1xyXG4gICAgICAgICAgICAgIGZpbHRlclN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZmlsdGVyU3RyYXRlZ3kuZGVhY3RpdmF0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRXb3Jrc3BhY2VJc01heGltaXplZChtYXhpbWl6ZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCd3b3Jrc3BhY2VNYXhpbWl6ZScsIG1heGltaXplZCk7XHJcbiAgICB0aGlzLndvcmtzcGFjZU1heGltaXplJC5uZXh0KG1heGltaXplZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWN0aXZlV29ya3NwYWNlQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB3a3NGcm9tSWQgPSB0aGlzLnN0b3JlXHJcbiAgICAuYWxsKClcclxuICAgIC5maW5kKHdvcmtzcGFjZSA9PiB3b3Jrc3BhY2UuaWQgPT09IGlkKTtcclxuICAgIGlmICh3a3NGcm9tSWQpIHtcclxuICAgICAgdGhpcy5zdG9yZS5hY3RpdmF0ZVdvcmtzcGFjZSh3a3NGcm9tSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEFjdGl2ZVdvcmtzcGFjZUJ5VGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgd2tzRnJvbVRpdGxlID0gdGhpcy5zdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLmZpbmQod29ya3NwYWNlID0+IHdvcmtzcGFjZS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgaWYgKHdrc0Zyb21UaXRsZSkge1xyXG4gICAgICB0aGlzLnN0b3JlLmFjdGl2YXRlV29ya3NwYWNlKHdrc0Zyb21UaXRsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZWFyZG93biBhbGwgdGhlIHdvcmtzcGFjZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGVhcmRvd25Xb3Jrc3BhY2VzKCk7XHJcbiAgICB0aGlzLmFjdGlvbk1heGltaXplJCQubWFwKGEgPT4gYS51bnN1YnNjcmliZSgpKTtcclxuICAgIGlmICh0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGVhcmRvd24gdGhlIHdvcmtzcGFjZSBzdG9yZSBhbmQgYW55IHN1YnNjcmliZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0ZWFyZG93bldvcmtzcGFjZXMoKSB7XHJcbiAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlV29ya3NwYWNlV2lkZ2V0JCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFjdGl2ZVdvcmtzcGFjZSQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2UkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, of } from 'rxjs';
3
+ import { WorkspaceStore, EntityStoreFilterCustomFuncStrategy, EntityStoreFilterSelectionStrategy } from '@igo2/common';
4
+ import { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./shared/feature-actions.service";
7
+ import * as i2 from "./shared/wfs-actions.service";
8
+ import * as i3 from "./shared/edition-actions.service";
9
+ import * as i4 from "@igo2/core";
10
+ /**
11
+ * Service that holds the state of the workspace module
12
+ */
13
+ export class WorkspaceState {
14
+ constructor(featureActionsService, wfsActionsService, editionActionsService, storageService) {
15
+ this.featureActionsService = featureActionsService;
16
+ this.wfsActionsService = wfsActionsService;
17
+ this.editionActionsService = editionActionsService;
18
+ this.storageService = storageService;
19
+ this.workspacePanelExpanded = false;
20
+ this.workspaceEnabled$ = new BehaviorSubject(false);
21
+ this.rowsInMapExtentCheckCondition$ = new BehaviorSubject(true);
22
+ this.selectOnlyCheckCondition$ = new BehaviorSubject(false);
23
+ this.workspaceMaximize$ = new BehaviorSubject(this.storageService.get('workspaceMaximize'));
24
+ this.actionMaximize$$ = [];
25
+ /** Active widget observable. Only one may be active for all available workspaces */
26
+ this.activeWorkspaceWidget$ = new BehaviorSubject(undefined);
27
+ /**
28
+ * Observable of the active workspace
29
+ */
30
+ this.workspace$ = new BehaviorSubject(undefined);
31
+ this.initWorkspaces();
32
+ }
33
+ /**
34
+ * Store that holds all the available workspaces
35
+ */
36
+ get store() { return this._store; }
37
+ get workspaceSelection() {
38
+ if (this.workspace$.value) {
39
+ return this.workspace$.value?.entityStore.stateView.manyBy((r) => r.state.selected === true);
40
+ }
41
+ else {
42
+ return [];
43
+ }
44
+ }
45
+ get workspaceSelection$() {
46
+ if (this.workspace$.value) {
47
+ return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);
48
+ }
49
+ else {
50
+ return of([]);
51
+ }
52
+ }
53
+ /**
54
+ * Initialize the workspace store. Each time a workspace is activated,
55
+ * subscribe to it's active widget. Tracking the active widget is useful
56
+ * to make sure only one widget is active at a time.
57
+ */
58
+ initWorkspaces() {
59
+ this._store = new WorkspaceStore([]);
60
+ this._store.stateView
61
+ .firstBy$((record) => record.state.active === true)
62
+ .subscribe((record) => {
63
+ const workspace = record ? record.entity : undefined;
64
+ this.workspace$.next(workspace);
65
+ });
66
+ this._store.stateView.all$()
67
+ .subscribe((workspaces) => {
68
+ workspaces.map((wks) => {
69
+ if (wks.entity.actionStore.empty) {
70
+ if (wks.entity instanceof WfsWorkspace) {
71
+ this.wfsActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
72
+ }
73
+ else if (wks.entity instanceof FeatureWorkspace) {
74
+ this.featureActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
75
+ }
76
+ else if (wks.entity instanceof EditionWorkspace) {
77
+ this.editionActionsService.loadActions(wks.entity, this.rowsInMapExtentCheckCondition$, this.selectOnlyCheckCondition$);
78
+ }
79
+ }
80
+ });
81
+ });
82
+ this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {
83
+ this.setWorkspaceIsMaximized(maximized);
84
+ }));
85
+ this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {
86
+ this.setWorkspaceIsMaximized(maximized);
87
+ }));
88
+ this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {
89
+ this.setWorkspaceIsMaximized(maximized);
90
+ }));
91
+ this.activeWorkspace$$ = this.workspace$
92
+ .subscribe((workspace) => {
93
+ if (this.activeWorkspaceWidget$$ !== undefined) {
94
+ this.activeWorkspaceWidget$$.unsubscribe();
95
+ this.activeWorkspaceWidget$$ = undefined;
96
+ }
97
+ if (workspace !== undefined) {
98
+ this.activeWorkspaceWidget$$ = workspace.widget$
99
+ .subscribe((widget) => this.activeWorkspaceWidget$.next(widget));
100
+ }
101
+ });
102
+ this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {
103
+ this._store.stateView.all().map((wks) => {
104
+ if (!wks.entity.actionStore.empty) {
105
+ const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);
106
+ if (filterStrategy) {
107
+ if (rowsInMapExtent) {
108
+ filterStrategy.activate();
109
+ }
110
+ else {
111
+ filterStrategy.deactivate();
112
+ }
113
+ }
114
+ }
115
+ });
116
+ });
117
+ this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {
118
+ this._store.stateView.all().map((wks) => {
119
+ if (!wks.entity.actionStore.empty) {
120
+ const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);
121
+ if (filterStrategy) {
122
+ if (selectOnly) {
123
+ filterStrategy.activate();
124
+ }
125
+ else {
126
+ filterStrategy.deactivate();
127
+ }
128
+ }
129
+ }
130
+ });
131
+ });
132
+ }
133
+ setWorkspaceIsMaximized(maximized) {
134
+ this.storageService.set('workspaceMaximize', maximized);
135
+ this.workspaceMaximize$.next(maximized);
136
+ }
137
+ setActiveWorkspaceById(id) {
138
+ const wksFromId = this.store
139
+ .all()
140
+ .find(workspace => workspace.id === id);
141
+ if (wksFromId) {
142
+ this.store.activateWorkspace(wksFromId);
143
+ }
144
+ }
145
+ setActiveWorkspaceByTitle(title) {
146
+ const wksFromTitle = this.store
147
+ .all()
148
+ .find(workspace => workspace.title === title);
149
+ if (wksFromTitle) {
150
+ this.store.activateWorkspace(wksFromTitle);
151
+ }
152
+ }
153
+ /**
154
+ * Teardown all the workspaces
155
+ * @internal
156
+ */
157
+ ngOnDestroy() {
158
+ this.teardownWorkspaces();
159
+ this.actionMaximize$$.map(a => a.unsubscribe());
160
+ if (this.rowsInMapExtentCheckCondition$$) {
161
+ this.selectOnlyCheckCondition$$.unsubscribe();
162
+ }
163
+ if (this.selectOnlyCheckCondition$$) {
164
+ this.selectOnlyCheckCondition$$.unsubscribe();
165
+ }
166
+ }
167
+ /**
168
+ * Teardown the workspace store and any subscribers
169
+ */
170
+ teardownWorkspaces() {
171
+ this.store.clear();
172
+ if (this.activeWorkspaceWidget$$ !== undefined) {
173
+ this.activeWorkspaceWidget$$.unsubscribe();
174
+ }
175
+ if (this.activeWorkspace$$ !== undefined) {
176
+ this.activeWorkspace$$.unsubscribe();
177
+ }
178
+ }
179
+ }
180
+ WorkspaceState.ɵfac = function WorkspaceState_Factory(t) { return new (t || WorkspaceState)(i0.ɵɵinject(i1.FeatureActionsService), i0.ɵɵinject(i2.WfsActionsService), i0.ɵɵinject(i3.EditionActionsService), i0.ɵɵinject(i4.StorageService)); };
181
+ WorkspaceState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WorkspaceState, factory: WorkspaceState.ɵfac, providedIn: 'root' });
182
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceState, [{
183
+ type: Injectable,
184
+ args: [{
185
+ providedIn: 'root'
186
+ }]
187
+ }], function () { return [{ type: i1.FeatureActionsService }, { type: i2.WfsActionsService }, { type: i3.EditionActionsService }, { type: i4.StorageService }]; }, null); })();
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvd29ya3NwYWNlLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJFLE9BQU8sRUFHTCxjQUFjLEVBRWQsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNyQixNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFNN0U7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQW9EekIsWUFDVSxxQkFBNEMsRUFDNUMsaUJBQW9DLEVBQ3BDLHFCQUE0QyxFQUM1QyxjQUE4QjtRQUg5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0RGpDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUV0QyxzQkFBaUIsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEYsbUNBQThCLEdBQTZCLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlGLDhCQUF5QixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUUxRix1QkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFZLENBQ3hELENBQUM7UUFDTSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBVzlDLG9GQUFvRjtRQUMzRSwyQkFBc0IsR0FBNEIsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7UUFFbEc7O1dBRUc7UUFDSSxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVksU0FBUyxDQUFDLENBQUM7UUE4QjVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBN0JEOztPQUVHO0lBQ0gsSUFBSSxLQUFLLEtBQXFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFHbkQsSUFBSSxrQkFBa0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUM1RjthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO1NBQ2hHO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQVdEOzs7O09BSUc7SUFDSyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2FBQ2xCLFFBQVEsQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQzthQUMzRSxTQUFTLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7WUFDN0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7YUFDM0IsU0FBUyxDQUFDLENBQUMsVUFBcUMsRUFBRSxFQUFFO1lBQ25ELFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUE0QixFQUFFLEVBQUU7Z0JBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO29CQUNoQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLFlBQVksWUFBWSxFQUFFO3dCQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUNoQyxHQUFHLENBQUMsTUFBTSxFQUNWLElBQUksQ0FBQyw4QkFBOEIsRUFDbkMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7cUJBQ25DO3lCQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sWUFBWSxnQkFBZ0IsRUFBRTt3QkFDakQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FDcEMsR0FBRyxDQUFDLE1BQU0sRUFDVixJQUFJLENBQUMsOEJBQThCLEVBQ25DLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO3FCQUNuQzt5QkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFlBQVksZ0JBQWdCLEVBQUU7d0JBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQ3BDLEdBQUcsQ0FBQyxNQUFNLEVBQ1YsSUFBSSxDQUFDLDhCQUE4QixFQUNuQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztxQkFDbkM7aUJBQ0Y7WUFFSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwRixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVO2FBQ3JDLFNBQVMsQ0FBQyxDQUFDLFNBQW9CLEVBQUUsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxTQUFTLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQzthQUMxQztZQUVELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxPQUFPO3FCQUM3QyxTQUFTLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM1RTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUE0QixFQUFFLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7b0JBQ2pDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLG1DQUFtQyxDQUFDLENBQUM7b0JBQ3JHLElBQUksY0FBYyxFQUFFO3dCQUNsQixJQUFJLGVBQWUsRUFBRTs0QkFDbkIsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO3lCQUMzQjs2QkFBTTs0QkFDTCxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7eUJBQzdCO3FCQUNGO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNEIsRUFBRSxFQUFFO2dCQUMvRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO29CQUNqQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO29CQUNwRyxJQUFJLGNBQWMsRUFBRTt3QkFDbEIsSUFBSSxVQUFVLEVBQUU7NEJBQ2QsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO3lCQUMzQjs2QkFBTTs0QkFDTCxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7eUJBQzdCO3FCQUNGO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxTQUFrQjtRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxFQUFVO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQzNCLEdBQUcsRUFBRTthQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEtBQWE7UUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDNUIsR0FBRyxFQUFFO2FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsK0JBQStCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEtBQUssU0FBUyxFQUFFO1lBQzlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs0RUE3TVUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBFbnRpdHlSZWNvcmQsXG4gIFdvcmtzcGFjZSxcbiAgV29ya3NwYWNlU3RvcmUsXG4gIFdpZGdldCxcbiAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3ksXG4gIEVudGl0eVN0b3JlRmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3ksXG4gIEVudGl0eVN0YXRlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IFdmc1dvcmtzcGFjZSwgRmVhdHVyZVdvcmtzcGFjZSwgRWRpdGlvbldvcmtzcGFjZSB9IGZyb20gJ0BpZ28yL2dlbyc7XG5pbXBvcnQgeyBGZWF0dXJlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9mZWF0dXJlLWFjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBXZnNBY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3dmcy1hY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEVkaXRpb25BY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2VkaXRpb24tYWN0aW9ucy5zZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIG9mIHRoZSB3b3Jrc3BhY2UgbW9kdWxlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN0YXRlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwdWJsaWMgd29ya3NwYWNlUGFuZWxFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHdvcmtzcGFjZUVuYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSB3b3Jrc3BhY2VNYXhpbWl6ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ3dvcmtzcGFjZU1heGltaXplJykgYXMgYm9vbGVhblxuICApO1xuICBwcml2YXRlIGFjdGlvbk1heGltaXplJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKiogU3Vic2NyaXB0aW9uIHRvIHRoZSBhY3RpdmUgd29ya3NwYWNlICovXG4gIHByaXZhdGUgYWN0aXZlV29ya3NwYWNlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKiogU3Vic2NyaXB0aW9uIHRvIHRoZSBhY3RpdmUgd29ya3NwYWNlIHdpZGdldCAqL1xuICBwcml2YXRlIGFjdGl2ZVdvcmtzcGFjZVdpZGdldCQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqIEFjdGl2ZSB3aWRnZXQgb2JzZXJ2YWJsZS4gT25seSBvbmUgbWF5IGJlIGFjdGl2ZSBmb3IgYWxsIGF2YWlsYWJsZSB3b3Jrc3BhY2VzICovXG4gIHJlYWRvbmx5IGFjdGl2ZVdvcmtzcGFjZVdpZGdldCQ6IEJlaGF2aW9yU3ViamVjdDxXaWRnZXQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaWRnZXQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIGFjdGl2ZSB3b3Jrc3BhY2VcbiAgICovXG4gIHB1YmxpYyB3b3Jrc3BhY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXb3Jrc3BhY2U+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoYXQgaG9sZHMgYWxsIHRoZSBhdmFpbGFibGUgd29ya3NwYWNlc1xuICAgKi9cbiAgZ2V0IHN0b3JlKCk6IFdvcmtzcGFjZVN0b3JlIHsgcmV0dXJuIHRoaXMuX3N0b3JlOyB9XG4gIHByaXZhdGUgX3N0b3JlOiBXb3Jrc3BhY2VTdG9yZTtcblxuICBnZXQgd29ya3NwYWNlU2VsZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLndvcmtzcGFjZSQudmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2UkLnZhbHVlPy5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcubWFueUJ5KChyKSA9PiByLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldCB3b3Jrc3BhY2VTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8RW50aXR5UmVjb3JkPG9iamVjdCwgRW50aXR5U3RhdGU+W10+IHtcbiAgICBpZiAodGhpcy53b3Jrc3BhY2UkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2UkLnZhbHVlPy5lbnRpdHlTdG9yZT8uc3RhdGVWaWV3Lm1hbnlCeSQoKHIpID0+IHIuc3RhdGUuc2VsZWN0ZWQgPT09IHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmVhdHVyZUFjdGlvbnNTZXJ2aWNlOiBGZWF0dXJlQWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB3ZnNBY3Rpb25zU2VydmljZTogV2ZzQWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBlZGl0aW9uQWN0aW9uc1NlcnZpY2U6IEVkaXRpb25BY3Rpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmluaXRXb3Jrc3BhY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgd29ya3NwYWNlIHN0b3JlLiBFYWNoIHRpbWUgYSB3b3Jrc3BhY2UgaXMgYWN0aXZhdGVkLFxuICAgKiBzdWJzY3JpYmUgdG8gaXQncyBhY3RpdmUgd2lkZ2V0LiBUcmFja2luZyB0aGUgYWN0aXZlIHdpZGdldCBpcyB1c2VmdWxcbiAgICogdG8gbWFrZSBzdXJlIG9ubHkgb25lIHdpZGdldCBpcyBhY3RpdmUgYXQgYSB0aW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBpbml0V29ya3NwYWNlcygpIHtcbiAgICB0aGlzLl9zdG9yZSA9IG5ldyBXb3Jrc3BhY2VTdG9yZShbXSk7XG4gICAgdGhpcy5fc3RvcmUuc3RhdGVWaWV3XG4gICAgICAuZmlyc3RCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHJlY29yZC5zdGF0ZS5hY3RpdmUgPT09IHRydWUpXG4gICAgICAuc3Vic2NyaWJlKChyZWNvcmQ6IEVudGl0eVJlY29yZDxXb3Jrc3BhY2U+KSA9PiB7XG4gICAgICAgIGNvbnN0IHdvcmtzcGFjZSA9IHJlY29yZCA/IHJlY29yZC5lbnRpdHkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMud29ya3NwYWNlJC5uZXh0KHdvcmtzcGFjZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwkKClcbiAgICAuc3Vic2NyaWJlKCh3b3Jrc3BhY2VzOiBFbnRpdHlSZWNvcmQ8V29ya3NwYWNlPltdKSA9PiB7XG4gICAgICB3b3Jrc3BhY2VzLm1hcCgod2tzOiBFbnRpdHlSZWNvcmQ8V29ya3NwYWNlPikgPT4ge1xuICAgICAgICBpZiAod2tzLmVudGl0eS5hY3Rpb25TdG9yZS5lbXB0eSkge1xuICAgICAgICAgIGlmICh3a3MuZW50aXR5IGluc3RhbmNlb2YgV2ZzV29ya3NwYWNlKSB7XG4gICAgICAgICAgICB0aGlzLndmc0FjdGlvbnNTZXJ2aWNlLmxvYWRBY3Rpb25zKFxuICAgICAgICAgICAgICB3a3MuZW50aXR5LFxuICAgICAgICAgICAgICB0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHdrcy5lbnRpdHkgaW5zdGFuY2VvZiBGZWF0dXJlV29ya3NwYWNlKSB7XG4gICAgICAgICAgICB0aGlzLmZlYXR1cmVBY3Rpb25zU2VydmljZS5sb2FkQWN0aW9ucyhcbiAgICAgICAgICAgICAgd2tzLmVudGl0eSxcbiAgICAgICAgICAgICAgdGhpcy5yb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh3a3MuZW50aXR5IGluc3RhbmNlb2YgRWRpdGlvbldvcmtzcGFjZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0aW9uQWN0aW9uc1NlcnZpY2UubG9hZEFjdGlvbnMoXG4gICAgICAgICAgICAgIHdrcy5lbnRpdHksXG4gICAgICAgICAgICAgIHRoaXMucm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWN0aW9uTWF4aW1pemUkJC5wdXNoKHRoaXMuZmVhdHVyZUFjdGlvbnNTZXJ2aWNlLm1heGltaXplJC5zdWJzY3JpYmUobWF4aW1pemVkID0+IHtcbiAgICAgIHRoaXMuc2V0V29ya3NwYWNlSXNNYXhpbWl6ZWQobWF4aW1pemVkKTtcbiAgICB9KSk7XG5cbiAgICB0aGlzLmFjdGlvbk1heGltaXplJCQucHVzaCh0aGlzLndmc0FjdGlvbnNTZXJ2aWNlLm1heGltaXplJC5zdWJzY3JpYmUobWF4aW1pemVkID0+IHtcbiAgICAgIHRoaXMuc2V0V29ya3NwYWNlSXNNYXhpbWl6ZWQobWF4aW1pemVkKTtcbiAgICB9KSk7XG5cbiAgICB0aGlzLmFjdGlvbk1heGltaXplJCQucHVzaCh0aGlzLmVkaXRpb25BY3Rpb25zU2VydmljZS5tYXhpbWl6ZSQuc3Vic2NyaWJlKG1heGltaXplZCA9PiB7XG4gICAgICB0aGlzLnNldFdvcmtzcGFjZUlzTWF4aW1pemVkKG1heGltaXplZCk7XG4gICAgfSkpO1xuXG4gICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2UkJCA9IHRoaXMud29ya3NwYWNlJFxuICAgICAgLnN1YnNjcmliZSgod29ya3NwYWNlOiBXb3Jrc3BhY2UpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlV29ya3NwYWNlV2lkZ2V0JCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlV29ya3NwYWNlV2lkZ2V0JCQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVdvcmtzcGFjZVdpZGdldCQkID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdvcmtzcGFjZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJCA9IHdvcmtzcGFjZS53aWRnZXQkXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWRnZXQ6IFdpZGdldCkgPT4gdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkLm5leHQod2lkZ2V0KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQkID0gdGhpcy5yb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQuc3Vic2NyaWJlKChyb3dzSW5NYXBFeHRlbnQpID0+IHtcbiAgICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwoKS5tYXAoKHdrczogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcbiAgICAgICAgaWYgKCF3a3MuZW50aXR5LmFjdGlvblN0b3JlLmVtcHR5KSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyU3RyYXRlZ3kgPSB3a3MuZW50aXR5LmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5KTtcbiAgICAgICAgICBpZiAoZmlsdGVyU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGlmIChyb3dzSW5NYXBFeHRlbnQpIHtcbiAgICAgICAgICAgICAgZmlsdGVyU3RyYXRlZ3kuYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpbHRlclN0cmF0ZWd5LmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kJCA9IHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJC5zdWJzY3JpYmUoKHNlbGVjdE9ubHkpID0+IHtcbiAgICAgIHRoaXMuX3N0b3JlLnN0YXRlVmlldy5hbGwoKS5tYXAoKHdrczogRW50aXR5UmVjb3JkPFdvcmtzcGFjZT4pID0+IHtcbiAgICAgICAgaWYgKCF3a3MuZW50aXR5LmFjdGlvblN0b3JlLmVtcHR5KSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyU3RyYXRlZ3kgPSB3a3MuZW50aXR5LmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKEVudGl0eVN0b3JlRmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3kpO1xuICAgICAgICAgIGlmIChmaWx0ZXJTdHJhdGVneSkge1xuICAgICAgICAgICAgaWYgKHNlbGVjdE9ubHkpIHtcbiAgICAgICAgICAgICAgZmlsdGVyU3RyYXRlZ3kuYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpbHRlclN0cmF0ZWd5LmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXb3Jrc3BhY2VJc01heGltaXplZChtYXhpbWl6ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnd29ya3NwYWNlTWF4aW1pemUnLCBtYXhpbWl6ZWQpO1xuICAgIHRoaXMud29ya3NwYWNlTWF4aW1pemUkLm5leHQobWF4aW1pemVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVXb3Jrc3BhY2VCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB3a3NGcm9tSWQgPSB0aGlzLnN0b3JlXG4gICAgLmFsbCgpXG4gICAgLmZpbmQod29ya3NwYWNlID0+IHdvcmtzcGFjZS5pZCA9PT0gaWQpO1xuICAgIGlmICh3a3NGcm9tSWQpIHtcbiAgICAgIHRoaXMuc3RvcmUuYWN0aXZhdGVXb3Jrc3BhY2Uod2tzRnJvbUlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlV29ya3NwYWNlQnlUaXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgd2tzRnJvbVRpdGxlID0gdGhpcy5zdG9yZVxuICAgICAgLmFsbCgpXG4gICAgICAuZmluZCh3b3Jrc3BhY2UgPT4gd29ya3NwYWNlLnRpdGxlID09PSB0aXRsZSk7XG4gICAgaWYgKHdrc0Zyb21UaXRsZSkge1xuICAgICAgdGhpcy5zdG9yZS5hY3RpdmF0ZVdvcmtzcGFjZSh3a3NGcm9tVGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUZWFyZG93biBhbGwgdGhlIHdvcmtzcGFjZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRlYXJkb3duV29ya3NwYWNlcygpO1xuICAgIHRoaXMuYWN0aW9uTWF4aW1pemUkJC5tYXAoYSA9PiBhLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCQpIHtcbiAgICAgIHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQpIHtcbiAgICAgIHRoaXMuc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVhcmRvd24gdGhlIHdvcmtzcGFjZSBzdG9yZSBhbmQgYW55IHN1YnNjcmliZXJzXG4gICAqL1xuICBwcml2YXRlIHRlYXJkb3duV29ya3NwYWNlcygpIHtcbiAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuYWN0aXZlV29ya3NwYWNlV2lkZ2V0JCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hY3RpdmVXb3Jrc3BhY2VXaWRnZXQkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3RpdmVXb3Jrc3BhY2UkJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFjdGl2ZVdvcmtzcGFjZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,35 +1,35 @@
1
- /*
2
- * Public API Surface of tools
3
- */
4
- export * from './lib/integration.module';
5
- export * from './lib/about/about.module';
6
- export * from './lib/analytics/analytics.module';
7
- export * from './lib/storage/storage.module';
8
- export * from './lib/context/context.module';
9
- export * from './lib/catalog/catalog.module';
10
- export * from './lib/directions/directions.module';
11
- export * from './lib/draw/draw.module';
12
- export * from './lib/workspace/workspace.module';
13
- export * from './lib/filter/filter.module';
14
- export * from './lib/import-export/import-export.module';
15
- export * from './lib/map/map.module';
16
- export * from './lib/measure/measure.module';
17
- export * from './lib/print/print.module';
18
- export * from './lib/search/search.module';
19
- export * from './lib/tool/tool.module';
20
- export * from './lib/about';
21
- export * from './lib/analytics';
22
- export * from './lib/context';
23
- export * from './lib/catalog';
24
- export * from './lib/directions';
25
- export * from './lib/draw';
26
- export * from './lib/workspace';
27
- export * from './lib/filter';
28
- export * from './lib/import-export';
29
- export * from './lib/map';
30
- export * from './lib/measure';
31
- export * from './lib/print';
32
- export * from './lib/search';
33
- export * from './lib/tool';
34
- export * from './lib/storage';
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRvb2xzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZWdyYXRpb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWJvdXQvYWJvdXQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5hbHl0aWNzL2FuYWx5dGljcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yYWdlL3N0b3JhZ2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGV4dC9jb250ZXh0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhdGFsb2cvY2F0YWxvZy5tb2R1bGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RyYXcvZHJhdy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93b3Jrc3BhY2Uvd29ya3NwYWNlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlci9maWx0ZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcC9tYXAubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVhc3VyZS9tZWFzdXJlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW50L3ByaW50Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlYXJjaC9zZWFyY2gubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9vbC90b29sLm1vZHVsZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYm91dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuYWx5dGljcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRleHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRhbG9nJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RyYXcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93b3Jrc3BhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBvcnQtZXhwb3J0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVhc3VyZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VhcmNoJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9vbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JhZ2UnO1xyXG4iXX0=
1
+ /*
2
+ * Public API Surface of tools
3
+ */
4
+ export * from './lib/integration.module';
5
+ export * from './lib/about/about.module';
6
+ export * from './lib/analytics/analytics.module';
7
+ export * from './lib/storage/storage.module';
8
+ export * from './lib/context/context.module';
9
+ export * from './lib/catalog/catalog.module';
10
+ export * from './lib/directions/directions.module';
11
+ export * from './lib/draw/draw.module';
12
+ export * from './lib/workspace/workspace.module';
13
+ export * from './lib/filter/filter.module';
14
+ export * from './lib/import-export/import-export.module';
15
+ export * from './lib/map/map.module';
16
+ export * from './lib/measure/measure.module';
17
+ export * from './lib/print/print.module';
18
+ export * from './lib/search/search.module';
19
+ export * from './lib/tool/tool.module';
20
+ export * from './lib/about';
21
+ export * from './lib/analytics';
22
+ export * from './lib/context';
23
+ export * from './lib/catalog';
24
+ export * from './lib/directions';
25
+ export * from './lib/draw';
26
+ export * from './lib/workspace';
27
+ export * from './lib/filter';
28
+ export * from './lib/import-export';
29
+ export * from './lib/map';
30
+ export * from './lib/measure';
31
+ export * from './lib/print';
32
+ export * from './lib/search';
33
+ export * from './lib/tool';
34
+ export * from './lib/storage';
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0b29sc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVncmF0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYm91dC9hYm91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5hbHl0aWNzL2FuYWx5dGljcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmFnZS9zdG9yYWdlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250ZXh0L2NvbnRleHQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhdGFsb2cvY2F0YWxvZy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RyYXcvZHJhdy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd29ya3NwYWNlL3dvcmtzcGFjZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsdGVyL2ZpbHRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXAvbWFwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZWFzdXJlL21lYXN1cmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW50L3ByaW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWFyY2gvc2VhcmNoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b29sL3Rvb2wubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWJvdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5hbHl0aWNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F0YWxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RyYXcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd29ya3NwYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBvcnQtZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZWFzdXJlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlYXJjaCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b29sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JhZ2UnO1xuIl19