@c8y/ngx-components 1023.14.41 → 1023.14.47

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.
Files changed (35) hide show
  1. package/datapoint-explorer/view/index.d.ts +2 -0
  2. package/datapoint-explorer/view/index.d.ts.map +1 -1
  3. package/echart/index.d.ts +7 -1
  4. package/echart/index.d.ts.map +1 -1
  5. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +1 -1
  6. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +21 -36
  8. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-echart.mjs +127 -83
  10. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-global-context.mjs +21 -6
  12. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-icon-selector.mjs +7 -8
  14. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +3 -3
  16. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -2
  18. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +1 -1
  20. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  21. package/global-context/index.d.ts +12 -2
  22. package/global-context/index.d.ts.map +1 -1
  23. package/icon-selector/index.d.ts.map +1 -1
  24. package/locales/de.po +7 -2
  25. package/locales/es.po +6 -0
  26. package/locales/fr.po +6 -0
  27. package/locales/ja_JP.po +6 -0
  28. package/locales/ko.po +6 -0
  29. package/locales/locales.pot +6 -0
  30. package/locales/nl.po +6 -0
  31. package/locales/pl.po +6 -0
  32. package/locales/pt_BR.po +6 -0
  33. package/locales/zh_CN.po +6 -0
  34. package/locales/zh_TW.po +6 -0
  35. package/package.json +1 -1
@@ -406,7 +406,7 @@ class MapWidgetComponent {
406
406
  }
407
407
  }
408
408
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MapWidgetComponent, deps: [{ token: i2.DashboardChildComponent }, { token: i4$1.ContextDashboardComponent, optional: true }, { token: i1.InventoryService }, { token: i4.MapService }, { token: i2.WidgetsDashboardComponent, optional: true }, { token: i2.DynamicComponentService }, { token: i5$1.WidgetConfigMigrationService }], target: i0.ɵɵFactoryTarget.Component }); }
409
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MapWidgetComponent, isStandalone: true, selector: "c8y-map-widget", inputs: { config: "config" }, viewQueries: [{ propertyName: "clusterMap", first: true, predicate: ClusterMapComponent, descendants: true }], ngImport: i0, template: "@if (mapConfig) {\n <c8y-map-status\n [clusterMap]=\"mapWidget\"\n [(config)]=\"mapConfig\"\n (onUnfollow)=\"stopFollow()\"\n (fitAssetsToBounds)=\"fitToBounds()\"\n [assets]=\"assets\"\n [buttonsConfig]=\"{\n autoRefresh: { show: false },\n refresh: { show: false },\n realtime: { show: false },\n fitToBounds: { show: true }\n }\"\n >\n <c8y-global-context-widget-wrapper\n *ngIf=\"controls\"\n [widgetControls]=\"controls\"\n [config]=\"config\"\n [isLoading]=\"mapWidget.isLoading$ | async\"\n (globalContextChange)=\"onGlobalContext($event)\"\n ></c8y-global-context-widget-wrapper>\n </c8y-map-status>\n\n <c8y-cluster-map\n #mapWidget\n [rootNode]=\"rootNode\"\n [config]=\"mapConfig\"\n [asset]=\"assets\"\n >\n <div\n class=\"map-marker\"\n *c8yMapPopup=\"let context\"\n >\n <a\n class=\"text-truncate deviceLink text-12\"\n routerLink=\"{{ context | assetLink }}\"\n >\n <strong>{{ context.name }}</strong>\n </a>\n <c8y-map-event-info [asset]=\"context\">\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Activate realtime on this asset and follow it if it moves' | translate\"\n type=\"button\"\n (click)=\"startFollow(context)\"\n *ngIf=\"!mapConfig.follow\"\n translate\n >\n Follow\n </button>\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Stop following this asset.' | translate\"\n type=\"button\"\n (click)=\"stopFollow()\"\n *ngIf=\"mapConfig.follow\"\n translate\n >\n Unfollow\n </button>\n </c8y-map-event-info>\n </div>\n </c8y-cluster-map>\n}\n", dependencies: [{ kind: "component", type: MapEventInfoComponent, selector: "c8y-map-event-info", inputs: ["asset"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule$1 }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "ngmodule", type: MapModule }, { kind: "component", type: i4.MapStatusComponent, selector: "c8y-map-status", inputs: ["config", "assets", "clusterMap", "buttonsConfig"], outputs: ["configChange", "onUnfollow", "fitAssetsToBounds"] }, { kind: "component", type: i4.ClusterMapComponent, selector: "c8y-cluster-map", inputs: ["config", "rootNode", "asset", "showClusterColor"], outputs: ["mapChange"] }, { kind: "directive", type: i4.MapPopupDirective, selector: "[c8yMapPopup]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: GlobalContextWidgetWrapperComponent, selector: "c8y-global-context-widget-wrapper", inputs: ["isLoading", "displayMode", "widgetControls", "controlLinks", "dashboardChildForLegacy", "config"], outputs: ["globalContextChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AssetLinkPipe, name: "assetLink" }] }); }
409
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MapWidgetComponent, isStandalone: true, selector: "c8y-map-widget", inputs: { config: "config" }, viewQueries: [{ propertyName: "clusterMap", first: true, predicate: ClusterMapComponent, descendants: true }], ngImport: i0, template: "@if (mapConfig) {\n <c8y-map-status\n [clusterMap]=\"mapWidget\"\n [(config)]=\"mapConfig\"\n (onUnfollow)=\"stopFollow()\"\n (fitAssetsToBounds)=\"fitToBounds()\"\n [assets]=\"assets\"\n [buttonsConfig]=\"{\n autoRefresh: { show: false },\n refresh: { show: false },\n realtime: { show: false },\n fitToBounds: { show: true }\n }\"\n >\n <c8y-global-context-widget-wrapper\n *ngIf=\"controls\"\n [widgetControls]=\"controls\"\n [config]=\"config\"\n [isLoading]=\"mapWidget.isLoading$ | async\"\n (globalContextChange)=\"onGlobalContext($event)\"\n ></c8y-global-context-widget-wrapper>\n </c8y-map-status>\n\n <c8y-cluster-map\n #mapWidget\n [rootNode]=\"rootNode\"\n [config]=\"mapConfig\"\n [asset]=\"assets\"\n >\n <div\n class=\"map-marker\"\n *c8yMapPopup=\"let context\"\n >\n <a\n class=\"text-truncate deviceLink text-12\"\n routerLink=\"{{ context | assetLink }}\"\n >\n <strong>{{ context.name }}</strong>\n </a>\n <c8y-map-event-info [asset]=\"context\">\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Activate realtime on this asset and follow it if it moves' | translate\"\n type=\"button\"\n (click)=\"startFollow(context)\"\n *ngIf=\"!mapConfig.follow\"\n translate\n >\n Follow\n </button>\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Stop following this asset.' | translate\"\n type=\"button\"\n (click)=\"stopFollow()\"\n *ngIf=\"mapConfig.follow\"\n translate\n >\n Unfollow\n </button>\n </c8y-map-event-info>\n </div>\n </c8y-cluster-map>\n}\n", dependencies: [{ kind: "component", type: MapEventInfoComponent, selector: "c8y-map-event-info", inputs: ["asset"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule$1 }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "ngmodule", type: MapModule }, { kind: "component", type: i4.MapStatusComponent, selector: "c8y-map-status", inputs: ["config", "assets", "clusterMap", "buttonsConfig"], outputs: ["configChange", "onUnfollow", "fitAssetsToBounds"] }, { kind: "component", type: i4.ClusterMapComponent, selector: "c8y-cluster-map", inputs: ["config", "rootNode", "asset", "showClusterColor"], outputs: ["mapChange"] }, { kind: "directive", type: i4.MapPopupDirective, selector: "[c8yMapPopup]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: GlobalContextWidgetWrapperComponent, selector: "c8y-global-context-widget-wrapper", inputs: ["isLoading", "displayMode", "widgetControls", "controlLinks", "dashboardChildForLegacy", "config", "disableRefreshEmits"], outputs: ["globalContextChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AssetLinkPipe, name: "assetLink" }] }); }
410
410
  }
411
411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MapWidgetComponent, decorators: [{
412
412
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-implementations-map.mjs","sources":["../../widgets/implementations/map/map-event-info.component.ts","../../widgets/implementations/map/map-event-info.component.html","../../widgets/implementations/map/map-widget-config.component.ts","../../widgets/implementations/map/map-widget-config.component.html","../../widgets/implementations/map/map-widget.component.ts","../../widgets/implementations/map/map-widget.component.html","../../widgets/implementations/map/c8y-ngx-components-widgets-implementations-map.ts"],"sourcesContent":["import { CommonModule as NgCommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { EventService, IEvent, IManagedObject } from '@c8y/client';\nimport { C8yTranslateDirective, DatePipe, LoadingComponent } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-map-event-info',\n templateUrl: './map-event-info.component.html',\n standalone: true,\n imports: [NgCommonModule, C8yTranslateDirective, DatePipe, LoadingComponent]\n})\nexport class MapEventInfoComponent implements OnChanges {\n @Input()\n asset: IManagedObject;\n\n loading = true;\n\n event: IEvent;\n\n constructor(private eventService: EventService) {}\n\n async ngOnChanges() {\n this.loading = true;\n const { data } = await this.eventService.list({\n dateFrom: '1970-01-01',\n dateTo: new Date(Date.now()).toISOString(),\n fragmentType: 'c8y_Position',\n pageSize: 1,\n source: this.asset.id\n });\n this.event = data[0];\n this.loading = false;\n }\n}\n","<div class=\"text-muted text-10 p-t-4 p-b-4\">\n <span translate>Last position update:</span>\n <br />\n <c8y-loading *ngIf=\"loading\"></c8y-loading>\n <ng-container *ngIf=\"!loading\">\n <i *ngIf=\"!event\" translate>No information found</i>\n <ng-container *ngIf=\"event\">\n <i>{{ event.time | c8yDate }}</i>\n <ng-content></ng-content>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {\n ControlContainer,\n NgForm,\n FormsModule as NgFormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport type { IIdentified } from '@c8y/client';\nimport { AlertService, C8yTranslatePipe, CommonModule, FormsModule } from '@c8y/ngx-components';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { GLOBAL_CONTEXT_DISPLAY_MODE, RefreshOption } from '@c8y/ngx-components/global-context';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport {\n ClusterMapConfig,\n defaultFitBoundsOptions,\n MAP_DEFAULT_CONFIG,\n MapComponent,\n MapModule,\n MapService,\n PositionManagedObject\n} from '@c8y/ngx-components/map';\nimport type { MapDefaultConfig } from '@c8y/options';\nimport { TranslateService } from '@ngx-translate/core';\nimport type L from 'leaflet';\nimport { isUndefined } from 'lodash';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { combineLatestWith, take, takeUntil } from 'rxjs/operators';\nimport { MapWidgetConfig } from './map-widget.model';\n\n@Component({\n selector: 'c8y-map-widget-config',\n templateUrl: './map-widget-config.component.html',\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: true,\n imports: [\n NgCommonModule,\n NgFormsModule,\n CommonModule,\n FormsModule,\n IconSelectorModule,\n MapModule,\n TooltipModule,\n ReactiveFormsModule,\n PopoverModule,\n C8yTranslatePipe\n ]\n})\nexport class MapWidgetConfigComponent implements OnInit, OnChanges, OnDestroy {\n @Input() config: MapWidgetConfig = {\n mapConfig: undefined\n };\n formConfig: ClusterMapConfig;\n\n readonly device = signal<IIdentified | undefined>(undefined);\n readonly assets = signal<PositionManagedObject[]>([]);\n\n readonly canAutoCenter = computed(() => {\n const assetsList = this.assets();\n const deviceValue = this.device();\n\n const isSingleAsset = assetsList?.length === 1;\n const idMatchesDevice = deviceValue?.id === assetsList[0]?.id;\n\n if (isSingleAsset && idMatchesDevice) {\n return this.mapService.hasPosition(assetsList[0]);\n }\n return false;\n });\n\n readonly isPositionedDevice = computed(() => {\n const assetsList = this.assets();\n const deviceValue = this.device();\n\n const isSingleAsset = assetsList?.length === 1;\n const idMatchesDevice = deviceValue?.id === assetsList[0]?.id;\n\n if (isSingleAsset && idMatchesDevice) {\n return this.mapService.isPositionedDevice(assetsList[0]);\n }\n return false;\n });\n\n refreshOption: RefreshOption = 'live';\n\n private destroyed$ = new Subject<void>();\n private leaflet: typeof L;\n private centerIcon: L.Marker;\n // JS precision for floating point number is 15 for 64-bit and because of this provided to leaflet are recalculated\n // to values almost-like provided (e.g. 0 is recalculated to 1.46e-14; for 180 it's 180.00000000000003).\n // To ensure provided value has no floating point error, number needs to be rounded to fixed point 13.\n private readonly FIXED_POINT_DIGITS = 13;\n\n @ViewChild(MapComponent)\n previewMap: MapComponent;\n\n @ViewChild('previewMap')\n set previewMapSet(template: TemplateRef<any>) {\n if (template) {\n this.widgetConfigService.setPreview(template);\n return;\n }\n this.widgetConfigService.setPreview(null);\n }\n\n constructor(\n private mapService: MapService,\n private alertService: AlertService,\n private translateService: TranslateService,\n @Inject(MAP_DEFAULT_CONFIG) private defaultMapConfig: Observable<MapDefaultConfig>,\n private widgetConfigService: WidgetConfigService\n ) {}\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n ngOnInit() {\n this.device.set(this.config.device);\n\n this.defaultMapConfig.pipe(takeUntil(this.destroyed$)).subscribe(defaultConfig => {\n this.formConfig = {\n zoomLevel: defaultConfig.zoomLevel,\n center: defaultConfig.center\n };\n this.initForm();\n });\n }\n\n async initForm() {\n if (!this.config.mapConfig) {\n this.config.mapConfig = this.formConfig;\n }\n\n this.formConfig = {\n ...this.formConfig,\n ...this.config.mapConfig,\n disablePan: false,\n displayMode: this.config.mapConfig?.displayMode ?? GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD,\n // Keep both in sync\n realtime:\n this.config.mapConfig?.isRealtimeEnabled ?? this.config.mapConfig?.realtime ?? false,\n refreshOption: this.config.mapConfig?.refreshOption,\n refreshInterval: this.config.mapConfig?.refreshInterval ?? 30_000\n };\n\n await this.updateAsset();\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.config) {\n this.device.set(this.config.device);\n\n if (\n changes.config.currentValue !== changes.config.previousValue &&\n !changes.config.firstChange\n ) {\n await this.updateAsset();\n }\n }\n }\n\n previewMapInit(leaflet: typeof L): void {\n this.leaflet = leaflet;\n this.addCenterIcon(this.formConfig.center[0], this.formConfig.center[1]);\n }\n\n onBeforeSave() {\n this.config.mapConfig = this.formConfig;\n return true;\n }\n\n zoomLevelChanged() {\n this.config.mapConfig = {\n ...this.config.mapConfig,\n zoomLevel: this.formConfig.zoomLevel\n };\n }\n\n changeCenter() {\n if (this.centerIcon) {\n this.centerIcon.remove();\n }\n this.config.mapConfig = { ...this.formConfig, center: [...this.formConfig.center] };\n this.addCenterIcon(this.formConfig.center[0], this.formConfig.center[1]);\n }\n\n changeCenterOnEnterKey(event: KeyboardEvent): void {\n event.preventDefault();\n this.changeCenter();\n }\n\n onPreviewZoomStart() {\n this.centerIcon.remove();\n }\n\n onPreviewZoomEnd(event: L.LeafletEvent) {\n this.formConfig.zoomLevel = Math.floor(event.target.getZoom());\n }\n\n onPreviewMapMove(event: L.LeafletEvent) {\n if (this.centerIcon) {\n this.centerIcon.remove();\n }\n const { lat, lng } = event.target.getCenter();\n const fixedLat = +lat.toFixed(this.FIXED_POINT_DIGITS);\n const fixedLng = +lng.toFixed(this.FIXED_POINT_DIGITS);\n this.addCenterIcon(fixedLat, fixedLng);\n this.formConfig.center = [fixedLat, fixedLng];\n }\n\n useOwnPosition() {\n navigator.geolocation.getCurrentPosition(({ coords }) => {\n this.formConfig.center = [coords.latitude, coords.longitude];\n this.changeCenter();\n });\n }\n\n centerToAsset() {\n this.formConfig.center = [\n this.config.device.c8y_Position.lat,\n this.config.device.c8y_Position.lng\n ];\n this.changeCenter();\n }\n\n async fitToBounds() {\n const assetsList = this.assets();\n if (!assetsList?.length || !this.previewMap?.map) {\n return;\n }\n\n const bounds = await this.mapService.getAssetsBounds(assetsList);\n\n // map.fitBounds causes zoom and move events, so get new center and zoom level only when these events are finished\n fromEvent<L.LeafletEvent>(this.previewMap.map, 'moveend')\n .pipe(combineLatestWith(fromEvent<L.LeafletEvent>(this.previewMap.map, 'zoomend')), take(1))\n .subscribe(() => {\n const center = this.previewMap.map.getCenter();\n const zoom = this.previewMap.map.getZoom();\n\n const fixedLat = +center.lat.toFixed(this.FIXED_POINT_DIGITS);\n const fixedLng = +center.lng.toFixed(this.FIXED_POINT_DIGITS);\n this.formConfig.center = [fixedLat, fixedLng];\n this.formConfig.zoomLevel = Math.floor(zoom);\n\n this.changeCenter();\n });\n\n this.previewMap.map.fitBounds(bounds, defaultFitBoundsOptions);\n }\n\n selectIcon(icon: string) {\n this.formConfig.icon = icon;\n this.config.mapConfig.icon = icon;\n this.previewMap.refreshMarkers();\n }\n\n private async updateAsset() {\n const { data, paging } = await this.mapService.getAllPositionMOs(this.device());\n const onlyAssetsWithLatLng = data.filter(\n asset => !isUndefined(asset.c8y_Position?.lat) && !isUndefined(asset.c8y_Position?.lng)\n );\n\n this.assets.set(onlyAssetsWithLatLng);\n\n if (paging.totalPages > 1) {\n this.alertService.danger(\n gettext(\n 'It might be possible that assets are not shown in the preview, as the current selection has more than 500 assets and the preview only supports a maximum of 500 assets.'\n )\n );\n }\n }\n\n private addCenterIcon(lat: number, lng: number) {\n const titleText = this.translateService.instant(gettext('Map center'));\n const icon = this.leaflet.divIcon({\n html: `<i style=\"pointer-events: none\" class=\"c8y-map-marker-icon text-muted dlt-c8y-icon-target icon-2x\" title=\"${titleText}\" />`\n });\n this.centerIcon = this.leaflet.marker([lat, lng], {\n icon\n });\n this.previewMap.addMarkerToMap(this.centerIcon);\n }\n}\n","@if (formConfig) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Map' | translate }}</legend>\n <div class=\"row tight-grid\">\n <div class=\"col-xs-3\">\n <c8y-form-group class=\"m-b-16 text-center form-group-sm\">\n <label translate>Marker icon</label>\n <c8y-icon-selector-wrapper\n [canRemoveIcon]=\"true\"\n [selectedIcon]=\"formConfig.icon\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-9\">\n <div class=\"form-group form-group-sm\">\n <label translate>Zoom level</label>\n <c8y-range\n class=\"label-bottom\"\n name=\"zoomLevel\"\n #range\n [(ngModel)]=\"formConfig.zoomLevel\"\n (change)=\"zoomLevelChanged()\"\n >\n <input\n type=\"range\"\n min=\"0\"\n max=\"18\"\n step=\"1\"\n />\n </c8y-range>\n </div>\n </div>\n </div>\n <c8y-form-group class=\"form-group-sm\">\n <label translate>Center bound</label>\n <div class=\"input-group input-group-sm\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'lat.`latitude`' | translate }}\"\n name=\"centerLat\"\n type=\"number\"\n required\n [(ngModel)]=\"formConfig.center[0]\"\n (change)=\"changeCenter()\"\n (keydown.enter)=\"changeCenterOnEnterKey($event)\"\n min=\"-90\"\n max=\"90\"\n step=\"0.1\"\n />\n <input\n class=\"form-control\"\n placeholder=\"{{ 'lng.`longitude`' | translate }}\"\n name=\"centerLng\"\n type=\"number\"\n required\n min=\"-180\"\n max=\"180\"\n [(ngModel)]=\"formConfig.center[1]\"\n (change)=\"changeCenter()\"\n (keydown.enter)=\"changeCenterOnEnterKey($event)\"\n min=\"-180\"\n max=\"180\"\n step=\"0.1\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Use your location' | translate\"\n [tooltip]=\"'Use your location' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"useOwnPosition()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"location-arrow\"\n ></i>\n </button>\n </div>\n <div class=\"input-group-btn\">\n @if (canAutoCenter()) {\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Use selected asset location' | translate\"\n [tooltip]=\"'Use selected asset location' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"centerToAsset()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"location\"\n ></i>\n </button>\n } @else {\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Fit to assets bounds' | translate\"\n [tooltip]=\"'Fit to assets bounds' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"fitToBounds()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"waypoint-map\"\n ></i>\n </button>\n }\n </div>\n </div>\n\n <c8y-messages\n [helpMessage]=\"'Drag the map to the desired position' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </fieldset>\n\n @if (isPositionedDevice()) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Follow' | translate }}</legend>\n <div class=\"row tight-grid d-flex a-i-center\">\n <div class=\"col-xs-12\">\n <div class=\"form-group form-group-sm m-b-16\">\n <label class=\"c8y-switch c8y-switch--inline\">\n <input\n name=\"follow\"\n type=\"checkbox\"\n [(ngModel)]=\"formConfig.follow\"\n />\n <span></span>\n <span\n class=\"text-12\"\n translate\n >\n Follow selected\n </span>\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n }\n}\n\n<ng-template #previewMap>\n <div style=\"width: 100%; height: 100%\">\n @if (config.mapConfig) {\n <c8y-map\n [assets]=\"assets()\"\n [config]=\"config.mapConfig\"\n (onMove)=\"onPreviewMapMove($event)\"\n (onZoomStart)=\"onPreviewZoomStart()\"\n (onZoomEnd)=\"onPreviewZoomEnd($event)\"\n (onInit)=\"previewMapInit($event)\"\n ></c8y-map>\n }\n </div>\n</ng-template>\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { FormsModule as NgFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { IIdentified, InventoryService } from '@c8y/client';\nimport {\n AssetLinkPipe,\n CommonModule,\n DashboardChildComponent,\n DismissAlertStrategy,\n DynamicComponent,\n DynamicComponentAlert,\n DynamicComponentAlertAggregator,\n DynamicComponentService,\n FormsModule,\n WidgetsDashboardComponent\n} from '@c8y/ngx-components';\nimport { ContextDashboardComponent } from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GlobalContextWidgetWrapperComponent,\n WidgetConfigMigrationService,\n WidgetControls\n} from '@c8y/ngx-components/global-context';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport {\n ClusterMapComponent,\n ClusterMapConfig,\n defaultFitBoundsOptions,\n MapModule,\n MapService,\n PositionManagedObject\n} from '@c8y/ngx-components/map';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { debounce, merge } from 'lodash-es';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MapEventInfoComponent } from './map-event-info.component';\nimport { MapWidgetConfig } from './map-widget.model';\n\n@Component({\n selector: 'c8y-map-widget',\n templateUrl: './map-widget.component.html',\n standalone: true,\n imports: [\n MapEventInfoComponent,\n NgCommonModule,\n NgFormsModule,\n CommonModule,\n FormsModule,\n IconSelectorModule,\n MapModule,\n AssetLinkPipe,\n TooltipModule,\n RouterLink,\n GlobalContextWidgetWrapperComponent\n ]\n})\nexport class MapWidgetComponent implements OnInit, OnDestroy, AfterViewInit, DynamicComponent {\n mapConfig: ClusterMapConfig = { center: [0, 0] };\n rootNode: IIdentified;\n @Input() config: MapWidgetConfig;\n\n @ViewChild(ClusterMapComponent)\n clusterMap: ClusterMapComponent;\n alerts: DynamicComponentAlertAggregator;\n assets: PositionManagedObject[];\n\n private TIMEOUT_ERROR_TEXT = gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n );\n private SERVER_ERROR_TEXT = gettext('Server error occurred.');\n private savedNode: IIdentified;\n private destroy$ = new Subject<void>();\n private resizeObserver: ResizeObserver;\n controls: WidgetControls;\n\n constructor(\n dashboardChild: DashboardChildComponent,\n @Optional() private dashboardContextComponent: ContextDashboardComponent,\n private inventory: InventoryService,\n private mapService: MapService,\n @Optional() private widgetsDashboardComponent: WidgetsDashboardComponent,\n private dynamicComponentService: DynamicComponentService,\n private widgetConfigMigrationService: WidgetConfigMigrationService\n ) {\n this.listenToWidgetResizeEvent(dashboardChild);\n }\n\n async ngOnInit() {\n this.alerts.setAlertGroupDismissStrategy(\n 'warning',\n DismissAlertStrategy.TEMPORARY_OR_PERMANENT\n );\n\n await this.applyDeviceTypeTarget();\n\n if (this.config.device) {\n this.rootNode = this.config.device;\n }\n this.mapConfig = { ...this.config.mapConfig };\n\n // Check for legacy widget BEFORE updateMapConfigRealtime() overwrites it\n const isLegacyWidgetWithRealtime =\n !this.config.hasOwnProperty('displayMode') && this.mapConfig.realtime;\n\n this.updateMapConfigRealtime();\n this.savedNode = this.rootNode;\n await this.updateAssets();\n\n const migratedConfig = this.widgetConfigMigrationService.migrateWidgetConfig(this.config);\n this.config = merge(this.config, migratedConfig);\n\n // For legacy widgets (with realtime), set displayMode to 'view_and_config' to maintain previous behavior to some degree\n // TODO: adjust widgetConfigMigrationService.migrateWidgetConfig or do nothing.\n // Map widget is a special case since it blocks auto-refresh in the config live mode.\n if (isLegacyWidgetWithRealtime) {\n this.config.displayMode = GLOBAL_CONTEXT_DISPLAY_MODE.VIEW_AND_CONFIG;\n }\n\n if (this.assets.length > 1) {\n this.mapConfig = {\n ...this.mapConfig,\n follow: false\n };\n }\n\n this.controls =\n (await this.dynamicComponentService.getById(defaultWidgetIds.MAP)).data?.widgetControls || {};\n }\n\n ngAfterViewInit(): void {\n this.subscribeToErrorsOccurred();\n\n if (this.widgetsDashboardComponent) {\n const resizeCallback = debounce(() => {\n // initial size of map is assigned when left drawer is closed, but if it is opened after initialization\n // the map size is not updated, so we need to call invalidateSize so that map use the correct size\n this.clusterMap.map?.invalidateSize(false);\n }, 100);\n this.resizeObserver = new ResizeObserver(resizeCallback);\n\n this.resizeObserver.observe(this.widgetsDashboardComponent.nativeElement);\n }\n }\n\n startFollow(context) {\n if (context.id !== this.rootNode?.id) {\n this.rootNode = context;\n }\n\n this.mapConfig = {\n ...this.mapConfig,\n follow: true\n };\n }\n\n stopFollow() {\n this.mapConfig = {\n ...this.mapConfig,\n follow: false\n };\n this.rootNode = this.savedNode;\n }\n\n ngOnDestroy(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.destroy$.next();\n }\n\n async fitToBounds() {\n await this.updateAssets();\n if (this.assets.length === 0 || !this.clusterMap?.map) {\n return;\n }\n\n const bounds = await this.mapService.getAssetsBounds(this.assets);\n\n this.clusterMap.map.fitBounds(bounds, defaultFitBoundsOptions);\n }\n\n async onGlobalContext(event) {\n const { context } = event;\n\n const isRealtime = this.mapConfig.realtime;\n if (!isRealtime && context.isAutoRefreshEnabled) {\n // If follow is enabled, fetch latest position and center map before reload\n if (this.mapConfig.follow && this.config.device?.c8y_Position) {\n await this.updateAssets();\n if (this.assets?.length === 1) {\n // Update clusterMap's asset so marker can be rendered even if cluster query returns 0 positions\n (this.clusterMap as any).assets = this.assets[0];\n this.clusterMap?.moveToPositionOfMo(this.assets[0]);\n // Prevent cluster subscription from re-centering to same position\n const pos = this.assets[0].c8y_Position;\n (this.clusterMap as any).lastFollowedPosition = { lat: pos.lat, lng: pos.lng };\n }\n }\n\n this.clusterMap?.reload();\n }\n }\n\n private async updateAssets() {\n this.assets = (await this.mapService.getAllPositionMOs(this.config.device)).data;\n }\n\n private listenToWidgetResizeEvent(dashboardChild: DashboardChildComponent) {\n dashboardChild.changeEnd\n .pipe(\n filter(child => child.lastChange === 'resize'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.clusterMap.reset();\n });\n }\n\n private subscribeToErrorsOccurred() {\n this.clusterMap.errorNotifier\n .pipe(filter(Boolean), takeUntil(this.destroy$))\n .subscribe(error => {\n this.alerts.addAlerts(\n new DynamicComponentAlert({\n type: 'warning',\n text:\n error?.name === 'TimeoutError'\n ? this.TIMEOUT_ERROR_TEXT\n : (error?.message ?? this.SERVER_ERROR_TEXT)\n })\n );\n });\n }\n\n private updateMapConfigRealtime() {\n this.mapConfig.realtime = this.config.realtime || false;\n }\n\n private async applyDeviceTypeTarget() {\n const hasDeviceTarget = !!this.config.device; // The map widget supports not selecting any target\n const isDeviceTypeDashboard = !!this.dashboardContextComponent?.dashboard?.deviceType;\n if (isDeviceTypeDashboard && hasDeviceTarget) {\n const context = this.dashboardContextComponent.context;\n if (context?.id) {\n const { id } = context;\n this.config.device = (await this.inventory.detail(id)).data;\n }\n }\n }\n}\n","@if (mapConfig) {\n <c8y-map-status\n [clusterMap]=\"mapWidget\"\n [(config)]=\"mapConfig\"\n (onUnfollow)=\"stopFollow()\"\n (fitAssetsToBounds)=\"fitToBounds()\"\n [assets]=\"assets\"\n [buttonsConfig]=\"{\n autoRefresh: { show: false },\n refresh: { show: false },\n realtime: { show: false },\n fitToBounds: { show: true }\n }\"\n >\n <c8y-global-context-widget-wrapper\n *ngIf=\"controls\"\n [widgetControls]=\"controls\"\n [config]=\"config\"\n [isLoading]=\"mapWidget.isLoading$ | async\"\n (globalContextChange)=\"onGlobalContext($event)\"\n ></c8y-global-context-widget-wrapper>\n </c8y-map-status>\n\n <c8y-cluster-map\n #mapWidget\n [rootNode]=\"rootNode\"\n [config]=\"mapConfig\"\n [asset]=\"assets\"\n >\n <div\n class=\"map-marker\"\n *c8yMapPopup=\"let context\"\n >\n <a\n class=\"text-truncate deviceLink text-12\"\n routerLink=\"{{ context | assetLink }}\"\n >\n <strong>{{ context.name }}</strong>\n </a>\n <c8y-map-event-info [asset]=\"context\">\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Activate realtime on this asset and follow it if it moves' | translate\"\n type=\"button\"\n (click)=\"startFollow(context)\"\n *ngIf=\"!mapConfig.follow\"\n translate\n >\n Follow\n </button>\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Stop following this asset.' | translate\"\n type=\"button\"\n (click)=\"stopFollow()\"\n *ngIf=\"mapConfig.follow\"\n translate\n >\n Unfollow\n </button>\n </c8y-map-event-info>\n </div>\n </c8y-cluster-map>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgCommonModule","i4","NgFormsModule","CommonModule","FormsModule","i6","i1","i2","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-implementations-map.mjs","sources":["../../widgets/implementations/map/map-event-info.component.ts","../../widgets/implementations/map/map-event-info.component.html","../../widgets/implementations/map/map-widget-config.component.ts","../../widgets/implementations/map/map-widget-config.component.html","../../widgets/implementations/map/map-widget.component.ts","../../widgets/implementations/map/map-widget.component.html","../../widgets/implementations/map/c8y-ngx-components-widgets-implementations-map.ts"],"sourcesContent":["import { CommonModule as NgCommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { EventService, IEvent, IManagedObject } from '@c8y/client';\nimport { C8yTranslateDirective, DatePipe, LoadingComponent } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-map-event-info',\n templateUrl: './map-event-info.component.html',\n standalone: true,\n imports: [NgCommonModule, C8yTranslateDirective, DatePipe, LoadingComponent]\n})\nexport class MapEventInfoComponent implements OnChanges {\n @Input()\n asset: IManagedObject;\n\n loading = true;\n\n event: IEvent;\n\n constructor(private eventService: EventService) {}\n\n async ngOnChanges() {\n this.loading = true;\n const { data } = await this.eventService.list({\n dateFrom: '1970-01-01',\n dateTo: new Date(Date.now()).toISOString(),\n fragmentType: 'c8y_Position',\n pageSize: 1,\n source: this.asset.id\n });\n this.event = data[0];\n this.loading = false;\n }\n}\n","<div class=\"text-muted text-10 p-t-4 p-b-4\">\n <span translate>Last position update:</span>\n <br />\n <c8y-loading *ngIf=\"loading\"></c8y-loading>\n <ng-container *ngIf=\"!loading\">\n <i *ngIf=\"!event\" translate>No information found</i>\n <ng-container *ngIf=\"event\">\n <i>{{ event.time | c8yDate }}</i>\n <ng-content></ng-content>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {\n ControlContainer,\n NgForm,\n FormsModule as NgFormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport type { IIdentified } from '@c8y/client';\nimport { AlertService, C8yTranslatePipe, CommonModule, FormsModule } from '@c8y/ngx-components';\nimport { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { GLOBAL_CONTEXT_DISPLAY_MODE, RefreshOption } from '@c8y/ngx-components/global-context';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport {\n ClusterMapConfig,\n defaultFitBoundsOptions,\n MAP_DEFAULT_CONFIG,\n MapComponent,\n MapModule,\n MapService,\n PositionManagedObject\n} from '@c8y/ngx-components/map';\nimport type { MapDefaultConfig } from '@c8y/options';\nimport { TranslateService } from '@ngx-translate/core';\nimport type L from 'leaflet';\nimport { isUndefined } from 'lodash';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { combineLatestWith, take, takeUntil } from 'rxjs/operators';\nimport { MapWidgetConfig } from './map-widget.model';\n\n@Component({\n selector: 'c8y-map-widget-config',\n templateUrl: './map-widget-config.component.html',\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\n standalone: true,\n imports: [\n NgCommonModule,\n NgFormsModule,\n CommonModule,\n FormsModule,\n IconSelectorModule,\n MapModule,\n TooltipModule,\n ReactiveFormsModule,\n PopoverModule,\n C8yTranslatePipe\n ]\n})\nexport class MapWidgetConfigComponent implements OnInit, OnChanges, OnDestroy {\n @Input() config: MapWidgetConfig = {\n mapConfig: undefined\n };\n formConfig: ClusterMapConfig;\n\n readonly device = signal<IIdentified | undefined>(undefined);\n readonly assets = signal<PositionManagedObject[]>([]);\n\n readonly canAutoCenter = computed(() => {\n const assetsList = this.assets();\n const deviceValue = this.device();\n\n const isSingleAsset = assetsList?.length === 1;\n const idMatchesDevice = deviceValue?.id === assetsList[0]?.id;\n\n if (isSingleAsset && idMatchesDevice) {\n return this.mapService.hasPosition(assetsList[0]);\n }\n return false;\n });\n\n readonly isPositionedDevice = computed(() => {\n const assetsList = this.assets();\n const deviceValue = this.device();\n\n const isSingleAsset = assetsList?.length === 1;\n const idMatchesDevice = deviceValue?.id === assetsList[0]?.id;\n\n if (isSingleAsset && idMatchesDevice) {\n return this.mapService.isPositionedDevice(assetsList[0]);\n }\n return false;\n });\n\n refreshOption: RefreshOption = 'live';\n\n private destroyed$ = new Subject<void>();\n private leaflet: typeof L;\n private centerIcon: L.Marker;\n // JS precision for floating point number is 15 for 64-bit and because of this provided to leaflet are recalculated\n // to values almost-like provided (e.g. 0 is recalculated to 1.46e-14; for 180 it's 180.00000000000003).\n // To ensure provided value has no floating point error, number needs to be rounded to fixed point 13.\n private readonly FIXED_POINT_DIGITS = 13;\n\n @ViewChild(MapComponent)\n previewMap: MapComponent;\n\n @ViewChild('previewMap')\n set previewMapSet(template: TemplateRef<any>) {\n if (template) {\n this.widgetConfigService.setPreview(template);\n return;\n }\n this.widgetConfigService.setPreview(null);\n }\n\n constructor(\n private mapService: MapService,\n private alertService: AlertService,\n private translateService: TranslateService,\n @Inject(MAP_DEFAULT_CONFIG) private defaultMapConfig: Observable<MapDefaultConfig>,\n private widgetConfigService: WidgetConfigService\n ) {}\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n }\n\n ngOnInit() {\n this.device.set(this.config.device);\n\n this.defaultMapConfig.pipe(takeUntil(this.destroyed$)).subscribe(defaultConfig => {\n this.formConfig = {\n zoomLevel: defaultConfig.zoomLevel,\n center: defaultConfig.center\n };\n this.initForm();\n });\n }\n\n async initForm() {\n if (!this.config.mapConfig) {\n this.config.mapConfig = this.formConfig;\n }\n\n this.formConfig = {\n ...this.formConfig,\n ...this.config.mapConfig,\n disablePan: false,\n displayMode: this.config.mapConfig?.displayMode ?? GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD,\n // Keep both in sync\n realtime:\n this.config.mapConfig?.isRealtimeEnabled ?? this.config.mapConfig?.realtime ?? false,\n refreshOption: this.config.mapConfig?.refreshOption,\n refreshInterval: this.config.mapConfig?.refreshInterval ?? 30_000\n };\n\n await this.updateAsset();\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.config) {\n this.device.set(this.config.device);\n\n if (\n changes.config.currentValue !== changes.config.previousValue &&\n !changes.config.firstChange\n ) {\n await this.updateAsset();\n }\n }\n }\n\n previewMapInit(leaflet: typeof L): void {\n this.leaflet = leaflet;\n this.addCenterIcon(this.formConfig.center[0], this.formConfig.center[1]);\n }\n\n onBeforeSave() {\n this.config.mapConfig = this.formConfig;\n return true;\n }\n\n zoomLevelChanged() {\n this.config.mapConfig = {\n ...this.config.mapConfig,\n zoomLevel: this.formConfig.zoomLevel\n };\n }\n\n changeCenter() {\n if (this.centerIcon) {\n this.centerIcon.remove();\n }\n this.config.mapConfig = { ...this.formConfig, center: [...this.formConfig.center] };\n this.addCenterIcon(this.formConfig.center[0], this.formConfig.center[1]);\n }\n\n changeCenterOnEnterKey(event: KeyboardEvent): void {\n event.preventDefault();\n this.changeCenter();\n }\n\n onPreviewZoomStart() {\n this.centerIcon.remove();\n }\n\n onPreviewZoomEnd(event: L.LeafletEvent) {\n this.formConfig.zoomLevel = Math.floor(event.target.getZoom());\n }\n\n onPreviewMapMove(event: L.LeafletEvent) {\n if (this.centerIcon) {\n this.centerIcon.remove();\n }\n const { lat, lng } = event.target.getCenter();\n const fixedLat = +lat.toFixed(this.FIXED_POINT_DIGITS);\n const fixedLng = +lng.toFixed(this.FIXED_POINT_DIGITS);\n this.addCenterIcon(fixedLat, fixedLng);\n this.formConfig.center = [fixedLat, fixedLng];\n }\n\n useOwnPosition() {\n navigator.geolocation.getCurrentPosition(({ coords }) => {\n this.formConfig.center = [coords.latitude, coords.longitude];\n this.changeCenter();\n });\n }\n\n centerToAsset() {\n this.formConfig.center = [\n this.config.device.c8y_Position.lat,\n this.config.device.c8y_Position.lng\n ];\n this.changeCenter();\n }\n\n async fitToBounds() {\n const assetsList = this.assets();\n if (!assetsList?.length || !this.previewMap?.map) {\n return;\n }\n\n const bounds = await this.mapService.getAssetsBounds(assetsList);\n\n // map.fitBounds causes zoom and move events, so get new center and zoom level only when these events are finished\n fromEvent<L.LeafletEvent>(this.previewMap.map, 'moveend')\n .pipe(combineLatestWith(fromEvent<L.LeafletEvent>(this.previewMap.map, 'zoomend')), take(1))\n .subscribe(() => {\n const center = this.previewMap.map.getCenter();\n const zoom = this.previewMap.map.getZoom();\n\n const fixedLat = +center.lat.toFixed(this.FIXED_POINT_DIGITS);\n const fixedLng = +center.lng.toFixed(this.FIXED_POINT_DIGITS);\n this.formConfig.center = [fixedLat, fixedLng];\n this.formConfig.zoomLevel = Math.floor(zoom);\n\n this.changeCenter();\n });\n\n this.previewMap.map.fitBounds(bounds, defaultFitBoundsOptions);\n }\n\n selectIcon(icon: string) {\n this.formConfig.icon = icon;\n this.config.mapConfig.icon = icon;\n this.previewMap.refreshMarkers();\n }\n\n private async updateAsset() {\n const { data, paging } = await this.mapService.getAllPositionMOs(this.device());\n const onlyAssetsWithLatLng = data.filter(\n asset => !isUndefined(asset.c8y_Position?.lat) && !isUndefined(asset.c8y_Position?.lng)\n );\n\n this.assets.set(onlyAssetsWithLatLng);\n\n if (paging.totalPages > 1) {\n this.alertService.danger(\n gettext(\n 'It might be possible that assets are not shown in the preview, as the current selection has more than 500 assets and the preview only supports a maximum of 500 assets.'\n )\n );\n }\n }\n\n private addCenterIcon(lat: number, lng: number) {\n const titleText = this.translateService.instant(gettext('Map center'));\n const icon = this.leaflet.divIcon({\n html: `<i style=\"pointer-events: none\" class=\"c8y-map-marker-icon text-muted dlt-c8y-icon-target icon-2x\" title=\"${titleText}\" />`\n });\n this.centerIcon = this.leaflet.marker([lat, lng], {\n icon\n });\n this.previewMap.addMarkerToMap(this.centerIcon);\n }\n}\n","@if (formConfig) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Map' | translate }}</legend>\n <div class=\"row tight-grid\">\n <div class=\"col-xs-3\">\n <c8y-form-group class=\"m-b-16 text-center form-group-sm\">\n <label translate>Marker icon</label>\n <c8y-icon-selector-wrapper\n [canRemoveIcon]=\"true\"\n [selectedIcon]=\"formConfig.icon\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-9\">\n <div class=\"form-group form-group-sm\">\n <label translate>Zoom level</label>\n <c8y-range\n class=\"label-bottom\"\n name=\"zoomLevel\"\n #range\n [(ngModel)]=\"formConfig.zoomLevel\"\n (change)=\"zoomLevelChanged()\"\n >\n <input\n type=\"range\"\n min=\"0\"\n max=\"18\"\n step=\"1\"\n />\n </c8y-range>\n </div>\n </div>\n </div>\n <c8y-form-group class=\"form-group-sm\">\n <label translate>Center bound</label>\n <div class=\"input-group input-group-sm\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'lat.`latitude`' | translate }}\"\n name=\"centerLat\"\n type=\"number\"\n required\n [(ngModel)]=\"formConfig.center[0]\"\n (change)=\"changeCenter()\"\n (keydown.enter)=\"changeCenterOnEnterKey($event)\"\n min=\"-90\"\n max=\"90\"\n step=\"0.1\"\n />\n <input\n class=\"form-control\"\n placeholder=\"{{ 'lng.`longitude`' | translate }}\"\n name=\"centerLng\"\n type=\"number\"\n required\n min=\"-180\"\n max=\"180\"\n [(ngModel)]=\"formConfig.center[1]\"\n (change)=\"changeCenter()\"\n (keydown.enter)=\"changeCenterOnEnterKey($event)\"\n min=\"-180\"\n max=\"180\"\n step=\"0.1\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Use your location' | translate\"\n [tooltip]=\"'Use your location' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"useOwnPosition()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"location-arrow\"\n ></i>\n </button>\n </div>\n <div class=\"input-group-btn\">\n @if (canAutoCenter()) {\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Use selected asset location' | translate\"\n [tooltip]=\"'Use selected asset location' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"centerToAsset()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"location\"\n ></i>\n </button>\n } @else {\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Fit to assets bounds' | translate\"\n [tooltip]=\"'Fit to assets bounds' | translate\"\n placement=\"top\"\n container=\"body\"\n (click)=\"fitToBounds()\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"waypoint-map\"\n ></i>\n </button>\n }\n </div>\n </div>\n\n <c8y-messages\n [helpMessage]=\"'Drag the map to the desired position' | translate\"\n ></c8y-messages>\n </c8y-form-group>\n </fieldset>\n\n @if (isPositionedDevice()) {\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Follow' | translate }}</legend>\n <div class=\"row tight-grid d-flex a-i-center\">\n <div class=\"col-xs-12\">\n <div class=\"form-group form-group-sm m-b-16\">\n <label class=\"c8y-switch c8y-switch--inline\">\n <input\n name=\"follow\"\n type=\"checkbox\"\n [(ngModel)]=\"formConfig.follow\"\n />\n <span></span>\n <span\n class=\"text-12\"\n translate\n >\n Follow selected\n </span>\n </label>\n </div>\n </div>\n </div>\n </fieldset>\n }\n}\n\n<ng-template #previewMap>\n <div style=\"width: 100%; height: 100%\">\n @if (config.mapConfig) {\n <c8y-map\n [assets]=\"assets()\"\n [config]=\"config.mapConfig\"\n (onMove)=\"onPreviewMapMove($event)\"\n (onZoomStart)=\"onPreviewZoomStart()\"\n (onZoomEnd)=\"onPreviewZoomEnd($event)\"\n (onInit)=\"previewMapInit($event)\"\n ></c8y-map>\n }\n </div>\n</ng-template>\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { FormsModule as NgFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { IIdentified, InventoryService } from '@c8y/client';\nimport {\n AssetLinkPipe,\n CommonModule,\n DashboardChildComponent,\n DismissAlertStrategy,\n DynamicComponent,\n DynamicComponentAlert,\n DynamicComponentAlertAggregator,\n DynamicComponentService,\n FormsModule,\n WidgetsDashboardComponent\n} from '@c8y/ngx-components';\nimport { ContextDashboardComponent } from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n GLOBAL_CONTEXT_DISPLAY_MODE,\n GlobalContextWidgetWrapperComponent,\n WidgetConfigMigrationService,\n WidgetControls\n} from '@c8y/ngx-components/global-context';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport {\n ClusterMapComponent,\n ClusterMapConfig,\n defaultFitBoundsOptions,\n MapModule,\n MapService,\n PositionManagedObject\n} from '@c8y/ngx-components/map';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { debounce, merge } from 'lodash-es';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { MapEventInfoComponent } from './map-event-info.component';\nimport { MapWidgetConfig } from './map-widget.model';\n\n@Component({\n selector: 'c8y-map-widget',\n templateUrl: './map-widget.component.html',\n standalone: true,\n imports: [\n MapEventInfoComponent,\n NgCommonModule,\n NgFormsModule,\n CommonModule,\n FormsModule,\n IconSelectorModule,\n MapModule,\n AssetLinkPipe,\n TooltipModule,\n RouterLink,\n GlobalContextWidgetWrapperComponent\n ]\n})\nexport class MapWidgetComponent implements OnInit, OnDestroy, AfterViewInit, DynamicComponent {\n mapConfig: ClusterMapConfig = { center: [0, 0] };\n rootNode: IIdentified;\n @Input() config: MapWidgetConfig;\n\n @ViewChild(ClusterMapComponent)\n clusterMap: ClusterMapComponent;\n alerts: DynamicComponentAlertAggregator;\n assets: PositionManagedObject[];\n\n private TIMEOUT_ERROR_TEXT = gettext(\n 'The request is taking longer than usual. We apologize for the inconvenience.'\n );\n private SERVER_ERROR_TEXT = gettext('Server error occurred.');\n private savedNode: IIdentified;\n private destroy$ = new Subject<void>();\n private resizeObserver: ResizeObserver;\n controls: WidgetControls;\n\n constructor(\n dashboardChild: DashboardChildComponent,\n @Optional() private dashboardContextComponent: ContextDashboardComponent,\n private inventory: InventoryService,\n private mapService: MapService,\n @Optional() private widgetsDashboardComponent: WidgetsDashboardComponent,\n private dynamicComponentService: DynamicComponentService,\n private widgetConfigMigrationService: WidgetConfigMigrationService\n ) {\n this.listenToWidgetResizeEvent(dashboardChild);\n }\n\n async ngOnInit() {\n this.alerts.setAlertGroupDismissStrategy(\n 'warning',\n DismissAlertStrategy.TEMPORARY_OR_PERMANENT\n );\n\n await this.applyDeviceTypeTarget();\n\n if (this.config.device) {\n this.rootNode = this.config.device;\n }\n this.mapConfig = { ...this.config.mapConfig };\n\n // Check for legacy widget BEFORE updateMapConfigRealtime() overwrites it\n const isLegacyWidgetWithRealtime =\n !this.config.hasOwnProperty('displayMode') && this.mapConfig.realtime;\n\n this.updateMapConfigRealtime();\n this.savedNode = this.rootNode;\n await this.updateAssets();\n\n const migratedConfig = this.widgetConfigMigrationService.migrateWidgetConfig(this.config);\n this.config = merge(this.config, migratedConfig);\n\n // For legacy widgets (with realtime), set displayMode to 'view_and_config' to maintain previous behavior to some degree\n // TODO: adjust widgetConfigMigrationService.migrateWidgetConfig or do nothing.\n // Map widget is a special case since it blocks auto-refresh in the config live mode.\n if (isLegacyWidgetWithRealtime) {\n this.config.displayMode = GLOBAL_CONTEXT_DISPLAY_MODE.VIEW_AND_CONFIG;\n }\n\n if (this.assets.length > 1) {\n this.mapConfig = {\n ...this.mapConfig,\n follow: false\n };\n }\n\n this.controls =\n (await this.dynamicComponentService.getById(defaultWidgetIds.MAP)).data?.widgetControls || {};\n }\n\n ngAfterViewInit(): void {\n this.subscribeToErrorsOccurred();\n\n if (this.widgetsDashboardComponent) {\n const resizeCallback = debounce(() => {\n // initial size of map is assigned when left drawer is closed, but if it is opened after initialization\n // the map size is not updated, so we need to call invalidateSize so that map use the correct size\n this.clusterMap.map?.invalidateSize(false);\n }, 100);\n this.resizeObserver = new ResizeObserver(resizeCallback);\n\n this.resizeObserver.observe(this.widgetsDashboardComponent.nativeElement);\n }\n }\n\n startFollow(context) {\n if (context.id !== this.rootNode?.id) {\n this.rootNode = context;\n }\n\n this.mapConfig = {\n ...this.mapConfig,\n follow: true\n };\n }\n\n stopFollow() {\n this.mapConfig = {\n ...this.mapConfig,\n follow: false\n };\n this.rootNode = this.savedNode;\n }\n\n ngOnDestroy(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.destroy$.next();\n }\n\n async fitToBounds() {\n await this.updateAssets();\n if (this.assets.length === 0 || !this.clusterMap?.map) {\n return;\n }\n\n const bounds = await this.mapService.getAssetsBounds(this.assets);\n\n this.clusterMap.map.fitBounds(bounds, defaultFitBoundsOptions);\n }\n\n async onGlobalContext(event) {\n const { context } = event;\n\n const isRealtime = this.mapConfig.realtime;\n if (!isRealtime && context.isAutoRefreshEnabled) {\n // If follow is enabled, fetch latest position and center map before reload\n if (this.mapConfig.follow && this.config.device?.c8y_Position) {\n await this.updateAssets();\n if (this.assets?.length === 1) {\n // Update clusterMap's asset so marker can be rendered even if cluster query returns 0 positions\n (this.clusterMap as any).assets = this.assets[0];\n this.clusterMap?.moveToPositionOfMo(this.assets[0]);\n // Prevent cluster subscription from re-centering to same position\n const pos = this.assets[0].c8y_Position;\n (this.clusterMap as any).lastFollowedPosition = { lat: pos.lat, lng: pos.lng };\n }\n }\n\n this.clusterMap?.reload();\n }\n }\n\n private async updateAssets() {\n this.assets = (await this.mapService.getAllPositionMOs(this.config.device)).data;\n }\n\n private listenToWidgetResizeEvent(dashboardChild: DashboardChildComponent) {\n dashboardChild.changeEnd\n .pipe(\n filter(child => child.lastChange === 'resize'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.clusterMap.reset();\n });\n }\n\n private subscribeToErrorsOccurred() {\n this.clusterMap.errorNotifier\n .pipe(filter(Boolean), takeUntil(this.destroy$))\n .subscribe(error => {\n this.alerts.addAlerts(\n new DynamicComponentAlert({\n type: 'warning',\n text:\n error?.name === 'TimeoutError'\n ? this.TIMEOUT_ERROR_TEXT\n : (error?.message ?? this.SERVER_ERROR_TEXT)\n })\n );\n });\n }\n\n private updateMapConfigRealtime() {\n this.mapConfig.realtime = this.config.realtime || false;\n }\n\n private async applyDeviceTypeTarget() {\n const hasDeviceTarget = !!this.config.device; // The map widget supports not selecting any target\n const isDeviceTypeDashboard = !!this.dashboardContextComponent?.dashboard?.deviceType;\n if (isDeviceTypeDashboard && hasDeviceTarget) {\n const context = this.dashboardContextComponent.context;\n if (context?.id) {\n const { id } = context;\n this.config.device = (await this.inventory.detail(id)).data;\n }\n }\n }\n}\n","@if (mapConfig) {\n <c8y-map-status\n [clusterMap]=\"mapWidget\"\n [(config)]=\"mapConfig\"\n (onUnfollow)=\"stopFollow()\"\n (fitAssetsToBounds)=\"fitToBounds()\"\n [assets]=\"assets\"\n [buttonsConfig]=\"{\n autoRefresh: { show: false },\n refresh: { show: false },\n realtime: { show: false },\n fitToBounds: { show: true }\n }\"\n >\n <c8y-global-context-widget-wrapper\n *ngIf=\"controls\"\n [widgetControls]=\"controls\"\n [config]=\"config\"\n [isLoading]=\"mapWidget.isLoading$ | async\"\n (globalContextChange)=\"onGlobalContext($event)\"\n ></c8y-global-context-widget-wrapper>\n </c8y-map-status>\n\n <c8y-cluster-map\n #mapWidget\n [rootNode]=\"rootNode\"\n [config]=\"mapConfig\"\n [asset]=\"assets\"\n >\n <div\n class=\"map-marker\"\n *c8yMapPopup=\"let context\"\n >\n <a\n class=\"text-truncate deviceLink text-12\"\n routerLink=\"{{ context | assetLink }}\"\n >\n <strong>{{ context.name }}</strong>\n </a>\n <c8y-map-event-info [asset]=\"context\">\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Activate realtime on this asset and follow it if it moves' | translate\"\n type=\"button\"\n (click)=\"startFollow(context)\"\n *ngIf=\"!mapConfig.follow\"\n translate\n >\n Follow\n </button>\n <button\n class=\"btn btn-default btn-xs btn-block m-t-8\"\n [title]=\"'Stop following this asset.' | translate\"\n type=\"button\"\n (click)=\"stopFollow()\"\n *ngIf=\"mapConfig.follow\"\n translate\n >\n Unfollow\n </button>\n </c8y-map-event-info>\n </div>\n </c8y-cluster-map>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgCommonModule","i4","NgFormsModule","CommonModule","FormsModule","i6","i1","i2","i3","i5"],"mappings":"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"}
@@ -2496,6 +2496,11 @@ declare class GlobalContextInlineComponent implements OnInit, AfterViewInit, OnD
2496
2496
  config: _angular_core.InputSignal<GlobalContextState>;
2497
2497
  isLoading: _angular_core.InputSignal<boolean>;
2498
2498
  dashboardChildForLegacy: _angular_core.InputSignal<DashboardChildComponent>;
2499
+ /**
2500
+ * When true, disables refresh event emissions.
2501
+ * Use when widget handles its own data refresh (e.g., via realtime subscriptions).
2502
+ */
2503
+ disableRefreshEmits: _angular_core.InputSignal<boolean>;
2499
2504
  readonly refresh: _angular_core.OutputEmitterRef<Partial<DateTimeContext>>;
2500
2505
  readonly globalContextChange: _angular_core.OutputEmitterRef<Partial<GlobalContextState>>;
2501
2506
  private inlineOverrides;
@@ -2616,7 +2621,7 @@ declare class GlobalContextInlineComponent implements OnInit, AfterViewInit, OnD
2616
2621
  private getLinkContext;
2617
2622
  private createLinkContext;
2618
2623
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GlobalContextInlineComponent, never>;
2619
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GlobalContextInlineComponent, "c8y-global-context-inline", ["globalContextInline"], { "widgetControls": { "alias": "widgetControls"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "dashboardChildForLegacy": { "alias": "dashboardChildForLegacy"; "required": false; "isSignal": true; }; }, { "refresh": "refresh"; "globalContextChange": "globalContextChange"; }, never, ["#header", "#body"], true, never>;
2624
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GlobalContextInlineComponent, "c8y-global-context-inline", ["globalContextInline"], { "widgetControls": { "alias": "widgetControls"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "dashboardChildForLegacy": { "alias": "dashboardChildForLegacy"; "required": false; "isSignal": true; }; "disableRefreshEmits": { "alias": "disableRefreshEmits"; "required": false; "isSignal": true; }; }, { "refresh": "refresh"; "globalContextChange": "globalContextChange"; }, never, ["#header", "#body"], true, never>;
2620
2625
  }
2621
2626
 
2622
2627
  /**
@@ -3564,6 +3569,11 @@ declare class GlobalContextWidgetWrapperComponent implements OnInit {
3564
3569
  controlLinks: _angular_core.InputSignal<Partial<Record<"dateTimeContext" | "aggregation" | "isAutoRefreshEnabled", boolean>>>;
3565
3570
  dashboardChildForLegacy: _angular_core.InputSignal<DashboardChildComponent>;
3566
3571
  config: _angular_core.InputSignal<GlobalContextState>;
3572
+ /**
3573
+ * When true, disables refresh event emissions.
3574
+ * Use when widget handles its own data refresh (e.g., via realtime subscriptions).
3575
+ */
3576
+ disableRefreshEmits: _angular_core.InputSignal<boolean>;
3567
3577
  internalConfig: WritableSignal<GlobalContextState>;
3568
3578
  private widgetInitialConfig;
3569
3579
  private lastEmittedState;
@@ -3626,7 +3636,7 @@ declare class GlobalContextWidgetWrapperComponent implements OnInit {
3626
3636
  */
3627
3637
  private _processConfigDiff;
3628
3638
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GlobalContextWidgetWrapperComponent, never>;
3629
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<GlobalContextWidgetWrapperComponent, "c8y-global-context-widget-wrapper", never, { "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "widgetControlsConfig": { "alias": "widgetControls"; "required": true; "isSignal": true; }; "controlLinks": { "alias": "controlLinks"; "required": false; "isSignal": true; }; "dashboardChildForLegacy": { "alias": "dashboardChildForLegacy"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; }, { "globalContextChange": "globalContextChange"; }, ["widgetBodyRef", "widgetHeaderRef"], ["*"], true, never>;
3639
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GlobalContextWidgetWrapperComponent, "c8y-global-context-widget-wrapper", never, { "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "widgetControlsConfig": { "alias": "widgetControls"; "required": true; "isSignal": true; }; "controlLinks": { "alias": "controlLinks"; "required": false; "isSignal": true; }; "dashboardChildForLegacy": { "alias": "dashboardChildForLegacy"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "disableRefreshEmits": { "alias": "disableRefreshEmits"; "required": false; "isSignal": true; }; }, { "globalContextChange": "globalContextChange"; }, ["widgetBodyRef", "widgetHeaderRef"], ["*"], true, never>;
3630
3640
  }
3631
3641
 
3632
3642
  type DisplayMode = GlobalContextDisplayMode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../global-context/models/auto-refresh.model.ts","../../global-context/models/control-flow.model.ts","../../global-context/models/interval-picker.model.ts","../../global-context/models/date-time-context-picker.model.ts","../../global-context/models/global-context.model.ts","../../global-context/models/global-context-defaults.ts","../../global-context/models/aggregation.model.ts","../../global-context/models/context-config.model.ts","../../global-context/models/constants.ts","../../global-context/services/state/global-context.service.ts","../../global-context/services/state/global-context-form.service.ts","../../global-context/services/state/global-context-event.service.ts","../../global-context/services/domain/widget-control.service.ts","../../global-context/services/domain/date-time-context-picker.service.ts","../../global-context/services/domain/widget-config-migration.service.ts","../../global-context/services/domain/global-context-validation.service.ts","../../global-context/services/domain/aggregation-picker.service.ts","../../global-context/services/domain/aggregation-validation.service.ts","../../global-context/services/infrastructure/global-context-utils.service.ts","../../global-context/services/infrastructure/global-context-navigation.service.ts","../../global-context/services/infrastructure/global-context-query.service.ts","../../global-context/features/configuration/configuration-collapse/configuration-collapse.component.ts","../../global-context/core/global-context.component.ts","../../global-context/core/global-context-inline.component.ts","../../global-context/core/global-context-config.component.ts","../../global-context/core/global-context-widget-config.component.ts","../../global-context/core/widget-inline/inline-context.models.ts","../../global-context/core/widget-inline/inline-link-controls.component.ts","../../global-context/features/time-context/time-range-picker/date-time-context-picker.component.ts","../../global-context/features/time-context/time-range-display/time-range-display.component.ts","../../global-context/features/time-context/interval-picker/interval-picker.component.ts","../../global-context/features/aggregation/aggregation-picker/aggregation-picker.component.ts","../../global-context/features/aggregation/aggregation-display/aggregation-display.component.ts","../../global-context/features/refresh/auto-refresh/auto-refresh-control.component.ts","../../global-context/features/refresh/realtime-control/realtime-control.component.ts","../../global-context/features/configuration/config-context-selector/config-context-selector.component.ts","../../global-context/features/configuration/configuration-controls/configuration-controls.component.ts","../../global-context/features/configuration/live-mode-configuration-controls/live-mode-configuration-controls.component.ts","../../global-context/features/configuration/history-mode-configuration-controls/history-mode-configuration-controls.component.ts","../../global-context/shared/context-controls/context-controls.component.ts","../../global-context/shared/preview-controls/preview-controls.component.ts","../../global-context/integration/widget-controls/widget-controls-factory.ts","../../global-context/integration/widget-controls/guards.ts","../../global-context/integration/widget-controls/update-helpers.ts","../../global-context/integration/widget-controls/default-widget-template.ts","../../global-context/integration/widget-controls/widget-controls-presets.ts","../../global-context/integration/widget-wrapper/global-context-widget-wrapper.component.ts","../../global-context/integration/presets/control-presets.ts","../../global-context/integration/config-mode-controls/config-mode-controls.component.ts","../../global-context/integration/global-context-connector/global-context-connector.component.ts","../../global-context/integration/link-buttons/link-buttons.component.ts","../../global-context/integration/local-controls/local-controls.component.ts","../../global-context/global-context.module.ts","../../global-context/integration/widget-controls/widget-controls-presets.helpers.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;AAKM;;ACFN;;AAEG;AACH;AACG;;;;;;;;;;AAaA;;AAyBH;;AAEG;;AAED;;AAKD;AAED;;AAEG;AACG;AAON;;AAEG;;;;;;;;;AAYE;;AC5EL;;;;;;;AAQA;;;;;;;;;AAUM;AAEA;AACJ;;;;AAKI;;;;;AAQN;AA6BA;;;AChEE;AACA;;AAED;;;;AAKA;;ACLD;;;;;;;;AASA;AACE;AACA;AACA;AACD;AAEK;AAEN;;AAEG;;;AAGD;AACA;;;AAGA;AACD;AAED;;AAEG;;AAED;AACA;AACA;AACA;;;AACD;;;AAIC;AACA;;;AACA;AACG;;AAEA;;AAEH;AACG;;AAEA;;AAEH;AACG;AACE;AACF;;AAEH;;;AAGD;AAED;;;;;;;AAOC;AAED;;;;;AAKC;AAED;;;;;;;AAOG;;AAED;AACE;AACA;;;;AAIF;;;AAGA;AACD;AAED;AACM;AACN;AACM;;;AAIN;AACE;AACA;AACA;AACA;AACA;AACA;AACD;AAED;AACE;AACA;AACA;;AAGF;AACE;AACA;;;AAIF;;;AAGG;AACG;AACJ;AACA;;AAEA;AACA;AACA;;AAGF;;;;AAIG;AACG;AAIJ;;;AAKF;;;;AAKM;;;AAOJ;;;;AAIA;;;AAGA;;;AAGG;;AAEJ;AAED;;;AAGG;;;AAGD;;;;;;;;;AASD;AAED;;;AAGG;;;;;;;;;AASD;AACD;AAED;;;;;AAMM;;AAGJ;AACA;AACD;;AClOD;;;AAGG;AACH;;;;;;;;;;;;;;;;;ACJM;AACJ;;;AAIF;AAOA;;;;;AAMA;;;;;;AAOM;AAGN;AAOA;AAYA;;;;;;AAOA;AAOA;;;;;;AAOA;;;AAGG;AACG;AACN;;;AAGG;AACG;AACH;;;;;AAMF;;ACxFD;;AAEG;;AAED;;AAED;;ACND;;AAEG;AACH;;;;;;;;AASA;;AAEG;AACH;;;;;;;;;;AAWA;;AAEG;AACH;;;;;ACvBA;;AAEG;AACH;;AAEE;AACD;AAaD;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACH;AAIE;;;AAGG;;;AAIH;;AAGA;;AAGA;AAEA;;;;;;;;;;;;;;;;AAgBG;AACH;AAkBA;;;;AAIG;;AAKH;;;AAGG;AACH;AAIA;;;;;;;;;AASG;AACH;AAWA;;;;;;;;;;;;;;;;;AAiBG;AACH;AAQA;;;;;AAKG;AACH;AAIA;;;;;;;;;;;AAWG;AACH;AAUA;;;;;;;;;;AAUG;AACH;AAUA;;;;;;;;;;;AAWG;AACH;AAIA;;;;;AAKG;AACH;AAMA;;;;;;AAMG;AACH;AAOA;;;;;;AAMG;AACH;AAUA;;;;;AAKG;AACH;AAOA;;;;;AAKG;AACH;AAeA;;;;;;AAMG;AACH;;;AASD;;AClUD;;AAEG;AACH;AAIE;AAEA;;;;;AAKG;;;;;;;;;;;;AAoBH;;;;AAIG;AACH;AAgBA;;AAEG;AACH;AAIA;;AAEG;AACH;;;AAsCD;;AC3FD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACH;;AAKE;;AAMA;AAKA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACH;AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACH;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACH;AAcA;;;;;;;;;;;;;;;;;;AAkBG;AACH;AAgCA;;;;;AAKG;AACH;AAMA;;;;;AAKG;AACH;AAeA;;;;;;AAMG;AACH;AAcA;;;AAGG;AACH;;;AAYD;;AClTD;;;AAGG;;;AAGD;;;;AAIA;AACD;AAED;;;;;;;;;;AAUG;AACH;AAME;;;;;;;;AAQG;AACH;AA4BA;;;;;;;;AAQG;AACH;AAaA;;;;;;;;AAQG;AACH;AAUA;;;;;;;;AAQG;AACH;AAUA;;;;;;;;AAQG;AACH;AAUA;;;;;;;;AAQG;AACH;AAoBA;;;;;;;;AAQG;AACH;AAsBA;;;;;;AAMG;AACH;AAMA;;;;;;;;AAQG;AACH;;;AA6CD;;ACtRD;AAEE;;;;;;;;;;;;;;;;;AAiBG;;AAMH;;;;AAIG;;AAqBH;;;;;;;AAOG;;AAMH;;;;AAIG;AACH;;;AASD;;ACxED;;;;;;;;;AASG;;AAED;;;;AAIG;AACH;;;;;;;;;;AAWA;;;AAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH;;;AAGG;;;;;AAKJ;AAED;AAIc;AAAQ;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CG;AACH;AAiCA;;;;;;;;;;;AAWG;AACH;AAKA;;;;;;;;;;;;;;AAcG;AACH;AAgCA;;;;;;;;;AASG;AACH;AAWA;;;;;;;;;;;;;;;;;AAiBG;AACH;AA4BA;;;;;;;;;;;;;;;;;;AAkBG;AACH;AAwCA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH;AA6DA;;;;;;;;;;;;;AAaG;AACH;AAoBA;;;;;;;;;;;;AAYG;AACH;AAaA;;;;;;;;;;;;;AAaG;AACH;AAmBA;;;;;;;;;;;;;;AAcG;AACH;AAqBA;;;;;;;;;;;;;;;;;;AAkBG;AACH;AAmCA;;;;;;AAMG;AACH;AAOA;;;;;;;;AAQG;AACH;AAOA;;;;;;;;;AASG;AACH;AAWA;;;;;;;;;AASG;AACH;AAkBA;;;;;;;AAOG;AACH;AAWA;;;;;;;;;AASG;AACH;AA2CA;;AAEG;AACH;AAqBA;;;;;;AAMG;AACH;AAQA;;;;;;AAMG;AACH;AAIA;;;;;;;;;;;;;;;AAeG;AACH;AAmBA;;;;;;;;;AASG;AACH;;;AAuBD;;AC13BD;;;;;;;;;;;;;;AAcG;AACH;;AAIE;;;;;;;;;;;AAWG;AACH;AAOA;;;;;;;;;;;AAWG;AACH;AAOA;;;;;;;;;;;;AAYG;;AAKH;;;;;;;;;;;;;;;;AAgBG;;AAYH;;;;;;;;;;;;;;AAcG;;AAED;AACA;AACA;AACA;AACA;;;;;AAKA;AACD;;;AAWF;;AC3ID;;;AAGG;;;AAGD;;AAEA;AACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CG;AACH;;AAKE;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CG;AACH;AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACH;;;AAUD;;AC7KD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;AACH;AAIE;;;;;;;;;;;;;;;;;;;AAmBG;;AAQH;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACH;AAeA;;;;;;;;;;;;;;;;;;AAkBG;;AAaH;;;;;;;;;;;;;AAaG;AACH;AAmBA;;;;;;;;AAQG;AACH;;;AAWD;;ACjMD;AAIE;;;;;;;;;AASG;AACH;AAaA;;;;AAIG;AACH;AAIA;;;;;;AAMG;AACH;;;AAoED;;AC7GD;;AAEG;AACH;;;;;;;;;;AAWA;;AAEG;AACG;AAEN;;;AAGG;;;AAGD;;AAEA;;AAEA;AACD;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACH;;AAKE;;AAGA;;AAGA;;AAGA;AAKA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACH;AAuDA;;;;;;;;;;;;;;;;;AAiBG;AACH;AAIA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACH;AAQA;;;;;;;AAOG;AACH;AAoBA;;;;;;;;AAQG;AACH;AAiCA;AAiCA;;;;;AAKG;AACH;AAIA;;;;;AAKG;AACH;AAKA;;;;;AAKG;AACH;AAYA;;;;;AAKG;AACH;AAIA;;;;;;AAMG;AACH;AAiBA;;;;;AAKG;AACH;AAIA;AAIA;;;;;AAKG;AACH;AAIA;;;;;;AAMG;AACH;AAYA;;AAEG;AACH;;;AAGD;;ACzbD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AACH;;;;;AAOE;;;;AAIG;AACH;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACH;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDG;AACH;AAmGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CG;AACH;AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACH;AA4BA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACH;AAiBA;;;;;;;;;;;;;;;;;AAiBG;AACH;AAOA;;;;;;AAMG;AACH;AAqBA;;;;;;;;;AASG;AACH;AAgBA;;;;;;;;;AASG;AACH;AAgBA;;;;;;AAMG;AACH;AAoCA;;;;AAIG;AACH;AAgBA;;;;;;;;AAQG;AACH;;;AAqBD;;AC1lBD;AAiBE;;;AAAyC;;;;;;;;AAazC;AACA;;;AAYA;;;;AA8BA;AAIA;AASA;AAMA;;AA+CA;AAmBA;AA0BA;AAIA;AAIA;AAiBA;AAoBA;;;AAqBD;;ACnND;;;;;;;;;;;;;AAaG;AACH;AAeE;AACA;AACA;AACA;AACA;AACA;;;AAKA;AACA;AACA;AACA;;AAMA;;;;;AAKA;AACA;AACA;;;;AAqBA;AAWA;AAeA;;;AAwBA;;;AAwCA;AAcA;AAkBA;AAWA;AAWA;AAKA;AAYA;AAYA;AAIA;AAYA;AAUA;AAkBA;AAMA;AAOA;AAUA;AAQA;AAWA;AAKA;AAIA;AAaA;AAWA;;AAwBA;;;AAsFA;AAWA;AASA;AAIA;AAUA;AAWA;AAKA;AAQA;AAeA;AAcA;AAIA;AAOA;AAUA;AAIA;AAKA;AAiBA;;;;;;AAMG;AACH;;;AAyDD;;ACtoBD;AAqBE;;AAEA;;;AAAyC;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;AAYA;AAGA;;;;;;AAGG;AACH;;;;;;AAGG;;;AAKH;;;;;;;;;;;;AAcG;;AAGH;AACA;;;;;;;;AAsCA;AAGA;;AAYA;AAGA;AAGA;AAUA;AAOA;;;AAKG;AAIH;AAqBA;AAYA;;;;;;AAMG;AACH;AAYA;;;;;;AAMG;AACH;AAKA;AAmBA;AAUA;AAOA;AAmBA;AAGA;AAGA;AAIA;AAIA;AAGA;AAkBA;AAGA;AAGA;AAKA;AAGA;AAcA;AAiBA;AAGA;AAMA;AAIA;AAgBA;AAOA;AAUA;AA2BA;AAGA;AAGA;AAMA;AAsBA;AAUA;AAMA;AAaA;AAGA;AAMA;AAIA;AAGA;AA+BA;AAGA;AAWA;AAGA;AAIA;AAIA;AAGA;AAgBA;AAOA;;;AAgCD;;ACjsBD;;;;;;;;;AASG;AACH;AAeE;AAEA;AACA;AACA;AACA;AACA;;;;;;;AAUA;;;;;;AA2FA;AAOA;;;AAUD;;AC5ID;;;;;;AAMG;AACH;AAoDE;AACA;AACA;;;;AAMA;;AAGA;AACA;AACA;AAGA;AACA;;AAEA;AACA;AACA;;;AA6CA;AAQA;AAYA;AA2BA;AAWA;AAOA;AAoBA;AAgDA;AAUA;AAmBA;AAqBA;AAkBA;AAIA;;;AAGD;;;;;;;;;ACvVA;AAEK;;;AAGL;;ACLD;;AAEG;AACH;AAqDY;;;;;AAOV;AAKA;AAiBA;AAKA;AAKA;;AA4BwB;;AAIxB;AAAoB;;;AASpB;AAIA;;;AAeD;;AC7HD;AA2BW;AACA;;;AAQT;AACA;AACA;AACA;AACA;;;AAIA;;;;;;;;AAAuC;AAEvC;;;;;AAKW;;;;AAMX;AACA;AACA;AACA;;;;;AAOA;AAYA;;AAyBA;AAIA;AAKA;AAOA;AAcA;AAYA;;;AAwEA;;AAsBA;AA0BA;AAmCA;AAKA;AAOA;AAWA;AAMA;;;AAKD;;ACzXD;;;;AAQkC;;AAEvB;AAET;;;;;AAID;;ACPD;;;;;AAyBoE;AAElE;AACA;AACA;;AAKA;AAEA;AAIA;AAIA;;AAWA;;;;AASD;;AC5DD;AAeE;;;;;;AAMG;;AAUH;;;AAGG;;AAGH;;;AAGG;;AAGH;;;;;AAOA;;AAEA;;;;;AAiBA;AAEA;AAQA;AAIA;;;AAmBA;AAWA;;;AAMD;;ACrID;;;;;;AAWC;;ACwBD;;;;;AAKG;AACH;;;AAiBI;AAEO;AAET;AAcS;;;;;AAOT;AACA;AACA;;;;;AAYA;;;AAwBU;AAEA;AAEV;AAEA;AAGA;;;AAcA;;AAeA;AAIA;AAWA;;AASA;;;;AAIG;AACH;AAeA;AAiBA;AAUA;AAgBA;AAUA;;;AAMD;;AC/PD;;;;AAmBE;AACA;;;AAOA;AAEA;AAKA;AAIA;AAIA;AAOA;AAIA;;;AAID;;AC9CD;AAqEE;AACA;;AAIA;AAIA;AAKA;;AAeA;AAIA;;;AASA;AAOA;;;AAiBD;;AC7HD;;;AAEA;AAuEE;;;AAGW;AAEX;;;AAGW;AACX;;;AAAyC;;;;;;;;AAczC;AACA;;;;;;;;;;;AA6EA;;;AAgBA;;;AAGD;;ACxMD;;;AAGG;AACH;;;AAyBE;AACA;AAEA;AAIA;AACA;;AAYA;AAIA;;;;AAqCA;AAQA;;;AAgBD;;AC9FD;;;AAGG;AACH;;;AAyBE;;;;;AAKW;;;AAUX;AACA;AACA;AAEA;AAKA;;AAWA;AAIA;;;;;;;;AA0CA;AAoBA;AAwCA;AAaA;AAgEA;AAoBA;AAYA;;;AAqBD;;ACxTD;;;;;;;;;;;;;;;;;;;;AAoBG;AACH;AAqBE;;;AAAyC;AAGhC;AACA;AAET;;AAQA;;AASU;AACA;AACA;AAGV;AACA;;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AAOA;AAQA;AAKA;AAWA;AAeA;AAQA;;;AAaD;;AC7JD;;AAgEE;;;AAAyC;;;;;;;AASsB;AAG/D;AACA;AACA;;;AAKA;;AASA;AAKA;;AAEG;AACH;AAIA;;AAEG;;AAKH;;AAEG;AACH;AAiBA;;AAEG;AACH;AASA;;AAEG;AACH;AAMA;;AAEG;AACH;AAqBA;;AAEG;AACH;AAOA;;AAEG;AACH;;;AAMD;;ACnNK;AAUN;;;;;;;;;;;AAWG;AACH;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;;AAED;AACE;AACE;AACA;;AAEF;AACE;AACA;;;AAGJ;AACE;AACE;AACA;;AAEF;AACE;AACA;;;AAGJ;AACE;AACE;AACA;;AAEF;AACE;AACA;;;AAIJ;;;;AAIG;AACH;AACE;;;;AAIA;;;;AAIA;;;;;AAKH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;;;;AAIC;AACA;;;AAGA;AACA;AACA;AACA;;;;AAEH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEG;AACH;;;AAGE;AACA;;;AAGA;;;AACD;;AC9OD;;;AAGG;AACG;AAEN;;;AAGG;AAEH;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;AAIA;;AAEG;AACH;;;;;;;;;;;;;;ACtFA;;;;;;;AAOG;AACH;AAiBA;;;;;;;;AAQG;AACH;AAcA;;;;;;AAMG;AACH;AAWA;;;;;;;;;AASG;AACH;;ACjFA;;ACSA;;;AAGG;AACG;AAEN;;;;AAIG;AACG;AAEN;;;;AAIC;AAyBD;AASA;;;;;;AAMG;AACH;;ACtBA;AAkE8B;AACE;;AAK9B;AACA;AAGA;AACA;;AAIA;AACA;AACA;AACA;AAGA;;;AAOU;AACV;;AAOA;;;;AAAmD;;AAYnD;AAQA;;;AAGG;AACH;AAIA;;;;;;;AAOG;AACH;AAIA;;;;;;;;;AASG;AACH;AAIA;;;;;;;;;AASG;AACH;AAIA;AA8BA;AAIA;;;AAGG;AACH;AAuBA;;;AAGG;AACH;;;AAaD;;ACjSK;AAEN;AACA;;;;;;;;;;;;AAaM;AAEN;AACA;;;;;;;;;AAUM;AAEA;AACJ;AACA;AACA;;AAGF;AACA;AA0GA;;;;;;AAMG;AACH;AAmBA;;;;;;;;;AASG;AACH;AAsBA;;AAEG;AACH;;AChLA;AAuDE;AACA;AACA;AAEA;AACA;;;;AAEmF;AAEnF;;AAMA;AACA;AACA;AACA;;AAGA;AAIA;;AA8BA;AAWA;;AAgCA;AAeA;AAUA;AAQA;;;AAiBD;;ACvND;;;;;;AAgCE;AACA;AACA;AACA;AACA;;;;AAEmF;AACnF;AAEA;;AAcA;;;;AAQ8E;AAK9E;;AAkBA;;AAcA;AAOA;AAoCA;AAeA;;;AAUD;;ACvKD;;;;;;AAMC;AAkCD;;;;AAwCE;AACA;AACA;AACA;AAEA;AAEA;AAWA;AAwBA;AAWA;AAWA;;;AAGD;;ACvKD;AAuCE;AACA;AACA;AACA;AACA;;;;AAEmF;AACnF;;;AACD;;AChDD;;;;AAMmC;;;;;ACQnC;;;;;AAKG;AACH;AAiFA;;;;;AAKG;AACH;AA2CA;;;;;;;AAOG;AACH;AAsCA;;;;;AAKG;AACH;;;AAKC;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../global-context/models/auto-refresh.model.ts","../../global-context/models/control-flow.model.ts","../../global-context/models/interval-picker.model.ts","../../global-context/models/date-time-context-picker.model.ts","../../global-context/models/global-context.model.ts","../../global-context/models/global-context-defaults.ts","../../global-context/models/aggregation.model.ts","../../global-context/models/context-config.model.ts","../../global-context/models/constants.ts","../../global-context/services/state/global-context.service.ts","../../global-context/services/state/global-context-form.service.ts","../../global-context/services/state/global-context-event.service.ts","../../global-context/services/domain/widget-control.service.ts","../../global-context/services/domain/date-time-context-picker.service.ts","../../global-context/services/domain/widget-config-migration.service.ts","../../global-context/services/domain/global-context-validation.service.ts","../../global-context/services/domain/aggregation-picker.service.ts","../../global-context/services/domain/aggregation-validation.service.ts","../../global-context/services/infrastructure/global-context-utils.service.ts","../../global-context/services/infrastructure/global-context-navigation.service.ts","../../global-context/services/infrastructure/global-context-query.service.ts","../../global-context/features/configuration/configuration-collapse/configuration-collapse.component.ts","../../global-context/core/global-context.component.ts","../../global-context/core/global-context-inline.component.ts","../../global-context/core/global-context-config.component.ts","../../global-context/core/global-context-widget-config.component.ts","../../global-context/core/widget-inline/inline-context.models.ts","../../global-context/core/widget-inline/inline-link-controls.component.ts","../../global-context/features/time-context/time-range-picker/date-time-context-picker.component.ts","../../global-context/features/time-context/time-range-display/time-range-display.component.ts","../../global-context/features/time-context/interval-picker/interval-picker.component.ts","../../global-context/features/aggregation/aggregation-picker/aggregation-picker.component.ts","../../global-context/features/aggregation/aggregation-display/aggregation-display.component.ts","../../global-context/features/refresh/auto-refresh/auto-refresh-control.component.ts","../../global-context/features/refresh/realtime-control/realtime-control.component.ts","../../global-context/features/configuration/config-context-selector/config-context-selector.component.ts","../../global-context/features/configuration/configuration-controls/configuration-controls.component.ts","../../global-context/features/configuration/live-mode-configuration-controls/live-mode-configuration-controls.component.ts","../../global-context/features/configuration/history-mode-configuration-controls/history-mode-configuration-controls.component.ts","../../global-context/shared/context-controls/context-controls.component.ts","../../global-context/shared/preview-controls/preview-controls.component.ts","../../global-context/integration/widget-controls/widget-controls-factory.ts","../../global-context/integration/widget-controls/guards.ts","../../global-context/integration/widget-controls/update-helpers.ts","../../global-context/integration/widget-controls/default-widget-template.ts","../../global-context/integration/widget-controls/widget-controls-presets.ts","../../global-context/integration/widget-wrapper/global-context-widget-wrapper.component.ts","../../global-context/integration/presets/control-presets.ts","../../global-context/integration/config-mode-controls/config-mode-controls.component.ts","../../global-context/integration/global-context-connector/global-context-connector.component.ts","../../global-context/integration/link-buttons/link-buttons.component.ts","../../global-context/integration/local-controls/local-controls.component.ts","../../global-context/global-context.module.ts","../../global-context/integration/widget-controls/widget-controls-presets.helpers.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector.module.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;AAcA,cAAA,qBAAA;;AAkBW;AACC,cAAA,YAAA;;AAGV,YAAA,UAAA,CAAA,qBAAA;AACA,oBAAA,UAAA,CAAA,qBAAA;AACA,iBAAA,eAAA;AACA,2BAAA,eAAA;AACA,8BAAA,UAAA;;AAqBM,2BAAA,OAAA,CAAA,qBAAA;AAKN,uDAAA,qBAAA,mDAAA,qBAAA;;AA8BA;;;;AAQD;;AClGD,cAAA,0BAAA;AAoBc;;;;;AAVZ;AAEA,qBAAA,OAAA;;;AAQoB,yBAAA,UAAA;;AAOpB;;;;AAQD;;ACvCD,cAAA,YAAA,YAAA,aAAA;AAEE;;;AAMD;;ACND,cAAA,mBAAA;;AAEwB,uBAAA,cAAA;;;;AAuBvB;;ACrBD;;;;;;;;;;;;;;;;AAgBG;AACH,cAAA,4BAAA,YAAA,oBAAA;AA2BI;AACA;AAfO;;AAET;;AAEG;AACM;AACC,cAAA,YAAA;AAEV;;AAEG;;AAIO,8BAAA,mBAAA,oBAAA,gBAAA;AAIV;;AAEG;AAEH;AAEA;;;AAGG;AACH;AAIA;;;AAGG;AACH;AAIA;;;AAGG;AACH;;;;;AA4BD;;ACrGD,cAAA,kBAAA;;;;AAkBkC;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector.module.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;AAmBA,cAAA,qBAAA;;AAiBW;AACC,cAAA,YAAA;;AAGV,YAAA,UAAA,CAAA,qBAAA;AACA,oBAAA,UAAA,CAAA,qBAAA;AACA,iBAAA,eAAA;AACA,2BAAA,eAAA;AACA,8BAAA,UAAA;;AAqBM,2BAAA,OAAA,CAAA,qBAAA;AAKN,uDAAA,qBAAA,mDAAA,qBAAA;;AA8BA;;;;AAQD;;ACtGD,cAAA,0BAAA;AAoBc;;;;;AAVZ;AAEA,qBAAA,OAAA;;;AAQoB,yBAAA,UAAA;;AAOpB;;;;AAQD;;ACvCD,cAAA,YAAA,YAAA,aAAA;AAEE;;;AAMD;;ACND,cAAA,mBAAA;;AAEwB,uBAAA,cAAA;;;;AAuBvB;;ACrBD;;;;;;;;;;;;;;;;AAgBG;AACH,cAAA,4BAAA,YAAA,oBAAA;AA2BI;AACA;AAfO;;AAET;;AAEG;AACM;AACC,cAAA,YAAA;AAEV;;AAEG;;AAIO,8BAAA,mBAAA,oBAAA,gBAAA;AAIV;;AAEG;AAEH;AAEA;;;AAGG;AACH;AAIA;;;AAGG;AACH;AAIA;;;AAGG;AACH;;;;;AA4BD;;ACrGD,cAAA,kBAAA;;;;AAkBkC;;;;"}
package/locales/de.po CHANGED
@@ -10789,6 +10789,9 @@ msgstr "Keine Halteregister verfügbar."
10789
10789
  msgid "No holding registers defined."
10790
10790
  msgstr "Keine Halteregister definiert."
10791
10791
 
10792
+ msgid "No icons found"
10793
+ msgstr "Keine Symbole gefunden"
10794
+
10792
10795
  msgid "No image to display."
10793
10796
  msgstr "Kein Bild anzuzeigen."
10794
10797
 
@@ -16498,8 +16501,7 @@ msgstr "Die dynamische Gruppe wird auf Grundlage der aktuell in der Geräteliste
16498
16501
 
16499
16502
  msgid "The successfully enrolled devices can now request signed certificates and use them\n"
16500
16503
  " to connect and authenticate to the platform via certificate-based authentication."
16501
- msgstr "\n"
16502
- " Die erfolgreich registrierten Geräte können nun signierte Zertifikate anfordern und diese verwenden, um sich über eine zertifikatsbasierte Authentifizierung mit der Plattform zu verbinden und zu authentifizieren."
16504
+ msgstr "Die erfolgreich registrierten Geräte können nun signierte Zertifikate anfordern und diese verwenden, um sich über eine zertifikatsbasierte Authentifizierung mit der Plattform zu verbinden und zu authentifizieren."
16503
16505
 
16504
16506
  msgid "The target URL did not accept the connection yet."
16505
16507
  msgstr "Die Ziel-URL hat die Verbindung noch nicht bestätigt."
@@ -17158,6 +17160,9 @@ msgstr "Vertrauenswürdige Zertifikate"
17158
17160
  msgid "Trusted user agents"
17159
17161
  msgstr "Vertrauenswürdige Benutzer-Agenten"
17160
17162
 
17163
+ msgid "Try adjusting your search or filter to find what you're looking for."
17164
+ msgstr "Versuchen Sie, Ihre Suche oder Ihren Filter anzupassen, um das Gesuchte zu finden."
17165
+
17161
17166
  msgid "Try another search term."
17162
17167
  msgstr "Versuchen Sie es mit einem anderen Suchbegriff."
17163
17168
 
package/locales/es.po CHANGED
@@ -10816,6 +10816,9 @@ msgstr "No explotación registros disponibles."
10816
10816
  msgid "No holding registers defined."
10817
10817
  msgstr "No hay registros de explotación definidos."
10818
10818
 
10819
+ msgid "No icons found"
10820
+ msgstr "No se han encontrado iconos."
10821
+
10819
10822
  msgid "No image to display."
10820
10823
  msgstr "No hay imagen que mostrar."
10821
10824
 
@@ -17188,6 +17191,9 @@ msgstr "Certificados de confianza"
17188
17191
  msgid "Trusted user agents"
17189
17192
  msgstr "Agente de usuario de confianza"
17190
17193
 
17194
+ msgid "Try adjusting your search or filter to find what you're looking for."
17195
+ msgstr "Intenta ajustar tu búsqueda o filtro para encontrar lo que estás buscando."
17196
+
17191
17197
  msgid "Try another search term."
17192
17198
  msgstr "Pruebe otro término de búsqueda."
17193
17199
 
package/locales/fr.po CHANGED
@@ -10817,6 +10817,9 @@ msgstr "Aucun registre de holding disponible."
10817
10817
  msgid "No holding registers defined."
10818
10818
  msgstr "Aucun registre de holding défini."
10819
10819
 
10820
+ msgid "No icons found"
10821
+ msgstr "Aucune icône trouvée"
10822
+
10820
10823
  msgid "No image to display."
10821
10824
  msgstr "Aucune image à afficher."
10822
10825
 
@@ -17190,6 +17193,9 @@ msgstr "Certificats approuvés"
17190
17193
  msgid "Trusted user agents"
17191
17194
  msgstr "Agents utilisateurs approuvés"
17192
17195
 
17196
+ msgid "Try adjusting your search or filter to find what you're looking for."
17197
+ msgstr "Essayez d'ajuster votre recherche ou votre filtre pour trouver ce que vous cherchez."
17198
+
17193
17199
  msgid "Try another search term."
17194
17200
  msgstr "Essayez un autre terme de recherche."
17195
17201
 
package/locales/ja_JP.po CHANGED
@@ -10772,6 +10772,9 @@ msgstr "利用可能な保持レジスタはありません。"
10772
10772
  msgid "No holding registers defined."
10773
10773
  msgstr "保持レジスタは定義されていません。"
10774
10774
 
10775
+ msgid "No icons found"
10776
+ msgstr ""
10777
+
10775
10778
  msgid "No image to display."
10776
10779
  msgstr "表示できる画像はありません。"
10777
10780
 
@@ -17138,6 +17141,9 @@ msgstr "信頼できる証明書"
17138
17141
  msgid "Trusted user agents"
17139
17142
  msgstr "信頼できるユーザー エージェント"
17140
17143
 
17144
+ msgid "Try adjusting your search or filter to find what you're looking for."
17145
+ msgstr ""
17146
+
17141
17147
  msgid "Try another search term."
17142
17148
  msgstr "他の検索語を試してください。"
17143
17149
 
package/locales/ko.po CHANGED
@@ -10793,6 +10793,9 @@ msgstr "사용 가능한 홀딩 레지스터가 없습니다."
10793
10793
  msgid "No holding registers defined."
10794
10794
  msgstr "정의된 홀딩 레지스터가 없습니다."
10795
10795
 
10796
+ msgid "No icons found"
10797
+ msgstr "아이콘을 찾을 수 없습니다"
10798
+
10796
10799
  msgid "No image to display."
10797
10800
  msgstr "표시할 이미지가 없습니다."
10798
10801
 
@@ -17164,6 +17167,9 @@ msgstr "신뢰할 수 있는 인증서"
17164
17167
  msgid "Trusted user agents"
17165
17168
  msgstr "신뢰할 수 있는 사용자 에이전트"
17166
17169
 
17170
+ msgid "Try adjusting your search or filter to find what you're looking for."
17171
+ msgstr "원하는 내용을 찾으려면 검색어나 필터를 조정해 보세요."
17172
+
17167
17173
  msgid "Try another search term."
17168
17174
  msgstr "다른 검색 용어를 시도해 보십시오."
17169
17175
 
@@ -10643,6 +10643,9 @@ msgstr ""
10643
10643
  msgid "No holding registers defined."
10644
10644
  msgstr ""
10645
10645
 
10646
+ msgid "No icons found"
10647
+ msgstr ""
10648
+
10646
10649
  msgid "No image to display."
10647
10650
  msgstr ""
10648
10651
 
@@ -16993,6 +16996,9 @@ msgstr ""
16993
16996
  msgid "Trusted user agents"
16994
16997
  msgstr ""
16995
16998
 
16999
+ msgid "Try adjusting your search or filter to find what you're looking for."
17000
+ msgstr ""
17001
+
16996
17002
  msgid "Try another search term."
16997
17003
  msgstr ""
16998
17004
 
package/locales/nl.po CHANGED
@@ -10817,6 +10817,9 @@ msgstr "Geen bedrijfsregisters beschikbaar."
10817
10817
  msgid "No holding registers defined."
10818
10818
  msgstr "Geen bedrijfsregisters gedefinieerd."
10819
10819
 
10820
+ msgid "No icons found"
10821
+ msgstr "Geen pictogrammen gevonden"
10822
+
10820
10823
  msgid "No image to display."
10821
10824
  msgstr "Geen afbeeldingen om weer te geven."
10822
10825
 
@@ -17189,6 +17192,9 @@ msgstr "Vertrouwde certificaten"
17189
17192
  msgid "Trusted user agents"
17190
17193
  msgstr "Vertrouwde user-agents"
17191
17194
 
17195
+ msgid "Try adjusting your search or filter to find what you're looking for."
17196
+ msgstr "Probeer uw zoekopdracht of filter aan te passen om te vinden wat u zoekt."
17197
+
17192
17198
  msgid "Try another search term."
17193
17199
  msgstr "Probeer een andere zoekterm."
17194
17200
 
package/locales/pl.po CHANGED
@@ -10862,6 +10862,9 @@ msgstr "Brak rejestrów przechowujących."
10862
10862
  msgid "No holding registers defined."
10863
10863
  msgstr "Nie zdefiniowano rejestrów przechowujących."
10864
10864
 
10865
+ msgid "No icons found"
10866
+ msgstr "Nie znaleziono ikon"
10867
+
10865
10868
  msgid "No image to display."
10866
10869
  msgstr "Brak obrazu do wyświetlenia."
10867
10870
 
@@ -17235,6 +17238,9 @@ msgstr "Zaufane certyfikaty"
17235
17238
  msgid "Trusted user agents"
17236
17239
  msgstr "Zaufane agenty użytkownika"
17237
17240
 
17241
+ msgid "Try adjusting your search or filter to find what you're looking for."
17242
+ msgstr "Spróbuj dostosować wyszukiwanie lub filtr, aby znaleźć to, czego szukasz."
17243
+
17238
17244
  msgid "Try another search term."
17239
17245
  msgstr "Spróbuj użyć innego wyszukiwanego terminu."
17240
17246
 
package/locales/pt_BR.po CHANGED
@@ -10815,6 +10815,9 @@ msgstr "Não existem registradores de armazenamento disponíveis."
10815
10815
  msgid "No holding registers defined."
10816
10816
  msgstr "Nenhum registro de armazenamento definido."
10817
10817
 
10818
+ msgid "No icons found"
10819
+ msgstr "Não foram encontrados ícones"
10820
+
10818
10821
  msgid "No image to display."
10819
10822
  msgstr "Nenhuma imagem para exibir."
10820
10823
 
@@ -17187,6 +17190,9 @@ msgstr "Certificados confiáveis"
17187
17190
  msgid "Trusted user agents"
17188
17191
  msgstr "Agentes de usuário confiáveis"
17189
17192
 
17193
+ msgid "Try adjusting your search or filter to find what you're looking for."
17194
+ msgstr "Tente ajustar sua pesquisa ou filtro para encontrar o que você está procurando."
17195
+
17190
17196
  msgid "Try another search term."
17191
17197
  msgstr "Tente outro termo de pesquisa."
17192
17198
 
package/locales/zh_CN.po CHANGED
@@ -10797,6 +10797,9 @@ msgstr "没有保持寄存器。"
10797
10797
  msgid "No holding registers defined."
10798
10798
  msgstr "未定义保持寄存器。"
10799
10799
 
10800
+ msgid "No icons found"
10801
+ msgstr "未找到图标"
10802
+
10800
10803
  msgid "No image to display."
10801
10804
  msgstr "没有可供显示的图像。"
10802
10805
 
@@ -17168,6 +17171,9 @@ msgstr "可信证书"
17168
17171
  msgid "Trusted user agents"
17169
17172
  msgstr "可信用户代理"
17170
17173
 
17174
+ msgid "Try adjusting your search or filter to find what you're looking for."
17175
+ msgstr "请尝试调整您的搜索或筛选条件,以找到您想要的内容。"
17176
+
17171
17177
  msgid "Try another search term."
17172
17178
  msgstr "尝试其他搜索词。"
17173
17179