@igo2/geo 1.14.2 → 1.14.3
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.
- package/esm2020/igo2-geo.mjs +4 -4
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +300 -300
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +305 -305
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -246
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
- package/esm2020/lib/catalog/catalog.module.mjs +52 -52
- package/esm2020/lib/catalog/index.mjs +4 -4
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
- package/esm2020/lib/catalog/shared/index.mjs +4 -4
- package/esm2020/lib/datasource/datasource.module.mjs +21 -21
- package/esm2020/lib/datasource/index.mjs +2 -2
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
- package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
- package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
- package/esm2020/lib/datasource/shared/index.mjs +4 -4
- package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
- package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
- package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
- package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
- package/esm2020/lib/datasource/utils/index.mjs +2 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
- package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
- package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
- package/esm2020/lib/directions/directions-results/index.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
- package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
- package/esm2020/lib/directions/directions.component.mjs +310 -310
- package/esm2020/lib/directions/directions.module.mjs +101 -101
- package/esm2020/lib/directions/index.mjs +6 -6
- package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
- package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
- package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
- package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
- package/esm2020/lib/directions/shared/index.mjs +5 -5
- package/esm2020/lib/directions/shared/store.mjs +23 -23
- package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
- package/esm2020/lib/download/download-button/index.mjs +1 -1
- package/esm2020/lib/download/download.module.mjs +41 -41
- package/esm2020/lib/download/index.mjs +2 -2
- package/esm2020/lib/download/shared/download.interface.mjs +1 -1
- package/esm2020/lib/download/shared/download.service.mjs +64 -64
- package/esm2020/lib/download/shared/index.mjs +2 -2
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
- package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
- package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
- package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
- package/esm2020/lib/draw/index.mjs +2 -2
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
- package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
- package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
- package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
- package/esm2020/lib/draw/shared/index.mjs +5 -5
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
- package/esm2020/lib/feature/feature.module.mjs +27 -27
- package/esm2020/lib/feature/index.mjs +3 -3
- package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
- package/esm2020/lib/feature/shared/index.mjs +6 -6
- package/esm2020/lib/feature/shared/store.mjs +123 -123
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
- package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
- package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
- package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
- package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
- package/esm2020/lib/filter/filter.module.mjs +288 -288
- package/esm2020/lib/filter/index.mjs +15 -15
- package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
- package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
- package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
- package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
- package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
- package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
- package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
- package/esm2020/lib/filter/shared/index.mjs +11 -11
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
- package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
- package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
- package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
- package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
- package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
- package/esm2020/lib/geo.module.mjs +101 -101
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
- package/esm2020/lib/geometry/geometry.module.mjs +26 -26
- package/esm2020/lib/geometry/index.mjs +3 -3
- package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
- package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
- package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
- package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
- package/esm2020/lib/geometry/shared/index.mjs +4 -4
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
- package/esm2020/lib/import-export/export-button/index.mjs +1 -1
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
- package/esm2020/lib/import-export/import-export/index.mjs +1 -1
- package/esm2020/lib/import-export/import-export.module.mjs +95 -95
- package/esm2020/lib/import-export/index.mjs +4 -4
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
- package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
- package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.service.mjs +194 -194
- package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
- package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
- package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
- package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
- package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
- package/esm2020/lib/import-export/shared/index.mjs +10 -10
- package/esm2020/lib/import-export/style-list/index.mjs +4 -4
- package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
- package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
- package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
- package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
- package/esm2020/lib/layer/index.mjs +10 -10
- package/esm2020/lib/layer/layer-item/index.mjs +1 -1
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
- package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
- package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
- package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
- package/esm2020/lib/layer/layer-list/index.mjs +3 -3
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
- package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
- package/esm2020/lib/layer/layer.module.mjs +184 -184
- package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2020/lib/layer/shared/index.mjs +6 -6
- package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
- package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
- package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
- package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
- package/esm2020/lib/layer/shared/style.service.mjs +355 -355
- package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
- package/esm2020/lib/layer/style-modal/index.mjs +1 -1
- package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
- package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
- package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
- package/esm2020/lib/layer/utils/index.mjs +5 -5
- package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
- package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
- package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
- package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
- package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -142
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
- package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
- package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
- package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
- package/esm2020/lib/map/index.mjs +13 -13
- package/esm2020/lib/map/info-section/index.mjs +1 -1
- package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
- package/esm2020/lib/map/map-browser/index.mjs +1 -1
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
- package/esm2020/lib/map/map-center/index.mjs +1 -1
- package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
- package/esm2020/lib/map/map.module.mjs +126 -126
- package/esm2020/lib/map/menu-button/index.mjs +1 -1
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
- package/esm2020/lib/map/offline-button/index.mjs +1 -1
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
- package/esm2020/lib/map/rotation-button/index.mjs +1 -1
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
- package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
- package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
- package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
- package/esm2020/lib/map/shared/index.mjs +13 -13
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
- package/esm2020/lib/map/shared/map.enums.mjs +5 -5
- package/esm2020/lib/map/shared/map.interface.mjs +1 -1
- package/esm2020/lib/map/shared/map.mjs +406 -406
- package/esm2020/lib/map/shared/map.service.mjs +28 -28
- package/esm2020/lib/map/shared/map.utils.mjs +462 -462
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
- package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2020/lib/map/shared/projection.service.mjs +64 -64
- package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
- package/esm2020/lib/map/swipe-control/index.mjs +1 -1
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
- package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
- package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
- package/esm2020/lib/map/zoom-button/index.mjs +1 -1
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
- package/esm2020/lib/measure/index.mjs +3 -3
- package/esm2020/lib/measure/measure.module.mjs +19 -19
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
- package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
- package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
- package/esm2020/lib/measure/shared/index.mjs +3 -3
- package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
- package/esm2020/lib/metadata/index.mjs +2 -2
- package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
- package/esm2020/lib/metadata/metadata.module.mjs +54 -54
- package/esm2020/lib/metadata/shared/index.mjs +2 -2
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
- package/esm2020/lib/offline/geoDB/index.mjs +4 -4
- package/esm2020/lib/offline/index.mjs +2 -2
- package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
- package/esm2020/lib/offline/shared/index.mjs +1 -1
- package/esm2020/lib/overlay/index.mjs +1 -1
- package/esm2020/lib/overlay/overlay.module.mjs +22 -22
- package/esm2020/lib/overlay/shared/index.mjs +6 -6
- package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
- package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
- package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
- package/esm2020/lib/print/index.mjs +3 -3
- package/esm2020/lib/print/print/print.component.mjs +125 -125
- package/esm2020/lib/print/print-form/index.mjs +1 -1
- package/esm2020/lib/print/print-form/print-form.component.mjs +427 -427
- package/esm2020/lib/print/print.module.mjs +64 -64
- package/esm2020/lib/print/shared/geopdf.mjs +57 -57
- package/esm2020/lib/print/shared/index.mjs +4 -4
- package/esm2020/lib/print/shared/print.interface.mjs +1 -1
- package/esm2020/lib/print/shared/print.service.mjs +933 -933
- package/esm2020/lib/print/shared/print.type.mjs +29 -29
- package/esm2020/lib/query/index.mjs +1 -1
- package/esm2020/lib/query/query.module.mjs +28 -28
- package/esm2020/lib/query/shared/index.mjs +6 -6
- package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
- package/esm2020/lib/query/shared/query.directive.mjs +260 -260
- package/esm2020/lib/query/shared/query.enums.mjs +29 -29
- package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2020/lib/query/shared/query.service.mjs +732 -732
- package/esm2020/lib/query/shared/query.utils.mjs +36 -36
- package/esm2020/lib/search/index.mjs +11 -11
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +511 -511
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +117 -117
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +370 -370
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +123 -123
- package/esm2020/lib/search/search-results/search-results.component.mjs +339 -339
- package/esm2020/lib/search/search-results/search-results.module.mjs +103 -103
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +441 -441
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
- package/esm2020/lib/search/search.module.mjs +66 -66
- package/esm2020/lib/search/shared/index.mjs +8 -8
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
- package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
- package/esm2020/lib/search/shared/search.enums.mjs +3 -3
- package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/search.service.mjs +120 -120
- package/esm2020/lib/search/shared/search.utils.mjs +90 -90
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.mjs +152 -152
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.mjs +766 -766
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.mjs +319 -319
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
- package/esm2020/lib/search/shared/sources/index.mjs +17 -17
- package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.mjs +178 -178
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
- package/esm2020/lib/toast/index.mjs +1 -1
- package/esm2020/lib/toast/toast.component.mjs +112 -112
- package/esm2020/lib/toast/toast.module.mjs +44 -44
- package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
- package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
- package/esm2020/lib/utils/googleLinks.mjs +12 -12
- package/esm2020/lib/utils/id-generator.mjs +109 -109
- package/esm2020/lib/utils/index.mjs +5 -5
- package/esm2020/lib/utils/osmLinks.mjs +9 -9
- package/esm2020/lib/wkt/index.mjs +1 -1
- package/esm2020/lib/wkt/shared/index.mjs +1 -1
- package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
- package/esm2020/lib/wkt/wkt.module.mjs +21 -21
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
- package/esm2020/lib/workspace/index.mjs +7 -7
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
- package/esm2020/lib/workspace/shared/index.mjs +7 -7
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
- package/esm2020/lib/workspace/widgets/index.mjs +3 -3
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
- package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
- package/esm2020/lib/workspace/workspace.module.mjs +61 -61
- package/esm2020/public_api.mjs +54 -54
- package/fesm2015/igo2-geo.mjs +44986 -44986
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +43029 -43030
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -126
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -80
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
- package/lib/catalog/catalog.module.d.ts +14 -14
- package/lib/catalog/index.d.ts +4 -4
- package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
- package/lib/catalog/shared/catalog.enum.d.ts +14 -14
- package/lib/catalog/shared/catalog.interface.d.ts +66 -66
- package/lib/catalog/shared/catalog.service.d.ts +36 -36
- package/lib/catalog/shared/index.d.ts +4 -4
- package/lib/datasource/datasource.module.d.ts +8 -8
- package/lib/datasource/index.d.ts +2 -2
- package/lib/datasource/shared/capabilities.service.d.ts +37 -37
- package/lib/datasource/shared/datasource.service.d.ts +37 -37
- package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
- package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
- package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
- package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
- package/lib/datasource/shared/datasources/index.d.ts +35 -35
- package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
- package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
- package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
- package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
- package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
- package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
- package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
- package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
- package/lib/datasource/shared/index.d.ts +4 -4
- package/lib/datasource/shared/options/index.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
- package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
- package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
- package/lib/datasource/shared/options/options.service.d.ts +6 -6
- package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
- package/lib/datasource/utils/index.d.ts +2 -2
- package/lib/datasource/utils/tilegrid.d.ts +2 -2
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
- package/lib/directions/directions-buttons/index.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
- package/lib/directions/directions-inputs/index.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
- package/lib/directions/directions-results/index.d.ts +1 -1
- package/lib/directions/directions-sources/directions-source.d.ts +7 -7
- package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
- package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
- package/lib/directions/directions-sources/index.d.ts +4 -4
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
- package/lib/directions/directions.component.d.ts +56 -56
- package/lib/directions/directions.module.d.ts +26 -26
- package/lib/directions/index.d.ts +6 -6
- package/lib/directions/shared/directions-source.service.d.ts +11 -11
- package/lib/directions/shared/directions.enum.d.ts +22 -22
- package/lib/directions/shared/directions.interface.d.ts +126 -126
- package/lib/directions/shared/directions.service.d.ts +13 -13
- package/lib/directions/shared/directions.utils.d.ts +42 -42
- package/lib/directions/shared/index.d.ts +5 -5
- package/lib/directions/shared/store.d.ts +18 -18
- package/lib/download/download-button/download-button.component.d.ts +18 -18
- package/lib/download/download-button/index.d.ts +1 -1
- package/lib/download/download.module.d.ts +14 -14
- package/lib/download/index.d.ts +2 -2
- package/lib/download/shared/download.interface.d.ts +10 -10
- package/lib/download/shared/download.service.d.ts +11 -11
- package/lib/download/shared/index.d.ts +2 -2
- package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
- package/lib/draw/draw/draw-popup.component.d.ts +63 -63
- package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
- package/lib/draw/draw/draw.component.d.ts +239 -239
- package/lib/draw/draw/draw.module.d.ts +34 -34
- package/lib/draw/drawingTool.module.d.ts +7 -7
- package/lib/draw/index.d.ts +2 -2
- package/lib/draw/shared/draw-icon.service.d.ts +12 -12
- package/lib/draw/shared/draw-style.service.d.ts +36 -36
- package/lib/draw/shared/draw.enum.d.ts +32 -32
- package/lib/draw/shared/draw.interface.d.ts +40 -40
- package/lib/draw/shared/draw.utils.d.ts +35 -35
- package/lib/draw/shared/index.d.ts +5 -5
- package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
- package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
- package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
- package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
- package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
- package/lib/feature/feature.module.d.ts +9 -9
- package/lib/feature/index.d.ts +3 -3
- package/lib/feature/shared/feature.enums.d.ts +7 -7
- package/lib/feature/shared/feature.interfaces.d.ts +74 -74
- package/lib/feature/shared/feature.utils.d.ts +104 -104
- package/lib/feature/shared/index.d.ts +6 -6
- package/lib/feature/shared/store.d.ts +71 -71
- package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
- package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
- package/lib/feature/shared/strategies/index.d.ts +5 -5
- package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
- package/lib/feature/shared/strategies/loading.d.ts +75 -75
- package/lib/feature/shared/strategies/selection.d.ts +176 -176
- package/lib/feature/shared/strategies.utils.d.ts +17 -17
- package/lib/filter/filter.module.d.ts +53 -53
- package/lib/filter/index.d.ts +15 -15
- package/lib/filter/ogc-filter-button/index.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
- package/lib/filter/ogc-filter-form/index.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
- package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
- package/lib/filter/ogc-filter-time/index.d.ts +2 -2
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
- package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
- package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
- package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
- package/lib/filter/shared/index.d.ts +11 -11
- package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
- package/lib/filter/shared/ogc-filter.d.ts +29 -29
- package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
- package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
- package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
- package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
- package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
- package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
- package/lib/filter/shared/time-filter.enum.d.ts +10 -10
- package/lib/filter/shared/time-filter.interface.d.ts +29 -29
- package/lib/filter/shared/time-filter.service.d.ts +11 -11
- package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
- package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
- package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
- package/lib/filter/time-filter-button/index.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
- package/lib/filter/time-filter-form/index.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
- package/lib/filter/time-filter-item/index.d.ts +1 -1
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
- package/lib/filter/time-filter-list/index.d.ts +2 -2
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
- package/lib/geo.module.d.ts +28 -28
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
- package/lib/geometry/geometry.module.d.ts +8 -8
- package/lib/geometry/index.d.ts +3 -3
- package/lib/geometry/shared/controls/draw.d.ts +150 -150
- package/lib/geometry/shared/controls/index.d.ts +3 -3
- package/lib/geometry/shared/controls/modify.d.ts +228 -228
- package/lib/geometry/shared/controls/slice.d.ts +99 -99
- package/lib/geometry/shared/geometry.errors.d.ts +11 -11
- package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
- package/lib/geometry/shared/geometry.utils.d.ts +45 -45
- package/lib/geometry/shared/index.d.ts +4 -4
- package/lib/import-export/export-button/export-button.component.d.ts +16 -16
- package/lib/import-export/export-button/index.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +104 -104
- package/lib/import-export/import-export/index.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +26 -26
- package/lib/import-export/index.d.ts +4 -4
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
- package/lib/import-export/shared/export.errors.d.ts +8 -8
- package/lib/import-export/shared/export.interface.d.ts +11 -11
- package/lib/import-export/shared/export.service.d.ts +30 -30
- package/lib/import-export/shared/export.type.d.ts +16 -16
- package/lib/import-export/shared/export.utils.d.ts +19 -19
- package/lib/import-export/shared/import.errors.d.ts +20 -20
- package/lib/import-export/shared/import.interface.d.ts +8 -8
- package/lib/import-export/shared/import.service.d.ts +31 -31
- package/lib/import-export/shared/import.utils.d.ts +18 -18
- package/lib/import-export/shared/index.d.ts +10 -10
- package/lib/import-export/style-list/index.d.ts +4 -4
- package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
- package/lib/import-export/style-list/style-list.module.d.ts +8 -8
- package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
- package/lib/import-export/style-list/style-list.service.d.ts +18 -18
- package/lib/layer/index.d.ts +10 -10
- package/lib/layer/layer-item/index.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
- package/lib/layer/layer-legend/index.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
- package/lib/layer/layer-legend-item/index.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
- package/lib/layer/layer-legend-list/index.d.ts +2 -2
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
- package/lib/layer/layer-list/index.d.ts +3 -3
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
- package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
- package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
- package/lib/layer/layer-list-tool/index.d.ts +4 -4
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
- package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
- package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
- package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
- package/lib/layer/layer.module.d.ts +36 -36
- package/lib/layer/shared/clusterParam.d.ts +13 -13
- package/lib/layer/shared/index.d.ts +6 -6
- package/lib/layer/shared/layer.enums.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +30 -30
- package/lib/layer/shared/layers/any-layer.d.ts +6 -6
- package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
- package/lib/layer/shared/layers/image-layer.d.ts +22 -22
- package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
- package/lib/layer/shared/layers/index.d.ts +12 -12
- package/lib/layer/shared/layers/layer.d.ts +62 -62
- package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
- package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
- package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
- package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
- package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
- package/lib/layer/shared/style.service.d.ts +57 -57
- package/lib/layer/shared/vector-style.interface.d.ts +38 -38
- package/lib/layer/style-modal/index.d.ts +1 -1
- package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
- package/lib/layer/track-feature-button/index.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
- package/lib/layer/utils/image-watcher.d.ts +17 -17
- package/lib/layer/utils/index.d.ts +5 -5
- package/lib/layer/utils/layer.utils.d.ts +2 -2
- package/lib/layer/utils/outputLegend.d.ts +7 -7
- package/lib/layer/utils/tile-watcher.d.ts +14 -14
- package/lib/layer/utils/vector-watcher.d.ts +13 -13
- package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
- package/lib/map/baselayers-switcher/index.d.ts +2 -2
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
- package/lib/map/geolocate-button/index.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
- package/lib/map/home-extent-button/index.d.ts +1 -1
- package/lib/map/index.d.ts +13 -13
- package/lib/map/info-section/index.d.ts +1 -1
- package/lib/map/info-section/info-section.component.d.ts +7 -7
- package/lib/map/map-browser/index.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +25 -25
- package/lib/map/map-center/index.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +31 -31
- package/lib/map/map.module.d.ts +28 -28
- package/lib/map/menu-button/index.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +17 -17
- package/lib/map/offline-button/index.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +23 -23
- package/lib/map/rotation-button/index.d.ts +1 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
- package/lib/map/shared/controllers/controller.d.ts +29 -29
- package/lib/map/shared/controllers/geolocation.d.ts +112 -112
- package/lib/map/shared/controllers/index.d.ts +3 -3
- package/lib/map/shared/controllers/view.d.ts +200 -200
- package/lib/map/shared/hover-feature.directive.d.ts +132 -132
- package/lib/map/shared/index.d.ts +13 -13
- package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
- package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
- package/lib/map/shared/map.d.ts +135 -135
- package/lib/map/shared/map.enums.d.ts +4 -4
- package/lib/map/shared/map.interface.d.ts +57 -57
- package/lib/map/shared/map.service.d.ts +19 -19
- package/lib/map/shared/map.utils.d.ts +90 -90
- package/lib/map/shared/mapOffline.directive.d.ts +21 -21
- package/lib/map/shared/projection.interfaces.d.ts +29 -29
- package/lib/map/shared/projection.service.d.ts +19 -19
- package/lib/map/shared/projection.utils.d.ts +19 -19
- package/lib/map/swipe-control/index.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
- package/lib/map/utils/layer-watcher.d.ts +20 -20
- package/lib/map/wake-lock-button/index.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
- package/lib/map/zoom-button/index.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
- package/lib/measure/index.d.ts +3 -3
- package/lib/measure/measure.module.d.ts +7 -7
- package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
- package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
- package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
- package/lib/measure/measurer/measurer.component.d.ts +405 -405
- package/lib/measure/measurer/measurer.module.d.ts +25 -25
- package/lib/measure/shared/index.d.ts +3 -3
- package/lib/measure/shared/measure.enum.d.ts +33 -33
- package/lib/measure/shared/measure.interfaces.d.ts +21 -21
- package/lib/measure/shared/measure.utils.d.ts +180 -180
- package/lib/metadata/index.d.ts +2 -2
- package/lib/metadata/metadata-button/index.d.ts +1 -1
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
- package/lib/metadata/metadata.module.d.ts +15 -15
- package/lib/metadata/shared/index.d.ts +2 -2
- package/lib/metadata/shared/metadata.interface.d.ts +13 -13
- package/lib/metadata/shared/metadata.service.d.ts +8 -8
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
- package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
- package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
- package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
- package/lib/offline/geoDB/index.d.ts +4 -4
- package/lib/offline/index.d.ts +2 -2
- package/lib/offline/shared/geo-network.service.d.ts +28 -28
- package/lib/offline/shared/index.d.ts +1 -1
- package/lib/overlay/index.d.ts +1 -1
- package/lib/overlay/overlay.module.d.ts +9 -9
- package/lib/overlay/shared/index.d.ts +6 -6
- package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
- package/lib/overlay/shared/overlay.d.ts +81 -81
- package/lib/overlay/shared/overlay.directive.d.ts +18 -18
- package/lib/overlay/shared/overlay.enum.d.ts +6 -6
- package/lib/overlay/shared/overlay.service.d.ts +14 -14
- package/lib/overlay/shared/overlay.utils.d.ts +17 -17
- package/lib/print/index.d.ts +3 -3
- package/lib/print/print/print.component.d.ts +35 -35
- package/lib/print/print-form/index.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +97 -97
- package/lib/print/print.module.d.ts +19 -19
- package/lib/print/shared/geopdf.d.ts +1 -1
- package/lib/print/shared/index.d.ts +4 -4
- package/lib/print/shared/print.interface.d.ts +22 -22
- package/lib/print/shared/print.service.d.ts +168 -168
- package/lib/print/shared/print.type.d.ts +45 -45
- package/lib/query/index.d.ts +1 -1
- package/lib/query/query.module.d.ts +11 -11
- package/lib/query/shared/index.d.ts +6 -6
- package/lib/query/shared/query-search-source.d.ts +17 -17
- package/lib/query/shared/query-search-source.providers.d.ts +17 -17
- package/lib/query/shared/query.directive.d.ts +105 -105
- package/lib/query/shared/query.enums.d.ts +26 -26
- package/lib/query/shared/query.interfaces.d.ts +35 -35
- package/lib/query/shared/query.service.d.ts +56 -56
- package/lib/query/shared/query.utils.d.ts +27 -27
- package/lib/search/index.d.ts +11 -11
- package/lib/search/search-bar/search-bar.component.d.ts +230 -230
- package/lib/search/search-bar/search-bar.module.d.ts +23 -23
- package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
- package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
- package/lib/search/search-results/search-results-add-button.component.d.ts +76 -76
- package/lib/search/search-results/search-results-item.component.d.ts +47 -47
- package/lib/search/search-results/search-results.component.d.ts +161 -161
- package/lib/search/search-results/search-results.module.d.ts +28 -28
- package/lib/search/search-selector/search-selector.component.d.ts +58 -58
- package/lib/search/search-selector/search-selector.module.d.ts +19 -19
- package/lib/search/search-settings/search-settings.component.d.ts +102 -102
- package/lib/search/search-settings/search-settings.module.d.ts +20 -20
- package/lib/search/search.module.d.ts +14 -14
- package/lib/search/shared/index.d.ts +8 -8
- package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
- package/lib/search/shared/search-source-service.providers.d.ts +15 -15
- package/lib/search/shared/search-source.service.d.ts +32 -32
- package/lib/search/shared/search.enums.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +29 -29
- package/lib/search/shared/search.service.d.ts +53 -53
- package/lib/search/shared/search.utils.d.ts +39 -39
- package/lib/search/shared/sources/coordinates.d.ts +40 -40
- package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
- package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
- package/lib/search/shared/sources/icherche.d.ts +96 -96
- package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
- package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
- package/lib/search/shared/sources/ilayer.d.ts +55 -55
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
- package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
- package/lib/search/shared/sources/index.d.ts +17 -17
- package/lib/search/shared/sources/nominatim.d.ts +45 -45
- package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
- package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
- package/lib/search/shared/sources/source.d.ts +108 -108
- package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
- package/lib/search/shared/sources/storedqueries.d.ts +73 -73
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
- package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
- package/lib/toast/index.d.ts +1 -1
- package/lib/toast/toast.component.d.ts +33 -33
- package/lib/toast/toast.module.d.ts +14 -14
- package/lib/utils/commonVectorStyle.d.ts +14 -14
- package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
- package/lib/utils/googleLinks.d.ts +5 -5
- package/lib/utils/id-generator.d.ts +54 -54
- package/lib/utils/index.d.ts +5 -5
- package/lib/utils/osmLinks.d.ts +4 -4
- package/lib/wkt/index.d.ts +1 -1
- package/lib/wkt/shared/index.d.ts +1 -1
- package/lib/wkt/shared/wkt.service.d.ts +19 -19
- package/lib/wkt/wkt.module.d.ts +8 -8
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
- package/lib/workspace/confirmation-popup/index.d.ts +2 -2
- package/lib/workspace/index.d.ts +7 -7
- package/lib/workspace/shared/edition-workspace.d.ts +82 -82
- package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
- package/lib/workspace/shared/feature-workspace.d.ts +18 -18
- package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
- package/lib/workspace/shared/index.d.ts +7 -7
- package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
- package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
- package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
- package/lib/workspace/shared/workspace.utils.d.ts +10 -10
- package/lib/workspace/widgets/index.d.ts +3 -3
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
- package/lib/workspace/widgets/widgets.d.ts +9 -9
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
- package/lib/workspace/workspace.module.d.ts +14 -14
- package/package.json +4 -4
- package/public_api.d.ts +51 -51
|
@@ -1,388 +1,388 @@
|
|
|
1
|
-
import { Component, Input, ChangeDetectionStrategy, ViewChildren } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, of } from 'rxjs';
|
|
3
|
-
import { catchError, map } from 'rxjs/operators';
|
|
4
|
-
import { WMSDataSource } from '../../datasource';
|
|
5
|
-
import { SecureImagePipe } from '@igo2/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../datasource/shared/capabilities.service";
|
|
8
|
-
import * as i2 from "@igo2/core";
|
|
9
|
-
import * as i3 from "@angular/common/http";
|
|
10
|
-
import * as i4 from "@angular/material/form-field";
|
|
11
|
-
import * as i5 from "@angular/forms";
|
|
12
|
-
import * as i6 from "@angular/common";
|
|
13
|
-
import * as i7 from "@angular/material/icon";
|
|
14
|
-
import * as i8 from "@angular/material/select";
|
|
15
|
-
import * as i9 from "@angular/material/core";
|
|
16
|
-
import * as i10 from "@angular/material/tooltip";
|
|
17
|
-
import * as i11 from "@angular/material/list";
|
|
18
|
-
import * as i12 from "@igo2/common";
|
|
19
|
-
import * as i13 from "@ngx-translate/core";
|
|
20
|
-
const _c0 = ["renderedLegend"];
|
|
21
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
-
const _r15 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "mat-list-item")(1, "mat-icon", 7);
|
|
24
|
-
i0.ɵɵlistener("toggle", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template_mat_icon_toggle_1_listener($event) { i0.ɵɵrestoreView(_r15); const item_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.toggleLegendItem($event, item_r6)); });
|
|
25
|
-
i0.ɵɵelementEnd();
|
|
26
|
-
i0.ɵɵelementStart(2, "h4", 8);
|
|
27
|
-
i0.ɵɵtext(3);
|
|
28
|
-
i0.ɵɵpipe(4, "async");
|
|
29
|
-
i0.ɵɵelementEnd()();
|
|
30
|
-
} if (rf & 2) {
|
|
31
|
-
i0.ɵɵnextContext();
|
|
32
|
-
const _r10 = i0.ɵɵreference(3);
|
|
33
|
-
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
34
|
-
const ctx_r9 = i0.ɵɵnextContext(3);
|
|
35
|
-
i0.ɵɵadvance(1);
|
|
36
|
-
i0.ɵɵproperty("target", _r10)("collapsed", item_r6.collapsed);
|
|
37
|
-
i0.ɵɵadvance(2);
|
|
38
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 3, ctx_r9.computeItemTitle(item_r6)), " ");
|
|
39
|
-
} }
|
|
40
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_mat_option_4_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
-
i0.ɵɵelementStart(0, "mat-option", 11);
|
|
42
|
-
i0.ɵɵtext(1);
|
|
43
|
-
i0.ɵɵelementEnd();
|
|
44
|
-
} if (rf & 2) {
|
|
45
|
-
const style_r18 = ctx.$implicit;
|
|
46
|
-
i0.ɵɵproperty("value", style_r18.name);
|
|
47
|
-
i0.ɵɵadvance(1);
|
|
48
|
-
i0.ɵɵtextInterpolate(style_r18.title);
|
|
49
|
-
} }
|
|
50
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
-
const _r20 = i0.ɵɵgetCurrentView();
|
|
52
|
-
i0.ɵɵelementStart(0, "div")(1, "mat-form-field")(2, "mat-select", 9);
|
|
53
|
-
i0.ɵɵlistener("ngModelChange", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template_mat_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r19.currentStyle = $event); })("selectionChange", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template_mat_select_selectionChange_2_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r21.onChangeStyle()); });
|
|
54
|
-
i0.ɵɵpipe(3, "translate");
|
|
55
|
-
i0.ɵɵtemplate(4, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_mat_option_4_Template, 2, 2, "mat-option", 10);
|
|
56
|
-
i0.ɵɵelementEnd()()();
|
|
57
|
-
} if (rf & 2) {
|
|
58
|
-
const ctx_r11 = i0.ɵɵnextContext(5);
|
|
59
|
-
i0.ɵɵadvance(2);
|
|
60
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(3, 3, "igo.geo.layer.legend.selectStyle"))("ngModel", ctx_r11.currentStyle);
|
|
61
|
-
i0.ɵɵadvance(2);
|
|
62
|
-
i0.ɵɵproperty("ngForOf", ctx_r11.styles);
|
|
63
|
-
} }
|
|
64
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
-
const _r29 = i0.ɵɵgetCurrentView();
|
|
66
|
-
i0.ɵɵelementStart(0, "img", 14, 15);
|
|
67
|
-
i0.ɵɵlistener("load", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template_img_load_0_listener() { i0.ɵɵrestoreView(_r29); const item_r6 = i0.ɵɵnextContext(4).$implicit; const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.onLoadImage(item_r6.title)); });
|
|
68
|
-
i0.ɵɵpipe(2, "translate");
|
|
69
|
-
i0.ɵɵelementEnd();
|
|
70
|
-
} if (rf & 2) {
|
|
71
|
-
const item_r6 = i0.ɵɵnextContext(4).$implicit;
|
|
72
|
-
i0.ɵɵpropertyInterpolate("id", item_r6.title);
|
|
73
|
-
i0.ɵɵpropertyInterpolate("alt", i0.ɵɵpipeBind1(2, 3, "igo.geo.layer.legend.loadingLegendText"));
|
|
74
|
-
i0.ɵɵproperty("src", item_r6.imgGraphValue, i0.ɵɵsanitizeUrl);
|
|
75
|
-
} }
|
|
76
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_small_2_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
-
i0.ɵɵelementStart(0, "small");
|
|
78
|
-
i0.ɵɵtext(1);
|
|
79
|
-
i0.ɵɵpipe(2, "translate");
|
|
80
|
-
i0.ɵɵelementEnd();
|
|
81
|
-
} if (rf & 2) {
|
|
82
|
-
i0.ɵɵadvance(1);
|
|
83
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendScale"), " ");
|
|
84
|
-
} }
|
|
85
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
-
i0.ɵɵelementStart(0, "div");
|
|
87
|
-
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template, 3, 5, "img", 13);
|
|
88
|
-
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_small_2_Template, 3, 3, "small", 0);
|
|
89
|
-
i0.ɵɵelementEnd();
|
|
90
|
-
} if (rf & 2) {
|
|
91
|
-
const item_r6 = i0.ɵɵnextContext(3).$implicit;
|
|
92
|
-
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
93
|
-
i0.ɵɵadvance(1);
|
|
94
|
-
i0.ɵɵproperty("ngIf", item_r6.imgGraphValue);
|
|
95
|
-
i0.ɵɵadvance(1);
|
|
96
|
-
i0.ɵɵproperty("ngIf", ctx_r22.imagesHeight[item_r6.title] < 16);
|
|
97
|
-
} }
|
|
98
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
-
i0.ɵɵelement(0, "div", 16);
|
|
100
|
-
i0.ɵɵpipe(1, "sanitizeHtml");
|
|
101
|
-
} if (rf & 2) {
|
|
102
|
-
const item_r6 = i0.ɵɵnextContext(3).$implicit;
|
|
103
|
-
i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", i0.ɵɵpipeBind1(1, 2, item_r6.html), i0.ɵɵsanitizeHtml);
|
|
104
|
-
} }
|
|
105
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
-
i0.ɵɵelementStart(0, "div");
|
|
107
|
-
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 3, 2, "div", 0);
|
|
108
|
-
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 2, 4, "div", 12);
|
|
109
|
-
i0.ɵɵelementEnd();
|
|
110
|
-
} if (rf & 2) {
|
|
111
|
-
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
112
|
-
i0.ɵɵadvance(1);
|
|
113
|
-
i0.ɵɵproperty("ngIf", item_r6.url);
|
|
114
|
-
i0.ɵɵadvance(1);
|
|
115
|
-
i0.ɵɵproperty("ngIf", item_r6.html);
|
|
116
|
-
} }
|
|
117
|
-
const _c1 = function (a0) { return { "with-title": a0 }; };
|
|
118
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
-
i0.ɵɵelementStart(0, "div");
|
|
120
|
-
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template, 5, 5, "mat-list-item", 0);
|
|
121
|
-
i0.ɵɵelementStart(2, "div", 5, 6);
|
|
122
|
-
i0.ɵɵtemplate(4, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template, 5, 5, "div", 0);
|
|
123
|
-
i0.ɵɵtemplate(5, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template, 3, 2, "div", 0);
|
|
124
|
-
i0.ɵɵelementEnd()();
|
|
125
|
-
} if (rf & 2) {
|
|
126
|
-
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
127
|
-
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
128
|
-
i0.ɵɵadvance(1);
|
|
129
|
-
i0.ɵɵproperty("ngIf", item_r6.title);
|
|
130
|
-
i0.ɵɵadvance(1);
|
|
131
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1, item_r6.title));
|
|
132
|
-
i0.ɵɵadvance(2);
|
|
133
|
-
i0.ɵɵproperty("ngIf", ctx_r8.currentStyle !== undefined);
|
|
134
|
-
i0.ɵɵadvance(1);
|
|
135
|
-
i0.ɵɵproperty("ngIf", !item_r6.collapsed);
|
|
136
|
-
} }
|
|
137
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
-
i0.ɵɵelementContainerStart(0, null, 4);
|
|
139
|
-
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template, 6, 6, "div", 1);
|
|
140
|
-
i0.ɵɵelementContainerEnd();
|
|
141
|
-
} if (rf & 2) {
|
|
142
|
-
i0.ɵɵnextContext(2);
|
|
143
|
-
const _r3 = i0.ɵɵreference(3);
|
|
144
|
-
const ctx_r5 = i0.ɵɵnextContext();
|
|
145
|
-
i0.ɵɵadvance(2);
|
|
146
|
-
i0.ɵɵproperty("ngIf", ctx_r5.getLegend)("ngIfElse", _r3);
|
|
147
|
-
} }
|
|
148
|
-
function LayerLegendComponent_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
-
i0.ɵɵelementContainerStart(0);
|
|
150
|
-
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 3);
|
|
151
|
-
i0.ɵɵelementContainerEnd();
|
|
152
|
-
} if (rf & 2) {
|
|
153
|
-
const items_r1 = i0.ɵɵnextContext().ngIf;
|
|
154
|
-
i0.ɵɵadvance(1);
|
|
155
|
-
i0.ɵɵproperty("ngForOf", items_r1.slice().reverse());
|
|
156
|
-
} }
|
|
157
|
-
function LayerLegendComponent_ng_container_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
i0.ɵɵelementStart(0, "small");
|
|
159
|
-
i0.ɵɵtext(1);
|
|
160
|
-
i0.ɵɵpipe(2, "translate");
|
|
161
|
-
i0.ɵɵelementEnd();
|
|
162
|
-
} if (rf & 2) {
|
|
163
|
-
i0.ɵɵadvance(1);
|
|
164
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendText"), " ");
|
|
165
|
-
} }
|
|
166
|
-
function LayerLegendComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
-
i0.ɵɵelementContainerStart(0);
|
|
168
|
-
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 1);
|
|
169
|
-
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_template_2_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
170
|
-
i0.ɵɵelementContainerEnd();
|
|
171
|
-
} if (rf & 2) {
|
|
172
|
-
const items_r1 = ctx.ngIf;
|
|
173
|
-
const _r3 = i0.ɵɵreference(3);
|
|
174
|
-
i0.ɵɵadvance(1);
|
|
175
|
-
i0.ɵɵproperty("ngIf", items_r1.length)("ngIfElse", _r3);
|
|
176
|
-
} }
|
|
177
|
-
export class LayerLegendComponent {
|
|
178
|
-
/**
|
|
179
|
-
* activeLegend
|
|
180
|
-
*/
|
|
181
|
-
constructor(capabilitiesService, languageService, configService, http, cdRef) {
|
|
182
|
-
this.capabilitiesService = capabilitiesService;
|
|
183
|
-
this.languageService = languageService;
|
|
184
|
-
this.configService = configService;
|
|
185
|
-
this.http = http;
|
|
186
|
-
this.cdRef = cdRef;
|
|
187
|
-
this.updateLegendOnResolutionChange = false;
|
|
188
|
-
/**
|
|
189
|
-
* Observable of the legend items
|
|
190
|
-
*/
|
|
191
|
-
this.legendItems$ = new BehaviorSubject([]);
|
|
192
|
-
/**
|
|
193
|
-
* The scale used to make the legend
|
|
194
|
-
*/
|
|
195
|
-
this.scale = undefined;
|
|
196
|
-
/**
|
|
197
|
-
* The extent used to make the legend
|
|
198
|
-
*/
|
|
199
|
-
this.view = undefined;
|
|
200
|
-
/**
|
|
201
|
-
* List of size of images displayed
|
|
202
|
-
*/
|
|
203
|
-
this.imagesHeight = {};
|
|
204
|
-
/**
|
|
205
|
-
* if getLegendGraphic is authorized
|
|
206
|
-
*/
|
|
207
|
-
this.getLegend = true;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* On init, subscribe to the map's resolution and update the legend accordingly
|
|
211
|
-
*/
|
|
212
|
-
ngOnInit() {
|
|
213
|
-
let lastlLegend = this.layer.legend;
|
|
214
|
-
this.styles = this.listStyles();
|
|
215
|
-
const sourceOptions = this.layer.options.source.options;
|
|
216
|
-
if (sourceOptions && sourceOptions.params && sourceOptions.params.STYLES) {
|
|
217
|
-
// if a styles is provided into the layers wms params
|
|
218
|
-
this.currentStyle = this.styles.find(style => style.name === sourceOptions.params.STYLES).name;
|
|
219
|
-
}
|
|
220
|
-
else if (!lastlLegend) {
|
|
221
|
-
// if no legend is manually provided
|
|
222
|
-
if (this.styles && this.styles.length > 1) {
|
|
223
|
-
this.currentStyle = this.styles[0].name;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else if (this.styles && this.styles.length > 1) {
|
|
227
|
-
this.currentStyle = lastlLegend[0].currentStyle;
|
|
228
|
-
}
|
|
229
|
-
if (typeof this.layer.options.legendOptions !== 'undefined' && this.layer.options.legendOptions.display === false) {
|
|
230
|
-
lastlLegend = [];
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
lastlLegend = this.layer.dataSource.getLegend(this.currentStyle, this.view);
|
|
234
|
-
}
|
|
235
|
-
if (this.updateLegendOnResolutionChange || sourceOptions.contentDependentLegend) {
|
|
236
|
-
const state$ = this.layer.map.viewController.state$;
|
|
237
|
-
this.state$$ = state$.subscribe(() => this.onViewControllerStateChange());
|
|
238
|
-
}
|
|
239
|
-
else if (lastlLegend && lastlLegend.length !== 0) {
|
|
240
|
-
this.legendItems$.next(lastlLegend);
|
|
241
|
-
for (const legend of lastlLegend) {
|
|
242
|
-
this.getLegendGraphic(legend);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* On destroy, unsubscribe to the map's view state
|
|
248
|
-
*/
|
|
249
|
-
ngOnDestroy() {
|
|
250
|
-
if (this.state$$ !== undefined) {
|
|
251
|
-
this.state$$.unsubscribe();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
getLegendGraphic(item) {
|
|
255
|
-
if (item.url) {
|
|
256
|
-
const secureIMG = new SecureImagePipe(this.http, this.configService);
|
|
257
|
-
secureIMG.transform(item.url).pipe(catchError((err) => {
|
|
258
|
-
if (err.error) {
|
|
259
|
-
err.error.caught = true;
|
|
260
|
-
this.getLegend = false;
|
|
261
|
-
this.cdRef.detectChanges();
|
|
262
|
-
return err;
|
|
263
|
-
}
|
|
264
|
-
})).subscribe(obsLegGraph => {
|
|
265
|
-
const idx = this.legendItems$.value.findIndex(leg => leg.title === item.title);
|
|
266
|
-
const legendGraph = obsLegGraph;
|
|
267
|
-
this.legendItems$.value[idx].imgGraphValue = legendGraph;
|
|
268
|
-
this.cdRef.detectChanges();
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
toggleLegendItem(collapsed, item) {
|
|
273
|
-
item.collapsed = collapsed;
|
|
274
|
-
}
|
|
275
|
-
transfertToggleLegendItem(newLegends) {
|
|
276
|
-
const outLegends = newLegends;
|
|
277
|
-
const lastLegends = this.layer.legend;
|
|
278
|
-
for (let i = 0; i < lastLegends.length; i++) {
|
|
279
|
-
outLegends[i].collapsed = lastLegends[i].collapsed;
|
|
280
|
-
}
|
|
281
|
-
return outLegends;
|
|
282
|
-
}
|
|
283
|
-
computeItemTitle(layerLegend) {
|
|
284
|
-
const layerOptions = this.layer.dataSource.options;
|
|
285
|
-
if (layerOptions.type !== 'wms') {
|
|
286
|
-
return of(layerLegend.title);
|
|
287
|
-
}
|
|
288
|
-
const layers = layerOptions.params.LAYERS.split(',');
|
|
289
|
-
const localLayerOptions = JSON.parse(JSON.stringify(layerOptions)); // to avoid to alter the original options.
|
|
290
|
-
localLayerOptions.params.LAYERS = layers.find(layer => layer === layerLegend.title);
|
|
291
|
-
return this.capabilitiesService
|
|
292
|
-
.getWMSOptions(localLayerOptions)
|
|
293
|
-
.pipe(map(wmsDataSourceOptions => {
|
|
294
|
-
return wmsDataSourceOptions._layerOptionsFromSource.title;
|
|
295
|
-
}));
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* On resolution change, compute the effective scale level and update the
|
|
299
|
-
* legend accordingly.
|
|
300
|
-
* @param resolution Map resolution
|
|
301
|
-
*/
|
|
302
|
-
onViewControllerStateChange() {
|
|
303
|
-
this.view = {
|
|
304
|
-
resolution: this.layer.map.viewController.getResolution(),
|
|
305
|
-
extent: this.layer.map.viewController.getExtent(),
|
|
306
|
-
projection: this.layer.map.viewController.getOlProjection().getCode(),
|
|
307
|
-
scale: this.layer.map.viewController.getScale(),
|
|
308
|
-
size: this.layer.map.ol.getSize()
|
|
309
|
-
};
|
|
310
|
-
this.updateLegend();
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Update the legend with scale level and style define
|
|
314
|
-
*/
|
|
315
|
-
updateLegend() {
|
|
316
|
-
let legendItems = this.layer.dataSource.getLegend(this.currentStyle, this.view);
|
|
317
|
-
if (this.layer.legend && this.layer.legend.length > 1) {
|
|
318
|
-
legendItems = this.transfertToggleLegendItem(legendItems);
|
|
319
|
-
}
|
|
320
|
-
this.layer.legend = legendItems;
|
|
321
|
-
if (legendItems.length === 0 && this.legendItems$.value.length === 0) {
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
this.legendItems$.next(legendItems);
|
|
325
|
-
for (const legend of this.legendItems$.value) {
|
|
326
|
-
this.getLegendGraphic(legend);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
listStyles() {
|
|
330
|
-
const layerOptions = this.layer.options;
|
|
331
|
-
if (layerOptions && layerOptions.legendOptions) {
|
|
332
|
-
const translate = this.languageService.translate;
|
|
333
|
-
const title = translate.instant('igo.geo.layer.legend.default');
|
|
334
|
-
let stylesAvailable = [{ name: '', title }];
|
|
335
|
-
if (layerOptions.legendOptions.stylesAvailable) {
|
|
336
|
-
stylesAvailable = stylesAvailable.concat(layerOptions.legendOptions.stylesAvailable.filter(sA => (sA.name.normalize('NFD').replace(/[\u0300-\u036f]/gi, '') !== 'default' &&
|
|
337
|
-
sA.name.normalize('NFD').replace(/[\u0300-\u036f]/gi, '') !== 'defaut')));
|
|
338
|
-
}
|
|
339
|
-
stylesAvailable.filter(sa => !sa.title).map((sa) => sa.title = sa.name);
|
|
340
|
-
stylesAvailable.map(s => s.title = s.title.charAt(0).toUpperCase() + s.title.slice(1).replace(/_/g, ' '));
|
|
341
|
-
return stylesAvailable;
|
|
342
|
-
}
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
onChangeStyle() {
|
|
346
|
-
this.updateLegend();
|
|
347
|
-
let STYLES = '';
|
|
348
|
-
if (this.layer.dataSource instanceof WMSDataSource) {
|
|
349
|
-
this.layer.dataSource.ol.getParams().LAYERS.split(',').map(layer => STYLES += this.currentStyle + ',');
|
|
350
|
-
STYLES = STYLES.slice(0, -1);
|
|
351
|
-
this.layer.dataSource.ol.updateParams({ STYLES });
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
onLoadImage(id) {
|
|
355
|
-
let elemRef;
|
|
356
|
-
if (this.renderedLegends.length === 1) {
|
|
357
|
-
elemRef = this.renderedLegends.first.nativeElement;
|
|
358
|
-
}
|
|
359
|
-
else {
|
|
360
|
-
elemRef = this.renderedLegends.find(renderedLegend => renderedLegend.nativeElement.id === id).nativeElement;
|
|
361
|
-
}
|
|
362
|
-
this.imagesHeight[id] = elemRef.height;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
LayerLegendComponent.ɵfac = function LayerLegendComponent_Factory(t) { return new (t || LayerLegendComponent)(i0.ɵɵdirectiveInject(i1.CapabilitiesService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
366
|
-
LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLegendComponent, selectors: [["igo-layer-legend"]], viewQuery: function LayerLegendComponent_Query(rf, ctx) { if (rf & 1) {
|
|
367
|
-
i0.ɵɵviewQuery(_c0, 5);
|
|
368
|
-
} if (rf & 2) {
|
|
369
|
-
let _t;
|
|
370
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.renderedLegends = _t);
|
|
371
|
-
} }, inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layer: "layer" }, decls: 2, vars: 3, consts: [[4, "ngIf"], [4, "ngIf", "ngIfElse"], ["noItems", ""], [4, "ngFor", "ngForOf"], ["renderedLegends", ""], [1, "igo-layer-legend", 3, "ngClass"], ["legend", ""], ["id", "legend-toggle", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "toggle"], ["matLine", ""], ["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "ngModel", "ngModelChange", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [3, "ngStyle", "innerHTML", 4, "ngIf"], ["igoImageError", "", "hideError", "true", 3, "id", "src", "alt", "load", 4, "ngIf"], ["igoImageError", "", "hideError", "true", 3, "id", "src", "alt", "load"], ["renderedLegend", ""], [3, "ngStyle", "innerHTML"]], template: function LayerLegendComponent_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
-
i0.ɵɵtemplate(0, LayerLegendComponent_ng_container_0_Template, 4, 2, "ng-container", 0);
|
|
373
|
-
i0.ɵɵpipe(1, "async");
|
|
374
|
-
} if (rf & 2) {
|
|
375
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.legendItems$));
|
|
376
|
-
} }, dependencies: [i4.MatFormField, i5.NgControlStatus, i6.NgClass, i6.NgForOf, i6.NgIf, i6.NgStyle, i5.NgModel, i7.MatIcon, i8.MatSelect, i9.MatOption, i10.MatTooltip, i11.MatListItem, i11.MatListAvatarCssMatStyler, i9.MatLine, i12.CollapseDirective, i12.ImageErrorDirective, i6.AsyncPipe, i13.TranslatePipe, i12.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
|
|
377
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerLegendComponent, [{
|
|
378
|
-
type: Component,
|
|
379
|
-
args: [{ selector: 'igo-layer-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"legendItems$ | async as items\">\n <ng-container *ngIf=\"items.length; else noItems\">\n <ng-container *ngFor=\"let item of items.slice().reverse()\" #renderedLegends>\n <div *ngIf=\"getLegend; else noItems\">\n <mat-list-item *ngIf=\"item.title\">\n <mat-icon\n id=\"legend-toggle\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse\n [target]=\"legend\"\n [collapsed]=\"(item.collapsed)\"\n (toggle)=\"toggleLegendItem($event, item)\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 matLine>{{computeItemTitle(item) | async}} </h4>\n </mat-list-item>\n <div #legend class=\"igo-layer-legend\" [ngClass]=\"{'with-title': item.title}\">\n <div *ngIf=\"currentStyle !== undefined\">\n <mat-form-field>\n <mat-select tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.legend.selectStyle' | translate\" [(ngModel)]=\"currentStyle\"\n (selectionChange)=\"onChangeStyle()\">\n <mat-option *ngFor=\"let style of styles\" [value]=\"style.name\">{{style.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"!(item.collapsed)\">\n <div *ngIf=\"item.url\">\n <img igoImageError *ngIf=\"item.imgGraphValue\" hideError=\"true\" #renderedLegend id=\"{{item.title}}\" (load)=\"onLoadImage(item.title)\"\n [src]=\"item.imgGraphValue\"\n alt=\"{{'igo.geo.layer.legend.loadingLegendText' | translate}}\">\n <small *ngIf=\"imagesHeight[item.title]<16\">\n {{'igo.geo.layer.legend.noLegendScale' | translate}}\n </small>\n </div>\n <div\n [ngStyle]=\"item.style\"\n [innerHTML]=\"item.html | sanitizeHtml\"\n *ngIf=\"item.html\">\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #noItems>\n <small>\n {{'igo.geo.layer.legend.noLegendText' | translate}}\n </small>\n </ng-template>\n\n</ng-container>\n", styles: [".igo-layer-legend.with-title{padding-left:18px}img:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
380
|
-
}], function () { return [{ type: i1.CapabilitiesService }, { type: i2.LanguageService }, { type: i2.ConfigService }, { type: i3.HttpClient }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
|
|
381
|
-
type: Input
|
|
382
|
-
}], renderedLegends: [{
|
|
383
|
-
type: ViewChildren,
|
|
384
|
-
args: ['renderedLegend']
|
|
385
|
-
}], layer: [{
|
|
386
|
-
type: Input
|
|
387
|
-
}] }); })();
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ViewChildren } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, of } from 'rxjs';
|
|
3
|
+
import { catchError, map } from 'rxjs/operators';
|
|
4
|
+
import { WMSDataSource } from '../../datasource';
|
|
5
|
+
import { SecureImagePipe } from '@igo2/common';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../datasource/shared/capabilities.service";
|
|
8
|
+
import * as i2 from "@igo2/core";
|
|
9
|
+
import * as i3 from "@angular/common/http";
|
|
10
|
+
import * as i4 from "@angular/material/form-field";
|
|
11
|
+
import * as i5 from "@angular/forms";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@angular/material/icon";
|
|
14
|
+
import * as i8 from "@angular/material/select";
|
|
15
|
+
import * as i9 from "@angular/material/core";
|
|
16
|
+
import * as i10 from "@angular/material/tooltip";
|
|
17
|
+
import * as i11 from "@angular/material/list";
|
|
18
|
+
import * as i12 from "@igo2/common";
|
|
19
|
+
import * as i13 from "@ngx-translate/core";
|
|
20
|
+
const _c0 = ["renderedLegend"];
|
|
21
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
23
|
+
i0.ɵɵelementStart(0, "mat-list-item")(1, "mat-icon", 7);
|
|
24
|
+
i0.ɵɵlistener("toggle", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template_mat_icon_toggle_1_listener($event) { i0.ɵɵrestoreView(_r15); const item_r6 = i0.ɵɵnextContext(2).$implicit; const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.toggleLegendItem($event, item_r6)); });
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
i0.ɵɵelementStart(2, "h4", 8);
|
|
27
|
+
i0.ɵɵtext(3);
|
|
28
|
+
i0.ɵɵpipe(4, "async");
|
|
29
|
+
i0.ɵɵelementEnd()();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
i0.ɵɵnextContext();
|
|
32
|
+
const _r10 = i0.ɵɵreference(3);
|
|
33
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
34
|
+
const ctx_r9 = i0.ɵɵnextContext(3);
|
|
35
|
+
i0.ɵɵadvance(1);
|
|
36
|
+
i0.ɵɵproperty("target", _r10)("collapsed", item_r6.collapsed);
|
|
37
|
+
i0.ɵɵadvance(2);
|
|
38
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(4, 3, ctx_r9.computeItemTitle(item_r6)), " ");
|
|
39
|
+
} }
|
|
40
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_mat_option_4_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
i0.ɵɵelementStart(0, "mat-option", 11);
|
|
42
|
+
i0.ɵɵtext(1);
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
} if (rf & 2) {
|
|
45
|
+
const style_r18 = ctx.$implicit;
|
|
46
|
+
i0.ɵɵproperty("value", style_r18.name);
|
|
47
|
+
i0.ɵɵadvance(1);
|
|
48
|
+
i0.ɵɵtextInterpolate(style_r18.title);
|
|
49
|
+
} }
|
|
50
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
52
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field")(2, "mat-select", 9);
|
|
53
|
+
i0.ɵɵlistener("ngModelChange", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template_mat_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r19.currentStyle = $event); })("selectionChange", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template_mat_select_selectionChange_2_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r21.onChangeStyle()); });
|
|
54
|
+
i0.ɵɵpipe(3, "translate");
|
|
55
|
+
i0.ɵɵtemplate(4, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_mat_option_4_Template, 2, 2, "mat-option", 10);
|
|
56
|
+
i0.ɵɵelementEnd()()();
|
|
57
|
+
} if (rf & 2) {
|
|
58
|
+
const ctx_r11 = i0.ɵɵnextContext(5);
|
|
59
|
+
i0.ɵɵadvance(2);
|
|
60
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(3, 3, "igo.geo.layer.legend.selectStyle"))("ngModel", ctx_r11.currentStyle);
|
|
61
|
+
i0.ɵɵadvance(2);
|
|
62
|
+
i0.ɵɵproperty("ngForOf", ctx_r11.styles);
|
|
63
|
+
} }
|
|
64
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
66
|
+
i0.ɵɵelementStart(0, "img", 14, 15);
|
|
67
|
+
i0.ɵɵlistener("load", function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template_img_load_0_listener() { i0.ɵɵrestoreView(_r29); const item_r6 = i0.ɵɵnextContext(4).$implicit; const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.onLoadImage(item_r6.title)); });
|
|
68
|
+
i0.ɵɵpipe(2, "translate");
|
|
69
|
+
i0.ɵɵelementEnd();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const item_r6 = i0.ɵɵnextContext(4).$implicit;
|
|
72
|
+
i0.ɵɵpropertyInterpolate("id", item_r6.title);
|
|
73
|
+
i0.ɵɵpropertyInterpolate("alt", i0.ɵɵpipeBind1(2, 3, "igo.geo.layer.legend.loadingLegendText"));
|
|
74
|
+
i0.ɵɵproperty("src", item_r6.imgGraphValue, i0.ɵɵsanitizeUrl);
|
|
75
|
+
} }
|
|
76
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_small_2_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
+
i0.ɵɵelementStart(0, "small");
|
|
78
|
+
i0.ɵɵtext(1);
|
|
79
|
+
i0.ɵɵpipe(2, "translate");
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
} if (rf & 2) {
|
|
82
|
+
i0.ɵɵadvance(1);
|
|
83
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendScale"), " ");
|
|
84
|
+
} }
|
|
85
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "div");
|
|
87
|
+
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_img_1_Template, 3, 5, "img", 13);
|
|
88
|
+
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_small_2_Template, 3, 3, "small", 0);
|
|
89
|
+
i0.ɵɵelementEnd();
|
|
90
|
+
} if (rf & 2) {
|
|
91
|
+
const item_r6 = i0.ɵɵnextContext(3).$implicit;
|
|
92
|
+
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
93
|
+
i0.ɵɵadvance(1);
|
|
94
|
+
i0.ɵɵproperty("ngIf", item_r6.imgGraphValue);
|
|
95
|
+
i0.ɵɵadvance(1);
|
|
96
|
+
i0.ɵɵproperty("ngIf", ctx_r22.imagesHeight[item_r6.title] < 16);
|
|
97
|
+
} }
|
|
98
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelement(0, "div", 16);
|
|
100
|
+
i0.ɵɵpipe(1, "sanitizeHtml");
|
|
101
|
+
} if (rf & 2) {
|
|
102
|
+
const item_r6 = i0.ɵɵnextContext(3).$implicit;
|
|
103
|
+
i0.ɵɵproperty("ngStyle", item_r6.style)("innerHTML", i0.ɵɵpipeBind1(1, 2, item_r6.html), i0.ɵɵsanitizeHtml);
|
|
104
|
+
} }
|
|
105
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
+
i0.ɵɵelementStart(0, "div");
|
|
107
|
+
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_1_Template, 3, 2, "div", 0);
|
|
108
|
+
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_div_2_Template, 2, 4, "div", 12);
|
|
109
|
+
i0.ɵɵelementEnd();
|
|
110
|
+
} if (rf & 2) {
|
|
111
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
112
|
+
i0.ɵɵadvance(1);
|
|
113
|
+
i0.ɵɵproperty("ngIf", item_r6.url);
|
|
114
|
+
i0.ɵɵadvance(1);
|
|
115
|
+
i0.ɵɵproperty("ngIf", item_r6.html);
|
|
116
|
+
} }
|
|
117
|
+
const _c1 = function (a0) { return { "with-title": a0 }; };
|
|
118
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
+
i0.ɵɵelementStart(0, "div");
|
|
120
|
+
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_mat_list_item_1_Template, 5, 5, "mat-list-item", 0);
|
|
121
|
+
i0.ɵɵelementStart(2, "div", 5, 6);
|
|
122
|
+
i0.ɵɵtemplate(4, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_4_Template, 5, 5, "div", 0);
|
|
123
|
+
i0.ɵɵtemplate(5, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_div_5_Template, 3, 2, "div", 0);
|
|
124
|
+
i0.ɵɵelementEnd()();
|
|
125
|
+
} if (rf & 2) {
|
|
126
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
127
|
+
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
128
|
+
i0.ɵɵadvance(1);
|
|
129
|
+
i0.ɵɵproperty("ngIf", item_r6.title);
|
|
130
|
+
i0.ɵɵadvance(1);
|
|
131
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1, item_r6.title));
|
|
132
|
+
i0.ɵɵadvance(2);
|
|
133
|
+
i0.ɵɵproperty("ngIf", ctx_r8.currentStyle !== undefined);
|
|
134
|
+
i0.ɵɵadvance(1);
|
|
135
|
+
i0.ɵɵproperty("ngIf", !item_r6.collapsed);
|
|
136
|
+
} }
|
|
137
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
+
i0.ɵɵelementContainerStart(0, null, 4);
|
|
139
|
+
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_div_2_Template, 6, 6, "div", 1);
|
|
140
|
+
i0.ɵɵelementContainerEnd();
|
|
141
|
+
} if (rf & 2) {
|
|
142
|
+
i0.ɵɵnextContext(2);
|
|
143
|
+
const _r3 = i0.ɵɵreference(3);
|
|
144
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
145
|
+
i0.ɵɵadvance(2);
|
|
146
|
+
i0.ɵɵproperty("ngIf", ctx_r5.getLegend)("ngIfElse", _r3);
|
|
147
|
+
} }
|
|
148
|
+
function LayerLegendComponent_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
+
i0.ɵɵelementContainerStart(0);
|
|
150
|
+
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 3);
|
|
151
|
+
i0.ɵɵelementContainerEnd();
|
|
152
|
+
} if (rf & 2) {
|
|
153
|
+
const items_r1 = i0.ɵɵnextContext().ngIf;
|
|
154
|
+
i0.ɵɵadvance(1);
|
|
155
|
+
i0.ɵɵproperty("ngForOf", items_r1.slice().reverse());
|
|
156
|
+
} }
|
|
157
|
+
function LayerLegendComponent_ng_container_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
+
i0.ɵɵelementStart(0, "small");
|
|
159
|
+
i0.ɵɵtext(1);
|
|
160
|
+
i0.ɵɵpipe(2, "translate");
|
|
161
|
+
i0.ɵɵelementEnd();
|
|
162
|
+
} if (rf & 2) {
|
|
163
|
+
i0.ɵɵadvance(1);
|
|
164
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.layer.legend.noLegendText"), " ");
|
|
165
|
+
} }
|
|
166
|
+
function LayerLegendComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
+
i0.ɵɵelementContainerStart(0);
|
|
168
|
+
i0.ɵɵtemplate(1, LayerLegendComponent_ng_container_0_ng_container_1_Template, 2, 1, "ng-container", 1);
|
|
169
|
+
i0.ɵɵtemplate(2, LayerLegendComponent_ng_container_0_ng_template_2_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
170
|
+
i0.ɵɵelementContainerEnd();
|
|
171
|
+
} if (rf & 2) {
|
|
172
|
+
const items_r1 = ctx.ngIf;
|
|
173
|
+
const _r3 = i0.ɵɵreference(3);
|
|
174
|
+
i0.ɵɵadvance(1);
|
|
175
|
+
i0.ɵɵproperty("ngIf", items_r1.length)("ngIfElse", _r3);
|
|
176
|
+
} }
|
|
177
|
+
export class LayerLegendComponent {
|
|
178
|
+
/**
|
|
179
|
+
* activeLegend
|
|
180
|
+
*/
|
|
181
|
+
constructor(capabilitiesService, languageService, configService, http, cdRef) {
|
|
182
|
+
this.capabilitiesService = capabilitiesService;
|
|
183
|
+
this.languageService = languageService;
|
|
184
|
+
this.configService = configService;
|
|
185
|
+
this.http = http;
|
|
186
|
+
this.cdRef = cdRef;
|
|
187
|
+
this.updateLegendOnResolutionChange = false;
|
|
188
|
+
/**
|
|
189
|
+
* Observable of the legend items
|
|
190
|
+
*/
|
|
191
|
+
this.legendItems$ = new BehaviorSubject([]);
|
|
192
|
+
/**
|
|
193
|
+
* The scale used to make the legend
|
|
194
|
+
*/
|
|
195
|
+
this.scale = undefined;
|
|
196
|
+
/**
|
|
197
|
+
* The extent used to make the legend
|
|
198
|
+
*/
|
|
199
|
+
this.view = undefined;
|
|
200
|
+
/**
|
|
201
|
+
* List of size of images displayed
|
|
202
|
+
*/
|
|
203
|
+
this.imagesHeight = {};
|
|
204
|
+
/**
|
|
205
|
+
* if getLegendGraphic is authorized
|
|
206
|
+
*/
|
|
207
|
+
this.getLegend = true;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* On init, subscribe to the map's resolution and update the legend accordingly
|
|
211
|
+
*/
|
|
212
|
+
ngOnInit() {
|
|
213
|
+
let lastlLegend = this.layer.legend;
|
|
214
|
+
this.styles = this.listStyles();
|
|
215
|
+
const sourceOptions = this.layer.options.source.options;
|
|
216
|
+
if (sourceOptions && sourceOptions.params && sourceOptions.params.STYLES) {
|
|
217
|
+
// if a styles is provided into the layers wms params
|
|
218
|
+
this.currentStyle = this.styles.find(style => style.name === sourceOptions.params.STYLES).name;
|
|
219
|
+
}
|
|
220
|
+
else if (!lastlLegend) {
|
|
221
|
+
// if no legend is manually provided
|
|
222
|
+
if (this.styles && this.styles.length > 1) {
|
|
223
|
+
this.currentStyle = this.styles[0].name;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else if (this.styles && this.styles.length > 1) {
|
|
227
|
+
this.currentStyle = lastlLegend[0].currentStyle;
|
|
228
|
+
}
|
|
229
|
+
if (typeof this.layer.options.legendOptions !== 'undefined' && this.layer.options.legendOptions.display === false) {
|
|
230
|
+
lastlLegend = [];
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
lastlLegend = this.layer.dataSource.getLegend(this.currentStyle, this.view);
|
|
234
|
+
}
|
|
235
|
+
if (this.updateLegendOnResolutionChange || sourceOptions.contentDependentLegend) {
|
|
236
|
+
const state$ = this.layer.map.viewController.state$;
|
|
237
|
+
this.state$$ = state$.subscribe(() => this.onViewControllerStateChange());
|
|
238
|
+
}
|
|
239
|
+
else if (lastlLegend && lastlLegend.length !== 0) {
|
|
240
|
+
this.legendItems$.next(lastlLegend);
|
|
241
|
+
for (const legend of lastlLegend) {
|
|
242
|
+
this.getLegendGraphic(legend);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* On destroy, unsubscribe to the map's view state
|
|
248
|
+
*/
|
|
249
|
+
ngOnDestroy() {
|
|
250
|
+
if (this.state$$ !== undefined) {
|
|
251
|
+
this.state$$.unsubscribe();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
getLegendGraphic(item) {
|
|
255
|
+
if (item.url) {
|
|
256
|
+
const secureIMG = new SecureImagePipe(this.http, this.configService);
|
|
257
|
+
secureIMG.transform(item.url).pipe(catchError((err) => {
|
|
258
|
+
if (err.error) {
|
|
259
|
+
err.error.caught = true;
|
|
260
|
+
this.getLegend = false;
|
|
261
|
+
this.cdRef.detectChanges();
|
|
262
|
+
return err;
|
|
263
|
+
}
|
|
264
|
+
})).subscribe(obsLegGraph => {
|
|
265
|
+
const idx = this.legendItems$.value.findIndex(leg => leg.title === item.title);
|
|
266
|
+
const legendGraph = obsLegGraph;
|
|
267
|
+
this.legendItems$.value[idx].imgGraphValue = legendGraph;
|
|
268
|
+
this.cdRef.detectChanges();
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
toggleLegendItem(collapsed, item) {
|
|
273
|
+
item.collapsed = collapsed;
|
|
274
|
+
}
|
|
275
|
+
transfertToggleLegendItem(newLegends) {
|
|
276
|
+
const outLegends = newLegends;
|
|
277
|
+
const lastLegends = this.layer.legend;
|
|
278
|
+
for (let i = 0; i < lastLegends.length; i++) {
|
|
279
|
+
outLegends[i].collapsed = lastLegends[i].collapsed;
|
|
280
|
+
}
|
|
281
|
+
return outLegends;
|
|
282
|
+
}
|
|
283
|
+
computeItemTitle(layerLegend) {
|
|
284
|
+
const layerOptions = this.layer.dataSource.options;
|
|
285
|
+
if (layerOptions.type !== 'wms') {
|
|
286
|
+
return of(layerLegend.title);
|
|
287
|
+
}
|
|
288
|
+
const layers = layerOptions.params.LAYERS.split(',');
|
|
289
|
+
const localLayerOptions = JSON.parse(JSON.stringify(layerOptions)); // to avoid to alter the original options.
|
|
290
|
+
localLayerOptions.params.LAYERS = layers.find(layer => layer === layerLegend.title);
|
|
291
|
+
return this.capabilitiesService
|
|
292
|
+
.getWMSOptions(localLayerOptions)
|
|
293
|
+
.pipe(map(wmsDataSourceOptions => {
|
|
294
|
+
return wmsDataSourceOptions._layerOptionsFromSource.title;
|
|
295
|
+
}));
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* On resolution change, compute the effective scale level and update the
|
|
299
|
+
* legend accordingly.
|
|
300
|
+
* @param resolution Map resolution
|
|
301
|
+
*/
|
|
302
|
+
onViewControllerStateChange() {
|
|
303
|
+
this.view = {
|
|
304
|
+
resolution: this.layer.map.viewController.getResolution(),
|
|
305
|
+
extent: this.layer.map.viewController.getExtent(),
|
|
306
|
+
projection: this.layer.map.viewController.getOlProjection().getCode(),
|
|
307
|
+
scale: this.layer.map.viewController.getScale(),
|
|
308
|
+
size: this.layer.map.ol.getSize()
|
|
309
|
+
};
|
|
310
|
+
this.updateLegend();
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Update the legend with scale level and style define
|
|
314
|
+
*/
|
|
315
|
+
updateLegend() {
|
|
316
|
+
let legendItems = this.layer.dataSource.getLegend(this.currentStyle, this.view);
|
|
317
|
+
if (this.layer.legend && this.layer.legend.length > 1) {
|
|
318
|
+
legendItems = this.transfertToggleLegendItem(legendItems);
|
|
319
|
+
}
|
|
320
|
+
this.layer.legend = legendItems;
|
|
321
|
+
if (legendItems.length === 0 && this.legendItems$.value.length === 0) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
this.legendItems$.next(legendItems);
|
|
325
|
+
for (const legend of this.legendItems$.value) {
|
|
326
|
+
this.getLegendGraphic(legend);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
listStyles() {
|
|
330
|
+
const layerOptions = this.layer.options;
|
|
331
|
+
if (layerOptions && layerOptions.legendOptions) {
|
|
332
|
+
const translate = this.languageService.translate;
|
|
333
|
+
const title = translate.instant('igo.geo.layer.legend.default');
|
|
334
|
+
let stylesAvailable = [{ name: '', title }];
|
|
335
|
+
if (layerOptions.legendOptions.stylesAvailable) {
|
|
336
|
+
stylesAvailable = stylesAvailable.concat(layerOptions.legendOptions.stylesAvailable.filter(sA => (sA.name.normalize('NFD').replace(/[\u0300-\u036f]/gi, '') !== 'default' &&
|
|
337
|
+
sA.name.normalize('NFD').replace(/[\u0300-\u036f]/gi, '') !== 'defaut')));
|
|
338
|
+
}
|
|
339
|
+
stylesAvailable.filter(sa => !sa.title).map((sa) => sa.title = sa.name);
|
|
340
|
+
stylesAvailable.map(s => s.title = s.title.charAt(0).toUpperCase() + s.title.slice(1).replace(/_/g, ' '));
|
|
341
|
+
return stylesAvailable;
|
|
342
|
+
}
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
onChangeStyle() {
|
|
346
|
+
this.updateLegend();
|
|
347
|
+
let STYLES = '';
|
|
348
|
+
if (this.layer.dataSource instanceof WMSDataSource) {
|
|
349
|
+
this.layer.dataSource.ol.getParams().LAYERS.split(',').map(layer => STYLES += this.currentStyle + ',');
|
|
350
|
+
STYLES = STYLES.slice(0, -1);
|
|
351
|
+
this.layer.dataSource.ol.updateParams({ STYLES });
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
onLoadImage(id) {
|
|
355
|
+
let elemRef;
|
|
356
|
+
if (this.renderedLegends.length === 1) {
|
|
357
|
+
elemRef = this.renderedLegends.first.nativeElement;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
elemRef = this.renderedLegends.find(renderedLegend => renderedLegend.nativeElement.id === id).nativeElement;
|
|
361
|
+
}
|
|
362
|
+
this.imagesHeight[id] = elemRef.height;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
LayerLegendComponent.ɵfac = function LayerLegendComponent_Factory(t) { return new (t || LayerLegendComponent)(i0.ɵɵdirectiveInject(i1.CapabilitiesService), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i2.ConfigService), i0.ɵɵdirectiveInject(i3.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
366
|
+
LayerLegendComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerLegendComponent, selectors: [["igo-layer-legend"]], viewQuery: function LayerLegendComponent_Query(rf, ctx) { if (rf & 1) {
|
|
367
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
368
|
+
} if (rf & 2) {
|
|
369
|
+
let _t;
|
|
370
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.renderedLegends = _t);
|
|
371
|
+
} }, inputs: { updateLegendOnResolutionChange: "updateLegendOnResolutionChange", layer: "layer" }, decls: 2, vars: 3, consts: [[4, "ngIf"], [4, "ngIf", "ngIfElse"], ["noItems", ""], [4, "ngFor", "ngForOf"], ["renderedLegends", ""], [1, "igo-layer-legend", 3, "ngClass"], ["legend", ""], ["id", "legend-toggle", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "toggle"], ["matLine", ""], ["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "ngModel", "ngModelChange", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [3, "ngStyle", "innerHTML", 4, "ngIf"], ["igoImageError", "", "hideError", "true", 3, "id", "src", "alt", "load", 4, "ngIf"], ["igoImageError", "", "hideError", "true", 3, "id", "src", "alt", "load"], ["renderedLegend", ""], [3, "ngStyle", "innerHTML"]], template: function LayerLegendComponent_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
i0.ɵɵtemplate(0, LayerLegendComponent_ng_container_0_Template, 4, 2, "ng-container", 0);
|
|
373
|
+
i0.ɵɵpipe(1, "async");
|
|
374
|
+
} if (rf & 2) {
|
|
375
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.legendItems$));
|
|
376
|
+
} }, dependencies: [i4.MatFormField, i5.NgControlStatus, i6.NgClass, i6.NgForOf, i6.NgIf, i6.NgStyle, i5.NgModel, i7.MatIcon, i8.MatSelect, i9.MatOption, i10.MatTooltip, i11.MatListItem, i11.MatListAvatarCssMatStyler, i9.MatLine, i12.CollapseDirective, i12.ImageErrorDirective, i6.AsyncPipe, i13.TranslatePipe, i12.SanitizeHtmlPipe], styles: [".igo-layer-legend.with-title[_ngcontent-%COMP%]{padding-left:18px}img[_ngcontent-%COMP%]:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"], changeDetection: 0 });
|
|
377
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerLegendComponent, [{
|
|
378
|
+
type: Component,
|
|
379
|
+
args: [{ selector: 'igo-layer-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"legendItems$ | async as items\">\n <ng-container *ngIf=\"items.length; else noItems\">\n <ng-container *ngFor=\"let item of items.slice().reverse()\" #renderedLegends>\n <div *ngIf=\"getLegend; else noItems\">\n <mat-list-item *ngIf=\"item.title\">\n <mat-icon\n id=\"legend-toggle\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse\n [target]=\"legend\"\n [collapsed]=\"(item.collapsed)\"\n (toggle)=\"toggleLegendItem($event, item)\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 matLine>{{computeItemTitle(item) | async}} </h4>\n </mat-list-item>\n <div #legend class=\"igo-layer-legend\" [ngClass]=\"{'with-title': item.title}\">\n <div *ngIf=\"currentStyle !== undefined\">\n <mat-form-field>\n <mat-select tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.legend.selectStyle' | translate\" [(ngModel)]=\"currentStyle\"\n (selectionChange)=\"onChangeStyle()\">\n <mat-option *ngFor=\"let style of styles\" [value]=\"style.name\">{{style.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"!(item.collapsed)\">\n <div *ngIf=\"item.url\">\n <img igoImageError *ngIf=\"item.imgGraphValue\" hideError=\"true\" #renderedLegend id=\"{{item.title}}\" (load)=\"onLoadImage(item.title)\"\n [src]=\"item.imgGraphValue\"\n alt=\"{{'igo.geo.layer.legend.loadingLegendText' | translate}}\">\n <small *ngIf=\"imagesHeight[item.title]<16\">\n {{'igo.geo.layer.legend.noLegendScale' | translate}}\n </small>\n </div>\n <div\n [ngStyle]=\"item.style\"\n [innerHTML]=\"item.html | sanitizeHtml\"\n *ngIf=\"item.html\">\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #noItems>\n <small>\n {{'igo.geo.layer.legend.noLegendText' | translate}}\n </small>\n </ng-template>\n\n</ng-container>\n", styles: [".igo-layer-legend.with-title{padding-left:18px}img:after{content:\" \";position:relative;height:17px;float:left;width:17px;top:-3px;right:19px;background-color:#fff;border:3px solid #f3f3f3;border-radius:50%;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin}@-moz-document url-prefix(){img:after{margin-left:19px}}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
380
|
+
}], function () { return [{ type: i1.CapabilitiesService }, { type: i2.LanguageService }, { type: i2.ConfigService }, { type: i3.HttpClient }, { type: i0.ChangeDetectorRef }]; }, { updateLegendOnResolutionChange: [{
|
|
381
|
+
type: Input
|
|
382
|
+
}], renderedLegends: [{
|
|
383
|
+
type: ViewChildren,
|
|
384
|
+
args: ['renderedLegend']
|
|
385
|
+
}], layer: [{
|
|
386
|
+
type: Input
|
|
387
|
+
}] }); })();
|
|
388
388
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItbGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItbGVnZW5kL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsdUJBQXVCLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUcxSSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1R2QyxxQ0FBa0Msa0JBQUE7SUFROUIsMFJBQVUsZUFBQSx5Q0FBOEIsQ0FBQSxJQUFDO0lBRTNDLGlCQUFXO0lBQ1gsNkJBQVk7SUFBQSxZQUFtQzs7SUFBQSxpQkFBSyxFQUFBOzs7Ozs7SUFMbEQsZUFBaUI7SUFBakIsNkJBQWlCLGdDQUFBO0lBS1AsZUFBbUM7SUFBbkMsc0ZBQW1DOzs7SUFRdkMsc0NBQThEO0lBQUEsWUFBZTtJQUFBLGlCQUFhOzs7SUFBakQsc0NBQW9CO0lBQUMsZUFBZTtJQUFmLHFDQUFlOzs7O0lBTHJGLDJCQUF3QyxxQkFBQSxvQkFBQTtJQUc4QixrU0FBMEIsa09BQ3JFLGVBQUEsdUJBQWUsQ0FBQSxJQURzRDs7SUFFeEYsNklBQTBGO0lBQzVGLGlCQUFhLEVBQUEsRUFBQTs7O0lB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QyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxPQUF5QixDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFpQyxDQUFDO1NBQ3hFO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFpQyxDQUFDO1NBQ2pJO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3pDLENBQUM7O3dGQXRPVSxvQkFBb0I7dUVBQXBCLG9CQUFvQjs7Ozs7O1FDckJqQyx1RkFxRGU7OztRQXJEQSw2REFBMkI7O3VGRHFCN0Isb0JBQW9CO2NBTmhDLFNBQVM7MkJBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07eUxBSXRDLDhCQUE4QjtrQkFBdEMsS0FBSztZQWtDMEIsZUFBZTtrQkFBOUMsWUFBWTttQkFBQyxnQkFBZ0I7WUFVckIsS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkcmVuLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBCZWhhdmlvclN1YmplY3QsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyLCBJdGVtU3R5bGVPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycyc7XG5pbXBvcnQgeyBMZWdlbmRNYXBWaWV3T3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UsIFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBTZWN1cmVJbWFnZVBpcGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tbGF5ZXItbGVnZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheWVyLWxlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXllckxlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgbGVnZW5kIGl0ZW1zXG4gICAqL1xuICBsZWdlbmRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxMZWdlbmRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBtYXAncyByZXNvbHV0aW9uXG4gICAqL1xuICBwcml2YXRlIHN0YXRlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJsZSBzdHlsZXNcbiAgICovXG4gIHB1YmxpYyBzdHlsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBzdHlsZSB1c2VkIHRvIG1ha2UgdGhlIGxlZ2VuZFxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRTdHlsZTtcblxuICAvKipcbiAgICogVGhlIHNjYWxlIHVzZWQgdG8gbWFrZSB0aGUgbGVnZW5kXG4gICAqL1xuICBwcml2YXRlIHNjYWxlOiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBleHRlbnQgdXNlZCB0byBtYWtlIHRoZSBsZWdlbmRcbiAgICovXG4gIHByaXZhdGUgdmlldzogTGVnZW5kTWFwVmlld09wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBpbWFnZXMgZGlzcGxheVxuICAgKi9cbiAgQFZpZXdDaGlsZHJlbigncmVuZGVyZWRMZWdlbmQnKSByZW5kZXJlZExlZ2VuZHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAvKipcbiAgICogTGlzdCBvZiBzaXplIG9mIGltYWdlcyBkaXNwbGF5ZWRcbiAgICovXG4gIHB1YmxpYyBpbWFnZXNIZWlnaHQ6IHsgW3NyY0tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuICAvKipcbiAgICogTGF5ZXJcbiAgICovXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICAvKipcbiAgICogaWYgZ2V0TGVnZW5kR3JhcGhpYyBpcyBhdXRob3JpemVkXG4gICAqL1xuICBwdWJsaWMgZ2V0TGVnZW5kID0gdHJ1ZTtcblxuICAvKipcbiAgICogYWN0aXZlTGVnZW5kXG4gICAqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgLyoqXG4gICAqIE9uIGluaXQsIHN1YnNjcmliZSB0byB0aGUgbWFwJ3MgcmVzb2x1dGlvbiBhbmQgdXBkYXRlIHRoZSBsZWdlbmQgYWNjb3JkaW5nbHlcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBsYXN0bExlZ2VuZCA9IHRoaXMubGF5ZXIubGVnZW5kO1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5saXN0U3R5bGVzKCk7XG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucy5zb3VyY2Uub3B0aW9ucyBhcyBhbnk7XG4gICAgaWYgKHNvdXJjZU9wdGlvbnMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMgJiYgc291cmNlT3B0aW9ucy5wYXJhbXMuU1RZTEVTKSB7XG4gICAgICAvLyBpZiBhIHN0eWxlcyBpcyBwcm92aWRlZCBpbnRvIHRoZSBsYXllcnMgd21zIHBhcmFtc1xuICAgICAgdGhpcy5jdXJyZW50U3R5bGUgPSB0aGlzLnN0eWxlcy5maW5kKHN0eWxlID0+IHN0eWxlLm5hbWUgPT09IHNvdXJjZU9wdGlvbnMucGFyYW1zLlNUWUxFUykubmFtZTtcbiAgICB9IGVsc2UgaWYgKCFsYXN0bExlZ2VuZCkge1xuICAgICAgLy8gaWYgbm8gbGVnZW5kIGlzIG1hbnVhbGx5IHByb3ZpZGVkXG4gICAgICBpZiAodGhpcy5zdHlsZXMgJiYgdGhpcy5zdHlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IHRoaXMuc3R5bGVzWzBdLm5hbWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0eWxlcyAmJiB0aGlzLnN0eWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSA9IGxhc3RsTGVnZW5kWzBdLmN1cnJlbnRTdHlsZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5sYXllci5vcHRpb25zLmxlZ2VuZE9wdGlvbnMuZGlzcGxheSA9PT0gZmFsc2UpIHtcbiAgICAgIGxhc3RsTGVnZW5kID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RsTGVnZW5kID0gdGhpcy5sYXllci5kYXRhU291cmNlLmdldExlZ2VuZCh0aGlzLmN1cnJlbnRTdHlsZSwgdGhpcy52aWV3KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2UgfHwgKHNvdXJjZU9wdGlvbnMgYXMgV01TRGF0YVNvdXJjZU9wdGlvbnMpLmNvbnRlbnREZXBlbmRlbnRMZWdlbmQpIHtcbiAgICAgIGNvbnN0IHN0YXRlJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnN0YXRlJDtcbiAgICAgIHRoaXMuc3RhdGUkJCA9IHN0YXRlJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblZpZXdDb250cm9sbGVyU3RhdGVDaGFuZ2UoKSk7XG4gICAgfSBlbHNlIGlmIChsYXN0bExlZ2VuZCAmJiBsYXN0bExlZ2VuZC5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMubGVnZW5kSXRlbXMkLm5leHQobGFzdGxMZWdlbmQpO1xuICAgICAgZm9yIChjb25zdCBsZWdlbmQgb2YgbGFzdGxMZWdlbmQpIHtcbiAgICAgICAgdGhpcy5nZXRMZWdlbmRHcmFwaGljKGxlZ2VuZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9uIGRlc3Ryb3ksIHVuc3Vic2NyaWJlIHRvIHRoZSBtYXAncyB2aWV3IHN0YXRlXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSQkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RhdGUkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldExlZ2VuZEdyYXBoaWMoaXRlbTogTGVnZW5kKSB7XG4gICAgaWYgKGl0ZW0udXJsKSB7XG4gICAgICBjb25zdCBzZWN1cmVJTUcgPSBuZXcgU2VjdXJlSW1hZ2VQaXBlKHRoaXMuaHR0cCwgdGhpcy5jb25maWdTZXJ2aWNlKTtcbiAgICAgIHNlY3VyZUlNRy50cmFuc2Zvcm0oaXRlbS51cmwpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIuZXJyb3IpIHtcbiAgICAgICAgICAgIGVyci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5nZXRMZWdlbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgcmV0dXJuIGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKG9ic0xlZ0dyYXBoID0+IHtcbiAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmxlZ2VuZEl0ZW1zJC52YWx1ZS5maW5kSW5kZXgobGVnID0+IGxlZy50aXRsZSA9PT0gaXRlbS50aXRsZSk7XG4gICAgICAgICAgY29uc3QgbGVnZW5kR3JhcGggPSBvYnNMZWdHcmFwaCBhcyBzdHJpbmc7XG4gICAgICAgICAgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWVbaWR4XS5pbWdHcmFwaFZhbHVlID0gbGVnZW5kR3JhcGg7XG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTGVnZW5kSXRlbShjb2xsYXBzZWQ6IGJvb2xlYW4sIGl0ZW06IExlZ2VuZCkge1xuICAgIGl0ZW0uY29sbGFwc2VkID0gY29sbGFwc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2ZlcnRUb2dnbGVMZWdlbmRJdGVtKG5ld0xlZ2VuZHM6IExlZ2VuZFtdKTogTGVnZW5kW10ge1xuICAgIGNvbnN0IG91dExlZ2VuZHM6IExlZ2VuZFtdID0gbmV3TGVnZW5kcztcbiAgICBjb25zdCBsYXN0TGVnZW5kcyA9IHRoaXMubGF5ZXIubGVnZW5kO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGFzdExlZ2VuZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG91dExlZ2VuZHNbaV0uY29sbGFwc2VkID0gbGFzdExlZ2VuZHNbaV0uY29sbGFwc2VkO1xuICAgfVxuICAgIHJldHVybiBvdXRMZWdlbmRzO1xuICB9XG5cbiAgY29tcHV0ZUl0ZW1UaXRsZShsYXllckxlZ2VuZCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55O1xuICAgIGlmIChsYXllck9wdGlvbnMudHlwZSAhPT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZihsYXllckxlZ2VuZC50aXRsZSk7XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXJzID0gbGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMuc3BsaXQoJywnKTtcbiAgICBjb25zdCBsb2NhbExheWVyT3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobGF5ZXJPcHRpb25zKSk7IC8vIHRvIGF2b2lkIHRvIGFsdGVyIHRoZSBvcmlnaW5hbCBvcHRpb25zLlxuICAgIGxvY2FsTGF5ZXJPcHRpb25zLnBhcmFtcy5MQVlFUlMgPSBsYXllcnMuZmluZChsYXllciA9PiBsYXllciA9PT0gbGF5ZXJMZWdlbmQudGl0bGUpO1xuICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcbiAgICAgIC5nZXRXTVNPcHRpb25zKGxvY2FsTGF5ZXJPcHRpb25zKVxuICAgICAgLnBpcGUobWFwKHdtc0RhdGFTb3VyY2VPcHRpb25zID0+IHtcbiAgICAgICAgcmV0dXJuIHdtc0RhdGFTb3VyY2VPcHRpb25zLl9sYXllck9wdGlvbnNGcm9tU291cmNlLnRpdGxlO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIHJlc29sdXRpb24gY2hhbmdlLCBjb21wdXRlIHRoZSBlZmZlY3RpdmUgc2NhbGUgbGV2ZWwgYW5kIHVwZGF0ZSB0aGVcbiAgICogbGVnZW5kIGFjY29yZGluZ2x5LlxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiBNYXAgcmVzb2x1dGlvblxuICAgKi9cbiAgcHJpdmF0ZSBvblZpZXdDb250cm9sbGVyU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy52aWV3ID0ge1xuICAgICAgcmVzb2x1dGlvbjogdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpLFxuICAgICAgZXh0ZW50OiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRFeHRlbnQoKSxcbiAgICAgIHByb2plY3Rpb246IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpLmdldENvZGUoKSxcbiAgICAgIHNjYWxlOiB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRTY2FsZSgpLFxuICAgICAgc2l6ZTogdGhpcy5sYXllci5tYXAub2wuZ2V0U2l6ZSgpXG4gICAgfSBhcyBMZWdlbmRNYXBWaWV3T3B0aW9ucztcbiAgICB0aGlzLnVwZGF0ZUxlZ2VuZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbGVnZW5kIHdpdGggc2NhbGUgbGV2ZWwgYW5kIHN0eWxlIGRlZmluZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVMZWdlbmQoKSB7XG4gICAgbGV0IGxlZ2VuZEl0ZW1zID0gdGhpcy5sYXllci5kYXRhU291cmNlLmdldExlZ2VuZCh0aGlzLmN1cnJlbnRTdHlsZSwgdGhpcy52aWV3KTtcbiAgICBpZiAodGhpcy5sYXllci5sZWdlbmQgJiYgdGhpcy5sYXllci5sZWdlbmQubGVuZ3RoID4gMSkgeyBsZWdlbmRJdGVtcyA9IHRoaXMudHJhbnNmZXJ0VG9nZ2xlTGVnZW5kSXRlbShsZWdlbmRJdGVtcyk7IH1cbiAgICB0aGlzLmxheWVyLmxlZ2VuZCA9IGxlZ2VuZEl0ZW1zO1xuXG4gICAgaWYgKGxlZ2VuZEl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmxlZ2VuZEl0ZW1zJC52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sZWdlbmRJdGVtcyQubmV4dChsZWdlbmRJdGVtcyk7XG4gICAgZm9yIChjb25zdCBsZWdlbmQgb2YgdGhpcy5sZWdlbmRJdGVtcyQudmFsdWUpIHtcbiAgICAgIHRoaXMuZ2V0TGVnZW5kR3JhcGhpYyhsZWdlbmQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdFN0eWxlcygpIHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmxheWVyLm9wdGlvbnM7XG4gICAgaWYgKGxheWVyT3B0aW9ucyAmJiBsYXllck9wdGlvbnMubGVnZW5kT3B0aW9ucykge1xuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5sYXllci5sZWdlbmQuZGVmYXVsdCcpO1xuICAgICAgbGV0IHN0eWxlc0F2YWlsYWJsZSA9IFt7IG5hbWU6ICcnLCB0aXRsZSB9IGFzIEl0ZW1TdHlsZU9wdGlvbnNdO1xuICAgICAgaWYgKGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zLnN0eWxlc0F2YWlsYWJsZSkge1xuICAgICAgICBzdHlsZXNBdmFpbGFibGUgPSBzdHlsZXNBdmFpbGFibGUuY29uY2F0KGxheWVyT3B0aW9ucy5sZWdlbmRPcHRpb25zLnN0eWxlc0F2YWlsYWJsZS5maWx0ZXIoc0EgPT4gKFxuICAgICAgICAgIHNBLm5hbWUubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9naSwgJycpICE9PSAnZGVmYXVsdCcgJiZcbiAgICAgICAgICBzQS5uYW1lLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZ2ksICcnKSAhPT0gJ2RlZmF1dCcpKSk7XG4gICAgICB9XG4gICAgICBzdHlsZXNBdmFpbGFibGUuZmlsdGVyKHNhID0+ICFzYS50aXRsZSkubWFwKChzYSkgPT4gc2EudGl0bGUgPSBzYS5uYW1lKTtcbiAgICAgIHN0eWxlc0F2YWlsYWJsZS5tYXAocyA9PiBzLnRpdGxlID0gcy50aXRsZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMudGl0bGUuc2xpY2UoMSkucmVwbGFjZSgvXy9nLCAnICcpKTtcbiAgICAgIHJldHVybiBzdHlsZXNBdmFpbGFibGU7XG4gICAgfVxuICAgIHJldHVybiA7XG4gIH1cblxuICBvbkNoYW5nZVN0eWxlKCkge1xuICAgIHRoaXMudXBkYXRlTGVnZW5kKCk7XG4gICAgbGV0IFNUWUxFUyA9ICcnO1xuICAgIGlmICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBXTVNEYXRhU291cmNlKSB7XG4gICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wuZ2V0UGFyYW1zKCkuTEFZRVJTLnNwbGl0KCcsJykubWFwKGxheWVyID0+XG4gICAgICAgIFNUWUxFUyArPSB0aGlzLmN1cnJlbnRTdHlsZSArICcsJ1xuICAgICAgKTtcbiAgICAgIFNUWUxFUyA9IFNUWUxFUy5zbGljZSgwLCAtMSk7XG4gICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wudXBkYXRlUGFyYW1zKHsgU1RZTEVTIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTG9hZEltYWdlKGlkOiBzdHJpbmcpIHtcbiAgICBsZXQgZWxlbVJlZjogSFRNTEltYWdlRWxlbWVudDtcbiAgICBpZiAodGhpcy5yZW5kZXJlZExlZ2VuZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBlbGVtUmVmID0gdGhpcy5yZW5kZXJlZExlZ2VuZHMuZmlyc3QubmF0aXZlRWxlbWVudCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtUmVmID0gdGhpcy5yZW5kZXJlZExlZ2VuZHMuZmluZChyZW5kZXJlZExlZ2VuZCA9PiByZW5kZXJlZExlZ2VuZC5uYXRpdmVFbGVtZW50LmlkID09PSBpZCkubmF0aXZlRWxlbWVudCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIH1cbiAgICB0aGlzLmltYWdlc0hlaWdodFtpZF0gPSBlbGVtUmVmLmhlaWdodDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2VuZEl0ZW1zJCB8IGFzeW5jIGFzIGl0ZW1zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5sZW5ndGg7IGVsc2Ugbm9JdGVtc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMuc2xpY2UoKS5yZXZlcnNlKClcIiAjcmVuZGVyZWRMZWdlbmRzPlxuICAgICAgPGRpdiAqbmdJZj1cImdldExlZ2VuZDsgZWxzZSBub0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0lmPVwiaXRlbS50aXRsZVwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgaWQ9XCJsZWdlbmQtdG9nZ2xlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgICAgICAgICAgbWF0LWxpc3QtYXZhdGFyXG4gICAgICAgICAgICBpZ29Db2xsYXBzZVxuICAgICAgICAgICAgW3RhcmdldF09XCJsZWdlbmRcIlxuICAgICAgICAgICAgW2NvbGxhcHNlZF09XCIoaXRlbS5jb2xsYXBzZWQpXCJcbiAgICAgICAgICAgICh0b2dnbGUpPVwidG9nZ2xlTGVnZW5kSXRlbSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8aDQgbWF0TGluZT57e2NvbXB1dGVJdGVtVGl0bGUoaXRlbSkgfCBhc3luY319IDwvaDQ+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZFwiIFtuZ0NsYXNzXT1cInsnd2l0aC10aXRsZSc6IGl0ZW0udGl0bGV9XCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRTdHlsZSAhPT0gdW5kZWZpbmVkXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmxlZ2VuZC5zZWxlY3RTdHlsZScgfCB0cmFuc2xhdGVcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRTdHlsZVwiXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlU3R5bGUoKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHN0eWxlIG9mIHN0eWxlc1wiIFt2YWx1ZV09XCJzdHlsZS5uYW1lXCI+e3tzdHlsZS50aXRsZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiEoaXRlbS5jb2xsYXBzZWQpXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS51cmxcIj5cbiAgICAgICAgICAgICAgPGltZyBpZ29JbWFnZUVycm9yICpuZ0lmPVwiaXRlbS5pbWdHcmFwaFZhbHVlXCIgaGlkZUVycm9yPVwidHJ1ZVwiICNyZW5kZXJlZExlZ2VuZCBpZD1cInt7aXRlbS50aXRsZX19XCIgKGxvYWQpPVwib25Mb2FkSW1hZ2UoaXRlbS50aXRsZSlcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWdHcmFwaFZhbHVlXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJ7eydpZ28uZ2VvLmxheWVyLmxlZ2VuZC5sb2FkaW5nTGVnZW5kVGV4dCcgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJpbWFnZXNIZWlnaHRbaXRlbS50aXRsZV08MTZcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2lnby5nZW8ubGF5ZXIubGVnZW5kLm5vTGVnZW5kU2NhbGUnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpdGVtLnN0eWxlXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmh0bWwgfCBzYW5pdGl6ZUh0bWxcIlxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaHRtbFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9JdGVtcz5cbiAgICA8c21hbGw+XG4gICAgICB7eydpZ28uZ2VvLmxheWVyLmxlZ2VuZC5ub0xlZ2VuZFRleHQnIHwgdHJhbnNsYXRlfX1cbiAgICA8L3NtYWxsPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|