Add common-map library
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
				
			This commit is contained in:
		@@ -0,0 +1,3 @@
 | 
			
		||||
<div class="selected-item-container">
 | 
			
		||||
  <ng-template widget-host></ng-template>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,14 @@
 | 
			
		||||
@import "../../_theme.scss";
 | 
			
		||||
@import "~bootstrap/scss/bootstrap.scss";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.row {
 | 
			
		||||
  border-bottom: 1px solid gray('500');
 | 
			
		||||
  user-select: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.row:hover {
 | 
			
		||||
  background-color: gray('100');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,40 @@
 | 
			
		||||
import { Component, Input, OnInit, ComponentFactoryResolver, ViewChild, SimpleChanges, ComponentFactory, Inject, Type} from '@angular/core';
 | 
			
		||||
import { IItem } from '@farmmaps/common';
 | 
			
		||||
import { AbstractSelectedItemComponent, SelectedItemComponent  } from '../selected-item/selected-item.component';
 | 
			
		||||
import { WidgetHostDirective } from '../widget-host/widget-host.directive';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'selected-item-container',
 | 
			
		||||
  templateUrl: './selected-item-container.component.html',
 | 
			
		||||
  styleUrls: ['./selected-item-container.component.scss'] 
 | 
			
		||||
})
 | 
			
		||||
export class SelectedItemContainerComponent {
 | 
			
		||||
 | 
			
		||||
  constructor(private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractSelectedItemComponent) public selectedItemComponents: AbstractSelectedItemComponent[] ) {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Input() item: IItem;
 | 
			
		||||
 | 
			
		||||
  @ViewChild(WidgetHostDirective) widgetHost: WidgetHostDirective; 
 | 
			
		||||
 | 
			
		||||
  loadComponent() {
 | 
			
		||||
    var componentFactory: ComponentFactory<AbstractSelectedItemComponent> = this.componentFactoryResolver.resolveComponentFactory(SelectedItemComponent); // default
 | 
			
		||||
    for (var i = 0; i < this.selectedItemComponents.length; i++) {
 | 
			
		||||
      if (this.selectedItemComponents[i]['forItemType'] == this.item.itemType) {
 | 
			
		||||
        componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.selectedItemComponents[i]['constructor'] as any);
 | 
			
		||||
      }
 | 
			
		||||
    }    
 | 
			
		||||
    const viewContainerRef = this.widgetHost.viewContainerRef;
 | 
			
		||||
    viewContainerRef.clear();
 | 
			
		||||
 | 
			
		||||
    const componentRef = viewContainerRef.createComponent(componentFactory);
 | 
			
		||||
    (<AbstractSelectedItemComponent>componentRef.instance).item = this.item;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnChanges(changes: SimpleChanges) {
 | 
			
		||||
    if (changes["item"] && changes["item"].currentValue) {
 | 
			
		||||
        this.loadComponent();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user