@smartbit4all/ng-client 4.0.149 → 4.1.0
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/lib/smart-client/smart-component-api-client.mjs +32 -7
- package/esm2022/lib/smart-client/smart.component.mjs +12 -5
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +18 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +5 -2
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
- package/esm2022/lib/smart-form/api/api/api.mjs +1 -1
- package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
- package/esm2022/lib/smart-form/api/api.module.mjs +1 -1
- package/esm2022/lib/smart-form/api/configuration.mjs +1 -1
- package/esm2022/lib/smart-form/api/encoder.mjs +1 -1
- package/esm2022/lib/smart-form/api/index.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
- package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
- package/esm2022/lib/smart-form/api/param.mjs +1 -1
- package/esm2022/lib/smart-form/api/variables.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
- package/esm2022/lib/smart-map/abstract-map.mjs +74 -0
- package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
- package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
- package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
- package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
- package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
- package/esm2022/lib/smart-map/api/index.mjs +7 -0
- package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
- package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
- package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
- package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
- package/esm2022/lib/smart-map/api/model/models.mjs +19 -0
- package/esm2022/lib/smart-map/api/param.mjs +2 -0
- package/esm2022/lib/smart-map/api/variables.mjs +9 -0
- package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
- package/esm2022/lib/smart-map/impl/google-map.mjs +220 -0
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +165 -0
- package/esm2022/lib/smart-map/projects.mjs +9 -0
- package/esm2022/lib/smart-map/smart-map.component.mjs +193 -0
- package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
- package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
- package/esm2022/lib/view-context/api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2022/lib/view-context/api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/api/index.mjs +1 -1
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2022/lib/view-context/api/model/link.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/models.mjs +1 -1
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2022/lib/view-context/api/model/style.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/view.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2022/lib/view-context/api/param.mjs +1 -1
- package/esm2022/lib/view-context/api/variables.mjs +1 -1
- package/esm2022/projects.mjs +2 -1
- package/fesm2022/smartbit4all-ng-client.mjs +1415 -140
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-client/smart-component-api-client.d.ts +9 -6
- package/lib/smart-client/smart.component.d.ts +7 -4
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +3 -1
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +3 -0
- package/lib/smart-map/abstract-map.d.ts +32 -0
- package/lib/smart-map/api/api/api.d.ts +3 -0
- package/lib/smart-map/api/api/geoMap.service.d.ts +101 -0
- package/lib/smart-map/api/api.module.d.ts +11 -0
- package/lib/smart-map/api/configuration.d.ts +104 -0
- package/lib/smart-map/api/encoder.d.ts +11 -0
- package/lib/smart-map/api/index.d.ts +6 -0
- package/lib/smart-map/api/model/gPSPosition.d.ts +32 -0
- package/lib/smart-map/api/model/geoMapChange.d.ts +19 -0
- package/lib/smart-map/api/model/geoMapDataLoadingMode.d.ts +15 -0
- package/lib/smart-map/api/model/geoMapDataSourceDescriptor.d.ts +50 -0
- package/lib/smart-map/api/model/geoMapDataSourceType.d.ts +16 -0
- package/lib/smart-map/api/model/geoMapInteraction.d.ts +22 -0
- package/lib/smart-map/api/model/geoMapItem.d.ts +38 -0
- package/lib/smart-map/api/model/geoMapItemKind.d.ts +16 -0
- package/lib/smart-map/api/model/geoMapLayer.d.ts +19 -0
- package/lib/smart-map/api/model/geoMapLayerChange.d.ts +20 -0
- package/lib/smart-map/api/model/geoMapLayerDescriptor.d.ts +28 -0
- package/lib/smart-map/api/model/geoMapModel.d.ts +27 -0
- package/lib/smart-map/api/model/geoMapOperationMode.d.ts +16 -0
- package/lib/smart-map/api/model/geoMapSelectionMode.d.ts +16 -0
- package/lib/smart-map/api/model/geoMapServerModel.d.ts +28 -0
- package/lib/smart-map/api/model/geoMapTextType.d.ts +15 -0
- package/lib/smart-map/api/model/geoMapViewState.d.ts +25 -0
- package/lib/smart-map/api/model/geoMapViewport.d.ts +20 -0
- package/lib/smart-map/api/model/models.d.ts +18 -0
- package/lib/smart-map/api/param.d.ts +37 -0
- package/lib/smart-map/api/variables.d.ts +8 -0
- package/lib/smart-map/api-default/api-default.d.ts +2 -0
- package/lib/smart-map/impl/google-map.d.ts +21 -0
- package/lib/smart-map/impl/leaflet-map.d.ts +15 -0
- package/lib/smart-map/projects.d.ts +8 -0
- package/lib/smart-map/smart-map.component.d.ts +33 -0
- package/lib/smart-map/smart-map.module.d.ts +11 -0
- package/lib/smart-map/smart-map.types.d.ts +21 -0
- package/package.json +1 -1
- package/projects.d.ts +1 -0
- package/smartbit4all-ng-client-4.1.0.tgz +0 -0
- package/smartbit4all-ng-client-4.0.149.tgz +0 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { Component, computed, Inject, InjectionToken, Input, signal, } from '@angular/core';
|
|
2
|
+
import { lastValueFrom } from 'rxjs';
|
|
3
|
+
import { GeoMapItemKind, GeoMapOperationMode, } from './api';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./api";
|
|
6
|
+
import * as i2 from "./impl/google-map";
|
|
7
|
+
import * as i3 from "./impl/leaflet-map";
|
|
8
|
+
export var MapEngine;
|
|
9
|
+
(function (MapEngine) {
|
|
10
|
+
MapEngine["GOOGLE"] = "GOOGLE";
|
|
11
|
+
MapEngine["LEAFLET"] = "LEAFLET";
|
|
12
|
+
})(MapEngine || (MapEngine = {}));
|
|
13
|
+
export const MAP_ENGINE = new InjectionToken('MAP_ENGINE');
|
|
14
|
+
const itemEq = (a, b) => {
|
|
15
|
+
const positions = new Set(a.map((it) => it.position));
|
|
16
|
+
b.forEach((it) => positions.delete(it.position));
|
|
17
|
+
return a.length === b.length && positions.size === 0;
|
|
18
|
+
};
|
|
19
|
+
export class SmartMapComponent {
|
|
20
|
+
constructor(mapEngine, api) {
|
|
21
|
+
this.mapEngine = mapEngine;
|
|
22
|
+
this.api = api;
|
|
23
|
+
this.MapEngine = MapEngine;
|
|
24
|
+
this.model = signal(undefined);
|
|
25
|
+
this.items = computed(() => {
|
|
26
|
+
const model = this.model();
|
|
27
|
+
return model?.layers.flatMap((l) => l.items ?? []) ?? [];
|
|
28
|
+
});
|
|
29
|
+
this.selection = computed(() => new Set(this.items()
|
|
30
|
+
.filter((it) => !!it.selected)
|
|
31
|
+
.map((it) => it.id)
|
|
32
|
+
.values()));
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
// this.load();
|
|
36
|
+
}
|
|
37
|
+
ngAfterViewInit() {
|
|
38
|
+
this.load();
|
|
39
|
+
}
|
|
40
|
+
async load() {
|
|
41
|
+
const model = await lastValueFrom(this.api.load(this.uuid, this.identifier));
|
|
42
|
+
if (!model.viewport) {
|
|
43
|
+
throw new Error('GeoMapModel contains no viewport!');
|
|
44
|
+
}
|
|
45
|
+
this.model.update(() => model);
|
|
46
|
+
}
|
|
47
|
+
async move(viewport) {
|
|
48
|
+
this.model.update((it) => {
|
|
49
|
+
console.log('model update is running!');
|
|
50
|
+
if (it) {
|
|
51
|
+
it.viewport = viewport;
|
|
52
|
+
}
|
|
53
|
+
return it;
|
|
54
|
+
});
|
|
55
|
+
const change = await lastValueFrom(this.api.move(this.uuid, this.identifier, viewport));
|
|
56
|
+
this.handleChange(change);
|
|
57
|
+
}
|
|
58
|
+
async update(mapState) {
|
|
59
|
+
this.model.update((it) => {
|
|
60
|
+
if (it) {
|
|
61
|
+
it.viewState = mapState;
|
|
62
|
+
}
|
|
63
|
+
return it;
|
|
64
|
+
});
|
|
65
|
+
const change = await lastValueFrom(this.api.update(this.uuid, this.identifier, mapState));
|
|
66
|
+
this.handleChange(change);
|
|
67
|
+
}
|
|
68
|
+
handleChange(change) {
|
|
69
|
+
if (!change.items) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.model.update((it) => {
|
|
73
|
+
const layersById = new Map();
|
|
74
|
+
if (!it) {
|
|
75
|
+
return it;
|
|
76
|
+
}
|
|
77
|
+
it.layers.forEach((layer) => layersById.set(layer.code, layer));
|
|
78
|
+
for (const layerChange of change.items) {
|
|
79
|
+
const layerId = layerChange.code;
|
|
80
|
+
const toAdd = layerChange.toAdd;
|
|
81
|
+
layersById.set(layerId, {
|
|
82
|
+
code: layerId,
|
|
83
|
+
items: toAdd,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
...it,
|
|
88
|
+
layers: [...layersById.values()],
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
handleMapClick(position) {
|
|
93
|
+
const operationMode = this.model()?.viewState?.operationMode ?? GeoMapOperationMode.ACTION;
|
|
94
|
+
switch (operationMode) {
|
|
95
|
+
case GeoMapOperationMode.ACTION:
|
|
96
|
+
// TODO: Fire action for layer, if applicable (maybe only on double click).
|
|
97
|
+
break;
|
|
98
|
+
case GeoMapOperationMode.SELECTION:
|
|
99
|
+
// no-op, can't select empty space.
|
|
100
|
+
break;
|
|
101
|
+
case GeoMapOperationMode.PLACEMENT:
|
|
102
|
+
lastValueFrom(this.api.interact(this.uuid, this.identifier, {
|
|
103
|
+
operationMode,
|
|
104
|
+
targetItem: {
|
|
105
|
+
kind: GeoMapItemKind.MARKER, // FIXME: We shall support more item kinds!
|
|
106
|
+
position,
|
|
107
|
+
icons: {},
|
|
108
|
+
bounds: [],
|
|
109
|
+
actions: [],
|
|
110
|
+
},
|
|
111
|
+
targetLayer: '',
|
|
112
|
+
inverse: false,
|
|
113
|
+
})).then((change) => {
|
|
114
|
+
if (!this.viewContextService) {
|
|
115
|
+
console.warn('Smart Map has no ViewContext Service set up!');
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return this.viewContextService.handlePerformActionResponse(change);
|
|
120
|
+
}
|
|
121
|
+
}, (err) => {
|
|
122
|
+
console.warn('Could not submit selection change! ', err);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
handleItemClick(id) {
|
|
127
|
+
const operationMode = this.model()?.viewState?.operationMode ?? GeoMapOperationMode.ACTION;
|
|
128
|
+
const targetItem = this.items().find((it) => id === it.id);
|
|
129
|
+
if (!targetItem) {
|
|
130
|
+
console.warn('Selection item is seemingly missing from known items: ', id);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
switch (operationMode) {
|
|
134
|
+
case GeoMapOperationMode.ACTION:
|
|
135
|
+
// TODO: fire action!
|
|
136
|
+
break;
|
|
137
|
+
case GeoMapOperationMode.SELECTION:
|
|
138
|
+
lastValueFrom(this.api.interact(this.uuid, this.identifier, {
|
|
139
|
+
operationMode,
|
|
140
|
+
targetItem,
|
|
141
|
+
targetLayer: '',
|
|
142
|
+
inverse: this.selection().has(id),
|
|
143
|
+
})).then((change) => {
|
|
144
|
+
if (!this.viewContextService) {
|
|
145
|
+
console.warn('Smart Map has no ViewContext Service set up!');
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return this.viewContextService.handlePerformActionResponse(change);
|
|
150
|
+
}
|
|
151
|
+
}, (err) => {
|
|
152
|
+
console.warn('Could not submit selection change! ', err);
|
|
153
|
+
});
|
|
154
|
+
break;
|
|
155
|
+
case GeoMapOperationMode.PLACEMENT:
|
|
156
|
+
// clicking an item may remove it, if it's only a pending item. To reposition existing
|
|
157
|
+
// items, we shall react to dragEnd events only.
|
|
158
|
+
lastValueFrom(this.api.interact(this.uuid, this.identifier, {
|
|
159
|
+
operationMode,
|
|
160
|
+
targetItem,
|
|
161
|
+
targetLayer: '',
|
|
162
|
+
inverse: true,
|
|
163
|
+
})).then((change) => {
|
|
164
|
+
if (!this.viewContextService) {
|
|
165
|
+
console.warn('Smart Map has no ViewContext Service set up!');
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
return this.viewContextService.handlePerformActionResponse(change);
|
|
170
|
+
}
|
|
171
|
+
}, (err) => {
|
|
172
|
+
console.warn('Could not submit placement change! ', err);
|
|
173
|
+
});
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, deps: [{ token: MAP_ENGINE }, { token: i1.GeoMapService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMapComponent, selector: "smart-map", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, ngImport: i0, template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.GoogleMap, selector: "google-map", inputs: ["style", "styleClass"], outputs: ["onOverlayDblClick", "onOverlayDragStart", "onOverlayDrag", "onOverlayDragEnd", "onMapReady"] }, { kind: "component", type: i3.LeafletMap, selector: "leaflet-map" }] }); }
|
|
179
|
+
}
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, decorators: [{
|
|
181
|
+
type: Component,
|
|
182
|
+
args: [{ selector: 'smart-map', template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n" }]
|
|
183
|
+
}], ctorParameters: () => [{ type: MapEngine, decorators: [{
|
|
184
|
+
type: Inject,
|
|
185
|
+
args: [MAP_ENGINE]
|
|
186
|
+
}] }, { type: i1.GeoMapService }], propDecorators: { uuid: [{
|
|
187
|
+
type: Input
|
|
188
|
+
}], identifier: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], parent: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}] } });
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9zbWFydC1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL3NtYXJ0LW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBR0wsY0FBYyxFQUdkLG1CQUFtQixHQUtwQixNQUFNLE9BQU8sQ0FBQzs7Ozs7QUFJZixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxZQUFZLENBQUMsQ0FBQztBQUV0RSxNQUFNLE1BQU0sR0FBdUMsQ0FBQyxDQUFvQixFQUFFLENBQW9CLEVBQUUsRUFBRTtJQUNoRyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBYyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdELE9B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biAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgU2lnbmFsLFxuICBzaWduYWwsXG4gIFZhbHVlRXF1YWxpdHlGbixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU21hcnRDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1jbGllbnQvc21hcnQuY29tcG9uZW50JztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEdlb01hcENoYW5nZSxcbiAgR2VvTWFwSXRlbSxcbiAgR2VvTWFwSXRlbUtpbmQsXG4gIEdlb01hcExheWVyLFxuICBHZW9NYXBNb2RlbCxcbiAgR2VvTWFwT3BlcmF0aW9uTW9kZSxcbiAgR2VvTWFwU2VydmljZSxcbiAgR2VvTWFwVmlld3BvcnQsXG4gIEdlb01hcFZpZXdTdGF0ZSxcbiAgR1BTUG9zaXRpb24sXG59IGZyb20gJy4vYXBpJztcbmltcG9ydCB7IFZpZXdDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L2FwaSc7XG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZSc7XG5cbmV4cG9ydCBlbnVtIE1hcEVuZ2luZSB7XG4gIEdPT0dMRSA9ICdHT09HTEUnLFxuICBMRUFGTEVUID0gJ0xFQUZMRVQnLFxufVxuXG5leHBvcnQgY29uc3QgTUFQX0VOR0lORSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXBFbmdpbmU+KCdNQVBfRU5HSU5FJyk7XG5cbmNvbnN0IGl0ZW1FcTogVmFsdWVFcXVhbGl0eUZuPEFycmF5PEdlb01hcEl0ZW0+PiA9IChhOiBBcnJheTxHZW9NYXBJdGVtPiwgYjogQXJyYXk8R2VvTWFwSXRlbT4pID0+IHtcbiAgY29uc3QgcG9zaXRpb25zID0gbmV3IFNldChhLm1hcCgoaXQ6IEdlb01hcEl0ZW0pID0+IGl0LnBvc2l0aW9uKSk7XG4gIGIuZm9yRWFjaCgoaXQ6IEdlb01hcEl0ZW0pID0+IHBvc2l0aW9ucy5kZWxldGUoaXQucG9zaXRpb24pKTtcbiAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBwb3NpdGlvbnMuc2l6ZSA9PT0gMDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LW1hcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1tYXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc21hcnQtbWFwLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydE1hcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIE1hcEVuZ2luZSA9IE1hcEVuZ2luZTtcblxuICBASW5wdXQoKSB1dWlkITogc3RyaW5nO1xuICBASW5wdXQoKSBpZGVudGlmaWVyITogc3RyaW5nO1xuICBASW5wdXQoKSBwYXJlbnQ/OiBTbWFydENvbXBvbmVudDxhbnk+O1xuXG4gIHJlYWRvbmx5IG1vZGVsOiBXcml0YWJsZVNpZ25hbDxHZW9NYXBNb2RlbCB8IHVuZGVmaW5lZD4gPSBzaWduYWwodW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXRlbXM6IFNpZ25hbDxBcnJheTxHZW9NYXBJdGVtPj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsKCk7XG4gICAgcmV0dXJuIG1vZGVsPy5sYXllcnMuZmxhdE1hcCgobCkgPT4gbC5pdGVtcyA/PyBbXSkgPz8gW107XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGlvbjogU2lnbmFsPFNldDxzdHJpbmc+PiA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICBuZXcgU2V0KFxuICAgICAgICB0aGlzLml0ZW1zKClcbiAgICAgICAgICAuZmlsdGVyKChpdCkgPT4gISFpdC5zZWxlY3RlZClcbiAgICAgICAgICAubWFwKChpdCkgPT4gaXQuaWQhKVxuICAgICAgICAgIC52YWx1ZXMoKVxuICAgICAgKVxuICApO1xuXG4gIHZpZXdDb250ZXh0U2VydmljZT86IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFQX0VOR0lORSlcbiAgICBwdWJsaWMgbWFwRW5naW5lOiBNYXBFbmdpbmUsXG4gICAgcHJpdmF0ZSBhcGk6IEdlb01hcFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMubG9hZCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubG9hZCgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtb2RlbDogR2VvTWFwTW9kZWwgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYXBpLmxvYWQodGhpcy51dWlkLCB0aGlzLmlkZW50aWZpZXIpKTtcbiAgICBpZiAoIW1vZGVsLnZpZXdwb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dlb01hcE1vZGVsIGNvbnRhaW5zIG5vIHZpZXdwb3J0IScpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVsLnVwZGF0ZSgoKSA9PiBtb2RlbCk7XG4gIH1cblxuICBhc3luYyBtb3ZlKHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubW9kZWwudXBkYXRlKChpdCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ21vZGVsIHVwZGF0ZSBpcyBydW5uaW5nIScpO1xuICAgICAgaWYgKGl0KSB7XG4gICAgICAgIGl0LnZpZXdwb3J0ID0gdmlld3BvcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXQ7XG4gICAgfSk7XG4gICAgY29uc3QgY2hhbmdlOiBHZW9NYXBDaGFuZ2UgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5hcGkubW92ZSh0aGlzLnV1aWQsIHRoaXMuaWRlbnRpZmllciwgdmlld3BvcnQpXG4gICAgKTtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZShjaGFuZ2UpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKG1hcFN0YXRlOiBHZW9NYXBWaWV3U3RhdGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm1vZGVsLnVwZGF0ZSgoaXQpID0+IHtcbiAgICAgIGlmIChpdCkge1xuICAgICAgICBpdC52aWV3U3RhdGUgPSBtYXBTdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpdDtcbiAgICB9KTtcbiAgICBjb25zdCBjaGFuZ2U6IEdlb01hcENoYW5nZSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmFwaS51cGRhdGUodGhpcy51dWlkLCB0aGlzLmlkZW50aWZpZXIsIG1hcFN0YXRlKVxuICAgICk7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2UoY2hhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hhbmdlKGNoYW5nZTogR2VvTWFwQ2hhbmdlKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2UuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsLnVwZGF0ZSgoaXQpID0+IHtcbiAgICAgIGNvbnN0IGxheWVyc0J5SWQ6IE1hcDxzdHJpbmcsIEdlb01hcExheWVyPiA9IG5ldyBNYXAoKTtcbiAgICAgIGlmICghaXQpIHtcbiAgICAgICAgcmV0dXJuIGl0O1xuICAgICAgfVxuICAgICAgaXQubGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiBsYXllcnNCeUlkLnNldChsYXllci5jb2RlISwgbGF5ZXIpKTtcbiAgICAgIGZvciAoY29uc3QgbGF5ZXJDaGFuZ2Ugb2YgY2hhbmdlLml0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGxheWVySWQgPSBsYXllckNoYW5nZS5jb2RlITtcbiAgICAgICAgY29uc3QgdG9BZGQgPSBsYXllckNoYW5nZS50b0FkZDtcbiAgICAgICAgbGF5ZXJzQnlJZC5zZXQobGF5ZXJJZCwge1xuICAgICAgICAgIGNvZGU6IGxheWVySWQsXG4gICAgICAgICAgaXRlbXM6IHRvQWRkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0LFxuICAgICAgICBsYXllcnM6IFsuLi5sYXllcnNCeUlkLnZhbHVlcygpXSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVNYXBDbGljayhwb3NpdGlvbjogR1BTUG9zaXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBvcGVyYXRpb25Nb2RlID0gdGhpcy5tb2RlbCgpPy52aWV3U3RhdGU/Lm9wZXJhdGlvbk1vZGUgPz8gR2VvTWFwT3BlcmF0aW9uTW9kZS5BQ1RJT047XG4gICAgc3dpdGNoIChvcGVyYXRpb25Nb2RlKSB7XG4gICAgICBjYXNlIEdlb01hcE9wZXJhdGlvbk1vZGUuQUNUSU9OOlxuICAgICAgICAvLyBUT0RPOiBGaXJlIGFjdGlvbiBmb3IgbGF5ZXIsIGlmIGFwcGxpY2FibGUgKG1heWJlIG9ubHkgb24gZG91YmxlIGNsaWNrKS5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEdlb01hcE9wZXJhdGlvbk1vZGUuU0VMRUNUSU9OOlxuICAgICAgICAvLyBuby1vcCwgY2FuJ3Qgc2VsZWN0IGVtcHR5IHNwYWNlLlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgR2VvTWFwT3BlcmF0aW9uTW9kZS5QTEFDRU1FTlQ6XG4gICAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5hcGkuaW50ZXJhY3QodGhpcy51dWlkLCB0aGlzLmlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbk1vZGUsXG4gICAgICAgICAgICB0YXJnZXRJdGVtOiB7XG4gICAgICAgICAgICAgIGtpbmQ6IEdlb01hcEl0ZW1LaW5kLk1BUktFUiwgLy8gRklYTUU6IFdlIHNoYWxsIHN1cHBvcnQgbW9yZSBpdGVtIGtpbmRzIVxuICAgICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgICAgaWNvbnM6IHt9LFxuICAgICAgICAgICAgICBib3VuZHM6IFtdLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YXJnZXRMYXllcjogJycsXG4gICAgICAgICAgICBpbnZlcnNlOiBmYWxzZSxcbiAgICAgICAgICB9KVxuICAgICAgICApLnRoZW4oXG4gICAgICAgICAgKGNoYW5nZTogVmlld0NvbnRleHRDaGFuZ2UpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdTbWFydCBNYXAgaGFzIG5vIFZpZXdDb250ZXh0IFNlcnZpY2Ugc2V0IHVwIScpO1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0U2VydmljZS5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoY2hhbmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3Qgc3VibWl0IHNlbGVjdGlvbiBjaGFuZ2UhICcsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUl0ZW1DbGljayhpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgb3BlcmF0aW9uTW9kZSA9IHRoaXMubW9kZWwoKT8udmlld1N0YXRlPy5vcGVyYXRpb25Nb2RlID8/IEdlb01hcE9wZXJhdGlvbk1vZGUuQUNUSU9OO1xuICAgIGNvbnN0IHRhcmdldEl0ZW0gPSB0aGlzLml0ZW1zKCkuZmluZCgoaXQpID0+IGlkID09PSBpdC5pZCk7XG4gICAgaWYgKCF0YXJnZXRJdGVtKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NlbGVjdGlvbiBpdGVtIGlzIHNlZW1pbmdseSBtaXNzaW5nIGZyb20ga25vd24gaXRlbXM6ICcsIGlkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKG9wZXJhdGlvbk1vZGUpIHtcbiAgICAgIGNhc2UgR2VvTWFwT3BlcmF0aW9uTW9kZS5BQ1RJT046XG4gICAgICAgIC8vIFRPRE86IGZpcmUgYWN0aW9uIVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgR2VvTWFwT3BlcmF0aW9uTW9kZS5TRUxFQ1RJT046XG4gICAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5hcGkuaW50ZXJhY3QodGhpcy51dWlkLCB0aGlzLmlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbk1vZGUsXG4gICAgICAgICAgICB0YXJnZXRJdGVtLFxuICAgICAgICAgICAgdGFyZ2V0TGF5ZXI6ICcnLFxuICAgICAgICAgICAgaW52ZXJzZTogdGhpcy5zZWxlY3Rpb24oKS5oYXMoaWQpLFxuICAgICAgICAgIH0pXG4gICAgICAgICkudGhlbihcbiAgICAgICAgICAoY2hhbmdlOiBWaWV3Q29udGV4dENoYW5nZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0U2VydmljZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1NtYXJ0IE1hcCBoYXMgbm8gVmlld0NvbnRleHQgU2VydmljZSBzZXQgdXAhJyk7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHRTZXJ2aWNlLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShjaGFuZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzdWJtaXQgc2VsZWN0aW9uIGNoYW5nZSEgJywgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBHZW9NYXBPcGVyYXRpb25Nb2RlLlBMQUNFTUVOVDpcbiAgICAgICAgLy8gY2xpY2tpbmcgYW4gaXRlbSBtYXkgcmVtb3ZlIGl0LCBpZiBpdCdzIG9ubHkgYSBwZW5kaW5nIGl0ZW0uIFRvIHJlcG9zaXRpb24gZXhpc3RpbmdcbiAgICAgICAgLy8gaXRlbXMsIHdlIHNoYWxsIHJlYWN0IHRvIGRyYWdFbmQgZXZlbnRzIG9ubHkuXG4gICAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5hcGkuaW50ZXJhY3QodGhpcy51dWlkLCB0aGlzLmlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbk1vZGUsXG4gICAgICAgICAgICB0YXJnZXRJdGVtLFxuICAgICAgICAgICAgdGFyZ2V0TGF5ZXI6ICcnLFxuICAgICAgICAgICAgaW52ZXJzZTogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICApLnRoZW4oXG4gICAgICAgICAgKGNoYW5nZTogVmlld0NvbnRleHRDaGFuZ2UpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy52aWV3Q29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdTbWFydCBNYXAgaGFzIG5vIFZpZXdDb250ZXh0IFNlcnZpY2Ugc2V0IHVwIScpO1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0U2VydmljZS5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoY2hhbmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3Qgc3VibWl0IHBsYWNlbWVudCBjaGFuZ2UhICcsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAobW9kZWwoKSkgeyBAaWYgKG1hcEVuZ2luZSA9PT0gTWFwRW5naW5lLkdPT0dMRSkge1xyXG48Z29vZ2xlLW1hcFxyXG4gIFttb2RlbF09XCJtb2RlbCgpIVwiXHJcbiAgW2l0ZW1zXT1cIml0ZW1zKClcIlxyXG4gIFtzdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzMyMHB4JyB9XCJcclxuICAob25NYXBEcmFnRW5kKT1cIm1vdmUoJGV2ZW50LnZpZXdwb3J0KVwiXHJcbiAgKG9uWm9vbUNoYW5nZWQpPVwibW92ZSgkZXZlbnQudmlld3BvcnQpXCJcclxuICAob25NYXBDbGljayk9XCJoYW5kbGVNYXBDbGljaygkZXZlbnQuY29vcmRpbmF0ZXMpXCJcclxuICAob25PdmVybGF5Q2xpY2spPVwiaGFuZGxlSXRlbUNsaWNrKCRldmVudC5pdGVtSWQpXCJcclxuPlxyXG48L2dvb2dsZS1tYXA+XHJcbn0gQGVsc2UgaWYgKG1hcEVuZ2luZSA9PT0gTWFwRW5naW5lLkxFQUZMRVQpIHtcclxuPGxlYWZsZXQtbWFwXHJcbiAgW21vZGVsXT1cIm1vZGVsKCkhXCJcclxuICBbaXRlbXNdPVwiaXRlbXMoKVwiXHJcbiAgKG9uTWFwRHJhZ0VuZCk9XCJtb3ZlKCRldmVudC52aWV3cG9ydClcIlxyXG4gIChvblpvb21DaGFuZ2VkKT1cIm1vdmUoJGV2ZW50LnZpZXdwb3J0KVwiXHJcbiAgKG9uTWFwQ2xpY2spPVwiaGFuZGxlTWFwQ2xpY2soJGV2ZW50LmNvb3JkaW5hdGVzKVwiXHJcbiAgKG9uT3ZlcmxheUNsaWNrKT1cImhhbmRsZUl0ZW1DbGljaygkZXZlbnQuaXRlbUlkKVwiXHJcbj5cclxuPC9sZWFmbGV0LW1hcD5cclxufSBAZWxzZSB7XHJcbjxwPlxyXG4gIDxzdHJvbmc+Tm90IHJlY29nbmlzZWQgbWFwIGVuZ2luZTogWyB7eyBtYXBFbmdpbmUgfX0gXTwvc3Ryb25nPlxyXG48L3A+XHJcbjxwPlBsZWFzZSBwcm92aWRlIGEgdmFsaWQgY2hvaWNlIG9mIG1hcCBlbmdpbmUhPC9wPlxyXG59IH1cclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MAP_ENGINE, MapEngine, SmartMapComponent } from './smart-map.component';
|
|
3
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { GoogleMap } from './impl/google-map';
|
|
6
|
+
import { LeafletMap } from './impl/leaflet-map';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class SmartMapModule {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, declarations: [SmartMapComponent, GoogleMap, LeafletMap], imports: [CommonModule, BrowserModule], exports: [SmartMapComponent, GoogleMap, LeafletMap] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, providers: [{ provide: MAP_ENGINE, useValue: MapEngine.GOOGLE }], imports: [CommonModule, BrowserModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [SmartMapComponent, GoogleMap, LeafletMap],
|
|
17
|
+
imports: [CommonModule, BrowserModule],
|
|
18
|
+
providers: [{ provide: MAP_ENGINE, useValue: MapEngine.GOOGLE }],
|
|
19
|
+
exports: [SmartMapComponent, GoogleMap, LeafletMap],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbWFwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LW1hcC9zbWFydC1tYXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBUWhELE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFMVixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxhQUM3QyxZQUFZLEVBQUUsYUFBYSxhQUUzQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVTtnSEFFdkMsY0FBYyxhQUhkLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsWUFEdEQsWUFBWSxFQUFFLGFBQWE7OzRGQUkxQixjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7b0JBQ3hELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRSxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDO2lCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVBfRU5HSU5FLCBNYXBFbmdpbmUsIFNtYXJ0TWFwQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHb29nbGVNYXAgfSBmcm9tICcuL2ltcGwvZ29vZ2xlLW1hcCc7XG5pbXBvcnQgeyBMZWFmbGV0TWFwIH0gZnJvbSAnLi9pbXBsL2xlYWZsZXQtbWFwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU21hcnRNYXBDb21wb25lbnQsIEdvb2dsZU1hcCwgTGVhZmxldE1hcF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJyb3dzZXJNb2R1bGVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1BUF9FTkdJTkUsIHVzZVZhbHVlOiBNYXBFbmdpbmUuR09PR0xFIH1dLFxuICBleHBvcnRzOiBbU21hcnRNYXBDb21wb25lbnQsIEdvb2dsZU1hcCwgTGVhZmxldE1hcF0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0TWFwTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbWFwLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtbWFwL3NtYXJ0LW1hcC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvTWFwVmlld3BvcnQsIEdQU1Bvc2l0aW9uIH0gZnJvbSAnLi9hcGknO1xuXG5leHBvcnQgdHlwZSBNYXBEcmFnZ2VkRXZlbnQgPSB7XG4gIHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydDtcbiAgb3JpZ2luYWxFdmVudDogYW55O1xufTtcblxuZXhwb3J0IHR5cGUgTWFwWm9vbUNoYW5nZWRFdmVudCA9IHtcbiAgdmlld3BvcnQ6IEdlb01hcFZpZXdwb3J0O1xuICBvcmlnaW5hbEV2ZW50OiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBNYXBJdGVtQ2xpY2tlZEV2ZW50ID0ge1xuICBpdGVtSWQ6IHN0cmluZztcbiAgb3JpZ2luYWxFdmVudDogYW55O1xufTtcblxuZXhwb3J0IHR5cGUgTWFwQ2xpY2tlZEV2ZW50ID0ge1xuICBjb29yZGluYXRlczogR1BTUG9zaXRpb247XG4gIG9yaWdpbmFsRXZlbnQ6IGFueTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29vcmQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './view.service';
|
|
2
2
|
import { ViewService } from './view.service';
|
|
3
3
|
export const APIS = [ViewService];
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L2FwaS9hcGkvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aWV3LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3U2VydmljZSB9IGZyb20gJy4vdmlldy5zZXJ2aWNlJztcclxuZXhwb3J0IGNvbnN0IEFQSVMgPSBbVmlld1NlcnZpY2VdO1xyXG4iXX0=
|