@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,18 @@
|
|
|
1
|
+
import { DirectionsSource } from '../directions-sources/directions-source';
|
|
2
|
+
export class DirectionsSourceService {
|
|
3
|
+
sources;
|
|
4
|
+
constructor(sources) {
|
|
5
|
+
this.sources = sources;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export function directionsSourceServiceFactory(sources) {
|
|
9
|
+
return new DirectionsSourceService(sources);
|
|
10
|
+
}
|
|
11
|
+
export function provideDirectionsSourceService() {
|
|
12
|
+
return {
|
|
13
|
+
provide: DirectionsSourceService,
|
|
14
|
+
useFactory: directionsSourceServiceFactory,
|
|
15
|
+
deps: [DirectionsSource]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUNmO0lBQW5CLFlBQW1CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBQUcsQ0FBQztDQUNuRDtBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxPQUEyQjtJQUN4RSxPQUFPLElBQUksdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEI7SUFDNUMsT0FBTztRQUNMLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsVUFBVSxFQUFFLDhCQUE4QjtRQUMxQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztLQUN6QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuLi9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc291cmNlczogRGlyZWN0aW9uc1NvdXJjZVtdKSB7fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlyZWN0aW9uc1NvdXJjZVNlcnZpY2VGYWN0b3J5KHNvdXJjZXM6IERpcmVjdGlvbnNTb3VyY2VbXSkge1xuICByZXR1cm4gbmV3IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKHNvdXJjZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKCkge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLFxuICAgIHVzZUZhY3Rvcnk6IGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlRmFjdG9yeSxcbiAgICBkZXBzOiBbRGlyZWN0aW9uc1NvdXJjZV1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export var DirectionsFormat;
|
|
2
|
+
(function (DirectionsFormat) {
|
|
3
|
+
DirectionsFormat[DirectionsFormat["GeoJSON"] = 0] = "GeoJSON";
|
|
4
|
+
DirectionsFormat[DirectionsFormat["JSON"] = 1] = "JSON";
|
|
5
|
+
})(DirectionsFormat || (DirectionsFormat = {}));
|
|
6
|
+
export var SourceDirectionsType;
|
|
7
|
+
(function (SourceDirectionsType) {
|
|
8
|
+
SourceDirectionsType["Route"] = "route";
|
|
9
|
+
SourceDirectionsType["Trip"] = "trip";
|
|
10
|
+
})(SourceDirectionsType || (SourceDirectionsType = {}));
|
|
11
|
+
export var ProposalType;
|
|
12
|
+
(function (ProposalType) {
|
|
13
|
+
ProposalType["Coord"] = "coord";
|
|
14
|
+
ProposalType["Text"] = "text";
|
|
15
|
+
})(ProposalType || (ProposalType = {}));
|
|
16
|
+
export var DirectionsType;
|
|
17
|
+
(function (DirectionsType) {
|
|
18
|
+
DirectionsType["Stop"] = "stop";
|
|
19
|
+
DirectionsType["Route"] = "route";
|
|
20
|
+
DirectionsType["Vertex"] = "vertex";
|
|
21
|
+
})(DirectionsType || (DirectionsType = {}));
|
|
22
|
+
export var DirectionRelativePositionType;
|
|
23
|
+
(function (DirectionRelativePositionType) {
|
|
24
|
+
DirectionRelativePositionType["Start"] = "start";
|
|
25
|
+
DirectionRelativePositionType["Intermediate"] = "intermediate";
|
|
26
|
+
DirectionRelativePositionType["End"] = "end";
|
|
27
|
+
})(DirectionRelativePositionType || (DirectionRelativePositionType = {}));
|
|
28
|
+
export var ManeuverType;
|
|
29
|
+
(function (ManeuverType) {
|
|
30
|
+
ManeuverType["Turn"] = "turn";
|
|
31
|
+
ManeuverType["NewName"] = "new name";
|
|
32
|
+
ManeuverType["Depart"] = "depart";
|
|
33
|
+
ManeuverType["Arrive"] = "arrive";
|
|
34
|
+
ManeuverType["Merge"] = "merge";
|
|
35
|
+
ManeuverType["Ramp"] = "ramp";
|
|
36
|
+
ManeuverType["OnRamp"] = "on ramp";
|
|
37
|
+
ManeuverType["OffRamp"] = "off ramp";
|
|
38
|
+
ManeuverType["Fork"] = "fork";
|
|
39
|
+
ManeuverType["EndOfRoad"] = "end of road";
|
|
40
|
+
ManeuverType["UseLane"] = "use lane";
|
|
41
|
+
ManeuverType["Continue"] = "continue";
|
|
42
|
+
ManeuverType["Roundabout"] = "roundabout";
|
|
43
|
+
ManeuverType["Rotary"] = "rotary";
|
|
44
|
+
ManeuverType["RoundaboutTurn"] = "roundabout turn";
|
|
45
|
+
ManeuverType["Notification"] = "notification";
|
|
46
|
+
ManeuverType["ExitRoundabout"] = "exit roundabout";
|
|
47
|
+
ManeuverType["ExitRotary"] = "exit rotary";
|
|
48
|
+
})(ManeuverType || (ManeuverType = {}));
|
|
49
|
+
export var ManeuverModifier;
|
|
50
|
+
(function (ManeuverModifier) {
|
|
51
|
+
ManeuverModifier["Uturn"] = "uturn";
|
|
52
|
+
ManeuverModifier["SharpRight"] = "sharp right";
|
|
53
|
+
ManeuverModifier["Right"] = "right";
|
|
54
|
+
ManeuverModifier["SlightRight"] = "slight right";
|
|
55
|
+
ManeuverModifier["SharpLeft"] = "sharp left";
|
|
56
|
+
ManeuverModifier["Left"] = "left";
|
|
57
|
+
ManeuverModifier["SlightLeft"] = "slight left";
|
|
58
|
+
ManeuverModifier["Straight"] = "straight";
|
|
59
|
+
})(ManeuverModifier || (ManeuverModifier = {}));
|
|
60
|
+
export var LaneType;
|
|
61
|
+
(function (LaneType) {
|
|
62
|
+
LaneType["None"] = "none";
|
|
63
|
+
LaneType["Uturn"] = "uturn";
|
|
64
|
+
LaneType["SharpRight"] = "sharp right";
|
|
65
|
+
LaneType["Right"] = "right";
|
|
66
|
+
LaneType["SlightRight"] = "slight right";
|
|
67
|
+
LaneType["SharpLeft"] = "sharp left";
|
|
68
|
+
LaneType["Left"] = "left";
|
|
69
|
+
LaneType["SlightLeft"] = "slight left";
|
|
70
|
+
LaneType["Straight"] = "straight";
|
|
71
|
+
})(LaneType || (LaneType = {}));
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHVEQUFJLENBQUE7QUFDTixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUNELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsdUNBQWUsQ0FBQTtJQUNmLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQjtBQUVELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsK0JBQWUsQ0FBQTtJQUNmLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLCtCQUFhLENBQUE7SUFDYixpQ0FBZSxDQUFBO0lBQ2YsbUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsTUFBTSxDQUFOLElBQVksNkJBSVg7QUFKRCxXQUFZLDZCQUE2QjtJQUN2QyxnREFBZSxDQUFBO0lBQ2YsOERBQTZCLENBQUE7SUFDN0IsNENBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBSXhDO0FBRUQsTUFBTSxDQUFOLElBQVksWUFtQlg7QUFuQkQsV0FBWSxZQUFZO0lBQ3RCLDZCQUFhLENBQUE7SUFDYixvQ0FBb0IsQ0FBQTtJQUNwQixpQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBZSxDQUFBO0lBQ2YsNkJBQWEsQ0FBQTtJQUNiLGtDQUFrQixDQUFBO0lBQ2xCLG9DQUFvQixDQUFBO0lBQ3BCLDZCQUFhLENBQUE7SUFDYix5Q0FBeUIsQ0FBQTtJQUN6QixvQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBeUIsQ0FBQTtJQUN6QixpQ0FBaUIsQ0FBQTtJQUNqQixrREFBa0MsQ0FBQTtJQUNsQyw2Q0FBNkIsQ0FBQTtJQUM3QixrREFBa0MsQ0FBQTtJQUNsQywwQ0FBMEIsQ0FBQTtBQUM1QixDQUFDLEVBbkJXLFlBQVksS0FBWixZQUFZLFFBbUJ2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGdCQVNYO0FBVEQsV0FBWSxnQkFBZ0I7SUFDMUIsbUNBQWUsQ0FBQTtJQUNmLDhDQUEwQixDQUFBO0lBQzFCLG1DQUFlLENBQUE7SUFDZixnREFBNEIsQ0FBQTtJQUM1Qiw0Q0FBd0IsQ0FBQTtJQUN4QixpQ0FBYSxDQUFBO0lBQ2IsOENBQTBCLENBQUE7SUFDMUIseUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVRXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFTM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxRQVVYO0FBVkQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYiwyQkFBZSxDQUFBO0lBQ2Ysc0NBQTBCLENBQUE7SUFDMUIsMkJBQWUsQ0FBQTtJQUNmLHdDQUE0QixDQUFBO0lBQzVCLG9DQUF3QixDQUFBO0lBQ3hCLHlCQUFhLENBQUE7SUFDYixzQ0FBMEIsQ0FBQTtJQUMxQixpQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsUUFBUSxLQUFSLFFBQVEsUUFVbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEaXJlY3Rpb25zRm9ybWF0IHtcbiAgR2VvSlNPTixcbiAgSlNPTlxufVxuZXhwb3J0IGVudW0gU291cmNlRGlyZWN0aW9uc1R5cGUge1xuICBSb3V0ZSA9ICdyb3V0ZScsXG4gIFRyaXAgPSAndHJpcCdcbn1cblxuZXhwb3J0IGVudW0gUHJvcG9zYWxUeXBlIHtcbiAgQ29vcmQgPSAnY29vcmQnLFxuICBUZXh0ID0gJ3RleHQnXG59XG5cbmV4cG9ydCBlbnVtIERpcmVjdGlvbnNUeXBlIHtcbiAgU3RvcCA9ICdzdG9wJyxcbiAgUm91dGUgPSAncm91dGUnLFxuICBWZXJ0ZXggPSAndmVydGV4J1xufVxuXG5leHBvcnQgZW51bSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB7XG4gIFN0YXJ0ID0gJ3N0YXJ0JyxcbiAgSW50ZXJtZWRpYXRlID0gJ2ludGVybWVkaWF0ZScsXG4gIEVuZCA9ICdlbmQnXG59XG5cbmV4cG9ydCBlbnVtIE1hbmV1dmVyVHlwZSB7XG4gIFR1cm4gPSAndHVybicsXG4gIE5ld05hbWUgPSAnbmV3IG5hbWUnLFxuICBEZXBhcnQgPSAnZGVwYXJ0JyxcbiAgQXJyaXZlID0gJ2Fycml2ZScsXG4gIE1lcmdlID0gJ21lcmdlJyxcbiAgUmFtcCA9ICdyYW1wJyxcbiAgT25SYW1wID0gJ29uIHJhbXAnLFxuICBPZmZSYW1wID0gJ29mZiByYW1wJyxcbiAgRm9yayA9ICdmb3JrJyxcbiAgRW5kT2ZSb2FkID0gJ2VuZCBvZiByb2FkJyxcbiAgVXNlTGFuZSA9ICd1c2UgbGFuZScsXG4gIENvbnRpbnVlID0gJ2NvbnRpbnVlJyxcbiAgUm91bmRhYm91dCA9ICdyb3VuZGFib3V0JyxcbiAgUm90YXJ5ID0gJ3JvdGFyeScsXG4gIFJvdW5kYWJvdXRUdXJuID0gJ3JvdW5kYWJvdXQgdHVybicsXG4gIE5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24nLFxuICBFeGl0Um91bmRhYm91dCA9ICdleGl0IHJvdW5kYWJvdXQnLFxuICBFeGl0Um90YXJ5ID0gJ2V4aXQgcm90YXJ5J1xufVxuXG5leHBvcnQgZW51bSBNYW5ldXZlck1vZGlmaWVyIHtcbiAgVXR1cm4gPSAndXR1cm4nLFxuICBTaGFycFJpZ2h0ID0gJ3NoYXJwIHJpZ2h0JyxcbiAgUmlnaHQgPSAncmlnaHQnLFxuICBTbGlnaHRSaWdodCA9ICdzbGlnaHQgcmlnaHQnLFxuICBTaGFycExlZnQgPSAnc2hhcnAgbGVmdCcsXG4gIExlZnQgPSAnbGVmdCcsXG4gIFNsaWdodExlZnQgPSAnc2xpZ2h0IGxlZnQnLFxuICBTdHJhaWdodCA9ICdzdHJhaWdodCdcbn1cblxuZXhwb3J0IGVudW0gTGFuZVR5cGUge1xuICBOb25lID0gJ25vbmUnLFxuICBVdHVybiA9ICd1dHVybicsXG4gIFNoYXJwUmlnaHQgPSAnc2hhcnAgcmlnaHQnLFxuICBSaWdodCA9ICdyaWdodCcsXG4gIFNsaWdodFJpZ2h0ID0gJ3NsaWdodCByaWdodCcsXG4gIFNoYXJwTGVmdCA9ICdzaGFycCBsZWZ0JyxcbiAgTGVmdCA9ICdsZWZ0JyxcbiAgU2xpZ2h0TGVmdCA9ICdzbGlnaHQgbGVmdCcsXG4gIFN0cmFpZ2h0ID0gJ3N0cmFpZ2h0J1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29vcmRpbmF0ZSB9IGZyb20gJ29sL2Nvb3JkaW5hdGUnO1xuXG5pbXBvcnQgeyBHZW9Kc29uR2VvbWV0cnlUeXBlcyB9IGZyb20gJ2dlb2pzb24nO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNlYXJjaE1ldGEgfSBmcm9tICcuLi8uLi9zZWFyY2gnO1xuaW1wb3J0IHsgU2VhcmNoU291cmNlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge1xuICBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSxcbiAgRGlyZWN0aW9uc0Zvcm1hdCxcbiAgRGlyZWN0aW9uc1R5cGUsXG4gIExhbmVUeXBlLFxuICBNYW5ldXZlck1vZGlmaWVyLFxuICBNYW5ldXZlclR5cGUsXG4gIFByb3Bvc2FsVHlwZSxcbiAgU291cmNlRGlyZWN0aW9uc1R5cGVcbn0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbk9wdGlvbnMge1xuICBvdmVydmlldz86IGJvb2xlYW47XG4gIHN0ZXBzPzogYm9vbGVhbjtcbiAgZ2VvbWV0cmllcz86IHN0cmluZztcbiAgYWx0ZXJuYXRpdmVzPzogYm9vbGVhbjtcbiAgY29udGludWVfc3RyYWlnaHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBGZWF0dXJlV2l0aFN0b3AgPSBGZWF0dXJlPEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXM+O1xuZXhwb3J0IHR5cGUgRmVhdHVyZVdpdGhEaXJlY3Rpb25zID0gRmVhdHVyZTxGZWF0dXJlV2l0aERpcmVjdGlvbnNQcm9wZXJ0aWVzPjtcbmV4cG9ydCB0eXBlIEZlYXR1cmVXaXRoU3RlcCA9IEZlYXR1cmU8RmVhdHVyZVdpdGhTdGVwUHJvcGVydGllcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdGVwUHJvcGVydGllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0ZXA6IElnb1N0ZXA7XG4gIHR5cGU6IERpcmVjdGlvbnNUeXBlO1xufVxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aERpcmVjdGlvbnNQcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgZGlyZWN0aW9uczogRGlyZWN0aW9ucztcbiAgdHlwZTogRGlyZWN0aW9uc1R5cGU7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0b3A6IFN0b3A7XG4gIHR5cGU6IERpcmVjdGlvbnNUeXBlO1xuICBzdG9wVGV4dDogc3RyaW5nO1xuICBzdG9wQ29sb3I6IHN0cmluZztcbiAgc3RvcE9wYWNpdHk6IDE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIHNlYXJjaFByb3Bvc2Fscz86IFNvdXJjZVByb3Bvc2FsW107XG4gIGNvb3JkaW5hdGVzPzogQ29vcmRpbmF0ZTtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgcmVsYXRpdmVQb3NpdGlvbjogRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGU7XG4gIHN0b3BQb2ludD86IHN0cmluZztcbiAgc3RvcFByb3Bvc2Fscz86IFtdO1xuICBkaXJlY3Rpb25zVGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VQcm9wb3NhbCB7XG4gIHR5cGU6IFByb3Bvc2FsVHlwZTtcbiAgc291cmNlOiBTZWFyY2hTb3VyY2U7XG4gIHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXTtcbiAgbWV0YTogU2VhcmNoTWV0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU/OiBTb3VyY2VEaXJlY3Rpb25zVHlwZTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmb3JtYXQ/OiBEaXJlY3Rpb25zRm9ybWF0O1xuICBpY29uPzogc3RyaW5nO1xuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xuICB3YXlwb2ludHM/OiBhbnk7XG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZ2VvbWV0cnk/OiBEaXJlY3Rpb25zR2VvbWV0cnk7XG4gIGxlZ3M/OiBPc3JtUm91dGVMZWdbXTtcbiAgc3RlcHM/OiBJZ29TdGVwW107XG4gIHdlaWdodD86IG51bWJlcjtcbiAgd2VpZ2h0X25hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbnNHZW9tZXRyeSB7XG4gIHR5cGU6IEdlb0pzb25HZW9tZXRyeVR5cGVzO1xuICBjb29yZGluYXRlczogQ29vcmRpbmF0ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3NybVJvdXRlTGVnIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBzdGVwcz86IE9zcm1Sb3V0ZVN0ZXBbXTtcbiAgc3VtbWFyeTogc3RyaW5nO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIElnb1N0ZXAge1xuICAvLyBSRUZFUiBUTyBUSElTIElOVEVSRkFDRSBGT1IgVkFSSU9VUyBTT1VSQ0VcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGRyaXZpbmdfc2lkZT86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xuICBtYW5ldXZlcj86IE9zcm1TdGVwTWFuZXV2ZXI7XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0dGVkU3RlcCB7XG4gIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gIGljb25OYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3NybVJvdXRlU3RlcCB7XG4gIGRlc3RpbmF0aW9ucz86IHN0cmluZ1tdO1xuICBkaXN0YW5jZT86IG51bWJlcjtcbiAgZHJpdmluZ19zaWRlPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZXhpdHM6IG51bWJlcltdIHwgc3RyaW5nW107XG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xuICBtYW5ldXZlcj86IE9zcm1TdGVwTWFuZXV2ZXI7XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByb251bmNpYXRpb24/OiBzdHJpbmc7XG4gIHJvdGFyeV9uYW1lPzogc3RyaW5nO1xuICByb3RhcnlfcHJvbnVuY2lhdGlvbj86IHN0cmluZztcbiAgcmVmPzogbnVtYmVyIHwgc3RyaW5nO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3NybVN0ZXBNYW5ldXZlciB7XG4gIGJlYXJpbmdfYWZ0ZXI/OiBudW1iZXI7XG4gIGJlYXJpbmdfYmVmb3JlPzogbnVtYmVyO1xuICBleGl0PzogbnVtYmVyO1xuICBsb2NhdGlvbj86IFtudW1iZXIsIG51bWJlcl07XG4gIG1vZGlmaWVyPzogTWFuZXV2ZXJNb2RpZmllcjtcbiAgdHlwZT86IE1hbmV1dmVyVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPc3JtTGFuZSB7XG4gIGluZGljYXRpb25zOiBMYW5lVHlwZVtdO1xuICB2YWxpZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPc3JtSW50ZXJzZWN0aW9uIHtcbiAgYmVhcmluZ3M/OiBudW1iZXJbXTtcbiAgY2xhc3Nlcz86IHN0cmluZ1tdO1xuICBlbnRyeT86IGJvb2xlYW5bXTtcbiAgaW4/OiBudW1iZXI7XG4gIGxhbmVzPzogT3NybUxhbmVbXTtcbiAgbG9jYXRpb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBvdXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3NybVdheXBvaW50IHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGxvY2F0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICBuYW1lPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import { ActivityService } from '@igo2/core/activity';
|
|
4
|
+
import { ConfigService } from '@igo2/core/config';
|
|
5
|
+
import { LanguageService } from '@igo2/core/language';
|
|
6
|
+
import { SubjectStatus } from '@igo2/utils';
|
|
7
|
+
import html2canvas from 'html2canvas';
|
|
8
|
+
import { jsPDF } from 'jspdf';
|
|
9
|
+
import { autoTable } from 'jspdf-autotable';
|
|
10
|
+
import moment from 'moment';
|
|
11
|
+
import { Subject } from 'rxjs';
|
|
12
|
+
import { PrintService } from '../../print/shared/print.service';
|
|
13
|
+
import { DirectionsSourceService } from './directions-source.service';
|
|
14
|
+
import { formatDistance, formatDuration, formatStep } from './directions.utils';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "./directions-source.service";
|
|
17
|
+
import * as i2 from "@igo2/core/config";
|
|
18
|
+
import * as i3 from "@igo2/core/language";
|
|
19
|
+
import * as i4 from "../../print/shared/print.service";
|
|
20
|
+
import * as i5 from "@igo2/core/activity";
|
|
21
|
+
export class DirectionsService {
|
|
22
|
+
directionsSourceService;
|
|
23
|
+
configService;
|
|
24
|
+
languageService;
|
|
25
|
+
printService;
|
|
26
|
+
document;
|
|
27
|
+
activityService;
|
|
28
|
+
constructor(directionsSourceService, configService, languageService, printService, document, activityService) {
|
|
29
|
+
this.directionsSourceService = directionsSourceService;
|
|
30
|
+
this.configService = configService;
|
|
31
|
+
this.languageService = languageService;
|
|
32
|
+
this.printService = printService;
|
|
33
|
+
this.document = document;
|
|
34
|
+
this.activityService = activityService;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Routes the given coordinates using the specified directions source and options.
|
|
38
|
+
*
|
|
39
|
+
* @param {DirectionsSource} source - The directions source to use for routing.
|
|
40
|
+
* @param {Position[]} coordinates - The array of coordinates to route.
|
|
41
|
+
* @param {DirectionOptions} [directionsOptions={}] - The optional direction options.
|
|
42
|
+
* @return {Observable<Directions[]>} An observable that emits an array of directions.
|
|
43
|
+
*/
|
|
44
|
+
route(coordinates, directionsOptions = {}) {
|
|
45
|
+
if (coordinates.length === 0) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const source = this.directionsSourceService.sources[0];
|
|
49
|
+
const request = source.route(coordinates, directionsOptions);
|
|
50
|
+
return request;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Downloads directions for a given map and directions object.
|
|
54
|
+
*
|
|
55
|
+
* @param {IgoMap} map - The map object to download directions for.
|
|
56
|
+
* @param {Directions} directions - The directions object containing the route information.
|
|
57
|
+
* @return {Observable<SubjectStatus>} An observable that emits the status of the download process.
|
|
58
|
+
*/
|
|
59
|
+
downloadDirections(map, directions) {
|
|
60
|
+
const activityId = this.activityService.register();
|
|
61
|
+
const status$ = new Subject();
|
|
62
|
+
const doc = new jsPDF({
|
|
63
|
+
orientation: 'p',
|
|
64
|
+
format: 'letter',
|
|
65
|
+
unit: 'mm' // default
|
|
66
|
+
});
|
|
67
|
+
const pageSize = doc.internal.pageSize;
|
|
68
|
+
const margins = [30, 10, 20, 10];
|
|
69
|
+
const zoneWidth = pageSize.getWidth() - margins[3] - margins[1];
|
|
70
|
+
const zoneHeight = pageSize.getHeight() - margins[0] - margins[2];
|
|
71
|
+
const imageDimensions = [zoneWidth, zoneHeight];
|
|
72
|
+
const distance = formatDistance(directions.distance);
|
|
73
|
+
const duration = formatDuration(directions.duration);
|
|
74
|
+
const title = distance && duration
|
|
75
|
+
? `${directions.title} (${distance} - ${duration})`
|
|
76
|
+
: directions.title;
|
|
77
|
+
doc.text(title, pageSize.getWidth() / 2, 25, {
|
|
78
|
+
align: 'center'
|
|
79
|
+
});
|
|
80
|
+
const resolution = 96; // Default is 96
|
|
81
|
+
this.printService
|
|
82
|
+
.addMap(doc, map, resolution, imageDimensions, margins)
|
|
83
|
+
.subscribe(async (status) => {
|
|
84
|
+
if (status === SubjectStatus.Done) {
|
|
85
|
+
await this.addInstructions(doc, directions, title);
|
|
86
|
+
this.setPageHeaderFooter(doc);
|
|
87
|
+
await doc.save(`${title}.pdf`, { returnPromise: true });
|
|
88
|
+
}
|
|
89
|
+
this.activityService.unregister(activityId);
|
|
90
|
+
status$.next(status);
|
|
91
|
+
});
|
|
92
|
+
return status$;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Generates an HTML table element with directions steps.
|
|
96
|
+
*
|
|
97
|
+
* @param {Directions} directions - The directions object containing the steps.
|
|
98
|
+
* @return {Promise<HTMLTableElement>} - A promise that resolves to the generated HTML table element.
|
|
99
|
+
*/
|
|
100
|
+
async setHTMLTableDirections(directions) {
|
|
101
|
+
const steps = await this.directionsSteps(directions);
|
|
102
|
+
const table = document.createElement('table');
|
|
103
|
+
const tblBody = document.createElement('tbody');
|
|
104
|
+
for (const step of steps) {
|
|
105
|
+
const row = document.createElement('tr');
|
|
106
|
+
// icon
|
|
107
|
+
const cellIcon = document.createElement('td');
|
|
108
|
+
const iconElement = document.createElement('img');
|
|
109
|
+
iconElement.style.verticalAlign = 'middle';
|
|
110
|
+
iconElement.src = step.icon;
|
|
111
|
+
cellIcon.appendChild(iconElement);
|
|
112
|
+
row.append(cellIcon);
|
|
113
|
+
// instruction
|
|
114
|
+
const cellText = document.createElement('td');
|
|
115
|
+
const spanInstructionElement = document.createElement('span');
|
|
116
|
+
spanInstructionElement.style.verticalAlign = 'middle';
|
|
117
|
+
spanInstructionElement.innerHTML = step.instruction;
|
|
118
|
+
cellText.appendChild(spanInstructionElement);
|
|
119
|
+
// distance/duration
|
|
120
|
+
if (step.distanceDuration) {
|
|
121
|
+
const spanDistanceElement = document.createElement('span');
|
|
122
|
+
spanDistanceElement.style.verticalAlign = 'middle';
|
|
123
|
+
spanDistanceElement.innerHTML = ' ' + step.distanceDuration;
|
|
124
|
+
cellText.appendChild(spanDistanceElement);
|
|
125
|
+
}
|
|
126
|
+
row.append(cellText);
|
|
127
|
+
tblBody.appendChild(row);
|
|
128
|
+
}
|
|
129
|
+
table.appendChild(tblBody);
|
|
130
|
+
return table;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Generates formatted steps for the given directions.
|
|
134
|
+
*
|
|
135
|
+
* @param {Directions} directions - The directions object containing the steps.
|
|
136
|
+
* @return {Promise<{ instruction: string; icon: string; distanceDuration: string }[]>}
|
|
137
|
+
* A promise that resolves to an array of formatted steps.
|
|
138
|
+
*/
|
|
139
|
+
async directionsSteps(directions) {
|
|
140
|
+
const matListElement = this.document
|
|
141
|
+
.getElementsByTagName('igo-directions-results')[0]
|
|
142
|
+
.getElementsByTagName('mat-list')[0];
|
|
143
|
+
const matListItemElements = matListElement.getElementsByTagName('mat-list-item');
|
|
144
|
+
// convert icons list to base64
|
|
145
|
+
const icons = [];
|
|
146
|
+
for (const element of Array.from(matListItemElements)) {
|
|
147
|
+
const iconElement = element.getElementsByTagName('mat-icon')[0];
|
|
148
|
+
const iconName = iconElement.innerText;
|
|
149
|
+
const found = icons.some((icon) => icon.name === iconName);
|
|
150
|
+
if (!found) {
|
|
151
|
+
const iconCanvas = await html2canvas(iconElement);
|
|
152
|
+
icons.push({ name: iconName, icon: iconCanvas.toDataURL() });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const formattedSteps = [];
|
|
156
|
+
for (let stepIndex = 0; stepIndex < directions.steps.length; stepIndex++) {
|
|
157
|
+
const step = directions.steps[stepIndex];
|
|
158
|
+
const formattedStep = formatStep(step, this.languageService, stepIndex === directions.steps.length - 1);
|
|
159
|
+
const formattedDistance = formatDistance(step.distance);
|
|
160
|
+
const formattedDuration = formatDuration(step.duration);
|
|
161
|
+
if ((formattedDistance && formattedDuration) ||
|
|
162
|
+
stepIndex === directions.steps.length - 1) {
|
|
163
|
+
formattedSteps.push({
|
|
164
|
+
instruction: `${formattedStep.instruction}`,
|
|
165
|
+
icon: icons.find((icon) => icon.name === formattedStep.iconName).icon,
|
|
166
|
+
distanceDuration: formattedDistance && formattedDuration
|
|
167
|
+
? `(${formattedDistance} - ${formattedDuration})`
|
|
168
|
+
: ''
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return formattedSteps;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Adds instructions to the given jsPDF document.
|
|
176
|
+
*
|
|
177
|
+
* @param {jsPDF} doc - The jsPDF document to add instructions to.
|
|
178
|
+
* @param {Directions} directions - The directions object containing the instructions.
|
|
179
|
+
* @param {string} title - The title of the instructions.
|
|
180
|
+
* @return {Promise<void>} A promise that resolves when the instructions are added to the document.
|
|
181
|
+
*/
|
|
182
|
+
async addInstructions(doc, directions, title) {
|
|
183
|
+
doc.addPage();
|
|
184
|
+
doc.text(title, doc.internal.pageSize.getWidth() / 2, 25, {
|
|
185
|
+
align: 'center'
|
|
186
|
+
});
|
|
187
|
+
const HTMLtable = await this.setHTMLTableDirections(directions);
|
|
188
|
+
autoTable(doc, {
|
|
189
|
+
html: HTMLtable,
|
|
190
|
+
startY: 30,
|
|
191
|
+
margin: { top: 20, bottom: 20 },
|
|
192
|
+
columnStyles: {
|
|
193
|
+
0: { cellWidth: 10 }
|
|
194
|
+
},
|
|
195
|
+
theme: 'plain',
|
|
196
|
+
styles: {
|
|
197
|
+
fontSize: 10
|
|
198
|
+
},
|
|
199
|
+
didDrawCell: function (data) {
|
|
200
|
+
if (data.column.index === 0 && data.cell.section === 'body') {
|
|
201
|
+
data.row.height = 10;
|
|
202
|
+
const td = data.cell.raw;
|
|
203
|
+
const img = td.getElementsByTagName('img')[0];
|
|
204
|
+
doc.addImage(img.src, data.cell.x, data.cell.y, 8, 8);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Sets the header and footer of each page in the given jsPDF document.
|
|
211
|
+
*
|
|
212
|
+
* @param {jsPDF} doc - The jsPDF document to modify.
|
|
213
|
+
*/
|
|
214
|
+
setPageHeaderFooter(doc) {
|
|
215
|
+
const pageCount = doc.getNumberOfPages();
|
|
216
|
+
const dateTime = moment(Date.now()).format('YYYY-MM-DD HH:mm');
|
|
217
|
+
const logo = this.configService.getConfig('directionsSources.logo')
|
|
218
|
+
? this.configService.getConfig('directionsSources.logo')
|
|
219
|
+
: 'assets/logo.png';
|
|
220
|
+
for (let pageIndex = 0; pageIndex < pageCount; pageIndex++) {
|
|
221
|
+
doc.setPage(pageIndex);
|
|
222
|
+
doc.setFontSize(8);
|
|
223
|
+
const pageSize = doc.internal.pageSize;
|
|
224
|
+
doc.text(dateTime, 10, 10, { baseline: 'top' });
|
|
225
|
+
doc.addImage(logo, 'PNG', pageSize.getWidth() - 20, 5, 10, 10);
|
|
226
|
+
doc.text(dateTime, 10, pageSize.getHeight() - 10);
|
|
227
|
+
doc.text('Page ' + doc.getCurrentPageInfo().pageNumber + ' / ' + pageCount, pageSize.getWidth() - 20, pageSize.getHeight() - 10);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionsService, deps: [{ token: i1.DirectionsSourceService }, { token: i2.ConfigService }, { token: i3.LanguageService }, { token: i4.PrintService }, { token: DOCUMENT }, { token: i5.ActivityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
231
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionsService });
|
|
232
|
+
}
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DirectionsService, decorators: [{
|
|
234
|
+
type: Injectable
|
|
235
|
+
}], ctorParameters: () => [{ type: i1.DirectionsSourceService }, { type: i2.ConfigService }, { type: i3.LanguageService }, { type: i4.PrintService }, { type: Document, decorators: [{
|
|
236
|
+
type: Inject,
|
|
237
|
+
args: [DOCUMENT]
|
|
238
|
+
}] }, { type: i5.ActivityService }] });
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFHaEYsTUFBTSxPQUFPLGlCQUFpQjtJQUVsQjtJQUNBO0lBQ0E7SUFDQTtJQUNrQjtJQUNsQjtJQU5WLFlBQ1UsdUJBQWdELEVBQ2hELGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLFlBQTBCLEVBQ1IsUUFB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L2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9hY3Rpdml0eSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBTdWJqZWN0U3RhdHVzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJ2dlb2pzb24nO1xuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcbmltcG9ydCB7IGpzUERGIH0gZnJvbSAnanNwZGYnO1xuaW1wb3J0IHsgVXNlck9wdGlvbnMsIGF1dG9UYWJsZSB9IGZyb20gJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuLi9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uT3B0aW9ucywgRGlyZWN0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zU291cmNlU2VydmljZSB9IGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRTdGVwLCBJZ29TdGVwIH0gZnJvbSAnLi9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBmb3JtYXREaXN0YW5jZSwgZm9ybWF0RHVyYXRpb24sIGZvcm1hdFN0ZXAgfSBmcm9tICcuL2RpcmVjdGlvbnMudXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlOiBEaXJlY3Rpb25zU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHByaW50U2VydmljZTogUHJpbnRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSb3V0ZXMgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIHVzaW5nIHRoZSBzcGVjaWZpZWQgZGlyZWN0aW9ucyBzb3VyY2UgYW5kIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlyZWN0aW9uc1NvdXJjZX0gc291cmNlIC0gVGhlIGRpcmVjdGlvbnMgc291cmNlIHRvIHVzZSBmb3Igcm91dGluZy5cbiAgICogQHBhcmFtIHtQb3NpdGlvbltdfSBjb29yZGluYXRlcyAtIFRoZSBhcnJheSBvZiBjb29yZGluYXRlcyB0byByb3V0ZS5cbiAgICogQHBhcmFtIHtEaXJlY3Rpb25PcHRpb25zfSBbZGlyZWN0aW9uc09wdGlvbnM9e31dIC0gVGhlIG9wdGlvbmFsIGRpcmVjdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpcmVjdGlvbnNbXT59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBhcnJheSBvZiBkaXJlY3Rpb25zLlxuICAgKi9cbiAgcm91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFBvc2l0aW9uW10sXG4gICAgZGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbnNbXT4ge1xuICAgIGlmIChjb29yZGluYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc291cmNlOiBEaXJlY3Rpb25zU291cmNlID0gdGhpcy5kaXJlY3Rpb25zU291cmNlU2VydmljZS5zb3VyY2VzWzBdO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBzb3VyY2Uucm91dGUoY29vcmRpbmF0ZXMsIGRpcmVjdGlvbnNPcHRpb25zKTtcbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZHMgZGlyZWN0aW9ucyBmb3IgYSBnaXZlbiBtYXAgYW5kIGRpcmVjdGlvbnMgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge0lnb01hcH0gbWFwIC0gVGhlIG1hcCBvYmplY3QgdG8gZG93bmxvYWQgZGlyZWN0aW9ucyBmb3IuXG4gICAqIEBwYXJhbSB7RGlyZWN0aW9uc30gZGlyZWN0aW9ucyAtIFRoZSBkaXJlY3Rpb25zIG9iamVjdCBjb250YWluaW5nIHRoZSByb3V0ZSBpbmZvcm1hdGlvbi5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTdWJqZWN0U3RhdHVzPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzdGF0dXMgb2YgdGhlIGRvd25sb2FkIHByb2Nlc3MuXG4gICAqL1xuICBkb3dubG9hZERpcmVjdGlvbnMoXG4gICAgbWFwOiBJZ29NYXAsXG4gICAgZGlyZWN0aW9uczogRGlyZWN0aW9uc1xuICApOiBPYnNlcnZhYmxlPFN1YmplY3RTdGF0dXM+IHtcbiAgICBjb25zdCBhY3Rpdml0eUlkOiBzdHJpbmcgPSB0aGlzLmFjdGl2aXR5U2VydmljZS5yZWdpc3RlcigpO1xuICAgIGNvbnN0IHN0YXR1cyQ6IFN1YmplY3Q8U3ViamVjdFN0YXR1cz4gPSBuZXcgU3ViamVjdDxTdWJqZWN0U3RhdHVzPigpO1xuXG4gICAgY29uc3QgZG9jOiBqc1BERiA9IG5ldyBqc1BERih7XG4gICAgICBvcmllbnRhdGlvbjogJ3AnLFxuICAgICAgZm9ybWF0OiAnbGV0dGVyJyxcbiAgICAgIHVuaXQ6ICdtbScgLy8gZGVmYXVsdFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFnZVNpemUgPSBkb2MuaW50ZXJuYWwucGFnZVNpemU7XG5cbiAgICBjb25zdCBtYXJnaW5zOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9IFszMCwgMTAsIDIwLCAxMF07XG5cbiAgICBjb25zdCB6b25lV2lkdGg6IG51bWJlciA9IHBhZ2VTaXplLmdldFdpZHRoKCkgLSBtYXJnaW5zWzNdIC0gbWFyZ2luc1sxXTtcbiAgICBjb25zdCB6b25lSGVpZ2h0OiBudW1iZXIgPSBwYWdlU2l6ZS5nZXRIZWlnaHQoKSAtIG1hcmdpbnNbMF0gLSBtYXJnaW5zWzJdO1xuICAgIGNvbnN0IGltYWdlRGltZW5zaW9uczogW251bWJlciwgbnVtYmVyXSA9IFt6b25lV2lkdGgsIHpvbmVIZWlnaHRdO1xuXG4gICAgY29uc3QgZGlzdGFuY2U6IHN0cmluZyA9IGZvcm1hdERpc3RhbmNlKGRpcmVjdGlvbnMuZGlzdGFuY2UpO1xuICAgIGNvbnN0IGR1cmF0aW9uOiBzdHJpbmcgPSBmb3JtYXREdXJhdGlvbihkaXJlY3Rpb25zLmR1cmF0aW9uKTtcblxuICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPVxuICAgICAgZGlzdGFuY2UgJiYgZHVyYXRpb25cbiAgICAgICAgPyBgJHtkaXJlY3Rpb25zLnRpdGxlfSAoJHtkaXN0YW5jZX0gLSAke2R1cmF0aW9ufSlgXG4gICAgICAgIDogZGlyZWN0aW9ucy50aXRsZTtcblxuICAgIGRvYy50ZXh0KHRpdGxlLCBwYWdlU2l6ZS5nZXRXaWR0aCgpIC8gMiwgMjUsIHtcbiAgICAgIGFsaWduOiAnY2VudGVyJ1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IDk2OyAvLyBEZWZhdWx0IGlzIDk2XG4gICAgdGhpcy5wcmludFNlcnZpY2VcbiAgICAgIC5hZGRNYXAoZG9jLCBtYXAsIHJlc29sdXRpb24sIGltYWdlRGltZW5zaW9ucywgbWFyZ2lucylcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHN0YXR1czogU3ViamVjdFN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBTdWJqZWN0U3RhdHVzLkRvbmUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFkZEluc3RydWN0aW9ucyhkb2MsIGRpcmVjdGlvbnMsIHRpdGxlKTtcbiAgICAgICAgICB0aGlzLnNldFBhZ2VIZWFkZXJGb290ZXIoZG9jKTtcbiAgICAgICAgICBhd2FpdCBkb2Muc2F2ZShgJHt0aXRsZX0ucGRmYCwgeyByZXR1cm5Qcm9taXNlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3Rpdml0eVNlcnZpY2UudW5yZWdpc3RlcihhY3Rpdml0eUlkKTtcbiAgICAgICAgc3RhdHVzJC5uZXh0KHN0YXR1cyk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBzdGF0dXMkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhbiBIVE1MIHRhYmxlIGVsZW1lbnQgd2l0aCBkaXJlY3Rpb25zIHN0ZXBzLlxuICAgKlxuICAgKiBAcGFyYW0ge0RpcmVjdGlvbnN9IGRpcmVjdGlvbnMgLSBUaGUgZGlyZWN0aW9ucyBvYmplY3QgY29udGFpbmluZyB0aGUgc3RlcHMuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8SFRNTFRhYmxlRWxlbWVudD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGdlbmVyYXRlZCBIVE1MIHRhYmxlIGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHNldEhUTUxUYWJsZURpcmVjdGlvbnMoXG4gICAgZGlyZWN0aW9uczogRGlyZWN0aW9uc1xuICApOiBQcm9taXNlPEhUTUxUYWJsZUVsZW1lbnQ+IHtcbiAgICBjb25zdCBzdGVwcyA9IGF3YWl0IHRoaXMuZGlyZWN0aW9uc1N0ZXBzKGRpcmVjdGlvbnMpO1xuICAgIGNvbnN0IHRhYmxlOiBIVE1MVGFibGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTtcbiAgICBjb25zdCB0YmxCb2R5OiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rib2R5Jyk7XG5cbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2Ygc3RlcHMpIHtcbiAgICAgIGNvbnN0IHJvdzogSFRNTFRhYmxlUm93RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7XG5cbiAgICAgIC8vIGljb25cbiAgICAgIGNvbnN0IGNlbGxJY29uOiBIVE1MVGFibGVDZWxsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XG4gICAgICBjb25zdCBpY29uRWxlbWVudDogSFRNTEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgICAgaWNvbkVsZW1lbnQuc3R5bGUudmVydGljYWxBbGlnbiA9ICdtaWRkbGUnO1xuICAgICAgaWNvbkVsZW1lbnQuc3JjID0gc3RlcC5pY29uO1xuICAgICAgY2VsbEljb24uYXBwZW5kQ2hpbGQoaWNvbkVsZW1lbnQpO1xuICAgICAgcm93LmFwcGVuZChjZWxsSWNvbik7XG5cbiAgICAgIC8vIGluc3RydWN0aW9uXG4gICAgICBjb25zdCBjZWxsVGV4dDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpO1xuICAgICAgY29uc3Qgc3Bhbkluc3RydWN0aW9uRWxlbWVudDogSFRNTFNwYW5FbGVtZW50ID1cbiAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgc3Bhbkluc3RydWN0aW9uRWxlbWVudC5zdHlsZS52ZXJ0aWNhbEFsaWduID0gJ21pZGRsZSc7XG4gICAgICBzcGFuSW5zdHJ1Y3Rpb25FbGVtZW50LmlubmVySFRNTCA9IHN0ZXAuaW5zdHJ1Y3Rpb247XG4gICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuSW5zdHJ1Y3Rpb25FbGVtZW50KTtcblxuICAgICAgLy8gZGlzdGFuY2UvZHVyYXRpb25cbiAgICAgIGlmIChzdGVwLmRpc3RhbmNlRHVyYXRpb24pIHtcbiAgICAgICAgY29uc3Qgc3BhbkRpc3RhbmNlRWxlbWVudDogSFRNTFNwYW5FbGVtZW50ID1cbiAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHNwYW5EaXN0YW5jZUVsZW1lbnQuc3R5bGUudmVydGljYWxBbGlnbiA9ICdtaWRkbGUnO1xuICAgICAgICBzcGFuRGlzdGFuY2VFbGVtZW50LmlubmVySFRNTCA9ICcgJyArIHN0ZXAuZGlzdGFuY2VEdXJhdGlvbjtcbiAgICAgICAgY2VsbFRleHQuYXBwZW5kQ2hpbGQoc3BhbkRpc3RhbmNlRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIHJvdy5hcHBlbmQoY2VsbFRleHQpO1xuICAgICAgdGJsQm9keS5hcHBlbmRDaGlsZChyb3cpO1xuICAgIH1cbiAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YmxCb2R5KTtcbiAgICByZXR1cm4gdGFibGU7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGZvcm1hdHRlZCBzdGVwcyBmb3IgdGhlIGdpdmVuIGRpcmVjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlyZWN0aW9uc30gZGlyZWN0aW9ucyAtIFRoZSBkaXJlY3Rpb25zIG9iamVjdCBjb250YWluaW5nIHRoZSBzdGVwcy5cbiAgICogQHJldHVybiB7UHJvbWlzZTx7IGluc3RydWN0aW9uOiBzdHJpbmc7IGljb246IHN0cmluZzsgZGlzdGFuY2VEdXJhdGlvbjogc3RyaW5nIH1bXT59XG4gICAqIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIGZvcm1hdHRlZCBzdGVwcy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGlyZWN0aW9uc1N0ZXBzKFxuICAgIGRpcmVjdGlvbnM6IERpcmVjdGlvbnNcbiAgKTogUHJvbWlzZTxcbiAgICB7IGluc3RydWN0aW9uOiBzdHJpbmc7IGljb246IHN0cmluZzsgZGlzdGFuY2VEdXJhdGlvbjogc3RyaW5nIH1bXVxuICA+IHtcbiAgICBjb25zdCBtYXRMaXN0RWxlbWVudDogRWxlbWVudCA9IHRoaXMuZG9jdW1lbnRcbiAgICAgIC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLWRpcmVjdGlvbnMtcmVzdWx0cycpWzBdXG4gICAgICAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hdC1saXN0JylbMF07XG4gICAgY29uc3QgbWF0TGlzdEl0ZW1FbGVtZW50czogSFRNTENvbGxlY3Rpb25PZjxFbGVtZW50PiA9XG4gICAgICBtYXRMaXN0RWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWF0LWxpc3QtaXRlbScpO1xuICAgIC8vIGNvbnZlcnQgaWNvbnMgbGlzdCB0byBiYXNlNjRcbiAgICBjb25zdCBpY29uczogeyBuYW1lOiBzdHJpbmc7IGljb246IHN0cmluZyB9W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgQXJyYXkuZnJvbShtYXRMaXN0SXRlbUVsZW1lbnRzKSkge1xuICAgICAgY29uc3QgaWNvbkVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcbiAgICAgICAgJ21hdC1pY29uJ1xuICAgICAgKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGljb25OYW1lOiBzdHJpbmcgPSBpY29uRWxlbWVudC5pbm5lclRleHQ7XG4gICAgICBjb25zdCBmb3VuZDogYm9vbGVhbiA9IGljb25zLnNvbWUoKGljb24pID0+IGljb24ubmFtZSA9PT0gaWNvbk5hbWUpO1xuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICBjb25zdCBpY29uQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGF3YWl0IGh0bWwyY2FudmFzKGljb25FbGVtZW50KTtcbiAgICAgICAgaWNvbnMucHVzaCh7IG5hbWU6IGljb25OYW1lLCBpY29uOiBpY29uQ2FudmFzLnRvRGF0YVVSTCgpIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFN0ZXBzOiB7XG4gICAgICBpbnN0cnVjdGlvbjogc3RyaW5nO1xuICAgICAgaWNvbjogc3RyaW5nO1xuICAgICAgZGlzdGFuY2VEdXJhdGlvbjogc3RyaW5nO1xuICAgIH1bXSA9IFtdO1xuICAgIGZvciAobGV0IHN0ZXBJbmRleCA9IDA7IHN0ZXBJbmRleCA8IGRpcmVjdGlvbnMuc3RlcHMubGVuZ3RoOyBzdGVwSW5kZXgrKykge1xuICAgICAgY29uc3Qgc3RlcDogSWdvU3RlcCA9IGRpcmVjdGlvbnMuc3RlcHNbc3RlcEluZGV4XTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFN0ZXA6IEZvcm1hdHRlZFN0ZXAgPSBmb3JtYXRTdGVwKFxuICAgICAgICBzdGVwLFxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcbiAgICAgICAgc3RlcEluZGV4ID09PSBkaXJlY3Rpb25zLnN0ZXBzLmxlbmd0aCAtIDFcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlZERpc3RhbmNlOiBzdHJpbmcgPSBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZER1cmF0aW9uOiBzdHJpbmcgPSBmb3JtYXREdXJhdGlvbihzdGVwLmR1cmF0aW9uKTtcblxuICAgICAgaWYgKFxuICAgICAgICAoZm9ybWF0dGVkRGlzdGFuY2UgJiYgZm9ybWF0dGVkRHVyYXRpb24pIHx8XG4gICAgICAgIHN0ZXBJbmRleCA9PT0gZGlyZWN0aW9ucy5zdGVwcy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgZm9ybWF0dGVkU3RlcHMucHVzaCh7XG4gICAgICAgICAgaW5zdHJ1Y3Rpb246IGAke2Zvcm1hdHRlZFN0ZXAuaW5zdHJ1Y3Rpb259YCxcbiAgICAgICAgICBpY29uOiBpY29ucy5maW5kKChpY29uKSA9PiBpY29uLm5hbWUgPT09IGZvcm1hdHRlZFN0ZXAuaWNvbk5hbWUpLmljb24sXG4gICAgICAgICAgZGlzdGFuY2VEdXJhdGlvbjpcbiAgICAgICAgICAgIGZvcm1hdHRlZERpc3RhbmNlICYmIGZvcm1hdHRlZER1cmF0aW9uXG4gICAgICAgICAgICAgID8gYCgke2Zvcm1hdHRlZERpc3RhbmNlfSAtICR7Zm9ybWF0dGVkRHVyYXRpb259KWBcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlZFN0ZXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBnaXZlbiBqc1BERiBkb2N1bWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtqc1BERn0gZG9jIC0gVGhlIGpzUERGIGRvY3VtZW50IHRvIGFkZCBpbnN0cnVjdGlvbnMgdG8uXG4gICAqIEBwYXJhbSB7RGlyZWN0aW9uc30gZGlyZWN0aW9ucyAtIFRoZSBkaXJlY3Rpb25zIG9iamVjdCBjb250YWluaW5nIHRoZSBpbnN0cnVjdGlvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIFRoZSB0aXRsZSBvZiB0aGUgaW5zdHJ1Y3Rpb25zLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGFkZGVkIHRvIHRoZSBkb2N1bWVudC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYWRkSW5zdHJ1Y3Rpb25zKFxuICAgIGRvYzoganNQREYsXG4gICAgZGlyZWN0aW9uczogRGlyZWN0aW9ucyxcbiAgICB0aXRsZTogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGRvYy5hZGRQYWdlKCk7XG4gICAgZG9jLnRleHQodGl0bGUsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpIC8gMiwgMjUsIHtcbiAgICAgIGFsaWduOiAnY2VudGVyJ1xuICAgIH0pO1xuICAgIGNvbnN0IEhUTUx0YWJsZTogSFRNTFRhYmxlRWxlbWVudCA9XG4gICAgICBhd2FpdCB0aGlzLnNldEhUTUxUYWJsZURpcmVjdGlvbnMoZGlyZWN0aW9ucyk7XG4gICAgYXV0b1RhYmxlKGRvYywge1xuICAgICAgaHRtbDogSFRNTHRhYmxlLFxuICAgICAgc3RhcnRZOiAzMCxcbiAgICAgIG1hcmdpbjogeyB0b3A6IDIwLCBib3R0b206IDIwIH0sXG4gICAgICBjb2x1bW5TdHlsZXM6IHtcbiAgICAgICAgMDogeyBjZWxsV2lkdGg6IDEwIH1cbiAgICAgIH0sXG4gICAgICB0aGVtZTogJ3BsYWluJyxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBmb250U2l6ZTogMTBcbiAgICAgIH0sXG4gICAgICBkaWREcmF3Q2VsbDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID09PSAwICYmIGRhdGEuY2VsbC5zZWN0aW9uID09PSAnYm9keScpIHtcbiAgICAgICAgICBkYXRhLnJvdy5oZWlnaHQgPSAxMDtcbiAgICAgICAgICBjb25zdCB0ZDogSFRNTEVsZW1lbnQgPSBkYXRhLmNlbGwucmF3IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IGltZzogSFRNTEltYWdlRWxlbWVudCA9IHRkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKVswXTtcbiAgICAgICAgICBkb2MuYWRkSW1hZ2UoaW1nLnNyYywgZGF0YS5jZWxsLngsIGRhdGEuY2VsbC55LCA4LCA4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gc2F0aXNmaWVzIFVzZXJPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBvZiBlYWNoIHBhZ2UgaW4gdGhlIGdpdmVuIGpzUERGIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge2pzUERGfSBkb2MgLSBUaGUganNQREYgZG9jdW1lbnQgdG8gbW9kaWZ5LlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRQYWdlSGVhZGVyRm9vdGVyKGRvYzoganNQREYpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlQ291bnQ6IG51bWJlciA9IGRvYy5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgY29uc3QgZGF0ZVRpbWU6IHN0cmluZyA9IG1vbWVudChEYXRlLm5vdygpKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW0nKTtcblxuICAgIGNvbnN0IGxvZ286IHN0cmluZyA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2RpcmVjdGlvbnNTb3VyY2VzLmxvZ28nKVxuICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5sb2dvJylcbiAgICAgIDogJ2Fzc2V0cy9sb2dvLnBuZyc7XG5cbiAgICBmb3IgKGxldCBwYWdlSW5kZXggPSAwOyBwYWdlSW5kZXggPCBwYWdlQ291bnQ7IHBhZ2VJbmRleCsrKSB7XG4gICAgICBkb2Muc2V0UGFnZShwYWdlSW5kZXgpO1xuICAgICAgZG9jLnNldEZvbnRTaXplKDgpO1xuICAgICAgY29uc3QgcGFnZVNpemUgPSBkb2MuaW50ZXJuYWwucGFnZVNpemU7XG4gICAgICBkb2MudGV4dChkYXRlVGltZSwgMTAsIDEwLCB7IGJhc2VsaW5lOiAndG9wJyB9KTtcbiAgICAgIGRvYy5hZGRJbWFnZShsb2dvLCAnUE5HJywgcGFnZVNpemUuZ2V0V2lkdGgoKSAtIDIwLCA1LCAxMCwgMTApO1xuICAgICAgZG9jLnRleHQoZGF0ZVRpbWUsIDEwLCBwYWdlU2l6ZS5nZXRIZWlnaHQoKSAtIDEwKTtcbiAgICAgIGRvYy50ZXh0KFxuICAgICAgICAnUGFnZSAnICsgZG9jLmdldEN1cnJlbnRQYWdlSW5mbygpLnBhZ2VOdW1iZXIgKyAnIC8gJyArIHBhZ2VDb3VudCxcbiAgICAgICAgcGFnZVNpemUuZ2V0V2lkdGgoKSAtIDIwLFxuICAgICAgICBwYWdlU2l6ZS5nZXRIZWlnaHQoKSAtIDEwXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|