diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.html
index fd0013236d..99740ac601 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.html
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.html
@@ -31,7 +31,7 @@
entity.entity
- {{ parseName(entity) }}
+ {{ entity.entityParseName }}
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.ts
index 9402da4c15..f2b3d09b5c 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.ts
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/dialogs/select-entity-dialog.component.ts
@@ -20,20 +20,11 @@ import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { Router } from '@angular/router';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { FormattedData } from '@shared/models/widget.models';
-import { GenericFunction } from '@home/components/widget/lib/maps/map-models';
-import { fillDataPattern, processDataPattern, safeExecute } from '@core/utils';
-import { parseWithTranslation } from '@home/components/widget/lib/maps/common-maps-utils';
export interface SelectEntityDialogData {
entities: FormattedData[];
- labelSettings: {
- showLabel: boolean;
- useLabelFunction: boolean;
- parsedLabelFunction: GenericFunction;
- label: string;
- };
}
@Component({
@@ -42,13 +33,13 @@ export interface SelectEntityDialogData {
styleUrls: ['./select-entity-dialog.component.scss']
})
export class SelectEntityDialogComponent extends DialogComponent {
- selectEntityFormGroup: UntypedFormGroup;
+ selectEntityFormGroup: FormGroup;
constructor(protected store: Store,
protected router: Router,
@Inject(MAT_DIALOG_DATA) public data: SelectEntityDialogData,
public dialogRef: MatDialogRef,
- public fb: UntypedFormBuilder) {
+ public fb: FormBuilder) {
super(store, router, dialogRef);
this.selectEntityFormGroup = this.fb.group(
@@ -58,25 +49,7 @@ export class SelectEntityDialogComponent extends DialogComponent,
@@ -83,3 +86,27 @@ export function isJSON(data: string): boolean {
return false;
}
}
+
+interface labelSettings {
+ showLabel: boolean;
+ useLabelFunction: boolean;
+ parsedLabelFunction: GenericFunction;
+ label: string;
+}
+
+export function entitiesParseName(entities: FormattedData[], labelSettings: labelSettings): FormattedData[] {
+ for (const entity of entities) {
+ if (labelSettings?.showLabel) {
+ const pattern = labelSettings.useLabelFunction ? safeExecute(labelSettings.parsedLabelFunction,
+ [entity, entities, entity.dsIndex]) : labelSettings.label;
+ const markerLabelText = parseWithTranslation.prepareProcessPattern(pattern, true);
+ const replaceInfoLabelMarker = processDataPattern(pattern, entity);
+ const div = document.createElement('div');
+ div.innerHTML = fillDataPattern(markerLabelText, replaceInfoLabelMarker, entity);
+ entity.entityParseName = div.textContent || div.innerText || '';
+ } else {
+ entity.entityParseName = entity.entityName;
+ }
+ }
+ return entities;
+}