@igo2/geo 18.0.1-next.2 → 18.0.2
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/esm2022/igo2-geo.mjs +5 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +234 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +272 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -0
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +19 -0
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +136 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +60 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +232 -0
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +24 -0
- package/esm2022/lib/catalog/catalog-library/index.mjs +4 -0
- package/esm2022/lib/catalog/catalog.module.mjs +26 -0
- package/esm2022/lib/catalog/index.mjs +6 -0
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
- package/esm2022/lib/catalog/shared/catalog.service.mjs +706 -0
- package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
- package/esm2022/lib/catalog/shared/index.mjs +5 -0
- package/esm2022/lib/datasource/index.mjs +3 -0
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +17 -0
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +441 -0
- package/esm2022/lib/datasource/shared/datasource.service.mjs +258 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +222 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +118 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +24 -0
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +42 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +52 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +70 -0
- package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +33 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +14 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +60 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +17 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +56 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +137 -0
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +170 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +227 -0
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +224 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +18 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +11 -0
- package/esm2022/lib/datasource/shared/index.mjs +6 -0
- package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
- package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
- package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
- package/esm2022/lib/datasource/utils/index.mjs +2 -0
- package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +246 -0
- package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +312 -0
- package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +192 -0
- package/esm2022/lib/directions/directions-results/index.mjs +2 -0
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -0
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +23 -0
- package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +159 -0
- package/esm2022/lib/directions/directions.component.mjs +437 -0
- package/esm2022/lib/directions/directions.module.mjs +46 -0
- package/esm2022/lib/directions/directions.provider.mjs +16 -0
- package/esm2022/lib/directions/index.mjs +8 -0
- package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
- package/esm2022/lib/directions/shared/directions.enum.mjs +72 -0
- package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
- package/esm2022/lib/directions/shared/directions.service.mjs +239 -0
- package/esm2022/lib/directions/shared/directions.utils.mjs +522 -0
- package/esm2022/lib/directions/shared/index.mjs +6 -0
- package/esm2022/lib/directions/shared/store.mjs +21 -0
- package/esm2022/lib/download/download-button/download-button.component.mjs +48 -0
- package/esm2022/lib/download/download-button/index.mjs +2 -0
- package/esm2022/lib/download/download.module.mjs +24 -0
- package/esm2022/lib/download/index.mjs +3 -0
- package/esm2022/lib/download/shared/download.interface.mjs +2 -0
- package/esm2022/lib/download/shared/download.service.mjs +67 -0
- package/esm2022/lib/download/shared/index.mjs +3 -0
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +42 -0
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +421 -0
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +28 -0
- package/esm2022/lib/draw/draw/draw.component.mjs +1136 -0
- package/esm2022/lib/draw/draw/draw.module.mjs +19 -0
- package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
- package/esm2022/lib/draw/index.mjs +3 -0
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
- package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
- package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
- package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
- package/esm2022/lib/draw/shared/index.mjs +5 -0
- package/esm2022/lib/environment/environment.interface.mjs +2 -0
- package/esm2022/lib/environment/index.mjs +2 -0
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +306 -0
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +56 -0
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +26 -0
- package/esm2022/lib/feature/feature-details/index.mjs +4 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +101 -0
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +19 -0
- package/esm2022/lib/feature/feature.module.mjs +26 -0
- package/esm2022/lib/feature/index.mjs +5 -0
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +28 -0
- package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
- package/esm2022/lib/feature/shared/feature.utils.mjs +332 -0
- package/esm2022/lib/feature/shared/index.mjs +8 -0
- package/esm2022/lib/feature/shared/store.mjs +143 -0
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +119 -0
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +99 -0
- package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +103 -0
- package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
- package/esm2022/lib/feature/shared/strategies/search.mjs +158 -0
- package/esm2022/lib/feature/shared/strategies/selection.mjs +385 -0
- package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
- package/esm2022/lib/filter/filter.module.mjs +131 -0
- package/esm2022/lib/filter/index.mjs +17 -0
- package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +141 -0
- package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +325 -0
- package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +787 -0
- package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +201 -0
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +665 -0
- package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +66 -0
- package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +244 -0
- package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +39 -0
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +32 -0
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +63 -0
- package/esm2022/lib/filter/shared/index.mjs +12 -0
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/ogc-filter.mjs +756 -0
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +47 -0
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
- package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +282 -0
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
- package/esm2022/lib/filter/shared/time-filter.service.mjs +107 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +875 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +191 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +120 -0
- package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +70 -0
- package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +537 -0
- package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +90 -0
- package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +39 -0
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +24 -0
- package/esm2022/lib/geo.module.mjs +63 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +559 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +170 -0
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +24 -0
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +4 -0
- package/esm2022/lib/geometry/geometry.module.mjs +18 -0
- package/esm2022/lib/geometry/index.mjs +3 -0
- package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
- package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
- package/esm2022/lib/geometry/shared/controls/modify.mjs +538 -0
- package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +24 -0
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +113 -0
- package/esm2022/lib/geometry/shared/index.mjs +5 -0
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +49 -0
- package/esm2022/lib/import-export/export-button/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +876 -0
- package/esm2022/lib/import-export/import-export/index.mjs +2 -0
- package/esm2022/lib/import-export/import-export.module.mjs +31 -0
- package/esm2022/lib/import-export/index.mjs +5 -0
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +114 -0
- package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
- package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/export.service.mjs +378 -0
- package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
- package/esm2022/lib/import-export/shared/export.utils.mjs +51 -0
- package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
- package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
- package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
- package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
- package/esm2022/lib/import-export/shared/index.mjs +11 -0
- package/esm2022/lib/layer/index.mjs +16 -0
- package/esm2022/lib/layer/layer-group/index.mjs +2 -0
- package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
- package/esm2022/lib/layer/layer-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +196 -0
- package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +287 -0
- package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +85 -0
- package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +104 -0
- package/esm2022/lib/layer/layer-list/index.mjs +2 -0
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +232 -0
- package/esm2022/lib/layer/layer-list-tool/index.mjs +4 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +92 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -0
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +61 -0
- package/esm2022/lib/layer/layer-search/index.mjs +2 -0
- package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
- package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
- package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +26 -0
- package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
- package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
- package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
- package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
- package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
- package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
- package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
- package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
- package/esm2022/lib/layer/layer.module.mjs +107 -0
- package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
- package/esm2022/lib/layer/shared/index.mjs +6 -0
- package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
- package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
- package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
- package/esm2022/lib/layer/shared/layer.service.mjs +315 -0
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +75 -0
- package/esm2022/lib/layer/shared/layers/index.mjs +18 -0
- package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
- package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +7 -0
- package/esm2022/lib/layer/shared/layers/layer.mjs +178 -0
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
- package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
- package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
- package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +55 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +576 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +112 -0
- package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +54 -0
- package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
- package/esm2022/lib/layer/utils/index.mjs +6 -0
- package/esm2022/lib/layer/utils/layer.utils.mjs +57 -0
- package/esm2022/lib/layer/utils/outputLegend.mjs +32 -0
- package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
- package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +87 -0
- package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +122 -0
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +78 -0
- package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +73 -0
- package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/index.mjs +3 -0
- package/esm2022/lib/map/index.mjs +14 -0
- package/esm2022/lib/map/info-section/index.mjs +2 -0
- package/esm2022/lib/map/info-section/info-section.component.mjs +15 -0
- package/esm2022/lib/map/map-browser/index.mjs +2 -0
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +67 -0
- package/esm2022/lib/map/map-center/index.mjs +2 -0
- package/esm2022/lib/map/map-center/map-center.component.mjs +56 -0
- package/esm2022/lib/map/map.module.mjs +89 -0
- package/esm2022/lib/map/menu-button/index.mjs +2 -0
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +57 -0
- package/esm2022/lib/map/offline-button/index.mjs +2 -0
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +53 -0
- package/esm2022/lib/map/rotation-button/index.mjs +2 -0
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +58 -0
- package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
- package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
- package/esm2022/lib/map/shared/controllers/view.mjs +361 -0
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +481 -0
- package/esm2022/lib/map/shared/index.mjs +15 -0
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +238 -0
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +122 -0
- package/esm2022/lib/map/shared/map.abstract.mjs +24 -0
- package/esm2022/lib/map/shared/map.enums.mjs +6 -0
- package/esm2022/lib/map/shared/map.interface.mjs +2 -0
- package/esm2022/lib/map/shared/map.mjs +201 -0
- package/esm2022/lib/map/shared/map.service.mjs +29 -0
- package/esm2022/lib/map/shared/map.utils.mjs +455 -0
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +114 -0
- package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
- package/esm2022/lib/map/shared/projection.service.mjs +67 -0
- package/esm2022/lib/map/shared/projection.utils.mjs +122 -0
- package/esm2022/lib/map/swipe-control/index.mjs +2 -0
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +211 -0
- package/esm2022/lib/map/utils/index.mjs +2 -0
- package/esm2022/lib/map/utils/layer-watcher.mjs +112 -0
- package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +103 -0
- package/esm2022/lib/map/zoom-button/index.mjs +2 -0
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +35 -0
- package/esm2022/lib/measure/index.mjs +3 -0
- package/esm2022/lib/measure/measure.module.mjs +20 -0
- package/esm2022/lib/measure/measurer/index.mjs +6 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +40 -0
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +38 -0
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +143 -0
- package/esm2022/lib/measure/measurer/measurer.component.mjs +948 -0
- package/esm2022/lib/measure/measurer/measurer.module.mjs +20 -0
- package/esm2022/lib/measure/shared/index.mjs +4 -0
- package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
- package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
- package/esm2022/lib/metadata/index.mjs +4 -0
- package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +96 -0
- package/esm2022/lib/metadata/metadata.module.mjs +29 -0
- package/esm2022/lib/metadata/shared/index.mjs +3 -0
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
- package/esm2022/lib/metadata/shared/metadata.service.mjs +18 -0
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +130 -0
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +172 -0
- package/esm2022/lib/offline/geoDB/index.mjs +5 -0
- package/esm2022/lib/offline/index.mjs +6 -0
- package/esm2022/lib/offline/layerDB/index.mjs +3 -0
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +83 -0
- package/esm2022/lib/offline/offline.interface.mjs +2 -0
- package/esm2022/lib/offline/offline.provider.mjs +50 -0
- package/esm2022/lib/offline/shared/geo-network.service.mjs +79 -0
- package/esm2022/lib/offline/shared/index.mjs +2 -0
- package/esm2022/lib/overlay/index.mjs +2 -0
- package/esm2022/lib/overlay/shared/index.mjs +4 -0
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
- package/esm2022/lib/overlay/shared/overlay.mjs +139 -0
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
- package/esm2022/lib/print/index.mjs +4 -0
- package/esm2022/lib/print/print/print.component.mjs +116 -0
- package/esm2022/lib/print/print-form/index.mjs +2 -0
- package/esm2022/lib/print/print-form/print-form.component.mjs +320 -0
- package/esm2022/lib/print/print.module.mjs +20 -0
- package/esm2022/lib/print/shared/geopdf.mjs +68 -0
- package/esm2022/lib/print/shared/index.mjs +5 -0
- package/esm2022/lib/print/shared/print.interface.mjs +2 -0
- package/esm2022/lib/print/shared/print.service.mjs +1136 -0
- package/esm2022/lib/print/shared/print.type.mjs +30 -0
- package/esm2022/lib/query/index.mjs +2 -0
- package/esm2022/lib/query/query.module.mjs +27 -0
- package/esm2022/lib/query/shared/index.mjs +8 -0
- package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
- package/esm2022/lib/query/shared/query.directive.mjs +290 -0
- package/esm2022/lib/query/shared/query.enums.mjs +32 -0
- package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
- package/esm2022/lib/query/shared/query.service.mjs +753 -0
- package/esm2022/lib/query/shared/query.utils.mjs +45 -0
- package/esm2022/lib/search/index.mjs +10 -0
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +483 -0
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +19 -0
- package/esm2022/lib/search/search-results/index.mjs +5 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +101 -0
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +433 -0
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +119 -0
- package/esm2022/lib/search/search-results/search-results.component.mjs +297 -0
- package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
- package/esm2022/lib/search/search-results/search-results.module.mjs +20 -0
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +118 -0
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +19 -0
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +264 -0
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +19 -0
- package/esm2022/lib/search/search.module.mjs +77 -0
- package/esm2022/lib/search/shared/index.mjs +10 -0
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +328 -0
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
- package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
- package/esm2022/lib/search/shared/search.enums.mjs +4 -0
- package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/search.provider.mjs +20 -0
- package/esm2022/lib/search/shared/search.service.mjs +149 -0
- package/esm2022/lib/search/shared/search.utils.mjs +92 -0
- package/esm2022/lib/search/shared/sources/cadastre.mjs +142 -0
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +32 -0
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/coordinates.mjs +168 -0
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +52 -0
- package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/icherche.mjs +816 -0
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +87 -0
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/ilayer.mjs +339 -0
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +58 -0
- package/esm2022/lib/search/shared/sources/index.mjs +23 -0
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +31 -0
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -0
- package/esm2022/lib/search/shared/sources/source.mjs +221 -0
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +454 -0
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +56 -0
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
- package/esm2022/lib/search/shared/sources/workspace.mjs +192 -0
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +31 -0
- package/esm2022/lib/style/index.mjs +5 -0
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +360 -0
- package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
- package/esm2022/lib/style/shared/feature/feature-style.mjs +162 -0
- package/esm2022/lib/style/shared/feature/index.mjs +2 -0
- package/esm2022/lib/style/shared/font.enum.mjs +17 -0
- package/esm2022/lib/style/shared/index.mjs +5 -0
- package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +39 -0
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
- package/esm2022/lib/style/shared/vector/index.mjs +4 -0
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/index.mjs +5 -0
- package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
- package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
- package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
- package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
- package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +193 -0
- package/esm2022/lib/style/style-modal/index.mjs +5 -0
- package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +142 -0
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
- package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
- package/esm2022/lib/style/style-service/draw-style.service.mjs +255 -0
- package/esm2022/lib/style/style-service/index.mjs +3 -0
- package/esm2022/lib/style/style-service/style.service.mjs +393 -0
- package/esm2022/lib/style/style.module.mjs +46 -0
- package/esm2022/lib/toast/index.mjs +2 -0
- package/esm2022/lib/toast/toast.component.mjs +99 -0
- package/esm2022/lib/toast/toast.module.mjs +24 -0
- package/esm2022/lib/utils/googleLinks.mjs +13 -0
- package/esm2022/lib/utils/id-generator.mjs +112 -0
- package/esm2022/lib/utils/index.mjs +5 -0
- package/esm2022/lib/utils/osmLinks.mjs +9 -0
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
- package/esm2022/lib/wkt/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/index.mjs +2 -0
- package/esm2022/lib/wkt/shared/wkt.service.mjs +235 -0
- package/esm2022/lib/wkt/wkt.module.mjs +25 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +36 -0
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +19 -0
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
- package/esm2022/lib/workspace/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +301 -0
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +720 -0
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +113 -0
- package/esm2022/lib/workspace/shared/index.mjs +8 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +121 -0
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +248 -0
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +188 -0
- package/esm2022/lib/workspace/widgets/index.mjs +4 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +48 -0
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +19 -0
- package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +172 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +137 -0
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +19 -0
- package/esm2022/lib/workspace/workspace.module.mjs +32 -0
- package/esm2022/public_api.mjs +56 -0
- package/fesm2022/igo2-geo.mjs +717 -691
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
- package/lib/directions/shared/directions.service.d.ts +0 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
- package/lib/style/style-list/style-list.provider.d.ts +8 -1
- package/lib/style/style-list/style-list.service.d.ts +1 -1
- package/package.json +16 -14
- package/src/lib/layer/layer-list/layer-list.theme.scss +1 -2
- package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
- package/src/style/style.scss +1 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { AuthInterceptor } from '@igo2/auth';
|
|
3
|
+
import { LanguageService } from '@igo2/core/language';
|
|
4
|
+
import { MessageService } from '@igo2/core/message';
|
|
5
|
+
import { ObjectUtils } from '@igo2/utils';
|
|
6
|
+
import { BehaviorSubject, Observable, forkJoin, of } from 'rxjs';
|
|
7
|
+
import { catchError, map } from 'rxjs/operators';
|
|
8
|
+
import { CapabilitiesService } from './capabilities.service';
|
|
9
|
+
import { ArcGISRestDataSource, CartoDataSource, ClusterDataSource, FeatureDataSource, ImageArcGISRestDataSource, MVTDataSource, OSMDataSource, TileArcGISRestDataSource, TileDebugDataSource, WFSDataSource, WMSDataSource, WMTSDataSource, WebSocketDataSource, XYZDataSource } from './datasources';
|
|
10
|
+
import { WFSService } from './datasources/wfs.service';
|
|
11
|
+
import { OptionsService } from './options/options.service';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "./capabilities.service";
|
|
14
|
+
import * as i2 from "./options/options.service";
|
|
15
|
+
import * as i3 from "./datasources/wfs.service";
|
|
16
|
+
import * as i4 from "@igo2/core/language";
|
|
17
|
+
import * as i5 from "@igo2/core/message";
|
|
18
|
+
import * as i6 from "@igo2/auth";
|
|
19
|
+
export class DataSourceService {
|
|
20
|
+
capabilitiesService;
|
|
21
|
+
optionsService;
|
|
22
|
+
wfsDataSourceService;
|
|
23
|
+
languageService;
|
|
24
|
+
messageService;
|
|
25
|
+
authInterceptor;
|
|
26
|
+
datasources$ = new BehaviorSubject([]);
|
|
27
|
+
constructor(capabilitiesService, optionsService, wfsDataSourceService, languageService, messageService, authInterceptor) {
|
|
28
|
+
this.capabilitiesService = capabilitiesService;
|
|
29
|
+
this.optionsService = optionsService;
|
|
30
|
+
this.wfsDataSourceService = wfsDataSourceService;
|
|
31
|
+
this.languageService = languageService;
|
|
32
|
+
this.messageService = messageService;
|
|
33
|
+
this.authInterceptor = authInterceptor;
|
|
34
|
+
}
|
|
35
|
+
createAsyncDataSource(context, detailedContextUri) {
|
|
36
|
+
if (!context.type) {
|
|
37
|
+
console.error(context);
|
|
38
|
+
throw new Error('Datasource needs a type');
|
|
39
|
+
}
|
|
40
|
+
let dataSource;
|
|
41
|
+
switch (context.type.toLowerCase()) {
|
|
42
|
+
case 'osm':
|
|
43
|
+
dataSource = this.createOSMDataSource(context);
|
|
44
|
+
break;
|
|
45
|
+
case 'vector':
|
|
46
|
+
dataSource = this.createFeatureDataSource(context);
|
|
47
|
+
break;
|
|
48
|
+
case 'wfs':
|
|
49
|
+
dataSource = this.createWFSDataSource(context);
|
|
50
|
+
break;
|
|
51
|
+
case 'wms': {
|
|
52
|
+
const wmsContext = context;
|
|
53
|
+
ObjectUtils.removeDuplicateCaseInsensitive(wmsContext.params);
|
|
54
|
+
dataSource = this.createWMSDataSource(wmsContext, detailedContextUri);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case 'wmts':
|
|
58
|
+
dataSource = this.createWMTSDataSource(context);
|
|
59
|
+
break;
|
|
60
|
+
case 'xyz':
|
|
61
|
+
dataSource = this.createXYZDataSource(context);
|
|
62
|
+
break;
|
|
63
|
+
case 'tiledebug':
|
|
64
|
+
dataSource = this.createTileDebugDataSource(context);
|
|
65
|
+
break;
|
|
66
|
+
case 'carto':
|
|
67
|
+
dataSource = this.createCartoDataSource(context);
|
|
68
|
+
break;
|
|
69
|
+
case 'arcgisrest':
|
|
70
|
+
dataSource = this.createArcGISRestDataSource(context, detailedContextUri);
|
|
71
|
+
break;
|
|
72
|
+
case 'imagearcgisrest':
|
|
73
|
+
dataSource = this.createArcGISRestImageDataSource(context, detailedContextUri);
|
|
74
|
+
break;
|
|
75
|
+
case 'websocket':
|
|
76
|
+
dataSource = this.createWebSocketDataSource(context);
|
|
77
|
+
break;
|
|
78
|
+
case 'mvt':
|
|
79
|
+
dataSource = this.createMVTDataSource(context);
|
|
80
|
+
break;
|
|
81
|
+
case 'tilearcgisrest':
|
|
82
|
+
dataSource = this.createTileArcGISRestDataSource(context, detailedContextUri);
|
|
83
|
+
break;
|
|
84
|
+
case 'cluster':
|
|
85
|
+
dataSource = this.createClusterDataSource(context);
|
|
86
|
+
break;
|
|
87
|
+
default:
|
|
88
|
+
console.error(context);
|
|
89
|
+
throw new Error('Invalid datasource type');
|
|
90
|
+
}
|
|
91
|
+
this.datasources$.next(this.datasources$.value.concat([dataSource]));
|
|
92
|
+
return dataSource;
|
|
93
|
+
}
|
|
94
|
+
createOSMDataSource(context) {
|
|
95
|
+
return new Observable((d) => d.next(new OSMDataSource(context)));
|
|
96
|
+
}
|
|
97
|
+
createFeatureDataSource(context) {
|
|
98
|
+
return new Observable((d) => d.next(new FeatureDataSource(context)));
|
|
99
|
+
}
|
|
100
|
+
createWebSocketDataSource(context) {
|
|
101
|
+
return new Observable((d) => d.next(new WebSocketDataSource(context)));
|
|
102
|
+
}
|
|
103
|
+
createWFSDataSource(context) {
|
|
104
|
+
return new Observable((d) => d.next(new WFSDataSource(context, this.wfsDataSourceService, this.authInterceptor)));
|
|
105
|
+
}
|
|
106
|
+
createWMSDataSource(context, detailedContextUri) {
|
|
107
|
+
const observables = [];
|
|
108
|
+
if (context.optionsFromCapabilities && window.navigator.onLine) {
|
|
109
|
+
observables.push(this.capabilitiesService.getWMSOptions(context).pipe(catchError((e) => {
|
|
110
|
+
this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
|
|
111
|
+
throw e;
|
|
112
|
+
})));
|
|
113
|
+
}
|
|
114
|
+
if (this.optionsService &&
|
|
115
|
+
context.optionsFromApi &&
|
|
116
|
+
window.navigator.onLine) {
|
|
117
|
+
observables.push(this.optionsService.getWMSOptions(context, detailedContextUri).pipe(catchError((e) => {
|
|
118
|
+
e.error.toDisplay = true;
|
|
119
|
+
e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
|
|
120
|
+
e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
|
|
121
|
+
return of({});
|
|
122
|
+
})));
|
|
123
|
+
}
|
|
124
|
+
observables.push(of(context));
|
|
125
|
+
return forkJoin(observables).pipe(map((options) => {
|
|
126
|
+
const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
|
|
127
|
+
return new WMSDataSource(optionsMerged, this.wfsDataSourceService);
|
|
128
|
+
}), catchError(() => {
|
|
129
|
+
return of(undefined);
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
createWMTSDataSource(context) {
|
|
133
|
+
if (context.optionsFromCapabilities && window.navigator.onLine) {
|
|
134
|
+
return this.capabilitiesService.getWMTSOptions(context).pipe(map((options) => {
|
|
135
|
+
return options ? new WMTSDataSource(options) : undefined;
|
|
136
|
+
}), catchError(() => {
|
|
137
|
+
this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.layer });
|
|
138
|
+
return of(undefined);
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
return new Observable((d) => d.next(new WMTSDataSource(context)));
|
|
142
|
+
}
|
|
143
|
+
createXYZDataSource(context) {
|
|
144
|
+
return new Observable((d) => d.next(new XYZDataSource(context)));
|
|
145
|
+
}
|
|
146
|
+
createTileDebugDataSource(context) {
|
|
147
|
+
return new Observable((d) => d.next(new TileDebugDataSource(context)));
|
|
148
|
+
}
|
|
149
|
+
createCartoDataSource(context) {
|
|
150
|
+
if (context.mapId) {
|
|
151
|
+
return this.capabilitiesService
|
|
152
|
+
.getCartoOptions(context)
|
|
153
|
+
.pipe(map((options) => new CartoDataSource(options)));
|
|
154
|
+
}
|
|
155
|
+
return new Observable((d) => d.next(new CartoDataSource(context)));
|
|
156
|
+
}
|
|
157
|
+
createArcGISRestDataSource(context, detailedContextUri) {
|
|
158
|
+
const observables = [];
|
|
159
|
+
if (window.navigator.onLine) {
|
|
160
|
+
observables.push(this.capabilitiesService.getArcgisOptions(context).pipe(catchError((e) => {
|
|
161
|
+
this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.layer });
|
|
162
|
+
throw e;
|
|
163
|
+
})));
|
|
164
|
+
}
|
|
165
|
+
if (this.optionsService &&
|
|
166
|
+
context.optionsFromApi &&
|
|
167
|
+
window.navigator.onLine) {
|
|
168
|
+
observables.push(this.optionsService
|
|
169
|
+
.getArcgisRestOptions(context, detailedContextUri)
|
|
170
|
+
.pipe(catchError((e) => {
|
|
171
|
+
e.error.toDisplay = true;
|
|
172
|
+
e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
|
|
173
|
+
e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
|
|
174
|
+
return of({});
|
|
175
|
+
})));
|
|
176
|
+
}
|
|
177
|
+
observables.push(of(context));
|
|
178
|
+
return forkJoin(observables).pipe(map((options) => {
|
|
179
|
+
const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
|
|
180
|
+
return new ArcGISRestDataSource(optionsMerged);
|
|
181
|
+
}), catchError(() => {
|
|
182
|
+
return of(undefined);
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
createArcGISRestImageDataSource(context, detailedContextUri) {
|
|
186
|
+
const observables = [];
|
|
187
|
+
if (window.navigator.onLine) {
|
|
188
|
+
observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError((e) => {
|
|
189
|
+
this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
|
|
190
|
+
throw e;
|
|
191
|
+
})));
|
|
192
|
+
}
|
|
193
|
+
if (this.optionsService &&
|
|
194
|
+
context.optionsFromApi &&
|
|
195
|
+
window.navigator.onLine) {
|
|
196
|
+
observables.push(this.optionsService
|
|
197
|
+
.getArcgisRestOptions(context, detailedContextUri)
|
|
198
|
+
.pipe(catchError((e) => {
|
|
199
|
+
e.error.toDisplay = true;
|
|
200
|
+
e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
|
|
201
|
+
e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
|
|
202
|
+
return of({});
|
|
203
|
+
})));
|
|
204
|
+
}
|
|
205
|
+
observables.push(of(context));
|
|
206
|
+
return forkJoin(observables).pipe(map((options) => {
|
|
207
|
+
const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
|
|
208
|
+
return new ImageArcGISRestDataSource(optionsMerged);
|
|
209
|
+
}), catchError(() => {
|
|
210
|
+
return of(undefined);
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
createTileArcGISRestDataSource(context, detailedContextUri) {
|
|
214
|
+
const observables = [];
|
|
215
|
+
if (window.navigator.onLine) {
|
|
216
|
+
observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError((e) => {
|
|
217
|
+
this.messageService.error('igo.geo.dataSource.unavailable', 'igo.geo.dataSource.unavailableTitle', undefined, { value: context.params.LAYERS });
|
|
218
|
+
throw e;
|
|
219
|
+
})));
|
|
220
|
+
}
|
|
221
|
+
if (this.optionsService &&
|
|
222
|
+
context.optionsFromApi &&
|
|
223
|
+
window.navigator.onLine) {
|
|
224
|
+
observables.push(this.optionsService
|
|
225
|
+
.getArcgisRestOptions(context, detailedContextUri)
|
|
226
|
+
.pipe(catchError((e) => {
|
|
227
|
+
e.error.toDisplay = true;
|
|
228
|
+
e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
|
|
229
|
+
e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
|
|
230
|
+
return of({});
|
|
231
|
+
})));
|
|
232
|
+
}
|
|
233
|
+
observables.push(of(context));
|
|
234
|
+
return forkJoin(observables).pipe(map((options) => {
|
|
235
|
+
const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
|
|
236
|
+
return new TileArcGISRestDataSource(optionsMerged);
|
|
237
|
+
}), catchError(() => {
|
|
238
|
+
return of(undefined);
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
createMVTDataSource(context) {
|
|
242
|
+
return new Observable((d) => d.next(new MVTDataSource(context)));
|
|
243
|
+
}
|
|
244
|
+
createClusterDataSource(context) {
|
|
245
|
+
return new Observable((d) => d.next(new ClusterDataSource(context)));
|
|
246
|
+
}
|
|
247
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataSourceService, deps: [{ token: i1.CapabilitiesService }, { token: i2.OptionsService, optional: true }, { token: i3.WFSService }, { token: i4.LanguageService }, { token: i5.MessageService }, { token: i6.AuthInterceptor }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
248
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataSourceService, providedIn: 'root' });
|
|
249
|
+
}
|
|
250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataSourceService, decorators: [{
|
|
251
|
+
type: Injectable,
|
|
252
|
+
args: [{
|
|
253
|
+
providedIn: 'root'
|
|
254
|
+
}]
|
|
255
|
+
}], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.OptionsService, decorators: [{
|
|
256
|
+
type: Optional
|
|
257
|
+
}] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i5.MessageService }, { type: i6.AuthInterceptor }] });
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsb0JBQW9CLEVBR3BCLGVBQWUsRUFFZixpQkFBaUIsRUFHakIsaUJBQWlCLEVBRWpCLHlCQUF5QixFQUN6QixhQUFhLEVBRWIsYUFBYSxFQUViLHdCQUF3QixFQUV4QixtQkFBbUIsRUFFbkIsYUFBYSxFQUViLGFBQWEsRUFFYixjQUFjLEVBRWQsbUJBQW1CLEVBQ25CLGFBQWEsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSWxCO0lBQ1k7SUFDWjtJQUNBO0lBQ0E7SUFD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dGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFueURhdGFTb3VyY2VPcHRpb25zLFxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgQ2FydG9EYXRhU291cmNlLFxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxuICBDbHVzdGVyRGF0YVNvdXJjZSxcbiAgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zLFxuICBEYXRhU291cmNlLFxuICBGZWF0dXJlRGF0YVNvdXJjZSxcbiAgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zLFxuICBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlLFxuICBNVlREYXRhU291cmNlLFxuICBNVlREYXRhU291cmNlT3B0aW9ucyxcbiAgT1NNRGF0YVNvdXJjZSxcbiAgT1NNRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgVGlsZURlYnVnRGF0YVNvdXJjZSxcbiAgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFdGU0RhdGFTb3VyY2UsXG4gIFdGU0RhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlLFxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgV01UU0RhdGFTb3VyY2UsXG4gIFdNVFNEYXRhU291cmNlT3B0aW9ucyxcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcbiAgWFlaRGF0YVNvdXJjZSxcbiAgWFlaRGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBXRlNTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc291cmNlcy93ZnMuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlU2VydmljZSB7XG4gIHB1YmxpYyBkYXRhc291cmNlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFTb3VyY2VbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHdmc0RhdGFTb3VyY2VTZXJ2aWNlOiBXRlNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcbiAgKSB7fVxuXG4gIGNyZWF0ZUFzeW5jRGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBBbnlEYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlPiB7XG4gICAgaWYgKCFjb250ZXh0LnR5cGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoY29udGV4dCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFzb3VyY2UgbmVlZHMgYSB0eXBlJyk7XG4gICAgfVxuICAgIGxldCBkYXRhU291cmNlO1xuICAgIHN3aXRjaCAoY29udGV4dC50eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ29zbSc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZU9TTURhdGFTb3VyY2UoY29udGV4dCBhcyBPU01EYXRhU291cmNlT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmVjdG9yJzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3ZnMnOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXRlNEYXRhU291cmNlKGNvbnRleHQgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dtcyc6IHtcbiAgICAgICAgY29uc3Qgd21zQ29udGV4dCA9IGNvbnRleHQgYXMgV01TRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdNU0RhdGFTb3VyY2Uod21zQ29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01UU0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd4eXonOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RpbGVkZWJ1Zyc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBUaWxlRGVidWdEYXRhU291cmNlXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FydG8nOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVDYXJ0b0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3ZWJzb2NrZXQnOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXZWJTb2NrZXREYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbXZ0JzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlTVZURGF0YVNvdXJjZShjb250ZXh0IGFzIE1WVERhdGFTb3VyY2VPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0aWxlYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgICAgICAgZGV0YWlsZWRDb250ZXh0VXJpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2x1c3Rlcic6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGFzb3VyY2UgdHlwZScpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YXNvdXJjZXMkLm5leHQodGhpcy5kYXRhc291cmNlcyQudmFsdWUuY29uY2F0KFtkYXRhU291cmNlXSkpO1xuXG4gICAgcmV0dXJuIGRhdGFTb3VyY2U7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9TTURhdGFTb3VyY2UoXG4gICAgY29udGV4dDogT1NNRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPU01EYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE9TTURhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZURhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgRmVhdHVyZURhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV2ViU29ja2V0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxXZWJTb2NrZXREYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFdlYlNvY2tldERhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV0ZTRGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBXRlNEYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFdGU0RhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+XG4gICAgICBkLm5leHQoXG4gICAgICAgIG5ldyBXRlNEYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSxcbiAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvclxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV01TRGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICBtYXAoKG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zW10pID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbmV3IFdNU0RhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCwgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV01UU0RhdGFTb3VyY2UoXG4gICAgY29udGV4dDogV01UU0RhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2U+IHtcbiAgICBpZiAoY29udGV4dC5vcHRpb25zRnJvbUNhcGFiaWxpdGllcyAmJiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRXTVRTT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zID8gbmV3IFdNVFNEYXRhU291cmNlKG9wdGlvbnMpIDogdW5kZWZpbmVkO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQubGF5ZXIgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IFhZWkRhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8WFlaRGF0YVNvdXJjZT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBYWVpEYXRhU291cmNlKGNvbnRleHQpKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXG4gICAgY29udGV4dDogVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxUaWxlRGVidWdEYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FydG9EYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2U+IHtcbiAgICBpZiAoY29udGV4dC5tYXBJZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxuICAgICAgICAuZ2V0Q2FydG9PcHRpb25zKGNvbnRleHQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgob3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9ucykgPT4gbmV3IENhcnRvRGF0YVNvdXJjZShvcHRpb25zKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENhcnRvRGF0YVNvdXJjZShjb250ZXh0KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2U+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcmNHSVNSZXN0RGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcblxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxuICAgICkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxuICAgICAgICAgIC5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0SW1hZ2VBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxuICAgICAgbWFwKChvcHRpb25zOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VbXSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1WVERhdGFTb3VyY2UoXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxNVlREYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE1WVERhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2x1c3RlckRhdGFTb3VyY2UoXG4gICAgY29udGV4dDogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8Q2x1c3RlckRhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2x1c3RlckRhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydG9EYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vY2FydG8tZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNVlREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vbXZ0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9TTURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9vc20tZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vdGlsZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3RpbGVkZWJ1Zy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV01UU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXRzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhZWkRhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi94eXotZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlT3B0aW9ucyA9XG4gIHwgRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBPU01EYXRhU291cmNlT3B0aW9uc1xuICB8IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xuICB8IFdGU0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgWFlaRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xuICB8IFdNVFNEYXRhU291cmNlT3B0aW9uc1xuICB8IFdNU0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xuICB8IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICB8IE1WVERhdGFTb3VyY2VPcHRpb25zXG4gIHwgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zO1xuXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlT3B0aW9uc1dpdGhQYXJhbXMgPVxuICB8IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xuICB8IFdGU0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgV01TRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hbnktZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBDYXJ0b0RhdGFTb3VyY2UgfSBmcm9tICcuL2NhcnRvLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuL2NsdXN0ZXItZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi9mZWF0dXJlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZSB9IGZyb20gJy4vaW1hZ2VhcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgTVZURGF0YVNvdXJjZSB9IGZyb20gJy4vbXZ0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgT1NNRGF0YVNvdXJjZSB9IGZyb20gJy4vb3NtLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi90aWxlYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFRpbGVEZWJ1Z0RhdGFTb3VyY2UgfSBmcm9tICcuL3RpbGVkZWJ1Zy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdlYlNvY2tldERhdGFTb3VyY2UgfSBmcm9tICcuL3dlYnNvY2tldC1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2UgfSBmcm9tICcuL3dmcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuL3dtcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlIH0gZnJvbSAnLi93bXRzLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZSB9IGZyb20gJy4veHl6LWRhdGFzb3VyY2UnO1xuXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlID1cbiAgfCBEYXRhU291cmNlXG4gIHwgT1NNRGF0YVNvdXJjZVxuICB8IEZlYXR1cmVEYXRhU291cmNlXG4gIHwgV0ZTRGF0YVNvdXJjZVxuICB8IFhZWkRhdGFTb3VyY2VcbiAgfCBUaWxlRGVidWdEYXRhU291cmNlXG4gIHwgV01UU0RhdGFTb3VyY2VcbiAgfCBXTVNEYXRhU291cmNlXG4gIHwgQ2FydG9EYXRhU291cmNlXG4gIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VcbiAgfCBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlXG4gIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlXG4gIHwgV2ViU29ja2V0RGF0YVNvdXJjZVxuICB8IE1WVERhdGFTb3VyY2VcbiAgfCBDbHVzdGVyRGF0YVNvdXJjZTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIHtcbiAgLy8gdHlwZT86ICdhcmNnaXNyZXN0J1xuICBsYXllcjogc3RyaW5nO1xuICBsZWdlbmRJbmZvPzogYW55O1xuICBwYXJhbXM/OiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNQYXJhbXM7XG4gIGlkQ29sdW1uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1BhcmFtcyB7XG4gIGN1c3RvbVBhcmFtcz86IHN0cmluZ1tdOyAvLyBhbnkgQXJjR0lTIFJlc3QgcXVlcnkgcGFyYW1ldGVycyBmb3IgZmVhdHVyZSBzZXJ2aWNlIGxheWVyIHJlc291cmNlXG4gIHN0eWxlPzogYW55O1xuICB0aW1lZmlsdGVyPzogYW55O1xuICB0aW1lRXh0ZW50Pzogc3RyaW5nO1xuICBhdHRyaWJ1dGlvbnM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import olFormatEsriJSON from 'ol/format/EsriJSON';
|
|
2
|
+
import * as olloadingstrategy from 'ol/loadingstrategy';
|
|
3
|
+
import olSourceVector from 'ol/source/Vector';
|
|
4
|
+
import { DataSource } from './datasource';
|
|
5
|
+
export class ArcGISRestDataSource extends DataSource {
|
|
6
|
+
get saveableOptions() {
|
|
7
|
+
const baseOptions = super.saveableOptions;
|
|
8
|
+
return {
|
|
9
|
+
...baseOptions,
|
|
10
|
+
params: this.options.params,
|
|
11
|
+
url: this.options.url
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
createOlSource() {
|
|
15
|
+
const esrijsonFormat = new olFormatEsriJSON();
|
|
16
|
+
return new olSourceVector({
|
|
17
|
+
attributions: this.options.params.attributions,
|
|
18
|
+
overlaps: false,
|
|
19
|
+
format: esrijsonFormat,
|
|
20
|
+
url: function (extent) {
|
|
21
|
+
const baseUrl = this.options.url + '/' + this.options.layer + '/query/';
|
|
22
|
+
const geometry = encodeURIComponent('{"xmin":' +
|
|
23
|
+
extent[0] +
|
|
24
|
+
',"ymin":' +
|
|
25
|
+
extent[1] +
|
|
26
|
+
',"xmax":' +
|
|
27
|
+
extent[2] +
|
|
28
|
+
',"ymax":' +
|
|
29
|
+
extent[3] +
|
|
30
|
+
',"spatialReference":{"wkid":102100}}');
|
|
31
|
+
const params = [
|
|
32
|
+
'f=json',
|
|
33
|
+
`geometry=${geometry}`,
|
|
34
|
+
'geometryType=esriGeometryEnvelope',
|
|
35
|
+
'inSR=102100',
|
|
36
|
+
'spatialRel=esriSpatialRelIntersects',
|
|
37
|
+
'outFields=*',
|
|
38
|
+
'returnGeometry=true',
|
|
39
|
+
'outSR=102100'
|
|
40
|
+
];
|
|
41
|
+
if (this.options.params.time) {
|
|
42
|
+
const time = `time=${this.options.params.time}`;
|
|
43
|
+
params.push(time);
|
|
44
|
+
}
|
|
45
|
+
if (this.options.params.customParams) {
|
|
46
|
+
this.options.params.customParams.forEach((element) => {
|
|
47
|
+
params.push(element);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return `${baseUrl}?${params.join('&')}`;
|
|
51
|
+
}.bind(this),
|
|
52
|
+
strategy: olloadingstrategy.bbox
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getLegend() {
|
|
56
|
+
const legendInfo = this.options.legendInfo;
|
|
57
|
+
const legend = super.getLegend();
|
|
58
|
+
if (legendInfo === undefined || legend.length > 0) {
|
|
59
|
+
return legend;
|
|
60
|
+
}
|
|
61
|
+
if (!legendInfo) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
let htmlString = '<table>';
|
|
65
|
+
let src;
|
|
66
|
+
let label;
|
|
67
|
+
let svg;
|
|
68
|
+
if (legendInfo.legend) {
|
|
69
|
+
for (const legendElement of legendInfo.legend) {
|
|
70
|
+
src = this.htmlImgSrc(legendElement.contentType, legendElement.imageData);
|
|
71
|
+
label = legendElement.label
|
|
72
|
+
? legendElement.label.replace('<Null>', 'Null')
|
|
73
|
+
: '';
|
|
74
|
+
htmlString +=
|
|
75
|
+
`<tr><td align='left'><img src="` +
|
|
76
|
+
src +
|
|
77
|
+
`" alt ='' /></td><td class="mat-typography">` +
|
|
78
|
+
label +
|
|
79
|
+
'</td></tr>';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (legendInfo.type === 'uniqueValue') {
|
|
83
|
+
for (const legendElement of legendInfo.uniqueValueInfos) {
|
|
84
|
+
label = legendElement.label.replace('<Null>', 'Null');
|
|
85
|
+
if (legendElement.symbol.type === 'esriPMS') {
|
|
86
|
+
src = this.htmlImgSrc(legendElement.symbol.contentType, legendElement.symbol.imageData);
|
|
87
|
+
htmlString +=
|
|
88
|
+
`<tr><td align='left'><img src="` +
|
|
89
|
+
src +
|
|
90
|
+
`" alt ='' /></td><td class="mat-typography">` +
|
|
91
|
+
label +
|
|
92
|
+
'</td></tr>';
|
|
93
|
+
}
|
|
94
|
+
else if (legendElement.symbol.type !== 'esriPMS') {
|
|
95
|
+
svg = this.createSVG(legendElement.symbol);
|
|
96
|
+
htmlString +=
|
|
97
|
+
`<tr><td align='left'>` +
|
|
98
|
+
svg +
|
|
99
|
+
`</td><td class="mat-typography">` +
|
|
100
|
+
label +
|
|
101
|
+
'</td></tr>';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (legendInfo.type === 'simple') {
|
|
106
|
+
label = legendInfo.label
|
|
107
|
+
? legendInfo.label.replace('<Null>', 'Null')
|
|
108
|
+
: '';
|
|
109
|
+
if (legendInfo.symbol.type === 'esriPMS') {
|
|
110
|
+
src = this.htmlImgSrc(legendInfo.symbol.contentType, legendInfo.symbol.imageData);
|
|
111
|
+
htmlString +=
|
|
112
|
+
`<tr><td align='left'><img src="` +
|
|
113
|
+
src +
|
|
114
|
+
`" alt ='' /></td><td class="mat-typography">` +
|
|
115
|
+
label +
|
|
116
|
+
'</td></tr>';
|
|
117
|
+
}
|
|
118
|
+
else if (legendInfo.symbol.type !== 'esriPMS') {
|
|
119
|
+
svg = this.createSVG(legendInfo.symbol);
|
|
120
|
+
htmlString +=
|
|
121
|
+
`<tr><td align='left'>` +
|
|
122
|
+
svg +
|
|
123
|
+
`</td><td class="mat-typography">` +
|
|
124
|
+
label +
|
|
125
|
+
'</td></tr>';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
htmlString += '</table>';
|
|
129
|
+
return [{ html: htmlString }];
|
|
130
|
+
}
|
|
131
|
+
htmlImgSrc(contentType, imageData) {
|
|
132
|
+
return `data:${contentType};base64,${imageData}`;
|
|
133
|
+
}
|
|
134
|
+
createSVG(symbol) {
|
|
135
|
+
let svg = '';
|
|
136
|
+
const color = symbol.color ? symbol.color : [0, 0, 0, 0];
|
|
137
|
+
if (symbol.type === 'esriSLS') {
|
|
138
|
+
const width = symbol.width ? symbol.width : 0;
|
|
139
|
+
const stroke = `stroke:rgba(` +
|
|
140
|
+
color[0] +
|
|
141
|
+
',' +
|
|
142
|
+
color[1] +
|
|
143
|
+
',' +
|
|
144
|
+
color[2] +
|
|
145
|
+
',' +
|
|
146
|
+
color[3] +
|
|
147
|
+
')';
|
|
148
|
+
const strokeWidth = `stroke-width:` + width;
|
|
149
|
+
if (symbol.style === 'esriSLSSolid') {
|
|
150
|
+
svg =
|
|
151
|
+
`<svg height="30" width="30"><line x1="0" y1="15" x2="30" y2="15" style="` +
|
|
152
|
+
stroke +
|
|
153
|
+
';' +
|
|
154
|
+
strokeWidth +
|
|
155
|
+
`"/></svg>`;
|
|
156
|
+
}
|
|
157
|
+
else if (symbol.style === 'esriSLSDash') {
|
|
158
|
+
const strokeDashArray = `stroke-dasharray="5,5"`;
|
|
159
|
+
svg =
|
|
160
|
+
`<svg height="30" width="30"><line x1="0" y1="15" x2="30" y2="15" style="` +
|
|
161
|
+
stroke +
|
|
162
|
+
';' +
|
|
163
|
+
strokeWidth +
|
|
164
|
+
`" ` +
|
|
165
|
+
strokeDashArray +
|
|
166
|
+
`/></svg>`;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else if (symbol.style === 'esriSMSCircle' ||
|
|
170
|
+
symbol.style === 'esriSFSSolid') {
|
|
171
|
+
const outlineColor = symbol.outline.color;
|
|
172
|
+
const outlineWidth = symbol.outline.width;
|
|
173
|
+
const size = symbol.size;
|
|
174
|
+
const stroke = `stroke:rgba(` +
|
|
175
|
+
outlineColor[0] +
|
|
176
|
+
',' +
|
|
177
|
+
outlineColor[1] +
|
|
178
|
+
',' +
|
|
179
|
+
outlineColor[2] +
|
|
180
|
+
',' +
|
|
181
|
+
outlineColor[3] +
|
|
182
|
+
')';
|
|
183
|
+
const strokeWidth = `stroke-width:` + outlineWidth;
|
|
184
|
+
const fill = `fill:rgba(` +
|
|
185
|
+
color[0] +
|
|
186
|
+
',' +
|
|
187
|
+
color[1] +
|
|
188
|
+
',' +
|
|
189
|
+
color[2] +
|
|
190
|
+
',' +
|
|
191
|
+
color[3] +
|
|
192
|
+
')';
|
|
193
|
+
if (symbol.style === 'esriSMSCircle') {
|
|
194
|
+
svg =
|
|
195
|
+
`<svg height="30" width="30"><circle cx="15" cy="15" r="` +
|
|
196
|
+
size / 2 +
|
|
197
|
+
`" style="` +
|
|
198
|
+
stroke +
|
|
199
|
+
';' +
|
|
200
|
+
strokeWidth +
|
|
201
|
+
';' +
|
|
202
|
+
fill +
|
|
203
|
+
`"/></svg>`;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
svg =
|
|
207
|
+
`<svg height="30" width="30"><rect x="5" y="5" width="20" height="20" style ="` +
|
|
208
|
+
stroke +
|
|
209
|
+
';' +
|
|
210
|
+
strokeWidth +
|
|
211
|
+
';' +
|
|
212
|
+
fill +
|
|
213
|
+
`"/></svg>`;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return svg;
|
|
217
|
+
}
|
|
218
|
+
onUnwatch() {
|
|
219
|
+
// empty
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJbEQsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDMUMsT0FBTztZQUNMLEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRztTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVTLGNBQWM7UUFDdEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxjQUFjLENBQUM7WUFDeEIsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDOUMsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsY0FBYztZQUN0QixHQUFHLEVBQUUsVUFBVSxNQUFNO2dCQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUN4RSxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FDakMsVUFB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SyxDQUFDLENBQUMsQ0FBQztnQkFDUixHQUFHLENBQUM7WUFFTixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBQ3JDLEdBQUc7b0JBQ0QseURBQXlEO3dCQUN6RCxJQUFJLEdBQUcsQ0FBQzt3QkFDUixXQUFXO3dCQUNYLE1BQU07d0JBQ04sR0FBRzt3QkFDSCxXQUFXO3dCQUNYLEdBQUc7d0JBQ0gsSUFBSTt3QkFDSixXQUFXLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUc7b0JBQ0QsK0VBQStFO3dCQUMvRSxNQUFNO3dCQUNOLEdBQUc7d0JBQ0gsV0FBVzt3QkFDWCxHQUFHO3dCQUNILElBQUk7d0JBQ0osV0FBVyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sU0FBUztRQUNkLFFBQVE7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xGb3JtYXRFc3JpSlNPTiBmcm9tICdvbC9mb3JtYXQvRXNyaUpTT04nO1xuaW1wb3J0ICogYXMgb2xsb2FkaW5nc3RyYXRlZ3kgZnJvbSAnb2wvbG9hZGluZ3N0cmF0ZWd5JztcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9hcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBBcmNHSVNSZXN0RGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBkZWNsYXJlIHB1YmxpYyBvbDogb2xTb3VyY2VWZWN0b3I7XG4gIGRlY2xhcmUgcHVibGljIG9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucztcblxuICBnZXQgc2F2ZWFibGVPcHRpb25zKCk6IFBhcnRpYWw8QXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3QgYmFzZU9wdGlvbnMgPSBzdXBlci5zYXZlYWJsZU9wdGlvbnM7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2VPcHRpb25zLFxuICAgICAgcGFyYW1zOiB0aGlzLm9wdGlvbnMucGFyYW1zLFxuICAgICAgdXJsOiB0aGlzLm9wdGlvbnMudXJsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZVZlY3RvciB7XG4gICAgY29uc3QgZXNyaWpzb25Gb3JtYXQgPSBuZXcgb2xGb3JtYXRFc3JpSlNPTigpO1xuICAgIHJldHVybiBuZXcgb2xTb3VyY2VWZWN0b3Ioe1xuICAgICAgYXR0cmlidXRpb25zOiB0aGlzLm9wdGlvbnMucGFyYW1zLmF0dHJpYnV0aW9ucyxcbiAgICAgIG92ZXJsYXBzOiBmYWxzZSxcbiAgICAgIGZvcm1hdDogZXNyaWpzb25Gb3JtYXQsXG4gICAgICB1cmw6IGZ1bmN0aW9uIChleHRlbnQpIHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMub3B0aW9ucy51cmwgKyAnLycgKyB0aGlzLm9wdGlvbnMubGF5ZXIgKyAnL3F1ZXJ5Lyc7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICAgICd7XCJ4bWluXCI6JyArXG4gICAgICAgICAgICBleHRlbnRbMF0gK1xuICAgICAgICAgICAgJyxcInltaW5cIjonICtcbiAgICAgICAgICAgIGV4dGVudFsxXSArXG4gICAgICAgICAgICAnLFwieG1heFwiOicgK1xuICAgICAgICAgICAgZXh0ZW50WzJdICtcbiAgICAgICAgICAgICcsXCJ5bWF4XCI6JyArXG4gICAgICAgICAgICBleHRlbnRbM10gK1xuICAgICAgICAgICAgJyxcInNwYXRpYWxSZWZlcmVuY2VcIjp7XCJ3a2lkXCI6MTAyMTAwfX0nXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IFtcbiAgICAgICAgICAnZj1qc29uJyxcbiAgICAgICAgICBgZ2VvbWV0cnk9JHtnZW9tZXRyeX1gLFxuICAgICAgICAgICdnZW9tZXRyeVR5cGU9ZXNyaUdlb21ldHJ5RW52ZWxvcGUnLFxuICAgICAgICAgICdpblNSPTEwMjEwMCcsXG4gICAgICAgICAgJ3NwYXRpYWxSZWw9ZXNyaVNwYXRpYWxSZWxJbnRlcnNlY3RzJyxcbiAgICAgICAgICAnb3V0RmllbGRzPSonLFxuICAgICAgICAgICdyZXR1cm5HZW9tZXRyeT10cnVlJyxcbiAgICAgICAgICAnb3V0U1I9MTAyMTAwJ1xuICAgICAgICBdO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcmFtcy50aW1lKSB7XG4gICAgICAgICAgY29uc3QgdGltZSA9IGB0aW1lPSR7dGhpcy5vcHRpb25zLnBhcmFtcy50aW1lfWA7XG4gICAgICAgICAgcGFyYW1zLnB1c2godGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJhbXMuY3VzdG9tUGFyYW1zKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcy5jdXN0b21QYXJhbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcGFyYW1zLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9PyR7cGFyYW1zLmpvaW4oJyYnKX1gO1xuICAgICAgfS5iaW5kKHRoaXMpLFxuICAgICAgc3RyYXRlZ3k6IG9sbG9hZGluZ3N0cmF0ZWd5LmJib3hcbiAgICB9KTtcbiAgfVxuXG4gIGdldExlZ2VuZCgpOiBMZWdlbmRbXSB7XG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IHRoaXMub3B0aW9ucy5sZWdlbmRJbmZvO1xuICAgIGNvbnN0IGxlZ2VuZCA9IHN1cGVyLmdldExlZ2VuZCgpO1xuICAgIGlmIChsZWdlbmRJbmZvID09PSB1bmRlZmluZWQgfHwgbGVnZW5kLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBsZWdlbmQ7XG4gICAgfVxuICAgIGlmICghbGVnZW5kSW5mbykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgaHRtbFN0cmluZyA9ICc8dGFibGU+JztcbiAgICBsZXQgc3JjOiBzdHJpbmc7XG4gICAgbGV0IGxhYmVsOiBzdHJpbmc7XG4gICAgbGV0IHN2Zzogc3RyaW5nO1xuXG4gICAgaWYgKGxlZ2VuZEluZm8ubGVnZW5kKSB7XG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZEVsZW1lbnQgb2YgbGVnZW5kSW5mby5sZWdlbmQpIHtcbiAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKFxuICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuY29udGVudFR5cGUsXG4gICAgICAgICAgbGVnZW5kRWxlbWVudC5pbWFnZURhdGFcbiAgICAgICAgKTtcbiAgICAgICAgbGFiZWwgPSBsZWdlbmRFbGVtZW50LmxhYmVsXG4gICAgICAgICAgPyBsZWdlbmRFbGVtZW50LmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJylcbiAgICAgICAgICA6ICcnO1xuICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXG4gICAgICAgICAgc3JjICtcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobGVnZW5kSW5mby50eXBlID09PSAndW5pcXVlVmFsdWUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZEVsZW1lbnQgb2YgbGVnZW5kSW5mby51bmlxdWVWYWx1ZUluZm9zKSB7XG4gICAgICAgIGxhYmVsID0gbGVnZW5kRWxlbWVudC5sYWJlbC5yZXBsYWNlKCc8TnVsbD4nLCAnTnVsbCcpO1xuICAgICAgICBpZiAobGVnZW5kRWxlbWVudC5zeW1ib2wudHlwZSA9PT0gJ2VzcmlQTVMnKSB7XG4gICAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKFxuICAgICAgICAgICAgbGVnZW5kRWxlbWVudC5zeW1ib2wuY29udGVudFR5cGUsXG4gICAgICAgICAgICBsZWdlbmRFbGVtZW50LnN5bWJvbC5pbWFnZURhdGFcbiAgICAgICAgICApO1xuICAgICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz48aW1nIHNyYz1cImAgK1xuICAgICAgICAgICAgc3JjICtcbiAgICAgICAgICAgIGBcIiBhbHQgPScnIC8+PC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgICB9IGVsc2UgaWYgKGxlZ2VuZEVsZW1lbnQuc3ltYm9sLnR5cGUgIT09ICdlc3JpUE1TJykge1xuICAgICAgICAgIHN2ZyA9IHRoaXMuY3JlYXRlU1ZHKGxlZ2VuZEVsZW1lbnQuc3ltYm9sKTtcbiAgICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+YCArXG4gICAgICAgICAgICBzdmcgK1xuICAgICAgICAgICAgYDwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobGVnZW5kSW5mby50eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgbGFiZWwgPSBsZWdlbmRJbmZvLmxhYmVsXG4gICAgICAgID8gbGVnZW5kSW5mby5sYWJlbC5yZXBsYWNlKCc8TnVsbD4nLCAnTnVsbCcpXG4gICAgICAgIDogJyc7XG4gICAgICBpZiAobGVnZW5kSW5mby5zeW1ib2wudHlwZSA9PT0gJ2VzcmlQTVMnKSB7XG4gICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcbiAgICAgICAgICBsZWdlbmRJbmZvLnN5bWJvbC5jb250ZW50VHlwZSxcbiAgICAgICAgICBsZWdlbmRJbmZvLnN5bWJvbC5pbWFnZURhdGFcbiAgICAgICAgKTtcbiAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz48aW1nIHNyYz1cImAgK1xuICAgICAgICAgIHNyYyArXG4gICAgICAgICAgYFwiIGFsdCA9JycgLz48L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgIH0gZWxzZSBpZiAobGVnZW5kSW5mby5zeW1ib2wudHlwZSAhPT0gJ2VzcmlQTVMnKSB7XG4gICAgICAgIHN2ZyA9IHRoaXMuY3JlYXRlU1ZHKGxlZ2VuZEluZm8uc3ltYm9sKTtcbiAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz5gICtcbiAgICAgICAgICBzdmcgK1xuICAgICAgICAgIGA8L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgIH1cbiAgICB9XG4gICAgaHRtbFN0cmluZyArPSAnPC90YWJsZT4nO1xuICAgIHJldHVybiBbeyBodG1sOiBodG1sU3RyaW5nIH1dO1xuICB9XG5cbiAgaHRtbEltZ1NyYyhjb250ZW50VHlwZTogc3RyaW5nLCBpbWFnZURhdGE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBkYXRhOiR7Y29udGVudFR5cGV9O2Jhc2U2NCwke2ltYWdlRGF0YX1gO1xuICB9XG5cbiAgY3JlYXRlU1ZHKHN5bWJvbCk6IHN0cmluZyB7XG4gICAgbGV0IHN2ZyA9ICcnO1xuXG4gICAgY29uc3QgY29sb3I6IG51bWJlcltdID0gc3ltYm9sLmNvbG9yID8gc3ltYm9sLmNvbG9yIDogWzAsIDAsIDAsIDBdO1xuXG4gICAgaWYgKHN5bWJvbC50eXBlID09PSAnZXNyaVNMUycpIHtcbiAgICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBzeW1ib2wud2lkdGggPyBzeW1ib2wud2lkdGggOiAwO1xuXG4gICAgICBjb25zdCBzdHJva2U6IHN0cmluZyA9XG4gICAgICAgIGBzdHJva2U6cmdiYShgICtcbiAgICAgICAgY29sb3JbMF0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzJdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbM10gK1xuICAgICAgICAnKSc7XG4gICAgICBjb25zdCBzdHJva2VXaWR0aDogc3RyaW5nID0gYHN0cm9rZS13aWR0aDpgICsgd2lkdGg7XG5cbiAgICAgIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0xTU29saWQnKSB7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNMU0Rhc2gnKSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZURhc2hBcnJheSA9IGBzdHJva2UtZGFzaGFycmF5PVwiNSw1XCJgO1xuICAgICAgICBzdmcgPVxuICAgICAgICAgIGA8c3ZnIGhlaWdodD1cIjMwXCIgd2lkdGg9XCIzMFwiPjxsaW5lIHgxPVwiMFwiIHkxPVwiMTVcIiB4Mj1cIjMwXCIgeTI9XCIxNVwiIHN0eWxlPVwiYCArXG4gICAgICAgICAgc3Ryb2tlICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIHN0cm9rZVdpZHRoICtcbiAgICAgICAgICBgXCIgYCArXG4gICAgICAgICAgc3Ryb2tlRGFzaEFycmF5ICtcbiAgICAgICAgICBgLz48L3N2Zz5gO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TQ2lyY2xlJyB8fFxuICAgICAgc3ltYm9sLnN0eWxlID09PSAnZXNyaVNGU1NvbGlkJ1xuICAgICkge1xuICAgICAgY29uc3Qgb3V0bGluZUNvbG9yID0gc3ltYm9sLm91dGxpbmUuY29sb3I7XG4gICAgICBjb25zdCBvdXRsaW5lV2lkdGggPSBzeW1ib2wub3V0bGluZS53aWR0aDtcbiAgICAgIGNvbnN0IHNpemUgPSBzeW1ib2wuc2l6ZTtcblxuICAgICAgY29uc3Qgc3Ryb2tlID1cbiAgICAgICAgYHN0cm9rZTpyZ2JhKGAgK1xuICAgICAgICBvdXRsaW5lQ29sb3JbMF0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBvdXRsaW5lQ29sb3JbMV0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBvdXRsaW5lQ29sb3JbMl0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBvdXRsaW5lQ29sb3JbM10gK1xuICAgICAgICAnKSc7XG4gICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGBzdHJva2Utd2lkdGg6YCArIG91dGxpbmVXaWR0aDtcbiAgICAgIGNvbnN0IGZpbGwgPVxuICAgICAgICBgZmlsbDpyZ2JhKGAgK1xuICAgICAgICBjb2xvclswXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzFdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbMl0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclszXSArXG4gICAgICAgICcpJztcblxuICAgICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnKSB7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIxNVwiIHI9XCJgICtcbiAgICAgICAgICBzaXplIC8gMiArXG4gICAgICAgICAgYFwiIHN0eWxlPVwiYCArXG4gICAgICAgICAgc3Ryb2tlICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIHN0cm9rZVdpZHRoICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIGZpbGwgK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PHJlY3QgeD1cIjVcIiB5PVwiNVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHN0eWxlID1cImAgK1xuICAgICAgICAgIHN0cm9rZSArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBzdHJva2VXaWR0aCArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBmaWxsICtcbiAgICAgICAgICBgXCIvPjwvc3ZnPmA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdmc7XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge1xuICAgIC8vIGVtcHR5XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydG8tZGF0YXNvdXJjZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jYXJ0by1kYXRhc291cmNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xuICAvLyB0eXBlPzogJ2NhcnRvJztcbiAgYWNjb3VudDogc3RyaW5nO1xuICBtYXBJZD86IHN0cmluZzsgLy8gRmV0Y2ggdGhlIGNvbmZpZyBvZiBhIHB1YmxpYyBtYXAgZnJvbSB0aGUgQ2FydG8gQVBJIHVzaW5nIHRoZSBtYXBJZC5cblxuICBwYXJhbXM/OiBhbnk7XG4gIHF1ZXJ5UHJlY2lzaW9uPzogc3RyaW5nO1xuICBjcm9zc09yaWdpbj86IHN0cmluZztcbiAgcHJvamVjdGlvbj86IHN0cmluZztcbiAgY29uZmlnPzogYW55O1xuICBtYXA/OiBzdHJpbmc7XG59XG4iXX0=
|