@igo2/geo 1.14.1 → 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 +301 -299
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +306 -268
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +247 -247
- 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 +195 -195
- 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 -133
- 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 +463 -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 +126 -123
- package/esm2020/lib/print/print-form/index.mjs +1 -1
- package/esm2020/lib/print/print-form/print-form.component.mjs +428 -405
- 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 +934 -861
- 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 +2 -2
- package/esm2020/lib/query/shared/query.service.mjs +733 -619
- 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 +512 -493
- 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 +118 -0
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +371 -193
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -124
- package/esm2020/lib/search/search-results/search-results.component.mjs +340 -340
- package/esm2020/lib/search/search-results/search-results.module.mjs +104 -77
- 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 +442 -418
- 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 +121 -118
- 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 +153 -147
- 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 +767 -767
- 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 +320 -320
- 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 +179 -179
- 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 +44993 -44364
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +43075 -42470
- 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 -124
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -73
- 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 -26
- 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 -89
- 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 -159
- 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 -28
- package/lib/query/shared/query.service.d.ts +56 -54
- 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 -220
- 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 -0
- package/lib/search/search-results/search-results-add-button.component.d.ts +76 -58
- package/lib/search/search-results/search-results-item.component.d.ts +47 -48
- package/lib/search/search-results/search-results.component.d.ts +161 -161
- package/lib/search/search-results/search-results.module.d.ts +28 -21
- 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 -96
- 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 -51
- 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,591 +1,591 @@
|
|
|
1
|
-
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import { CoordinatesUnit, GeometryType, LabelType } from '../shared/draw.enum';
|
|
4
|
-
import { transform } from 'ol/proj';
|
|
5
|
-
import { roundCoordTo } from '../../map/shared';
|
|
6
|
-
import OlFeature from 'ol/Feature';
|
|
7
|
-
import { measureOlGeometryLength, measureOlGeometryArea, metersToUnit, squareMetersToUnit } from '../../measure/shared/measure.utils';
|
|
8
|
-
import { MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureAreaUnit, MeasureAreaUnitAbbreviation, } from '../../measure/shared/measure.enum';
|
|
9
|
-
import { fromCircle } from 'ol/geom/Polygon';
|
|
10
|
-
import { getLength } from 'ol/sphere';
|
|
11
|
-
import Circle from 'ol/geom/Circle';
|
|
12
|
-
import { DDtoDMS } from '../shared/draw.utils';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@igo2/core";
|
|
15
|
-
import * as i2 from "@angular/material/dialog";
|
|
16
|
-
import * as i3 from "@angular/common";
|
|
17
|
-
import * as i4 from "@angular/material/button";
|
|
18
|
-
import * as i5 from "@angular/material/button-toggle";
|
|
19
|
-
import * as i6 from "@angular/material/form-field";
|
|
20
|
-
import * as i7 from "@angular/material/input";
|
|
21
|
-
import * as i8 from "@angular/material/select";
|
|
22
|
-
import * as i9 from "@angular/material/core";
|
|
23
|
-
import * as i10 from "@angular/material/radio";
|
|
24
|
-
import * as i11 from "@angular/material/checkbox";
|
|
25
|
-
import * as i12 from "@ngx-translate/core";
|
|
26
|
-
function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
const _r10 = i0.ɵɵgetCurrentView();
|
|
28
|
-
i0.ɵɵelementStart(0, "mat-radio-button", 11);
|
|
29
|
-
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r9.onLabelTypeChange($event.value)); });
|
|
30
|
-
i0.ɵɵtext(1);
|
|
31
|
-
i0.ɵɵelementEnd();
|
|
32
|
-
} if (rf & 2) {
|
|
33
|
-
const option_r8 = ctx.$implicit;
|
|
34
|
-
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
35
|
-
i0.ɵɵproperty("value", option_r8.value)("disabled", ctx_r7.optionAvailable(option_r8.value))("checked", option_r8.checked);
|
|
36
|
-
i0.ɵɵadvance(1);
|
|
37
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r7.getProperLengthLabel(option_r8.value), " ");
|
|
38
|
-
} }
|
|
39
|
-
function DrawPopupComponent_div_12_mat_radio_group_5_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
-
i0.ɵɵelementStart(0, "mat-radio-group", 5);
|
|
41
|
-
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template, 2, 4, "mat-radio-button", 10);
|
|
42
|
-
i0.ɵɵelementEnd();
|
|
43
|
-
} if (rf & 2) {
|
|
44
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
45
|
-
i0.ɵɵadvance(1);
|
|
46
|
-
i0.ɵɵproperty("ngForOf", ctx_r2.arrayBuiltInType);
|
|
47
|
-
} }
|
|
48
|
-
function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
const _r14 = i0.ɵɵgetCurrentView();
|
|
50
|
-
i0.ɵɵelementStart(0, "mat-checkbox", 13);
|
|
51
|
-
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template_mat_checkbox_change_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.onLabelTypeChange($event.source.value, $event.checked)); });
|
|
52
|
-
i0.ɵɵtext(1);
|
|
53
|
-
i0.ɵɵelementEnd();
|
|
54
|
-
} if (rf & 2) {
|
|
55
|
-
const option_r12 = ctx.$implicit;
|
|
56
|
-
const ctx_r11 = i0.ɵɵnextContext(3);
|
|
57
|
-
i0.ɵɵproperty("value", option_r12.value)("disabled", ctx_r11.optionAvailable(option_r12.value))("checked", option_r12.checked);
|
|
58
|
-
i0.ɵɵadvance(1);
|
|
59
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r11.getProperLengthLabel(option_r12.value), " ");
|
|
60
|
-
} }
|
|
61
|
-
function DrawPopupComponent_div_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
-
i0.ɵɵelementContainerStart(0, 5);
|
|
63
|
-
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template, 2, 4, "mat-checkbox", 12);
|
|
64
|
-
i0.ɵɵelementContainerEnd();
|
|
65
|
-
} if (rf & 2) {
|
|
66
|
-
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
67
|
-
i0.ɵɵadvance(1);
|
|
68
|
-
i0.ɵɵproperty("ngForOf", ctx_r3.arrayBuiltInType);
|
|
69
|
-
} }
|
|
70
|
-
function DrawPopupComponent_div_12_div_7_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
-
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
72
|
-
i0.ɵɵtext(1);
|
|
73
|
-
i0.ɵɵelementEnd();
|
|
74
|
-
} if (rf & 2) {
|
|
75
|
-
const unit_r17 = ctx.$implicit;
|
|
76
|
-
i0.ɵɵproperty("value", unit_r17);
|
|
77
|
-
i0.ɵɵadvance(1);
|
|
78
|
-
i0.ɵɵtextInterpolate1(" ", unit_r17, " ");
|
|
79
|
-
} }
|
|
80
|
-
function DrawPopupComponent_div_12_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
-
const _r19 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
83
|
-
i0.ɵɵelement(2, "input", 15, 16);
|
|
84
|
-
i0.ɵɵelementEnd();
|
|
85
|
-
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
86
|
-
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_7_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.onChangeCoordinateUnit($event.value)); });
|
|
87
|
-
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_7_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
88
|
-
i0.ɵɵelementEnd()()();
|
|
89
|
-
} if (rf & 2) {
|
|
90
|
-
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
91
|
-
i0.ɵɵadvance(2);
|
|
92
|
-
i0.ɵɵpropertyInterpolate("value", ctx_r4.currentCoordinates);
|
|
93
|
-
i0.ɵɵadvance(3);
|
|
94
|
-
i0.ɵɵproperty("value", ctx_r4.coordinatesMeasureUnit);
|
|
95
|
-
i0.ɵɵadvance(1);
|
|
96
|
-
i0.ɵɵproperty("ngForOf", ctx_r4.allCoordinatesUnits);
|
|
97
|
-
} }
|
|
98
|
-
function DrawPopupComponent_div_12_div_8_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
-
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
100
|
-
i0.ɵɵtext(1);
|
|
101
|
-
i0.ɵɵelementEnd();
|
|
102
|
-
} if (rf & 2) {
|
|
103
|
-
const unit_r22 = ctx.$implicit;
|
|
104
|
-
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
105
|
-
i0.ɵɵproperty("value", unit_r22);
|
|
106
|
-
i0.ɵɵadvance(1);
|
|
107
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r21.getLengthUnitEnum(unit_r22), " ");
|
|
108
|
-
} }
|
|
109
|
-
function DrawPopupComponent_div_12_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
110
|
-
const _r24 = i0.ɵɵgetCurrentView();
|
|
111
|
-
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
112
|
-
i0.ɵɵelement(2, "input", 20, 16);
|
|
113
|
-
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
115
|
-
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_8_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onChangeLengthUnit($event.value)); });
|
|
116
|
-
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_8_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
117
|
-
i0.ɵɵelementEnd()()();
|
|
118
|
-
} if (rf & 2) {
|
|
119
|
-
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
120
|
-
i0.ɵɵadvance(2);
|
|
121
|
-
i0.ɵɵpropertyInterpolate("placeholder", ctx_r5.lengthLabelT);
|
|
122
|
-
i0.ɵɵpropertyInterpolate("value", ctx_r5.currentLength);
|
|
123
|
-
i0.ɵɵadvance(3);
|
|
124
|
-
i0.ɵɵproperty("value", ctx_r5.lengthMeasureUnit);
|
|
125
|
-
i0.ɵɵadvance(1);
|
|
126
|
-
i0.ɵɵproperty("ngForOf", ctx_r5.allLengthUnits);
|
|
127
|
-
} }
|
|
128
|
-
function DrawPopupComponent_div_12_div_9_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
129
|
-
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
130
|
-
i0.ɵɵtext(1);
|
|
131
|
-
i0.ɵɵelementEnd();
|
|
132
|
-
} if (rf & 2) {
|
|
133
|
-
const unit_r27 = ctx.$implicit;
|
|
134
|
-
const ctx_r26 = i0.ɵɵnextContext(3);
|
|
135
|
-
i0.ɵɵproperty("value", unit_r27);
|
|
136
|
-
i0.ɵɵadvance(1);
|
|
137
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r26.getAreaUnitEnum(unit_r27), " ");
|
|
138
|
-
} }
|
|
139
|
-
function DrawPopupComponent_div_12_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
-
const _r29 = i0.ɵɵgetCurrentView();
|
|
141
|
-
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
142
|
-
i0.ɵɵelement(2, "input", 20, 16);
|
|
143
|
-
i0.ɵɵpipe(4, "translate");
|
|
144
|
-
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵelementStart(5, "mat-form-field", 17)(6, "mat-select", 18);
|
|
146
|
-
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_9_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.onChangeAreaUnit($event.value)); });
|
|
147
|
-
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_9_mat_option_7_Template, 2, 2, "mat-option", 19);
|
|
148
|
-
i0.ɵɵelementEnd()()();
|
|
149
|
-
} if (rf & 2) {
|
|
150
|
-
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
151
|
-
i0.ɵɵadvance(2);
|
|
152
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 4, "igo.geo.draw.labelType.Area"));
|
|
153
|
-
i0.ɵɵpropertyInterpolate("value", ctx_r6.currentArea);
|
|
154
|
-
i0.ɵɵadvance(4);
|
|
155
|
-
i0.ɵɵproperty("value", ctx_r6.areaMeasureUnit);
|
|
156
|
-
i0.ɵɵadvance(1);
|
|
157
|
-
i0.ɵɵproperty("ngForOf", ctx_r6.allAreaUnits);
|
|
158
|
-
} }
|
|
159
|
-
function DrawPopupComponent_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
-
const _r31 = i0.ɵɵgetCurrentView();
|
|
161
|
-
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
162
|
-
i0.ɵɵtext(3);
|
|
163
|
-
i0.ɵɵpipe(4, "translate");
|
|
164
|
-
i0.ɵɵelementEnd();
|
|
165
|
-
i0.ɵɵtemplate(5, DrawPopupComponent_div_12_mat_radio_group_5_Template, 2, 1, "mat-radio-group", 6);
|
|
166
|
-
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_ng_container_6_Template, 2, 1, "ng-container", 6);
|
|
167
|
-
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_7_Template, 7, 3, "div", 4);
|
|
168
|
-
i0.ɵɵtemplate(8, DrawPopupComponent_div_12_div_8_Template, 7, 4, "div", 4);
|
|
169
|
-
i0.ɵɵtemplate(9, DrawPopupComponent_div_12_div_9_Template, 8, 6, "div", 4);
|
|
170
|
-
i0.ɵɵelementEnd();
|
|
171
|
-
i0.ɵɵelementStart(10, "div", 7)(11, "button", 8);
|
|
172
|
-
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.cancelDrawing()); });
|
|
173
|
-
i0.ɵɵtext(12);
|
|
174
|
-
i0.ɵɵpipe(13, "translate");
|
|
175
|
-
i0.ɵɵelementEnd();
|
|
176
|
-
i0.ɵɵelementStart(14, "button", 9);
|
|
177
|
-
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.confirm()); });
|
|
178
|
-
i0.ɵɵtext(15);
|
|
179
|
-
i0.ɵɵelementEnd()()();
|
|
180
|
-
} if (rf & 2) {
|
|
181
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
182
|
-
i0.ɵɵadvance(3);
|
|
183
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "igo.geo.draw.builtInInstructions"));
|
|
184
|
-
i0.ɵɵadvance(2);
|
|
185
|
-
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType !== "Polygon");
|
|
186
|
-
i0.ɵɵadvance(1);
|
|
187
|
-
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType === "Polygon");
|
|
188
|
-
i0.ɵɵadvance(1);
|
|
189
|
-
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Coordinates);
|
|
190
|
-
i0.ɵɵadvance(1);
|
|
191
|
-
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Length || ctx_r0.polygonCheck === 2);
|
|
192
|
-
i0.ɵɵadvance(1);
|
|
193
|
-
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Area || ctx_r0.polygonCheck === 2);
|
|
194
|
-
i0.ɵɵadvance(3);
|
|
195
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 10, "igo.geo.draw.cancel"), " ");
|
|
196
|
-
i0.ɵɵadvance(3);
|
|
197
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r0.noLabelButton(), " ");
|
|
198
|
-
} }
|
|
199
|
-
function DrawPopupComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
-
const _r36 = i0.ɵɵgetCurrentView();
|
|
201
|
-
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
202
|
-
i0.ɵɵtext(3);
|
|
203
|
-
i0.ɵɵpipe(4, "translate");
|
|
204
|
-
i0.ɵɵelementEnd();
|
|
205
|
-
i0.ɵɵelementStart(5, "mat-form-field", 21)(6, "input", 22, 16);
|
|
206
|
-
i0.ɵɵlistener("select", function DrawPopupComponent_div_13_Template_input_select_6_listener() { return true; })("input", function DrawPopupComponent_div_13_Template_input_input_6_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.getLabelLength($event.target.value)); });
|
|
207
|
-
i0.ɵɵpipe(8, "translate");
|
|
208
|
-
i0.ɵɵelementEnd()()();
|
|
209
|
-
i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
|
|
210
|
-
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r36); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r37.cancelDrawing()); });
|
|
211
|
-
i0.ɵɵtext(11);
|
|
212
|
-
i0.ɵɵpipe(12, "translate");
|
|
213
|
-
i0.ɵɵelementEnd();
|
|
214
|
-
i0.ɵɵelementStart(13, "button", 9);
|
|
215
|
-
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r36); const _r33 = i0.ɵɵreference(7); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.confirm(_r33.value)); });
|
|
216
|
-
i0.ɵɵtext(14);
|
|
217
|
-
i0.ɵɵelementEnd()()();
|
|
218
|
-
} if (rf & 2) {
|
|
219
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
220
|
-
i0.ɵɵadvance(3);
|
|
221
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "igo.geo.draw.dialogInstruction"));
|
|
222
|
-
i0.ɵɵadvance(3);
|
|
223
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 7, "igo.geo.draw.dialogTitle"));
|
|
224
|
-
i0.ɵɵpropertyInterpolate("value", ctx_r1.currentLabel);
|
|
225
|
-
i0.ɵɵadvance(5);
|
|
226
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 9, "igo.geo.draw.cancel"), " ");
|
|
227
|
-
i0.ɵɵadvance(3);
|
|
228
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.noLabelButton(), " ");
|
|
229
|
-
} }
|
|
230
|
-
export class DrawPopupComponent {
|
|
231
|
-
constructor(languageService, dialogRef, data) {
|
|
232
|
-
this.languageService = languageService;
|
|
233
|
-
this.dialogRef = dialogRef;
|
|
234
|
-
this.data = data;
|
|
235
|
-
this.confirmFlag = false;
|
|
236
|
-
this.labelFlag = LabelType.Custom;
|
|
237
|
-
this.geometryType = GeometryType;
|
|
238
|
-
this.labelType = LabelType;
|
|
239
|
-
this.arrayBuiltInType = [];
|
|
240
|
-
this.olGeometryType = undefined;
|
|
241
|
-
this.polygonCheck = 0; // Count for polygon label types checkboxes
|
|
242
|
-
this.currentLabel = this.data.olGeometry.get('draw');
|
|
243
|
-
this.labelLength = this.currentLabel ? this.currentLabel.length : 0;
|
|
244
|
-
let olGeometry;
|
|
245
|
-
const projection = this.data.map.ol.getView().getProjection();
|
|
246
|
-
if (this.data.olGeometry instanceof OlFeature) {
|
|
247
|
-
if (this.data.olGeometry.get('rad')) {
|
|
248
|
-
const longitudeLatitude = [this.data.olGeometry.get('longitude'), this.data.olGeometry.get('latitude')];
|
|
249
|
-
this.olGeometryType = GeometryType.Circle;
|
|
250
|
-
olGeometry = new Circle(longitudeLatitude, this.data.olGeometry.get('rad'));
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
this.olGeometryType = this.data.olGeometry.getGeometry().getType();
|
|
254
|
-
olGeometry = this.data.olGeometry.get('geometry');
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
this.olGeometryType = this.data.olGeometry.getType();
|
|
259
|
-
olGeometry = this.data.olGeometry;
|
|
260
|
-
}
|
|
261
|
-
if (this.olGeometryType === GeometryType.Point || this.olGeometryType === GeometryType.Circle) {
|
|
262
|
-
if (this.data.olGeometry instanceof OlFeature) {
|
|
263
|
-
let longitude = this.data.olGeometry.get('longitude');
|
|
264
|
-
let latitude = this.data.olGeometry.get('latitude');
|
|
265
|
-
this.longlatDD = roundCoordTo([longitude, latitude], 5);
|
|
266
|
-
this.coordinatesInDD = '(' + latitude + ', '
|
|
267
|
-
+ longitude + ')';
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
let point4326 = transform(this.data.olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
271
|
-
this.longlatDD = roundCoordTo([point4326[0], point4326[1]], 5);
|
|
272
|
-
this.coordinatesInDD =
|
|
273
|
-
'(' + this.longlatDD[1] + ', ' + this.longlatDD[0] + ')';
|
|
274
|
-
}
|
|
275
|
-
this.currentCoordinates = this.coordinatesInDD;
|
|
276
|
-
}
|
|
277
|
-
if (this.olGeometryType === GeometryType.LineString) {
|
|
278
|
-
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
279
|
-
this.currentLength = this.lengthInMeters;
|
|
280
|
-
}
|
|
281
|
-
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
282
|
-
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
283
|
-
this.currentLength = this.lengthInMeters;
|
|
284
|
-
this.areaInMetersSquare = measureOlGeometryArea(olGeometry, projection.getCode()).toFixed(2);
|
|
285
|
-
this.currentArea = this.areaInMetersSquare;
|
|
286
|
-
}
|
|
287
|
-
else if (this.olGeometryType === GeometryType.Circle) {
|
|
288
|
-
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
289
|
-
const radius = this.getRadius(circularPolygon);
|
|
290
|
-
this.lengthInMeters = radius.toFixed(2);
|
|
291
|
-
this.currentLength = this.lengthInMeters;
|
|
292
|
-
this.areaInMetersSquare = measureOlGeometryArea(circularPolygon, projection.getCode()).toFixed(2);
|
|
293
|
-
this.currentArea = this.areaInMetersSquare;
|
|
294
|
-
}
|
|
295
|
-
if (data.olGeometry.get('labelType') === LabelType.Coordinates) {
|
|
296
|
-
this.onLabelTypeChange(LabelType.Predefined);
|
|
297
|
-
this.onLabelTypeChange(LabelType.Coordinates, true);
|
|
298
|
-
this.coordinatesMeasureUnit = data.olGeometry.get('measureUnit');
|
|
299
|
-
}
|
|
300
|
-
else if (data.olGeometry.get('labelType') === LabelType.Length) {
|
|
301
|
-
this.onLabelTypeChange(LabelType.Predefined);
|
|
302
|
-
this.onLabelTypeChange(LabelType.Length, true);
|
|
303
|
-
this.lengthMeasureUnit = data.olGeometry.get('measureUnit');
|
|
304
|
-
}
|
|
305
|
-
else if (data.olGeometry.get('labelType') === LabelType.Area) {
|
|
306
|
-
this.onLabelTypeChange(LabelType.Predefined);
|
|
307
|
-
this.onLabelTypeChange(LabelType.Area, true);
|
|
308
|
-
this.areaMeasureUnit = data.olGeometry.get('measureUnit');
|
|
309
|
-
}
|
|
310
|
-
else if (data.olGeometry.get('labelType')?.length === 2) {
|
|
311
|
-
this.onLabelTypeChange(LabelType.Predefined);
|
|
312
|
-
this.onLabelTypeChange(LabelType.Length, true);
|
|
313
|
-
this.onLabelTypeChange(LabelType.Area, true);
|
|
314
|
-
this.lengthMeasureUnit = data.olGeometry.get('measureUnit')[0];
|
|
315
|
-
this.areaMeasureUnit = data.olGeometry.get('measureUnit')[1];
|
|
316
|
-
}
|
|
317
|
-
this.buildArrayType();
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* HTML Interactions
|
|
321
|
-
*/
|
|
322
|
-
cancelDrawing() {
|
|
323
|
-
this.dialogRef.close();
|
|
324
|
-
}
|
|
325
|
-
confirm(input) {
|
|
326
|
-
this.confirmFlag = true;
|
|
327
|
-
if (this.labelFlag === LabelType.Predefined) {
|
|
328
|
-
this.dialogRef.close();
|
|
329
|
-
}
|
|
330
|
-
else if (this.labelFlag === LabelType.Custom) {
|
|
331
|
-
this.dialogRef.close({
|
|
332
|
-
label: input
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
else if (this.labelFlag === LabelType.Coordinates) {
|
|
336
|
-
this.dialogRef.close({
|
|
337
|
-
label: this.currentCoordinates,
|
|
338
|
-
measureUnit: this.coordinatesMeasureUnit
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
342
|
-
if (this.polygonCheck === 2) {
|
|
343
|
-
this.labelFlag = [LabelType.Length, LabelType.Area];
|
|
344
|
-
this.dialogRef.close({
|
|
345
|
-
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[MeasureLengthUnit.Meters] + '\n'
|
|
346
|
-
+ this.languageService.translate.instant('igo.geo.draw.labelType.A') + this.currentArea + ' ' +
|
|
347
|
-
MeasureAreaUnitAbbreviation[MeasureAreaUnit.SquareMeters], measureUnit: [this.lengthMeasureUnit, this.areaMeasureUnit]
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
this.labelFlag === LabelType.Length ?
|
|
352
|
-
this.dialogRef.close({
|
|
353
|
-
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
354
|
-
measureUnit: this.lengthMeasureUnit
|
|
355
|
-
}) :
|
|
356
|
-
this.dialogRef.close({
|
|
357
|
-
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
358
|
-
measureUnit: this.areaMeasureUnit
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
else if (this.labelFlag === LabelType.Length) {
|
|
363
|
-
if (this.olGeometryType === GeometryType.Circle) {
|
|
364
|
-
this.dialogRef.close({
|
|
365
|
-
label: 'R: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
366
|
-
measureUnit: this.lengthMeasureUnit
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
else if (this.olGeometryType === GeometryType.LineString) {
|
|
370
|
-
this.dialogRef.close({
|
|
371
|
-
label: this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
372
|
-
measureUnit: this.lengthMeasureUnit
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
else if (this.labelFlag === LabelType.Area) {
|
|
377
|
-
this.dialogRef.close({
|
|
378
|
-
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
379
|
-
measureUnit: this.areaMeasureUnit
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
onLabelTypeChange(labelType, checked) {
|
|
384
|
-
if (labelType !== LabelType.Predefined &&
|
|
385
|
-
labelType !== LabelType.Custom &&
|
|
386
|
-
this.olGeometryType === GeometryType.Polygon) {
|
|
387
|
-
this.arrayBuiltInType.find(type => type.value === labelType) ?
|
|
388
|
-
this.arrayBuiltInType.find(type => type.value === labelType).checked = checked : this.labelFlag = undefined;
|
|
389
|
-
checked ? this.labelFlag = labelType : this.labelFlag = this.arrayBuiltInType.find(type => type.checked)?.value;
|
|
390
|
-
}
|
|
391
|
-
else {
|
|
392
|
-
this.labelFlag = labelType;
|
|
393
|
-
}
|
|
394
|
-
if (labelType === LabelType.Predefined) {
|
|
395
|
-
if (this.olGeometryType === GeometryType.Point) {
|
|
396
|
-
this.labelFlag = LabelType.Coordinates;
|
|
397
|
-
this.currentCoordinates = this.coordinatesInDD;
|
|
398
|
-
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
399
|
-
}
|
|
400
|
-
else if (this.olGeometryType === GeometryType.LineString) {
|
|
401
|
-
this.labelFlag = LabelType.Length;
|
|
402
|
-
this.currentLength = this.lengthInMeters;
|
|
403
|
-
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
else if (labelType === LabelType.Area) {
|
|
407
|
-
this.currentArea = this.areaInMetersSquare;
|
|
408
|
-
this.areaMeasureUnit = MeasureAreaUnit.SquareMeters;
|
|
409
|
-
}
|
|
410
|
-
else if (labelType === LabelType.Length) {
|
|
411
|
-
this.currentLength = this.lengthInMeters;
|
|
412
|
-
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
413
|
-
}
|
|
414
|
-
else if (this.labelFlag === LabelType.Coordinates) {
|
|
415
|
-
this.currentCoordinates = this.coordinatesInDD;
|
|
416
|
-
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
417
|
-
}
|
|
418
|
-
const labeltypes = [this.labelType.Length, this.labelType.Area];
|
|
419
|
-
if (this.olGeometryType === GeometryType.Polygon &&
|
|
420
|
-
labeltypes.includes(labelType)) {
|
|
421
|
-
checked ? this.polygonCheck += 1 : this.polygonCheck -= 1;
|
|
422
|
-
;
|
|
423
|
-
}
|
|
424
|
-
else {
|
|
425
|
-
this.polygonCheck = 0;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
onChangeLengthUnit(lengthUnit) {
|
|
429
|
-
this.lengthMeasureUnit = lengthUnit;
|
|
430
|
-
this.currentLength = metersToUnit(Number(this.lengthInMeters), lengthUnit).toFixed(2);
|
|
431
|
-
}
|
|
432
|
-
onChangeAreaUnit(areaUnit) {
|
|
433
|
-
this.areaMeasureUnit = areaUnit;
|
|
434
|
-
this.currentArea = squareMetersToUnit(Number(this.areaInMetersSquare), areaUnit).toFixed(2);
|
|
435
|
-
}
|
|
436
|
-
onChangeCoordinateUnit(coordinatesUnit) {
|
|
437
|
-
this.coordinatesMeasureUnit = coordinatesUnit;
|
|
438
|
-
let coordinates = DDtoDMS(this.longlatDD, coordinatesUnit);
|
|
439
|
-
this.currentCoordinates = '(' + coordinates[1] + ', ' + coordinates[0] + ')';
|
|
440
|
-
}
|
|
441
|
-
buildArrayType() {
|
|
442
|
-
for (const labelType of Object.values(LabelType)) {
|
|
443
|
-
if (labelType !== LabelType.Custom && labelType !== LabelType.Predefined) {
|
|
444
|
-
this.arrayBuiltInType.push({
|
|
445
|
-
value: labelType,
|
|
446
|
-
checked: this.selectOptions(labelType) ||
|
|
447
|
-
this.labelFlag === labelType ||
|
|
448
|
-
(this.polygonCheck === 2 && labelType !== LabelType.Coordinates)
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
noLabelButton() {
|
|
454
|
-
if (this.labelFlag === LabelType.Predefined || (this.labelFlag === LabelType.Custom && this.labelLength === 0)) {
|
|
455
|
-
return this.languageService.translate.instant('igo.geo.draw.noLabel');
|
|
456
|
-
}
|
|
457
|
-
return 'OK';
|
|
458
|
-
}
|
|
459
|
-
get customOrPredefined() {
|
|
460
|
-
if (this.labelFlag === LabelType.Custom) {
|
|
461
|
-
return LabelType.Custom;
|
|
462
|
-
}
|
|
463
|
-
return LabelType.Predefined;
|
|
464
|
-
}
|
|
465
|
-
optionAvailable(currentOption) {
|
|
466
|
-
switch (this.olGeometryType) {
|
|
467
|
-
case GeometryType.Point:
|
|
468
|
-
if (currentOption === LabelType.Coordinates) {
|
|
469
|
-
return false;
|
|
470
|
-
}
|
|
471
|
-
return true;
|
|
472
|
-
case GeometryType.LineString:
|
|
473
|
-
if (currentOption === LabelType.Length) {
|
|
474
|
-
return false;
|
|
475
|
-
}
|
|
476
|
-
return true;
|
|
477
|
-
case GeometryType.Polygon:
|
|
478
|
-
if (currentOption === LabelType.Coordinates) {
|
|
479
|
-
return true;
|
|
480
|
-
}
|
|
481
|
-
return false;
|
|
482
|
-
default:
|
|
483
|
-
return false;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
get allLengthUnits() {
|
|
487
|
-
return Object.values(MeasureLengthUnit);
|
|
488
|
-
}
|
|
489
|
-
getLengthUnitEnum(lengthUnit) {
|
|
490
|
-
return MeasureLengthUnitAbbreviation[lengthUnit];
|
|
491
|
-
}
|
|
492
|
-
get allAreaUnits() {
|
|
493
|
-
return Object.values(MeasureAreaUnit);
|
|
494
|
-
}
|
|
495
|
-
get allCoordinatesUnits() {
|
|
496
|
-
return Object.values(CoordinatesUnit);
|
|
497
|
-
}
|
|
498
|
-
getAreaUnitEnum(areaUnit) {
|
|
499
|
-
return MeasureAreaUnitAbbreviation[areaUnit];
|
|
500
|
-
}
|
|
501
|
-
getRadius(olGeometry) {
|
|
502
|
-
const length = getLength(olGeometry);
|
|
503
|
-
return Number(length / (2 * Math.PI));
|
|
504
|
-
}
|
|
505
|
-
get lengthLabelT() {
|
|
506
|
-
if (this.olGeometryType === GeometryType.Polygon) {
|
|
507
|
-
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
508
|
-
}
|
|
509
|
-
if (this.olGeometryType === GeometryType.Circle) {
|
|
510
|
-
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
511
|
-
}
|
|
512
|
-
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
513
|
-
}
|
|
514
|
-
getLabelLength(event) {
|
|
515
|
-
this.labelLength = event.length;
|
|
516
|
-
}
|
|
517
|
-
selectOptions(option) {
|
|
518
|
-
if (this.olGeometryType === GeometryType.Point) {
|
|
519
|
-
return option === LabelType.Coordinates;
|
|
520
|
-
}
|
|
521
|
-
else if (this.olGeometryType === GeometryType.LineString) {
|
|
522
|
-
return option === LabelType.Length;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
getProperLengthLabel(option) {
|
|
526
|
-
if (option === LabelType.Length) {
|
|
527
|
-
if (this.olGeometryType === GeometryType.Polygon) {
|
|
528
|
-
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
529
|
-
}
|
|
530
|
-
if (this.olGeometryType === GeometryType.Circle) {
|
|
531
|
-
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
532
|
-
}
|
|
533
|
-
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
534
|
-
}
|
|
535
|
-
return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i1.LanguageService), i0.ɵɵdirectiveInject(i2.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
539
|
-
DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, decls: 14, vars: 14, consts: [["mat-dialog-title", ""], [1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [4, "ngIf"], [1, "mat-typography"], ["class", "mat-typography", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [3, "value", "disabled", "checked", "change"], ["class", "mat-typography", 3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "disabled", "checked", "change"], [1, "readOnly-Input"], ["matInput", "", "placeholder", "(Latitude, Longitude)", "readonly", "", 3, "value"], ["input", ""], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "readonly", "", 3, "placeholder", "value"], [1, "input"], ["matInput", "", "cdkFocusInitial", "", 3, "placeholder", "value", "select", "input"]], template: function DrawPopupComponent_Template(rf, ctx) { if (rf & 1) {
|
|
540
|
-
i0.ɵɵelementStart(0, "div")(1, "h2", 0);
|
|
541
|
-
i0.ɵɵtext(2);
|
|
542
|
-
i0.ɵɵpipe(3, "translate");
|
|
543
|
-
i0.ɵɵelementEnd()();
|
|
544
|
-
i0.ɵɵelementStart(4, "div", 1)(5, "mat-button-toggle-group", 2);
|
|
545
|
-
i0.ɵɵlistener("change", function DrawPopupComponent_Template_mat_button_toggle_group_change_5_listener($event) { return ctx.onLabelTypeChange($event.value); });
|
|
546
|
-
i0.ɵɵelementStart(6, "mat-button-toggle", 3);
|
|
547
|
-
i0.ɵɵtext(7);
|
|
548
|
-
i0.ɵɵpipe(8, "translate");
|
|
549
|
-
i0.ɵɵelementEnd();
|
|
550
|
-
i0.ɵɵelementStart(9, "mat-button-toggle", 3);
|
|
551
|
-
i0.ɵɵtext(10);
|
|
552
|
-
i0.ɵɵpipe(11, "translate");
|
|
553
|
-
i0.ɵɵelementEnd()()();
|
|
554
|
-
i0.ɵɵtemplate(12, DrawPopupComponent_div_12_Template, 16, 12, "div", 4);
|
|
555
|
-
i0.ɵɵtemplate(13, DrawPopupComponent_div_13_Template, 15, 11, "div", 4);
|
|
556
|
-
} if (rf & 2) {
|
|
557
|
-
i0.ɵɵadvance(2);
|
|
558
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "igo.geo.draw.popupTitle"), " ");
|
|
559
|
-
i0.ɵɵadvance(3);
|
|
560
|
-
i0.ɵɵproperty("value", ctx.customOrPredefined);
|
|
561
|
-
i0.ɵɵadvance(1);
|
|
562
|
-
i0.ɵɵproperty("value", ctx.labelType.Custom);
|
|
563
|
-
i0.ɵɵadvance(1);
|
|
564
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, "igo.geo.draw.labelType.custom"), " ");
|
|
565
|
-
i0.ɵɵadvance(2);
|
|
566
|
-
i0.ɵɵproperty("value", ctx.labelType.Predefined);
|
|
567
|
-
i0.ɵɵadvance(1);
|
|
568
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 12, "igo.geo.draw.labelType.predefined"), " ");
|
|
569
|
-
i0.ɵɵadvance(2);
|
|
570
|
-
i0.ɵɵproperty("ngIf", ctx.labelFlag !== ctx.labelType.Custom);
|
|
571
|
-
i0.ɵɵadvance(1);
|
|
572
|
-
i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
|
|
573
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatButtonToggleGroup, i5.MatButtonToggle, i6.MatFormField, i7.MatInput, i8.MatSelect, i9.MatOption, i2.MatDialogTitle, i2.MatDialogActions, i10.MatRadioGroup, i10.MatRadioButton, i11.MatCheckbox, i12.TranslatePipe], styles: [".mat-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:16px}.readOnly-Input[_ngcontent-%COMP%]{width:200px!important}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView[_ngcontent-%COMP%]{top:5em!important} .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle[_ngcontent-%COMP%], .mat-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:center}.input[_ngcontent-%COMP%]{width:auto!important}.mat-button-toggle-group[_ngcontent-%COMP%], .mat-button-toggle[_ngcontent-%COMP%]{width:100%}mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}"] });
|
|
574
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
|
|
575
|
-
type: Component,
|
|
576
|
-
args: [{ selector: 'igo-draw-popup-component', template: "<div>\n <h2 mat-dialog-title>\n {{ 'igo.geo.draw.popupTitle' | translate }}\n </h2>\n</div>\n\n\n<div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\" [value]=\"customOrPredefined\">\n <mat-button-toggle [value]=\"labelType.Custom\" >\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n<div *ngIf=\"labelFlag !== labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.builtInInstructions' | translate }}</p>\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\" class=\"mat-typography\">\n <mat-radio-button *ngFor=\"let option of arrayBuiltInType\" [value]=\"option.value\" [disabled]=\"optionAvailable(option.value)\" \n (change)=\"onLabelTypeChange($event.value)\" [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-radio-button>\n </mat-radio-group>\n <ng-container class=\"mat-typography\" *ngIf=\"olGeometryType === 'Polygon'\">\n <mat-checkbox\n *ngFor=\"let option of arrayBuiltInType\"\n class=\"mat-typography\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\n [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"labelFlag === labelType.Coordinates\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"(Latitude, Longitude)\"\n value=\"{{currentCoordinates}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"coordinatesMeasureUnit\" (selectionChange)=\"onChangeCoordinateUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\n {{unit}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder={{lengthLabelT}}\n value=\"{{currentLength}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"lengthMeasureUnit\" (selectionChange)=\"onChangeLengthUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\n {{getLengthUnitEnum(unit)}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\n value=\"{{currentArea}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"areaMeasureUnit\" (selectionChange)=\"onChangeAreaUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\n {{getAreaUnitEnum(unit)}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\"> \n {{noLabelButton()}} \n </button>\n </div>\n</div>\n\n<div *ngIf=\"labelFlag === labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.dialogInstruction' | translate }}</p>\n <mat-form-field class=\"input\">\n <input\n #input\n matInput\n (select)=\"true\"\n (input)=\"getLabelLength($event.target.value)\"\n placeholder=\"{{'igo.geo.draw.dialogTitle' | translate}}\"\n value=\"{{ currentLabel }}\"\n cdkFocusInitial/>\n </mat-form-field>\n </div>\n \n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm(input.value)\">\n {{noLabelButton()}}\n </button>\n </div>\n</div>\n", styles: [".mat-radio-button~.mat-radio-button{margin-left:16px}.readOnly-Input{width:200px!important}.unit-field{width:50px;margin-left:10px;margin-top:10px}.mat-form-field{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView{top:5em!important}::ng-deep .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle,.mat-dialog-actions{display:flex!important;justify-content:center}.input{width:auto!important}.mat-button-toggle-group,.mat-button-toggle{width:100%}mat-checkbox{margin-right:10px}\n"] }]
|
|
577
|
-
}], function () { return [{ type: i1.LanguageService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
578
|
-
type: Inject,
|
|
579
|
-
args: [MAT_DIALOG_DATA]
|
|
580
|
-
}] }]; }, { confirmFlag: [{
|
|
581
|
-
type: Input
|
|
582
|
-
}], labelFlag: [{
|
|
583
|
-
type: Input
|
|
584
|
-
}], coordinatesMeasureUnit: [{
|
|
585
|
-
type: Input
|
|
586
|
-
}], lengthMeasureUnit: [{
|
|
587
|
-
type: Input
|
|
588
|
-
}], areaMeasureUnit: [{
|
|
589
|
-
type: Input
|
|
590
|
-
}] }); })();
|
|
1
|
+
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import { CoordinatesUnit, GeometryType, LabelType } from '../shared/draw.enum';
|
|
4
|
+
import { transform } from 'ol/proj';
|
|
5
|
+
import { roundCoordTo } from '../../map/shared';
|
|
6
|
+
import OlFeature from 'ol/Feature';
|
|
7
|
+
import { measureOlGeometryLength, measureOlGeometryArea, metersToUnit, squareMetersToUnit } from '../../measure/shared/measure.utils';
|
|
8
|
+
import { MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureAreaUnit, MeasureAreaUnitAbbreviation, } from '../../measure/shared/measure.enum';
|
|
9
|
+
import { fromCircle } from 'ol/geom/Polygon';
|
|
10
|
+
import { getLength } from 'ol/sphere';
|
|
11
|
+
import Circle from 'ol/geom/Circle';
|
|
12
|
+
import { DDtoDMS } from '../shared/draw.utils';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@igo2/core";
|
|
15
|
+
import * as i2 from "@angular/material/dialog";
|
|
16
|
+
import * as i3 from "@angular/common";
|
|
17
|
+
import * as i4 from "@angular/material/button";
|
|
18
|
+
import * as i5 from "@angular/material/button-toggle";
|
|
19
|
+
import * as i6 from "@angular/material/form-field";
|
|
20
|
+
import * as i7 from "@angular/material/input";
|
|
21
|
+
import * as i8 from "@angular/material/select";
|
|
22
|
+
import * as i9 from "@angular/material/core";
|
|
23
|
+
import * as i10 from "@angular/material/radio";
|
|
24
|
+
import * as i11 from "@angular/material/checkbox";
|
|
25
|
+
import * as i12 from "@ngx-translate/core";
|
|
26
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
28
|
+
i0.ɵɵelementStart(0, "mat-radio-button", 11);
|
|
29
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template_mat_radio_button_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r9.onLabelTypeChange($event.value)); });
|
|
30
|
+
i0.ɵɵtext(1);
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const option_r8 = ctx.$implicit;
|
|
34
|
+
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
35
|
+
i0.ɵɵproperty("value", option_r8.value)("disabled", ctx_r7.optionAvailable(option_r8.value))("checked", option_r8.checked);
|
|
36
|
+
i0.ɵɵadvance(1);
|
|
37
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r7.getProperLengthLabel(option_r8.value), " ");
|
|
38
|
+
} }
|
|
39
|
+
function DrawPopupComponent_div_12_mat_radio_group_5_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "mat-radio-group", 5);
|
|
41
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_mat_radio_group_5_mat_radio_button_1_Template, 2, 4, "mat-radio-button", 10);
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
} if (rf & 2) {
|
|
44
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
45
|
+
i0.ɵɵadvance(1);
|
|
46
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.arrayBuiltInType);
|
|
47
|
+
} }
|
|
48
|
+
function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
50
|
+
i0.ɵɵelementStart(0, "mat-checkbox", 13);
|
|
51
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template_mat_checkbox_change_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.onLabelTypeChange($event.source.value, $event.checked)); });
|
|
52
|
+
i0.ɵɵtext(1);
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const option_r12 = ctx.$implicit;
|
|
56
|
+
const ctx_r11 = i0.ɵɵnextContext(3);
|
|
57
|
+
i0.ɵɵproperty("value", option_r12.value)("disabled", ctx_r11.optionAvailable(option_r12.value))("checked", option_r12.checked);
|
|
58
|
+
i0.ɵɵadvance(1);
|
|
59
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r11.getProperLengthLabel(option_r12.value), " ");
|
|
60
|
+
} }
|
|
61
|
+
function DrawPopupComponent_div_12_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelementContainerStart(0, 5);
|
|
63
|
+
i0.ɵɵtemplate(1, DrawPopupComponent_div_12_ng_container_6_mat_checkbox_1_Template, 2, 4, "mat-checkbox", 12);
|
|
64
|
+
i0.ɵɵelementContainerEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
67
|
+
i0.ɵɵadvance(1);
|
|
68
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.arrayBuiltInType);
|
|
69
|
+
} }
|
|
70
|
+
function DrawPopupComponent_div_12_div_7_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
72
|
+
i0.ɵɵtext(1);
|
|
73
|
+
i0.ɵɵelementEnd();
|
|
74
|
+
} if (rf & 2) {
|
|
75
|
+
const unit_r17 = ctx.$implicit;
|
|
76
|
+
i0.ɵɵproperty("value", unit_r17);
|
|
77
|
+
i0.ɵɵadvance(1);
|
|
78
|
+
i0.ɵɵtextInterpolate1(" ", unit_r17, " ");
|
|
79
|
+
} }
|
|
80
|
+
function DrawPopupComponent_div_12_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
82
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
83
|
+
i0.ɵɵelement(2, "input", 15, 16);
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
86
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_7_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.onChangeCoordinateUnit($event.value)); });
|
|
87
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_7_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
88
|
+
i0.ɵɵelementEnd()()();
|
|
89
|
+
} if (rf & 2) {
|
|
90
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
91
|
+
i0.ɵɵadvance(2);
|
|
92
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r4.currentCoordinates);
|
|
93
|
+
i0.ɵɵadvance(3);
|
|
94
|
+
i0.ɵɵproperty("value", ctx_r4.coordinatesMeasureUnit);
|
|
95
|
+
i0.ɵɵadvance(1);
|
|
96
|
+
i0.ɵɵproperty("ngForOf", ctx_r4.allCoordinatesUnits);
|
|
97
|
+
} }
|
|
98
|
+
function DrawPopupComponent_div_12_div_8_mat_option_6_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
100
|
+
i0.ɵɵtext(1);
|
|
101
|
+
i0.ɵɵelementEnd();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const unit_r22 = ctx.$implicit;
|
|
104
|
+
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
105
|
+
i0.ɵɵproperty("value", unit_r22);
|
|
106
|
+
i0.ɵɵadvance(1);
|
|
107
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r21.getLengthUnitEnum(unit_r22), " ");
|
|
108
|
+
} }
|
|
109
|
+
function DrawPopupComponent_div_12_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
110
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
111
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
112
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
113
|
+
i0.ɵɵelementEnd();
|
|
114
|
+
i0.ɵɵelementStart(4, "mat-form-field", 17)(5, "mat-select", 18);
|
|
115
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_8_Template_mat_select_selectionChange_5_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onChangeLengthUnit($event.value)); });
|
|
116
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_div_8_mat_option_6_Template, 2, 2, "mat-option", 19);
|
|
117
|
+
i0.ɵɵelementEnd()()();
|
|
118
|
+
} if (rf & 2) {
|
|
119
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
120
|
+
i0.ɵɵadvance(2);
|
|
121
|
+
i0.ɵɵpropertyInterpolate("placeholder", ctx_r5.lengthLabelT);
|
|
122
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r5.currentLength);
|
|
123
|
+
i0.ɵɵadvance(3);
|
|
124
|
+
i0.ɵɵproperty("value", ctx_r5.lengthMeasureUnit);
|
|
125
|
+
i0.ɵɵadvance(1);
|
|
126
|
+
i0.ɵɵproperty("ngForOf", ctx_r5.allLengthUnits);
|
|
127
|
+
} }
|
|
128
|
+
function DrawPopupComponent_div_12_div_9_mat_option_7_Template(rf, ctx) { if (rf & 1) {
|
|
129
|
+
i0.ɵɵelementStart(0, "mat-option", 3);
|
|
130
|
+
i0.ɵɵtext(1);
|
|
131
|
+
i0.ɵɵelementEnd();
|
|
132
|
+
} if (rf & 2) {
|
|
133
|
+
const unit_r27 = ctx.$implicit;
|
|
134
|
+
const ctx_r26 = i0.ɵɵnextContext(3);
|
|
135
|
+
i0.ɵɵproperty("value", unit_r27);
|
|
136
|
+
i0.ɵɵadvance(1);
|
|
137
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r26.getAreaUnitEnum(unit_r27), " ");
|
|
138
|
+
} }
|
|
139
|
+
function DrawPopupComponent_div_12_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
141
|
+
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 14);
|
|
142
|
+
i0.ɵɵelement(2, "input", 20, 16);
|
|
143
|
+
i0.ɵɵpipe(4, "translate");
|
|
144
|
+
i0.ɵɵelementEnd();
|
|
145
|
+
i0.ɵɵelementStart(5, "mat-form-field", 17)(6, "mat-select", 18);
|
|
146
|
+
i0.ɵɵlistener("selectionChange", function DrawPopupComponent_div_12_div_9_Template_mat_select_selectionChange_6_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.onChangeAreaUnit($event.value)); });
|
|
147
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_9_mat_option_7_Template, 2, 2, "mat-option", 19);
|
|
148
|
+
i0.ɵɵelementEnd()()();
|
|
149
|
+
} if (rf & 2) {
|
|
150
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
151
|
+
i0.ɵɵadvance(2);
|
|
152
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 4, "igo.geo.draw.labelType.Area"));
|
|
153
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r6.currentArea);
|
|
154
|
+
i0.ɵɵadvance(4);
|
|
155
|
+
i0.ɵɵproperty("value", ctx_r6.areaMeasureUnit);
|
|
156
|
+
i0.ɵɵadvance(1);
|
|
157
|
+
i0.ɵɵproperty("ngForOf", ctx_r6.allAreaUnits);
|
|
158
|
+
} }
|
|
159
|
+
function DrawPopupComponent_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
161
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
162
|
+
i0.ɵɵtext(3);
|
|
163
|
+
i0.ɵɵpipe(4, "translate");
|
|
164
|
+
i0.ɵɵelementEnd();
|
|
165
|
+
i0.ɵɵtemplate(5, DrawPopupComponent_div_12_mat_radio_group_5_Template, 2, 1, "mat-radio-group", 6);
|
|
166
|
+
i0.ɵɵtemplate(6, DrawPopupComponent_div_12_ng_container_6_Template, 2, 1, "ng-container", 6);
|
|
167
|
+
i0.ɵɵtemplate(7, DrawPopupComponent_div_12_div_7_Template, 7, 3, "div", 4);
|
|
168
|
+
i0.ɵɵtemplate(8, DrawPopupComponent_div_12_div_8_Template, 7, 4, "div", 4);
|
|
169
|
+
i0.ɵɵtemplate(9, DrawPopupComponent_div_12_div_9_Template, 8, 6, "div", 4);
|
|
170
|
+
i0.ɵɵelementEnd();
|
|
171
|
+
i0.ɵɵelementStart(10, "div", 7)(11, "button", 8);
|
|
172
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.cancelDrawing()); });
|
|
173
|
+
i0.ɵɵtext(12);
|
|
174
|
+
i0.ɵɵpipe(13, "translate");
|
|
175
|
+
i0.ɵɵelementEnd();
|
|
176
|
+
i0.ɵɵelementStart(14, "button", 9);
|
|
177
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_12_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r31); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.confirm()); });
|
|
178
|
+
i0.ɵɵtext(15);
|
|
179
|
+
i0.ɵɵelementEnd()()();
|
|
180
|
+
} if (rf & 2) {
|
|
181
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
182
|
+
i0.ɵɵadvance(3);
|
|
183
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "igo.geo.draw.builtInInstructions"));
|
|
184
|
+
i0.ɵɵadvance(2);
|
|
185
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType !== "Polygon");
|
|
186
|
+
i0.ɵɵadvance(1);
|
|
187
|
+
i0.ɵɵproperty("ngIf", ctx_r0.olGeometryType === "Polygon");
|
|
188
|
+
i0.ɵɵadvance(1);
|
|
189
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Coordinates);
|
|
190
|
+
i0.ɵɵadvance(1);
|
|
191
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Length || ctx_r0.polygonCheck === 2);
|
|
192
|
+
i0.ɵɵadvance(1);
|
|
193
|
+
i0.ɵɵproperty("ngIf", ctx_r0.labelFlag === ctx_r0.labelType.Area || ctx_r0.polygonCheck === 2);
|
|
194
|
+
i0.ɵɵadvance(3);
|
|
195
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 10, "igo.geo.draw.cancel"), " ");
|
|
196
|
+
i0.ɵɵadvance(3);
|
|
197
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.noLabelButton(), " ");
|
|
198
|
+
} }
|
|
199
|
+
function DrawPopupComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
200
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
201
|
+
i0.ɵɵelementStart(0, "div")(1, "div")(2, "p", 5);
|
|
202
|
+
i0.ɵɵtext(3);
|
|
203
|
+
i0.ɵɵpipe(4, "translate");
|
|
204
|
+
i0.ɵɵelementEnd();
|
|
205
|
+
i0.ɵɵelementStart(5, "mat-form-field", 21)(6, "input", 22, 16);
|
|
206
|
+
i0.ɵɵlistener("select", function DrawPopupComponent_div_13_Template_input_select_6_listener() { return true; })("input", function DrawPopupComponent_div_13_Template_input_input_6_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.getLabelLength($event.target.value)); });
|
|
207
|
+
i0.ɵɵpipe(8, "translate");
|
|
208
|
+
i0.ɵɵelementEnd()()();
|
|
209
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
|
|
210
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r36); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r37.cancelDrawing()); });
|
|
211
|
+
i0.ɵɵtext(11);
|
|
212
|
+
i0.ɵɵpipe(12, "translate");
|
|
213
|
+
i0.ɵɵelementEnd();
|
|
214
|
+
i0.ɵɵelementStart(13, "button", 9);
|
|
215
|
+
i0.ɵɵlistener("click", function DrawPopupComponent_div_13_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r36); const _r33 = i0.ɵɵreference(7); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.confirm(_r33.value)); });
|
|
216
|
+
i0.ɵɵtext(14);
|
|
217
|
+
i0.ɵɵelementEnd()()();
|
|
218
|
+
} if (rf & 2) {
|
|
219
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
220
|
+
i0.ɵɵadvance(3);
|
|
221
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 5, "igo.geo.draw.dialogInstruction"));
|
|
222
|
+
i0.ɵɵadvance(3);
|
|
223
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(8, 7, "igo.geo.draw.dialogTitle"));
|
|
224
|
+
i0.ɵɵpropertyInterpolate("value", ctx_r1.currentLabel);
|
|
225
|
+
i0.ɵɵadvance(5);
|
|
226
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 9, "igo.geo.draw.cancel"), " ");
|
|
227
|
+
i0.ɵɵadvance(3);
|
|
228
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noLabelButton(), " ");
|
|
229
|
+
} }
|
|
230
|
+
export class DrawPopupComponent {
|
|
231
|
+
constructor(languageService, dialogRef, data) {
|
|
232
|
+
this.languageService = languageService;
|
|
233
|
+
this.dialogRef = dialogRef;
|
|
234
|
+
this.data = data;
|
|
235
|
+
this.confirmFlag = false;
|
|
236
|
+
this.labelFlag = LabelType.Custom;
|
|
237
|
+
this.geometryType = GeometryType;
|
|
238
|
+
this.labelType = LabelType;
|
|
239
|
+
this.arrayBuiltInType = [];
|
|
240
|
+
this.olGeometryType = undefined;
|
|
241
|
+
this.polygonCheck = 0; // Count for polygon label types checkboxes
|
|
242
|
+
this.currentLabel = this.data.olGeometry.get('draw');
|
|
243
|
+
this.labelLength = this.currentLabel ? this.currentLabel.length : 0;
|
|
244
|
+
let olGeometry;
|
|
245
|
+
const projection = this.data.map.ol.getView().getProjection();
|
|
246
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
247
|
+
if (this.data.olGeometry.get('rad')) {
|
|
248
|
+
const longitudeLatitude = [this.data.olGeometry.get('longitude'), this.data.olGeometry.get('latitude')];
|
|
249
|
+
this.olGeometryType = GeometryType.Circle;
|
|
250
|
+
olGeometry = new Circle(longitudeLatitude, this.data.olGeometry.get('rad'));
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
this.olGeometryType = this.data.olGeometry.getGeometry().getType();
|
|
254
|
+
olGeometry = this.data.olGeometry.get('geometry');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
this.olGeometryType = this.data.olGeometry.getType();
|
|
259
|
+
olGeometry = this.data.olGeometry;
|
|
260
|
+
}
|
|
261
|
+
if (this.olGeometryType === GeometryType.Point || this.olGeometryType === GeometryType.Circle) {
|
|
262
|
+
if (this.data.olGeometry instanceof OlFeature) {
|
|
263
|
+
let longitude = this.data.olGeometry.get('longitude');
|
|
264
|
+
let latitude = this.data.olGeometry.get('latitude');
|
|
265
|
+
this.longlatDD = roundCoordTo([longitude, latitude], 5);
|
|
266
|
+
this.coordinatesInDD = '(' + latitude + ', '
|
|
267
|
+
+ longitude + ')';
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
let point4326 = transform(this.data.olGeometry.getFlatCoordinates(), projection, 'EPSG:4326');
|
|
271
|
+
this.longlatDD = roundCoordTo([point4326[0], point4326[1]], 5);
|
|
272
|
+
this.coordinatesInDD =
|
|
273
|
+
'(' + this.longlatDD[1] + ', ' + this.longlatDD[0] + ')';
|
|
274
|
+
}
|
|
275
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
276
|
+
}
|
|
277
|
+
if (this.olGeometryType === GeometryType.LineString) {
|
|
278
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
279
|
+
this.currentLength = this.lengthInMeters;
|
|
280
|
+
}
|
|
281
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
282
|
+
this.lengthInMeters = measureOlGeometryLength(olGeometry, projection.getCode()).toFixed(2);
|
|
283
|
+
this.currentLength = this.lengthInMeters;
|
|
284
|
+
this.areaInMetersSquare = measureOlGeometryArea(olGeometry, projection.getCode()).toFixed(2);
|
|
285
|
+
this.currentArea = this.areaInMetersSquare;
|
|
286
|
+
}
|
|
287
|
+
else if (this.olGeometryType === GeometryType.Circle) {
|
|
288
|
+
let circularPolygon = fromCircle(olGeometry, 10000);
|
|
289
|
+
const radius = this.getRadius(circularPolygon);
|
|
290
|
+
this.lengthInMeters = radius.toFixed(2);
|
|
291
|
+
this.currentLength = this.lengthInMeters;
|
|
292
|
+
this.areaInMetersSquare = measureOlGeometryArea(circularPolygon, projection.getCode()).toFixed(2);
|
|
293
|
+
this.currentArea = this.areaInMetersSquare;
|
|
294
|
+
}
|
|
295
|
+
if (data.olGeometry.get('labelType') === LabelType.Coordinates) {
|
|
296
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
297
|
+
this.onLabelTypeChange(LabelType.Coordinates, true);
|
|
298
|
+
this.coordinatesMeasureUnit = data.olGeometry.get('measureUnit');
|
|
299
|
+
}
|
|
300
|
+
else if (data.olGeometry.get('labelType') === LabelType.Length) {
|
|
301
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
302
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
303
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit');
|
|
304
|
+
}
|
|
305
|
+
else if (data.olGeometry.get('labelType') === LabelType.Area) {
|
|
306
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
307
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
308
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit');
|
|
309
|
+
}
|
|
310
|
+
else if (data.olGeometry.get('labelType')?.length === 2) {
|
|
311
|
+
this.onLabelTypeChange(LabelType.Predefined);
|
|
312
|
+
this.onLabelTypeChange(LabelType.Length, true);
|
|
313
|
+
this.onLabelTypeChange(LabelType.Area, true);
|
|
314
|
+
this.lengthMeasureUnit = data.olGeometry.get('measureUnit')[0];
|
|
315
|
+
this.areaMeasureUnit = data.olGeometry.get('measureUnit')[1];
|
|
316
|
+
}
|
|
317
|
+
this.buildArrayType();
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* HTML Interactions
|
|
321
|
+
*/
|
|
322
|
+
cancelDrawing() {
|
|
323
|
+
this.dialogRef.close();
|
|
324
|
+
}
|
|
325
|
+
confirm(input) {
|
|
326
|
+
this.confirmFlag = true;
|
|
327
|
+
if (this.labelFlag === LabelType.Predefined) {
|
|
328
|
+
this.dialogRef.close();
|
|
329
|
+
}
|
|
330
|
+
else if (this.labelFlag === LabelType.Custom) {
|
|
331
|
+
this.dialogRef.close({
|
|
332
|
+
label: input
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
336
|
+
this.dialogRef.close({
|
|
337
|
+
label: this.currentCoordinates,
|
|
338
|
+
measureUnit: this.coordinatesMeasureUnit
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
else if (this.olGeometryType === GeometryType.Polygon) {
|
|
342
|
+
if (this.polygonCheck === 2) {
|
|
343
|
+
this.labelFlag = [LabelType.Length, LabelType.Area];
|
|
344
|
+
this.dialogRef.close({
|
|
345
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[MeasureLengthUnit.Meters] + '\n'
|
|
346
|
+
+ this.languageService.translate.instant('igo.geo.draw.labelType.A') + this.currentArea + ' ' +
|
|
347
|
+
MeasureAreaUnitAbbreviation[MeasureAreaUnit.SquareMeters], measureUnit: [this.lengthMeasureUnit, this.areaMeasureUnit]
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
this.labelFlag === LabelType.Length ?
|
|
352
|
+
this.dialogRef.close({
|
|
353
|
+
label: 'P: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
354
|
+
measureUnit: this.lengthMeasureUnit
|
|
355
|
+
}) :
|
|
356
|
+
this.dialogRef.close({
|
|
357
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
358
|
+
measureUnit: this.areaMeasureUnit
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
else if (this.labelFlag === LabelType.Length) {
|
|
363
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
364
|
+
this.dialogRef.close({
|
|
365
|
+
label: 'R: ' + this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
366
|
+
measureUnit: this.lengthMeasureUnit
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
370
|
+
this.dialogRef.close({
|
|
371
|
+
label: this.currentLength + ' ' + MeasureLengthUnitAbbreviation[this.lengthMeasureUnit],
|
|
372
|
+
measureUnit: this.lengthMeasureUnit
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else if (this.labelFlag === LabelType.Area) {
|
|
377
|
+
this.dialogRef.close({
|
|
378
|
+
label: this.currentArea + ' ' + MeasureAreaUnitAbbreviation[this.areaMeasureUnit],
|
|
379
|
+
measureUnit: this.areaMeasureUnit
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
onLabelTypeChange(labelType, checked) {
|
|
384
|
+
if (labelType !== LabelType.Predefined &&
|
|
385
|
+
labelType !== LabelType.Custom &&
|
|
386
|
+
this.olGeometryType === GeometryType.Polygon) {
|
|
387
|
+
this.arrayBuiltInType.find(type => type.value === labelType) ?
|
|
388
|
+
this.arrayBuiltInType.find(type => type.value === labelType).checked = checked : this.labelFlag = undefined;
|
|
389
|
+
checked ? this.labelFlag = labelType : this.labelFlag = this.arrayBuiltInType.find(type => type.checked)?.value;
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
this.labelFlag = labelType;
|
|
393
|
+
}
|
|
394
|
+
if (labelType === LabelType.Predefined) {
|
|
395
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
396
|
+
this.labelFlag = LabelType.Coordinates;
|
|
397
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
398
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
399
|
+
}
|
|
400
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
401
|
+
this.labelFlag = LabelType.Length;
|
|
402
|
+
this.currentLength = this.lengthInMeters;
|
|
403
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else if (labelType === LabelType.Area) {
|
|
407
|
+
this.currentArea = this.areaInMetersSquare;
|
|
408
|
+
this.areaMeasureUnit = MeasureAreaUnit.SquareMeters;
|
|
409
|
+
}
|
|
410
|
+
else if (labelType === LabelType.Length) {
|
|
411
|
+
this.currentLength = this.lengthInMeters;
|
|
412
|
+
this.lengthMeasureUnit = MeasureLengthUnit.Meters;
|
|
413
|
+
}
|
|
414
|
+
else if (this.labelFlag === LabelType.Coordinates) {
|
|
415
|
+
this.currentCoordinates = this.coordinatesInDD;
|
|
416
|
+
this.coordinatesMeasureUnit = CoordinatesUnit.DecimalDegree;
|
|
417
|
+
}
|
|
418
|
+
const labeltypes = [this.labelType.Length, this.labelType.Area];
|
|
419
|
+
if (this.olGeometryType === GeometryType.Polygon &&
|
|
420
|
+
labeltypes.includes(labelType)) {
|
|
421
|
+
checked ? this.polygonCheck += 1 : this.polygonCheck -= 1;
|
|
422
|
+
;
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
this.polygonCheck = 0;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
onChangeLengthUnit(lengthUnit) {
|
|
429
|
+
this.lengthMeasureUnit = lengthUnit;
|
|
430
|
+
this.currentLength = metersToUnit(Number(this.lengthInMeters), lengthUnit).toFixed(2);
|
|
431
|
+
}
|
|
432
|
+
onChangeAreaUnit(areaUnit) {
|
|
433
|
+
this.areaMeasureUnit = areaUnit;
|
|
434
|
+
this.currentArea = squareMetersToUnit(Number(this.areaInMetersSquare), areaUnit).toFixed(2);
|
|
435
|
+
}
|
|
436
|
+
onChangeCoordinateUnit(coordinatesUnit) {
|
|
437
|
+
this.coordinatesMeasureUnit = coordinatesUnit;
|
|
438
|
+
let coordinates = DDtoDMS(this.longlatDD, coordinatesUnit);
|
|
439
|
+
this.currentCoordinates = '(' + coordinates[1] + ', ' + coordinates[0] + ')';
|
|
440
|
+
}
|
|
441
|
+
buildArrayType() {
|
|
442
|
+
for (const labelType of Object.values(LabelType)) {
|
|
443
|
+
if (labelType !== LabelType.Custom && labelType !== LabelType.Predefined) {
|
|
444
|
+
this.arrayBuiltInType.push({
|
|
445
|
+
value: labelType,
|
|
446
|
+
checked: this.selectOptions(labelType) ||
|
|
447
|
+
this.labelFlag === labelType ||
|
|
448
|
+
(this.polygonCheck === 2 && labelType !== LabelType.Coordinates)
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
noLabelButton() {
|
|
454
|
+
if (this.labelFlag === LabelType.Predefined || (this.labelFlag === LabelType.Custom && this.labelLength === 0)) {
|
|
455
|
+
return this.languageService.translate.instant('igo.geo.draw.noLabel');
|
|
456
|
+
}
|
|
457
|
+
return 'OK';
|
|
458
|
+
}
|
|
459
|
+
get customOrPredefined() {
|
|
460
|
+
if (this.labelFlag === LabelType.Custom) {
|
|
461
|
+
return LabelType.Custom;
|
|
462
|
+
}
|
|
463
|
+
return LabelType.Predefined;
|
|
464
|
+
}
|
|
465
|
+
optionAvailable(currentOption) {
|
|
466
|
+
switch (this.olGeometryType) {
|
|
467
|
+
case GeometryType.Point:
|
|
468
|
+
if (currentOption === LabelType.Coordinates) {
|
|
469
|
+
return false;
|
|
470
|
+
}
|
|
471
|
+
return true;
|
|
472
|
+
case GeometryType.LineString:
|
|
473
|
+
if (currentOption === LabelType.Length) {
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
return true;
|
|
477
|
+
case GeometryType.Polygon:
|
|
478
|
+
if (currentOption === LabelType.Coordinates) {
|
|
479
|
+
return true;
|
|
480
|
+
}
|
|
481
|
+
return false;
|
|
482
|
+
default:
|
|
483
|
+
return false;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
get allLengthUnits() {
|
|
487
|
+
return Object.values(MeasureLengthUnit);
|
|
488
|
+
}
|
|
489
|
+
getLengthUnitEnum(lengthUnit) {
|
|
490
|
+
return MeasureLengthUnitAbbreviation[lengthUnit];
|
|
491
|
+
}
|
|
492
|
+
get allAreaUnits() {
|
|
493
|
+
return Object.values(MeasureAreaUnit);
|
|
494
|
+
}
|
|
495
|
+
get allCoordinatesUnits() {
|
|
496
|
+
return Object.values(CoordinatesUnit);
|
|
497
|
+
}
|
|
498
|
+
getAreaUnitEnum(areaUnit) {
|
|
499
|
+
return MeasureAreaUnitAbbreviation[areaUnit];
|
|
500
|
+
}
|
|
501
|
+
getRadius(olGeometry) {
|
|
502
|
+
const length = getLength(olGeometry);
|
|
503
|
+
return Number(length / (2 * Math.PI));
|
|
504
|
+
}
|
|
505
|
+
get lengthLabelT() {
|
|
506
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
507
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
508
|
+
}
|
|
509
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
510
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
511
|
+
}
|
|
512
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
513
|
+
}
|
|
514
|
+
getLabelLength(event) {
|
|
515
|
+
this.labelLength = event.length;
|
|
516
|
+
}
|
|
517
|
+
selectOptions(option) {
|
|
518
|
+
if (this.olGeometryType === GeometryType.Point) {
|
|
519
|
+
return option === LabelType.Coordinates;
|
|
520
|
+
}
|
|
521
|
+
else if (this.olGeometryType === GeometryType.LineString) {
|
|
522
|
+
return option === LabelType.Length;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
getProperLengthLabel(option) {
|
|
526
|
+
if (option === LabelType.Length) {
|
|
527
|
+
if (this.olGeometryType === GeometryType.Polygon) {
|
|
528
|
+
return this.languageService.translate.instant('igo.geo.measure.perimeter');
|
|
529
|
+
}
|
|
530
|
+
if (this.olGeometryType === GeometryType.Circle) {
|
|
531
|
+
return this.languageService.translate.instant('igo.geo.search.coordinates.radius');
|
|
532
|
+
}
|
|
533
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.Length');
|
|
534
|
+
}
|
|
535
|
+
return this.languageService.translate.instant('igo.geo.draw.labelType.' + option);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
DrawPopupComponent.ɵfac = function DrawPopupComponent_Factory(t) { return new (t || DrawPopupComponent)(i0.ɵɵdirectiveInject(i1.LanguageService), i0.ɵɵdirectiveInject(i2.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA)); };
|
|
539
|
+
DrawPopupComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawPopupComponent, selectors: [["igo-draw-popup-component"]], inputs: { confirmFlag: "confirmFlag", labelFlag: "labelFlag", coordinatesMeasureUnit: "coordinatesMeasureUnit", lengthMeasureUnit: "lengthMeasureUnit", areaMeasureUnit: "areaMeasureUnit" }, decls: 14, vars: 14, consts: [["mat-dialog-title", ""], [1, "geometry-type-toggle", "mat-typography"], [3, "value", "change"], [3, "value"], [4, "ngIf"], [1, "mat-typography"], ["class", "mat-typography", 4, "ngIf"], ["mat-dialog-actions", ""], ["mat-raised-button", "", 3, "click"], ["mat-raised-button", "", "color", "primary", 3, "click"], [3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [3, "value", "disabled", "checked", "change"], ["class", "mat-typography", 3, "value", "disabled", "checked", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "disabled", "checked", "change"], [1, "readOnly-Input"], ["matInput", "", "placeholder", "(Latitude, Longitude)", "readonly", "", 3, "value"], ["input", ""], [1, "unit-field"], [3, "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "readonly", "", 3, "placeholder", "value"], [1, "input"], ["matInput", "", "cdkFocusInitial", "", 3, "placeholder", "value", "select", "input"]], template: function DrawPopupComponent_Template(rf, ctx) { if (rf & 1) {
|
|
540
|
+
i0.ɵɵelementStart(0, "div")(1, "h2", 0);
|
|
541
|
+
i0.ɵɵtext(2);
|
|
542
|
+
i0.ɵɵpipe(3, "translate");
|
|
543
|
+
i0.ɵɵelementEnd()();
|
|
544
|
+
i0.ɵɵelementStart(4, "div", 1)(5, "mat-button-toggle-group", 2);
|
|
545
|
+
i0.ɵɵlistener("change", function DrawPopupComponent_Template_mat_button_toggle_group_change_5_listener($event) { return ctx.onLabelTypeChange($event.value); });
|
|
546
|
+
i0.ɵɵelementStart(6, "mat-button-toggle", 3);
|
|
547
|
+
i0.ɵɵtext(7);
|
|
548
|
+
i0.ɵɵpipe(8, "translate");
|
|
549
|
+
i0.ɵɵelementEnd();
|
|
550
|
+
i0.ɵɵelementStart(9, "mat-button-toggle", 3);
|
|
551
|
+
i0.ɵɵtext(10);
|
|
552
|
+
i0.ɵɵpipe(11, "translate");
|
|
553
|
+
i0.ɵɵelementEnd()()();
|
|
554
|
+
i0.ɵɵtemplate(12, DrawPopupComponent_div_12_Template, 16, 12, "div", 4);
|
|
555
|
+
i0.ɵɵtemplate(13, DrawPopupComponent_div_13_Template, 15, 11, "div", 4);
|
|
556
|
+
} if (rf & 2) {
|
|
557
|
+
i0.ɵɵadvance(2);
|
|
558
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "igo.geo.draw.popupTitle"), " ");
|
|
559
|
+
i0.ɵɵadvance(3);
|
|
560
|
+
i0.ɵɵproperty("value", ctx.customOrPredefined);
|
|
561
|
+
i0.ɵɵadvance(1);
|
|
562
|
+
i0.ɵɵproperty("value", ctx.labelType.Custom);
|
|
563
|
+
i0.ɵɵadvance(1);
|
|
564
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, "igo.geo.draw.labelType.custom"), " ");
|
|
565
|
+
i0.ɵɵadvance(2);
|
|
566
|
+
i0.ɵɵproperty("value", ctx.labelType.Predefined);
|
|
567
|
+
i0.ɵɵadvance(1);
|
|
568
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(11, 12, "igo.geo.draw.labelType.predefined"), " ");
|
|
569
|
+
i0.ɵɵadvance(2);
|
|
570
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag !== ctx.labelType.Custom);
|
|
571
|
+
i0.ɵɵadvance(1);
|
|
572
|
+
i0.ɵɵproperty("ngIf", ctx.labelFlag === ctx.labelType.Custom);
|
|
573
|
+
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatButtonToggleGroup, i5.MatButtonToggle, i6.MatFormField, i7.MatInput, i8.MatSelect, i9.MatOption, i2.MatDialogTitle, i2.MatDialogActions, i10.MatRadioGroup, i10.MatRadioButton, i11.MatCheckbox, i12.TranslatePipe], styles: [".mat-radio-button[_ngcontent-%COMP%] ~ .mat-radio-button[_ngcontent-%COMP%]{margin-left:16px}.readOnly-Input[_ngcontent-%COMP%]{width:200px!important}.unit-field[_ngcontent-%COMP%]{width:50px;margin-left:10px;margin-top:10px}.mat-form-field[_ngcontent-%COMP%]{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView[_ngcontent-%COMP%]{top:5em!important} .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle[_ngcontent-%COMP%], .mat-dialog-actions[_ngcontent-%COMP%]{display:flex!important;justify-content:center}.input[_ngcontent-%COMP%]{width:auto!important}.mat-button-toggle-group[_ngcontent-%COMP%], .mat-button-toggle[_ngcontent-%COMP%]{width:100%}mat-checkbox[_ngcontent-%COMP%]{margin-right:10px}"] });
|
|
574
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
|
|
575
|
+
type: Component,
|
|
576
|
+
args: [{ selector: 'igo-draw-popup-component', template: "<div>\n <h2 mat-dialog-title>\n {{ 'igo.geo.draw.popupTitle' | translate }}\n </h2>\n</div>\n\n\n<div class=\"geometry-type-toggle mat-typography\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\" [value]=\"customOrPredefined\">\n <mat-button-toggle [value]=\"labelType.Custom\" >\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n<div *ngIf=\"labelFlag !== labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.builtInInstructions' | translate }}</p>\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\" class=\"mat-typography\">\n <mat-radio-button *ngFor=\"let option of arrayBuiltInType\" [value]=\"option.value\" [disabled]=\"optionAvailable(option.value)\" \n (change)=\"onLabelTypeChange($event.value)\" [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-radio-button>\n </mat-radio-group>\n <ng-container class=\"mat-typography\" *ngIf=\"olGeometryType === 'Polygon'\">\n <mat-checkbox\n *ngFor=\"let option of arrayBuiltInType\"\n class=\"mat-typography\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\n [checked]=\"option.checked\">\n {{getProperLengthLabel(option.value)}}\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"labelFlag === labelType.Coordinates\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"(Latitude, Longitude)\"\n value=\"{{currentCoordinates}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"coordinatesMeasureUnit\" (selectionChange)=\"onChangeCoordinateUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\n {{unit}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder={{lengthLabelT}}\n value=\"{{currentLength}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"lengthMeasureUnit\" (selectionChange)=\"onChangeLengthUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\n {{getLengthUnitEnum(unit)}}\n </mat-option>\n </mat-select> \n </mat-form-field>\n </div>\n <div *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\">\n <mat-form-field class=\"readOnly-Input\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\n value=\"{{currentArea}}\" readonly>\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select [value]=\"areaMeasureUnit\" (selectionChange)=\"onChangeAreaUnit($event.value)\">\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\n {{getAreaUnitEnum(unit)}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm()\"> \n {{noLabelButton()}} \n </button>\n </div>\n</div>\n\n<div *ngIf=\"labelFlag === labelType.Custom\">\n <div>\n <p class=\"mat-typography\">{{ 'igo.geo.draw.dialogInstruction' | translate }}</p>\n <mat-form-field class=\"input\">\n <input\n #input\n matInput\n (select)=\"true\"\n (input)=\"getLabelLength($event.target.value)\"\n placeholder=\"{{'igo.geo.draw.dialogTitle' | translate}}\"\n value=\"{{ currentLabel }}\"\n cdkFocusInitial/>\n </mat-form-field>\n </div>\n \n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\" >\n {{'igo.geo.draw.cancel' | translate}}\n </button>\n <button \n mat-raised-button \n color=\"primary\" \n (click)=\"confirm(input.value)\">\n {{noLabelButton()}}\n </button>\n </div>\n</div>\n", styles: [".mat-radio-button~.mat-radio-button{margin-left:16px}.readOnly-Input{width:200px!important}.unit-field{width:50px;margin-left:10px;margin-top:10px}.mat-form-field{position:-webkit-sticky!important;position:sticky!important}.coordinatesInputView{top:5em!important}::ng-deep .mat-form-field-wrapper{margin-bottom:-1.25em;margin-top:.25em}.geometry-type-toggle,.mat-dialog-actions{display:flex!important;justify-content:center}.input{width:auto!important}.mat-button-toggle-group,.mat-button-toggle{width:100%}mat-checkbox{margin-right:10px}\n"] }]
|
|
577
|
+
}], function () { return [{ type: i1.LanguageService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
578
|
+
type: Inject,
|
|
579
|
+
args: [MAT_DIALOG_DATA]
|
|
580
|
+
}] }]; }, { confirmFlag: [{
|
|
581
|
+
type: Input
|
|
582
|
+
}], labelFlag: [{
|
|
583
|
+
type: Input
|
|
584
|
+
}], coordinatesMeasureUnit: [{
|
|
585
|
+
type: Input
|
|
586
|
+
}], lengthMeasureUnit: [{
|
|
587
|
+
type: Input
|
|
588
|
+
}], areaMeasureUnit: [{
|
|
589
|
+
type: Input
|
|
590
|
+
}] }); })();
|
|
591
591
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLGVBQWUsRUFDZiwyQkFBMkIsR0FDNUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNBekMsNENBQ3NFO0lBQXRFLHlOQUFVLGVBQUEs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ZUFBNEI7UUFBNUIsOENBQTRCO1FBQ3BELGVBQTBCO1FBQTFCLDRDQUEwQjtRQUMzQyxlQUNGO1FBREUsdUZBQ0Y7UUFDbUIsZUFBOEI7UUFBOUIsZ0RBQThCO1FBQy9DLGVBQ0Y7UUFERSw0RkFDRjtRQUlFLGVBQW9DO1FBQXBDLDZEQUFvQztRQW9GcEMsZUFBb0M7UUFBcEMsNkRBQW9DOzt1RkR4RTdCLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLDBCQUEwQjs7c0JBa0NqQyxNQUFNO3VCQUFDLGVBQWU7d0JBN0JoQixXQUFXO2tCQUFuQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29vcmRpbmF0ZXNVbml0LCBHZW9tZXRyeVR5cGUsIExhYmVsVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kcmF3LmVudW0nO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgeyBJZ29NYXAsIHJvdW5kQ29vcmRUbyB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQnO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB7XG4gIG1lYXN1cmVPbEdlb21ldHJ5TGVuZ3RoLFxuICBtZWFzdXJlT2xHZW9tZXRyeUFyZWEsXG4gIG1ldGVyc1RvVW5pdCxcbiAgc3F1YXJlTWV0ZXJzVG9Vbml0XG59IGZyb20gJy4uLy4uL21lYXN1cmUvc2hhcmVkL21lYXN1cmUudXRpbHMnO1xuaW1wb3J0IHtcbiAgTWVhc3VyZUxlbmd0aFVuaXQsXG4gIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uLFxuICBNZWFzdXJlQXJlYVVuaXQsXG4gIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvbixcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS5lbnVtJztcblxuaW1wb3J0IHtmcm9tQ2lyY2xlfSBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IHsgZ2V0TGVuZ3RoIH0gZnJvbSAnb2wvc3BoZXJlJztcbmltcG9ydCBDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xuaW1wb3J0IHsgRER0b0RNUyB9IGZyb20gJy4uL3NoYXJlZC9kcmF3LnV0aWxzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZHJhdy1wb3B1cC1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RyYXctcG9wdXAuY29tcG9uZW50LnNjc3MnXVxuICB9KVxuZXhwb3J0IGNsYXNzIERyYXdQb3B1cENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbmZpcm1GbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsRmxhZzogTGFiZWxUeXBlIHwgW0xhYmVsVHlwZSwgTGFiZWxUeXBlXSA9IExhYmVsVHlwZS5DdXN0b207XG4gIEBJbnB1dCgpIGNvb3JkaW5hdGVzTWVhc3VyZVVuaXQ6IENvb3JkaW5hdGVzVW5pdDtcbiAgQElucHV0KCkgbGVuZ3RoTWVhc3VyZVVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0O1xuICBASW5wdXQoKSBhcmVhTWVhc3VyZVVuaXQ6IE1lYXN1cmVBcmVhVW5pdDtcblxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlO1xuICBwdWJsaWMgbGFiZWxUeXBlID0gTGFiZWxUeXBlO1xuICBwdWJsaWMgYXJyYXlCdWlsdEluVHlwZTogYW55W10gPSBbXTtcblxuICBwdWJsaWMgY3VycmVudExhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50Q29vcmRpbmF0ZXM6IHN0cmluZztcbiAgcHVibGljIGN1cnJlbnRBcmVhOiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50TGVuZ3RoOiBzdHJpbmc7XG5cbiAgcHVibGljIG9sR2VvbWV0cnlUeXBlOiBHZW9tZXRyeVR5cGUgPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBsZW5ndGhJbk1ldGVyczogc3RyaW5nO1xuICBwdWJsaWMgYXJlYUluTWV0ZXJzU3F1YXJlOiBzdHJpbmc7XG4gIHB1YmxpYyBjb29yZGluYXRlc0luREQ6IHN0cmluZztcbiAgcHVibGljIGN1cnJlbnRDb29yZGluYXRlc1VuaXQ6IHN0cmluZztcblxuICBwcml2YXRlIGxvbmdsYXRERDogW251bWJlciwgbnVtYmVyXTtcbiAgcHJpdmF0ZSBsYWJlbExlbmd0aDogbnVtYmVyO1xuXG4gIHB1YmxpYyBwb2x5Z29uQ2hlY2sgPSAwOyAvLyBDb3VudCBmb3IgcG9seWdvbiBsYWJlbCB0eXBlcyBjaGVja2JveGVzXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RHJhd1BvcHVwQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IHsgb2xHZW9tZXRyeTogYW55LCBtYXA6IElnb01hcCB9XG4gICAgKSB7XG4gICAgICB0aGlzLmN1cnJlbnRMYWJlbCA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnZHJhdycpO1xuICAgICAgdGhpcy5sYWJlbExlbmd0aCA9IHRoaXMuY3VycmVudExhYmVsID8gdGhpcy5jdXJyZW50TGFiZWwubGVuZ3RoOiAwO1xuICAgICAgbGV0IG9sR2VvbWV0cnk7XG5cbiAgICAgIGNvbnN0IHByb2plY3Rpb24gPSB0aGlzLmRhdGEubWFwLm9sLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCk7XG5cbiAgICAgIGlmKHRoaXMuZGF0YS5vbEdlb21ldHJ5IGluc3RhbmNlb2YgT2xGZWF0dXJlKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ3JhZCcpKXtcbiAgICAgICAgICBjb25zdCBsb25naXR1ZGVMYXRpdHVkZSA9IFt0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xvbmdpdHVkZScpLCB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhdGl0dWRlJyldO1xuICAgICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSBHZW9tZXRyeVR5cGUuQ2lyY2xlO1xuICAgICAgICAgIG9sR2VvbWV0cnkgPSBuZXcgQ2lyY2xlKGxvbmdpdHVkZUxhdGl0dWRlLCB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ3JhZCcpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKTtcbiAgICAgICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdnZW9tZXRyeScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0VHlwZSgpO1xuICAgICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9pbnQgfHwgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSl7XG4gICAgICAgIGlmKHRoaXMuZGF0YS5vbEdlb21ldHJ5IGluc3RhbmNlb2YgT2xGZWF0dXJlKXtcbiAgICAgICAgICBsZXQgbG9uZ2l0dWRlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdsb25naXR1ZGUnKTtcbiAgICAgICAgICBsZXQgbGF0aXR1ZGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhdGl0dWRlJyk7XG4gICAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW2xvbmdpdHVkZSwgbGF0aXR1ZGVdLCA1KTtcbiAgICAgICAgICB0aGlzLmNvb3JkaW5hdGVzSW5ERCA9ICcoJyArIGxhdGl0dWRlICsgJywgJ1xuICAgICAgICAgICsgbG9uZ2l0dWRlICsgJyknO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGxldCBwb2ludDQzMjYgPSB0cmFuc2Zvcm0oXG4gICAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKSxcbiAgICAgICAgICAgIHByb2plY3Rpb24sXG4gICAgICAgICAgICAnRVBTRzo0MzI2J1xuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW3BvaW50NDMyNlswXSwgcG9pbnQ0MzI2WzFdXSwgNSk7XG4gICAgICAgICAgdGhpcy5jb29yZGluYXRlc0luREQgPVxuICAgICAgICAgICAgJygnICsgdGhpcy5sb25nbGF0RERbMV0gKyAnLCAnICsgdGhpcy5sb25nbGF0RERbMF0gKyAnKSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPSB0aGlzLmNvb3JkaW5hdGVzSW5ERDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZyl7XG4gICAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aChvbEdlb21ldHJ5LCBwcm9qZWN0aW9uLmdldENvZGUoKSkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKXtcbiAgICAgICAgdGhpcy5sZW5ndGhJbk1ldGVycyA9IG1lYXN1cmVPbEdlb21ldHJ5TGVuZ3RoKG9sR2VvbWV0cnksIHByb2plY3Rpb24uZ2V0Q29kZSgpKS50b0ZpeGVkKDIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xuICAgICAgICB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZSA9IG1lYXN1cmVPbEdlb21ldHJ5QXJlYShvbEdlb21ldHJ5LHByb2plY3Rpb24uZ2V0Q29kZSgpKS50b0ZpeGVkKDIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRBcmVhID0gdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmU7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGUpe1xuICAgICAgICBsZXQgY2lyY3VsYXJQb2x5Z29uID0gZnJvbUNpcmNsZShvbEdlb21ldHJ5LCAxMDAwMCk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKGNpcmN1bGFyUG9seWdvbik7XG4gICAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSByYWRpdXMudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcbiAgICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoY2lyY3VsYXJQb2x5Z29uLHByb2plY3Rpb24uZ2V0Q29kZSgpKS50b0ZpeGVkKDIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRBcmVhID0gdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKSA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XG4gICAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5Db29yZGluYXRlcywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0Jyk7XG4gICAgICB9IGVsc2UgaWYgKGRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhYmVsVHlwZScpID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xuICAgICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKTtcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJykgPT09IExhYmVsVHlwZS5BcmVhKSB7XG4gICAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcbiAgICAgICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpO1xuICAgICAgfSBlbHNlIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKT8ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xuICAgICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcbiAgICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0JylbMF07XG4gICAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKVsxXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnVpbGRBcnJheVR5cGUoKTtcbiAgICB9XG5cbiAgLyoqXG4gICAqIEhUTUwgSW50ZXJhY3Rpb25zXG4gICAqL1xuXG4gIGNhbmNlbERyYXdpbmcoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIGNvbmZpcm0oaW5wdXQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpcm1GbGFnID0gdHJ1ZTtcbiAgICBpZih0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQpe1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5DdXN0b20pe1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICBsYWJlbDogaW5wdXRcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpe1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICBsYWJlbDogdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMsXG4gICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xuICAgICAgaWYgKHRoaXMucG9seWdvbkNoZWNrID09PSAyKSB7XG4gICAgICAgIHRoaXMubGFiZWxGbGFnID0gW0xhYmVsVHlwZS5MZW5ndGgsIExhYmVsVHlwZS5BcmVhXTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgIGxhYmVsOiAnUDogJyArIHRoaXMuY3VycmVudExlbmd0aCArICcgJyArIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW01lYXN1cmVMZW5ndGhVbml0Lk1ldGVyc10gKyAnXFxuJ1xuICAgICAgICAgICsgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQScpICsgdGhpcy5jdXJyZW50QXJlYSArICcgJyArXG4gICAgICAgICAgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVNZXRlcnNdLCBtZWFzdXJlVW5pdDogW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXQsIHRoaXMuYXJlYU1lYXN1cmVVbml0XVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuTGVuZ3RoID9cbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgIGxhYmVsOiAnUDogJyArIHRoaXMuY3VycmVudExlbmd0aCArICcgJyArIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXRdLFxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XG4gICAgICAgIH0pIDpcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRBcmVhICsgJyAnICsgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW3RoaXMuYXJlYU1lYXN1cmVVbml0XSxcbiAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5hcmVhTWVhc3VyZVVuaXRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuTGVuZ3RoKXtcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuQ2lyY2xlKXtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgIGxhYmVsOiAnUjogJyArIHRoaXMuY3VycmVudExlbmd0aCArICcgJyArIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXRdLFxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRMZW5ndGggKyAnICcgKyBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcbiAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5sZW5ndGhNZWFzdXJlVW5pdFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5BcmVhKXtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgICAgbGFiZWw6IHRoaXMuY3VycmVudEFyZWEgKyAnICcgKyBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bdGhpcy5hcmVhTWVhc3VyZVVuaXRdLFxuICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5hcmVhTWVhc3VyZVVuaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTGFiZWxUeXBlQ2hhbmdlKGxhYmVsVHlwZTogTGFiZWxUeXBlLCBjaGVja2VkPzogYm9vbGVhbil7XG4gICAgaWYgKGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWQgJiZcbiAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkN1c3RvbSAmJlxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcbiAgICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLmZpbmQodHlwZSA9PiB0eXBlLnZhbHVlID09PSBsYWJlbFR5cGUpID9cbiAgICAgICAgICB0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZCh0eXBlID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZSkuY2hlY2tlZCA9IGNoZWNrZWQgOiB0aGlzLmxhYmVsRmxhZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgY2hlY2tlZCA/IHRoaXMubGFiZWxGbGFnID0gbGFiZWxUeXBlIDogdGhpcy5sYWJlbEZsYWcgPSB0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZCh0eXBlID0+IHR5cGUuY2hlY2tlZCk/LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxhYmVsRmxhZyA9IGxhYmVsVHlwZTtcbiAgICB9XG5cbiAgICBpZiAobGFiZWxUeXBlID09PSBMYWJlbFR5cGUuUHJlZGVmaW5lZCl7XG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvaW50ICl7XG4gICAgICAgIHRoaXMubGFiZWxGbGFnID0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzO1xuICAgICAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9IHRoaXMuY29vcmRpbmF0ZXNJbkREO1xuICAgICAgICB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXQgPSBDb29yZGluYXRlc1VuaXQuRGVjaW1hbERlZ3JlZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nKXtcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPSBMYWJlbFR5cGUuTGVuZ3RoO1xuICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xuICAgICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChsYWJlbFR5cGUgPT09IExhYmVsVHlwZS5BcmVhKXtcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcbiAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gTWVhc3VyZUFyZWFVbml0LlNxdWFyZU1ldGVycztcbiAgICB9XG4gICAgZWxzZSBpZiAobGFiZWxUeXBlID09PSBMYWJlbFR5cGUuTGVuZ3RoKXtcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKXtcbiAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XG4gICAgICB0aGlzLmNvb3JkaW5hdGVzTWVhc3VyZVVuaXQgPSBDb29yZGluYXRlc1VuaXQuRGVjaW1hbERlZ3JlZTtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbHR5cGVzID0gW3RoaXMubGFiZWxUeXBlLkxlbmd0aCwgdGhpcy5sYWJlbFR5cGUuQXJlYV07XG4gICAgaWYgKFxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24gJiZcbiAgICAgIGxhYmVsdHlwZXMuaW5jbHVkZXMobGFiZWxUeXBlKSkge1xuICAgICAgY2hlY2tlZCA/IHRoaXMucG9seWdvbkNoZWNrICs9IDEgOiB0aGlzLnBvbHlnb25DaGVjayAtPSAxOztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb2x5Z29uQ2hlY2sgPSAwO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlTGVuZ3RoVW5pdChsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCl7XG4gICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGxlbmd0aFVuaXQ7XG4gICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gbWV0ZXJzVG9Vbml0KE51bWJlcih0aGlzLmxlbmd0aEluTWV0ZXJzKSwgbGVuZ3RoVW5pdCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIG9uQ2hhbmdlQXJlYVVuaXQoYXJlYVVuaXQ6IE1lYXN1cmVBcmVhVW5pdCl7XG4gICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBhcmVhVW5pdDtcbiAgICB0aGlzLmN1cnJlbnRBcmVhID0gc3F1YXJlTWV0ZXJzVG9Vbml0KE51bWJlcih0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZSksIGFyZWFVbml0KS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgb25DaGFuZ2VDb29yZGluYXRlVW5pdChjb29yZGluYXRlc1VuaXQ6IENvb3JkaW5hdGVzVW5pdCl7XG4gICAgdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0ID0gY29vcmRpbmF0ZXNVbml0O1xuICAgIGxldCBjb29yZGluYXRlcyA9IEREdG9ETVModGhpcy5sb25nbGF0REQsIGNvb3JkaW5hdGVzVW5pdCk7XG4gICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPSAnKCcgKyBjb29yZGluYXRlc1sxXSArICcsICcgKyBjb29yZGluYXRlc1swXSArICcpJztcbiAgfVxuXG4gIGJ1aWxkQXJyYXlUeXBlKCkge1xuICAgIGZvciAoY29uc3QgbGFiZWxUeXBlIG9mIE9iamVjdC52YWx1ZXMoTGFiZWxUeXBlKSl7XG4gICAgICBpZiAobGFiZWxUeXBlICE9PSBMYWJlbFR5cGUuQ3VzdG9tICYmIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWQpe1xuICAgICAgICB0aGlzLmFycmF5QnVpbHRJblR5cGUucHVzaCh7XG4gICAgICAgICAgdmFsdWU6IGxhYmVsVHlwZSxcbiAgICAgICAgICBjaGVja2VkOlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RPcHRpb25zKGxhYmVsVHlwZSkgfHxcbiAgICAgICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBsYWJlbFR5cGUgfHxcbiAgICAgICAgICAgICh0aGlzLnBvbHlnb25DaGVjayA9PT0gMiAmJiBsYWJlbFR5cGUgIT09IExhYmVsVHlwZS5Db29yZGluYXRlcylcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbm9MYWJlbEJ1dHRvbigpe1xuICAgIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQgfHwgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tICYmIHRoaXMubGFiZWxMZW5ndGggPT09IDApKXtcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kcmF3Lm5vTGFiZWwnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ09LJztcbiAgfVxuXG4gIGdldCBjdXN0b21PclByZWRlZmluZWQoKXtcbiAgICBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5DdXN0b20pe1xuICAgICAgcmV0dXJuIExhYmVsVHlwZS5DdXN0b207XG4gICAgfVxuICAgIHJldHVybiBMYWJlbFR5cGUuUHJlZGVmaW5lZDtcbiAgfVxuXG4gIG9wdGlvbkF2YWlsYWJsZShjdXJyZW50T3B0aW9uOiBMYWJlbFR5cGUpe1xuICAgIHN3aXRjaCh0aGlzLm9sR2VvbWV0cnlUeXBlKXtcbiAgICAgIGNhc2UgR2VvbWV0cnlUeXBlLlBvaW50OlxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKXtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nOlxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aCl7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSBHZW9tZXRyeVR5cGUuUG9seWdvbjpcbiAgICAgICAgaWYgKGN1cnJlbnRPcHRpb24gPT09IExhYmVsVHlwZS5Db29yZGluYXRlcyl7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbGxMZW5ndGhVbml0cygpOiBzdHJpbmdbXXtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhNZWFzdXJlTGVuZ3RoVW5pdCk7XG4gIH1cblxuICBnZXRMZW5ndGhVbml0RW51bShsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCl7XG4gICAgcmV0dXJuIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW2xlbmd0aFVuaXRdO1xuICB9XG5cbiAgZ2V0IGFsbEFyZWFVbml0cygpOiBzdHJpbmdbXXtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhNZWFzdXJlQXJlYVVuaXQpO1xuICB9XG5cbiAgZ2V0IGFsbENvb3JkaW5hdGVzVW5pdHMoKTogc3RyaW5nW117XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQ29vcmRpbmF0ZXNVbml0KTtcbiAgfVxuXG4gIGdldEFyZWFVbml0RW51bShhcmVhVW5pdDogTWVhc3VyZUFyZWFVbml0KXtcbiAgICByZXR1cm4gTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW2FyZWFVbml0XTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmFkaXVzKG9sR2VvbWV0cnkpOiBudW1iZXJ7XG4gICAgY29uc3QgbGVuZ3RoID0gZ2V0TGVuZ3RoKG9sR2VvbWV0cnkpO1xuICAgIHJldHVybiBOdW1iZXIobGVuZ3RoIC8gKDIgKiBNYXRoLlBJKSk7XG4gIH1cblxuICBnZXQgbGVuZ3RoTGFiZWxUKCl7XG4gICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKXtcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5tZWFzdXJlLnBlcmltZXRlcicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSl7XG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cycpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuTGVuZ3RoJyk7XG4gIH1cblxuICBnZXRMYWJlbExlbmd0aChldmVudD8pe1xuICAgIHRoaXMubGFiZWxMZW5ndGggPSBldmVudC5sZW5ndGg7XG4gIH1cblxuICBzZWxlY3RPcHRpb25zKG9wdGlvbil7XG4gICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2ludCl7XG4gICAgICByZXR1cm4gb3B0aW9uID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXM7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nKXtcbiAgICAgIHJldHVybiBvcHRpb24gPT09IExhYmVsVHlwZS5MZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgZ2V0UHJvcGVyTGVuZ3RoTGFiZWwob3B0aW9uKXtcbiAgICBpZiAob3B0aW9uID09PSBMYWJlbFR5cGUuTGVuZ3RoKXtcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbil7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5tZWFzdXJlLnBlcmltZXRlcicpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5DaXJjbGUpe1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkxlbmd0aCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuJyArIG9wdGlvbik7XG4gIH1cblxuXG59XG4iLCI8ZGl2PlxuICA8aDIgbWF0LWRpYWxvZy10aXRsZT5cbiAgICB7eyAnaWdvLmdlby5kcmF3LnBvcHVwVGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvaDI+XG48L2Rpdj5cblxuXG48ZGl2IGNsYXNzPVwiZ2VvbWV0cnktdHlwZS10b2dnbGUgbWF0LXR5cG9ncmFwaHlcIj5cbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCIgW3ZhbHVlXT1cImN1c3RvbU9yUHJlZGVmaW5lZFwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiID5cbiAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLmN1c3RvbScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLlByZWRlZmluZWRcIj5cbiAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLnByZWRlZmluZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibGFiZWxGbGFnICE9PSBsYWJlbFR5cGUuQ3VzdG9tXCI+XG4gIDxkaXY+XG4gICAgPHAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPnt7ICdpZ28uZ2VvLmRyYXcuYnVpbHRJbkluc3RydWN0aW9ucycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPG1hdC1yYWRpby1ncm91cCAqbmdJZj1cIm9sR2VvbWV0cnlUeXBlICE9PSAnUG9seWdvbidcIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFycmF5QnVpbHRJblR5cGVcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdGlvbkF2YWlsYWJsZShvcHRpb24udmFsdWUpXCIgXG4gICAgICAoY2hhbmdlKT1cIm9uTGFiZWxUeXBlQ2hhbmdlKCRldmVudC52YWx1ZSlcIiBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiPlxuICAgICAgICB7e2dldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbi52YWx1ZSl9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiICpuZ0lmPVwib2xHZW9tZXRyeVR5cGUgPT09ICdQb2x5Z29uJ1wiPlxuICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFycmF5QnVpbHRJblR5cGVcIlxuICAgICAgICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25BdmFpbGFibGUob3B0aW9uLnZhbHVlKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnNvdXJjZS52YWx1ZSwgJGV2ZW50LmNoZWNrZWQpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwib3B0aW9uLmNoZWNrZWRcIj5cbiAgICAgICAge3tnZXRQcm9wZXJMZW5ndGhMYWJlbChvcHRpb24udmFsdWUpfX1cbiAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5Db29yZGluYXRlc1wiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicmVhZE9ubHktSW5wdXRcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgI2lucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIihMYXRpdHVkZSwgTG9uZ2l0dWRlKVwiXG4gICAgICAgICAgdmFsdWU9XCJ7e2N1cnJlbnRDb29yZGluYXRlc319XCIgcmVhZG9ubHk+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxuICAgICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwiY29vcmRpbmF0ZXNNZWFzdXJlVW5pdFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VDb29yZGluYXRlVW5pdCgkZXZlbnQudmFsdWUpXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsQ29vcmRpbmF0ZXNVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XG4gICAgICAgICAgICB7e3VuaXR9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PiAgXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5MZW5ndGggfHwgcG9seWdvbkNoZWNrID09PSAyXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt7bGVuZ3RoTGFiZWxUfX1cbiAgICAgICAgICB2YWx1ZT1cInt7Y3VycmVudExlbmd0aH19XCIgcmVhZG9ubHk+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxuICAgICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwibGVuZ3RoTWVhc3VyZVVuaXRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlTGVuZ3RoVW5pdCgkZXZlbnQudmFsdWUpXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsTGVuZ3RoVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxuICAgICAgICAgICAge3tnZXRMZW5ndGhVbml0RW51bSh1bml0KX19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+ICBcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkFyZWEgfHwgcG9seWdvbkNoZWNrID09PSAyXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQXJlYScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHZhbHVlPVwie3tjdXJyZW50QXJlYX19XCIgcmVhZG9ubHk+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidW5pdC1maWVsZFwiPlxuICAgICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwiYXJlYU1lYXN1cmVVbml0XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUFyZWFVbml0KCRldmVudC52YWx1ZSlcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxBcmVhVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxuICAgICAgICAgICAge3tnZXRBcmVhVW5pdEVudW0odW5pdCl9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxEcmF3aW5nKClcIiA+XG4gICAgICB7eydpZ28uZ2VvLmRyYXcuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXG4gICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+IFxuICAgICAge3tub0xhYmVsQnV0dG9uKCl9fSBcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkN1c3RvbVwiPlxuICA8ZGl2PlxuICAgIDxwIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj57eyAnaWdvLmdlby5kcmF3LmRpYWxvZ0luc3RydWN0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJpbnB1dFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICAoc2VsZWN0KT1cInRydWVcIlxuICAgICAgICAoaW5wdXQpPVwiZ2V0TGFiZWxMZW5ndGgoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8uZHJhdy5kaWFsb2dUaXRsZScgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgIHZhbHVlPVwie3sgY3VycmVudExhYmVsIH19XCJcbiAgICAgICAgY2RrRm9jdXNJbml0aWFsLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbERyYXdpbmcoKVwiID5cbiAgICAgIHt7J2lnby5nZW8uZHJhdy5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIFxuICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICBjb2xvcj1cInByaW1hcnlcIiBcbiAgICAgIChjbGljayk9XCJjb25maXJtKGlucHV0LnZhbHVlKVwiPlxuICAgICAge3tub0xhYmVsQnV0dG9uKCl9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|