1- import { Injectable } from '@angular/core' ;
2- import { NgsgDragelement } from './ngsg-dragelement.model' ;
1+ import { Injectable } from '@angular/core' ;
2+ import { NgsgDragelement } from './ngsg-dragelement.model' ;
33
44// TODO add interfaces for classes
55export interface NgsgState {
@@ -15,15 +15,17 @@ export class NgsgStoreService {
1515 private state = new Map < string , NgsgState > ( ) ;
1616
1717 public initState ( group : string , items : any [ ] = [ ] , classes : any ) : void {
18- this . state . set ( group , { items : [ ...items ] , classes, selectedItems : [ ] } ) ;
18+ this . state . set ( group , { items : [ ...items ] , classes, selectedItems : [ ] } ) ;
1919 }
2020
2121 public addSelectedItem ( group : string , dragElement : NgsgDragelement ) : void {
2222 this . state . get ( group ) . selectedItems . push ( dragElement ) ;
2323 }
2424
2525 public removeSelectedItem ( group : string , item : Element ) : void {
26- this . state . get ( group ) . selectedItems . filter ( ( dragElement : NgsgDragelement ) => dragElement . node !== item ) ;
26+ const updatedItems = this . state . get ( group ) . selectedItems
27+ . filter ( ( dragElement : NgsgDragelement ) => dragElement . node !== item ) ;
28+ this . setSelectedItems ( group , updatedItems ) ;
2729 }
2830
2931 public setItems ( group : string , items : any ) : void {
@@ -38,6 +40,10 @@ export class NgsgStoreService {
3840 return this . state . get ( group ) . selectedItems ;
3941 }
4042
43+ public setSelectedItems ( group : string , selectedItems : any [ ] ) : void {
44+ this . state . get ( group ) . selectedItems = [ ...selectedItems ] ;
45+ }
46+
4147 public getFirstSelectItem ( group : string ) : NgsgDragelement {
4248 return this . state . get ( group ) . selectedItems [ 0 ] ;
4349 }
@@ -47,7 +53,7 @@ export class NgsgStoreService {
4753 }
4854
4955 public resetSelectedItems ( group : string ) : void {
50- this . state . get ( group ) . selectedItems = [ ] ;
56+ this . setSelectedItems ( group , [ ] ) ;
5157 }
5258
5359 public getClasses ( group : string ) : any [ ] {
0 commit comments