Skip to content
Snippets Groups Projects
Unverified Commit a428c616 authored by xgui3783's avatar xgui3783 Committed by GitHub
Browse files

Merge pull request #180 from HumanBrainProject/staging

triage
parents 41a0260d b2aa1c01
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,7 @@ import { PillComponent } from './pill/pill.component';
import { CommonModule } from '@angular/common';
import { RadioList } from './radiolist/radiolist.component';
import { AngularMaterialModule } from 'src/ui/sharedModules/angularMaterial.module';
import { FilterCollapsePipe } from './flatTree/filterCollapse.pipe';
@NgModule({
......@@ -65,7 +66,8 @@ import { AngularMaterialModule } from 'src/ui/sharedModules/angularMaterial.modu
HighlightPipe,
FitlerRowsByVisibilityPipe,
AppendSiblingFlagPipe,
ClusteringPipe
ClusteringPipe,
FilterCollapsePipe
],
exports : [
BrowserAnimationsModule,
......
import { PipeTransform, Pipe } from "@angular/core";
@Pipe({
name: 'filterCollapsePipe'
})
export class FilterCollapsePipe implements PipeTransform{
public transform(array: any[], collapsedLevels: Set<string>, uncollapsedLevels: Set<string>, defaultCollapse: boolean ){
const isCollapsedById = (id) => {
return collapsedLevels.has(id)
? true
: uncollapsedLevels.has(id)
? false
: !defaultCollapse
}
const returnArray = array.filter(item => {
return !item.lvlId.split('_')
.filter((v,idx,arr) => idx < arr.length -1 )
.reduce((acc,curr) => acc
.concat(acc.length === 0
? curr
: acc[acc.length -1].concat(`_${curr}`)), [])
.some(id => isCollapsedById(id))
})
return returnArray
}
}
\ No newline at end of file
......@@ -43,9 +43,15 @@ export class FlatTreeComponent{
uncollapsedLevels : Set<string> = new Set()
toggleCollapse(flattenedItem:FlattenedTreeInterface){
this.isCollapsed(flattenedItem)
? (this.collapsedLevels.delete(flattenedItem.lvlId), this.uncollapsedLevels.add(flattenedItem.lvlId))
: (this.collapsedLevels.add(flattenedItem.lvlId), this.uncollapsedLevels.delete(flattenedItem.lvlId))
if (this.isCollapsed(flattenedItem)) {
this.collapsedLevels.delete(flattenedItem.lvlId)
this.uncollapsedLevels.add(flattenedItem.lvlId)
} else {
this.collapsedLevels.add(flattenedItem.lvlId)
this.uncollapsedLevels.delete(flattenedItem.lvlId)
}
this.collapsedLevels = new Set(this.collapsedLevels)
this.uncollapsedLevels = new Set(this.uncollapsedLevels)
}
isCollapsed(flattenedItem:FlattenedTreeInterface):boolean{
......
......@@ -4,13 +4,12 @@
itemSize="15">
<div
*cdkVirtualFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe )"
*cdkVirtualFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe | filterCollapsePipe : collapsedLevels : uncollapsedLevels : childrenExpanded )"
[ngClass]="getClass(flattenedItem.flattenedTreeLevel)"
class="text-nowrap"
[attr.flattenedtreelevel]="flattenedItem.flattenedTreeLevel"
[attr.collapsed]="flattenedItem.collapsed ? flattenedItem.collapsed : false"
[attr.lvlId]="flattenedItem.lvlId"
[hidden]="collapseRow(flattenedItem) "
renderNode>
<span class="padding-block-container">
......
......@@ -105,6 +105,8 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
}
ngOnInit(){
this.displayTreeNode = getDisplayTreeNode(this.searchTerm, this.selectedRegions)
this.filterTreeBySearch = getFilterTreeBySearch(this.filterNameBySearchPipe, this.searchTerm)
this.subscriptions.push(
this.handleRegionTreeClickSubject.pipe(
......@@ -118,6 +120,20 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
}
ngAfterViewInit(){
/**
* TODO
* bandaid fix on
* when region search loses focus, the searchTerm is cleared,
* but hierarchy filter does not reset
*/
this.subscriptions.push(
fromEvent(this.searchTermInput.nativeElement, 'focus').pipe(
).subscribe(() => {
this.displayTreeNode = getDisplayTreeNode(this.searchTerm, this.selectedRegions)
this.filterTreeBySearch = getFilterTreeBySearch(this.filterNameBySearchPipe, this.searchTerm)
})
)
this.subscriptions.push(
fromEvent(this.searchTermInput.nativeElement, 'input').pipe(
debounceTime(200)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment