NG0956 Tracking expression caused re-creation of the DOM structure.
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit

This commit is contained in:
2026-01-30 13:40:47 +01:00
parent a6bd28ac45
commit 48261c9657
10 changed files with 10 additions and 10 deletions

View File

@@ -2,7 +2,7 @@
@if (itemLayers.length > 0) { @if (itemLayers.length > 0) {
<div class="layerlist"> <div class="layerlist">
<div class="list-group"> <div class="list-group">
@for (itemLayer of itemLayers; track itemLayer) { @for (itemLayer of itemLayers; track itemLayer.code) {
<div class="list-group-item list-group-item-action p-2 text-truncate" [ngClass]="{'active' : selectedLayer==itemLayer}"> <div class="list-group-item list-group-item-action p-2 text-truncate" [ngClass]="{'active' : selectedLayer==itemLayer}">
<div (click)="handleSelectLayer($event,itemLayer)" [title]="itemLayer.item.name">{{itemLayer.item.name}}</div> <div (click)="handleSelectLayer($event,itemLayer)" [title]="itemLayer.item.name">{{itemLayer.item.name}}</div>
@if (selectedLayer==itemLayer && !baseLayers) { @if (selectedLayer==itemLayer && !baseLayers) {

View File

@@ -7,7 +7,7 @@
<div class="lonlat pb-2 "><span class="font-weight-bold">{{lonlat$}}</span><i class="ms-2 fal fa-copy" (click)="copyToClipboard()"></i> </div> <div class="lonlat pb-2 "><span class="font-weight-bold">{{lonlat$}}</span><i class="ms-2 fal fa-copy" (click)="copyToClipboard()"></i> </div>
@if (layers.length>0 ) { @if (layers.length>0 ) {
<ul class="value-list p-0 mb-0"> <ul class="value-list p-0 mb-0">
@for (layerValue of layers; track layerValue) { @for (layerValue of layers; track layerValue.layerName) {
<li class="border-top pt-1 pb-1 value"> <li class="border-top pt-1 pb-1 value">
<div>{{layerValue.layerName}}</div> <div>{{layerValue.layerName}}</div>
<div>{{layerValue.date|date}}</div> <div>{{layerValue.date|date}}</div>

View File

@@ -7,7 +7,7 @@
@if (features; as features) { @if (features; as features) {
<div> <div>
<div class="cropfields"> <div class="cropfields">
@for (feature of features; track feature) { @for (feature of features; track feature.id_) {
<div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>

View File

@@ -5,7 +5,7 @@
@if (features; as features) { @if (features; as features) {
<div> <div>
<div class="farms"> <div class="farms">
@for (feature of features; track feature) { @for (feature of features; track feature.id_) {
<div class="row m-0 ps-3 pe-3"[ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 ps-3 pe-3"[ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>

View File

@@ -7,7 +7,7 @@
@if (features; as features) { @if (features; as features) {
<div> <div>
<div class="cropfields"> <div class="cropfields">
@for (feature of features; track feature) { @for (feature of features; track feature.id_) {
<div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>

View File

@@ -1,7 +1,7 @@
@if (features; as features) { @if (features; as features) {
<div> <div>
<fm-back-button></fm-back-button> <fm-back-button></fm-back-button>
@for (feature of features; track feature) { @for (feature of features; track feature.id_) {
<div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 ps-3 pe-3" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>

View File

@@ -1,6 +1,6 @@
@if (items; as items) { @if (items; as items) {
<div class="widget-container pt-0"> <div class="widget-container pt-0">
@for (item of items; track item) { @for (item of items; track item.code) {
<div class="widget" (click)="handleItemClick(item)"> <div class="widget" (click)="handleItemClick(item)">
<div class="content"> <div class="content">
<fm-map-item-list-item-container [item]="item" class="item-container"></fm-map-item-list-item-container> <fm-map-item-list-item-container [item]="item" class="item-container"></fm-map-item-list-item-container>

View File

@@ -1,6 +1,6 @@
@if (widgets; as widgets) { @if (widgets; as widgets) {
<div class="widget-container pt-0"> <div class="widget-container pt-0">
@for (widget of widgets; track widget) { @for (widget of widgets; track widget.item.code) {
<div class="widget"> <div class="widget">
<div class="content"> <div class="content">
<ng-template #widgetTemplate></ng-template> <ng-template #widgetTemplate></ng-template>

View File

@@ -11,7 +11,7 @@
<div class="gradient-list" [ngClass]="{'visible':listVisible}"> <div class="gradient-list" [ngClass]="{'visible':listVisible}">
@if (gradientItems) { @if (gradientItems) {
<ul> <ul>
@for (item of gradientItems; track item) { @for (item of gradientItems; track item.code) {
<li (click)="handleSelect(item)" [ngClass]="{'bg-primary':isSelected(item),'text-white':isSelected(item)} "> <li (click)="handleSelect(item)" [ngClass]="{'bg-primary':isSelected(item),'text-white':isSelected(item)} ">
<div>{{item?.name}}</div> <div>{{item?.name}}</div>
<div><fm-gradient [gradientItem]="item"></fm-gradient></div> <div><fm-gradient [gradientItem]="item"></fm-gradient></div>

View File

@@ -13,7 +13,7 @@
<div [ngClass]="{'minimized': uploadService.isMinimized }"> <div [ngClass]="{'minimized': uploadService.isMinimized }">
<div class="card-block p-3"> <div class="card-block p-3">
<ul class="list-unstyled"> <ul class="list-unstyled">
@for (file of uploadService.files; track file) { @for (file of uploadService.files; track file.identifier) {
<li class="upload-file busy" [ngClass]="{'done': file.success,'busy':file.success == false,'error': file.error }"> <li class="upload-file busy" [ngClass]="{'done': file.success,'busy':file.success == false,'error': file.error }">
@if (file.success == false) { @if (file.success == false) {
<div><span class="file-name" [attr.title]="file?.fileName">{{file.fileName}}</span><span class="fal fa-times" title="Cancel" (click)="uploadService.cancelFile(file)"></span><span class="fal fa-check"></span></div> <div><span class="file-name" [attr.title]="file?.fileName">{{file.fileName}}</span><span class="fal fa-times" title="Cancel" (click)="uploadService.cancelFile(file)"></span><span class="fal fa-check"></span></div>