Skip to content

Commit

Permalink
fix(tree): does not collapse root node when it is hidden (closes #209)
Browse files Browse the repository at this point in the history
  • Loading branch information
rychkog authored and Georgii Rychko committed Feb 11, 2018
1 parent 93b5f9c commit 9aaa065
Show file tree
Hide file tree
Showing 21 changed files with 258 additions and 259 deletions.
252 changes: 124 additions & 128 deletions src/demo/app/app.component.ts

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions src/demo/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { BrowserModule } from '@angular/platform-browser';
import { TreeModule } from '../../../index';
import { ButtonDirective } from './button';
import { CommonModule } from '@angular/common';
import {NgModule} from '@angular/core';
import {AppComponent} from './app.component';
import {BrowserModule} from '@angular/platform-browser';
import {TreeModule} from '../../../index';
import {ButtonDirective} from './button';
import {CommonModule} from '@angular/common';

@NgModule({
declarations: [AppComponent, ButtonDirective],
Expand Down
2 changes: 1 addition & 1 deletion src/demo/app/button.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Directive, ElementRef } from '@angular/core';
import {Directive, ElementRef} from '@angular/core';

@Directive({
selector: '[button]'
Expand Down
8 changes: 4 additions & 4 deletions src/demo/main.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import {enableProdMode} from '@angular/core';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import {AppModule} from './app/app.module';
import {environment} from './environments/environment';

if (environment.production) {
enableProdMode();
Expand Down
19 changes: 7 additions & 12 deletions src/demo/polyfills.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ import 'core-js/es6/object';
import 'core-js/es6/string';
// import 'core-js/es6/date';
import 'core-js/es6/array';
/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
/***************************************************************************************************
* Zone JS is required by Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
// import 'core-js/es6/regexp';
// import 'core-js/es6/map';
// import 'core-js/es6/set';
Expand All @@ -40,23 +47,11 @@ import 'core-js/es6/array';
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.


/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';


/** ALL Firefox browsers require the following to support `@angular/animation`. **/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.



/***************************************************************************************************
* Zone JS is required by Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.



/***************************************************************************************************
* APPLICATION IMPORTS
*/
Expand Down
4 changes: 2 additions & 2 deletions src/draggable/captured-node.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Tree } from '../tree';
import { ElementRef } from '@angular/core';
import {Tree} from '../tree';
import {ElementRef} from '@angular/core';

export class CapturedNode {
public constructor(private anElement: ElementRef,
Expand Down
4 changes: 2 additions & 2 deletions src/draggable/draggable.events.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ElementRef } from '@angular/core';
import { CapturedNode } from './captured-node';
import {ElementRef} from '@angular/core';
import {CapturedNode} from './captured-node';

export class NodeDraggableEvent {
public constructor(public captured: CapturedNode, public target: ElementRef) {
Expand Down
8 changes: 4 additions & 4 deletions src/draggable/node-draggable.directive.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Directive, ElementRef, Input, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { NodeDraggableService } from './node-draggable.service';
import { CapturedNode } from './captured-node';
import { Tree } from '../tree';
import {Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2} from '@angular/core';
import {NodeDraggableService} from './node-draggable.service';
import {CapturedNode} from './captured-node';
import {Tree} from '../tree';

@Directive({
selector: '[nodeDraggable]'
Expand Down
8 changes: 4 additions & 4 deletions src/draggable/node-draggable.service.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Injectable, ElementRef } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { CapturedNode } from './captured-node';
import { NodeDraggableEvent } from './draggable.events';
import {ElementRef, Injectable} from '@angular/core';
import {Subject} from 'rxjs/Subject';
import {CapturedNode} from './captured-node';
import {NodeDraggableEvent} from './draggable.events';

@Injectable()
export class NodeDraggableService {
Expand Down
8 changes: 4 additions & 4 deletions src/editable/node-editable.directive.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import {
Directive,
ElementRef,
Input,
OnInit,
Output,
EventEmitter,
HostListener,
Inject,
Input,
OnInit,
Output,
Renderer2
} from '@angular/core';
import { NodeEditableEvent, NodeEditableEventAction } from './editable.events';
import {NodeEditableEvent, NodeEditableEventAction} from './editable.events';

@Directive({
selector: '[nodeEditable]'
Expand Down
10 changes: 4 additions & 6 deletions src/menu/node-menu.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import {
Component, EventEmitter, Output, Input, Inject, OnDestroy, OnInit, ViewChild, Renderer2
} from '@angular/core';
import { NodeMenuService } from './node-menu.service';
import { NodeMenuItemSelectedEvent, NodeMenuItemAction, NodeMenuAction } from './menu.events';
import { isLeftButtonClicked, isEscapePressed } from '../utils/event.utils';
import {Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild} from '@angular/core';
import {NodeMenuService} from './node-menu.service';
import {NodeMenuAction, NodeMenuItemAction, NodeMenuItemSelectedEvent} from './menu.events';
import {isEscapePressed, isLeftButtonClicked} from '../utils/event.utils';

@Component({
selector: 'node-menu',
Expand Down
8 changes: 4 additions & 4 deletions src/menu/node-menu.service.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Injectable, ElementRef } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';
import { NodeMenuEvent, NodeMenuAction } from './menu.events';
import {ElementRef, Injectable} from '@angular/core';
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
import {NodeMenuAction, NodeMenuEvent} from './menu.events';

@Injectable()
export class NodeMenuService {
Expand Down
14 changes: 7 additions & 7 deletions src/tree-controller.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { TreeService } from './tree.service';
import { Tree } from './tree';
import { TreeModel } from './tree.types';
import { NodeMenuItemAction } from './menu/menu.events';
import { TreeInternalComponent } from './tree-internal.component';
import { MouseButtons } from './utils/event.utils';
import { get } from './utils/fn.utils';
import {TreeService} from './tree.service';
import {Tree} from './tree';
import {TreeModel} from './tree.types';
import {NodeMenuItemAction} from './menu/menu.events';
import {TreeInternalComponent} from './tree-internal.component';
import {MouseButtons} from './utils/event.utils';
import {get} from './utils/fn.utils';

export class TreeController {
private tree: Tree;
Expand Down
31 changes: 17 additions & 14 deletions src/tree-internal.component.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
AfterContentChecked,
Component,
ElementRef,
Input,
Expand All @@ -7,24 +8,22 @@ import {
OnInit,
SimpleChanges,
TemplateRef,
ViewChild,
AfterViewInit,
AfterContentChecked
ViewChild
} from '@angular/core';

import * as TreeTypes from './tree.types';
import { Tree } from './tree';
import { TreeController } from './tree-controller';
import { NodeMenuService } from './menu/node-menu.service';
import { NodeMenuItemAction, NodeMenuItemSelectedEvent } from './menu/menu.events';
import { NodeEditableEvent, NodeEditableEventAction } from './editable/editable.events';
import { NodeEvent, NodeRemovedEvent, NodeCheckedEvent, NodeIndeterminedEvent } from './tree.events';
import { TreeService } from './tree.service';
import {Ng2TreeSettings} from './tree.types';
import {Tree} from './tree';
import {TreeController} from './tree-controller';
import {NodeMenuService} from './menu/node-menu.service';
import {NodeMenuItemAction, NodeMenuItemSelectedEvent} from './menu/menu.events';
import {NodeEditableEvent, NodeEditableEventAction} from './editable/editable.events';
import {NodeCheckedEvent, NodeEvent} from './tree.events';
import {TreeService} from './tree.service';
import * as EventUtils from './utils/event.utils';
import { NodeDraggableEvent } from './draggable/draggable.events';
import { Subscription } from 'rxjs/Subscription';
import { get, has, size, isNil } from './utils/fn.utils';
import { Ng2TreeSettings } from './tree.types';
import {NodeDraggableEvent} from './draggable/draggable.events';
import {Subscription} from 'rxjs/Subscription';
import {get, isNil} from './utils/fn.utils';

@Component({
selector: 'tree-internal',
Expand Down Expand Up @@ -126,6 +125,10 @@ export class TreeInternalComponent implements OnInit, OnChanges, OnDestroy, Afte
this.settings = this.settings || new Ng2TreeSettings();
this.isReadOnly = !get(this.settings, 'enableCheckboxes', true);

if (this.tree.isRoot() && this.settings.rootIsVisible === false) {
this.tree.disableCollapseOnInit();
}

this.subscriptions.push(this.nodeMenuService.hideMenuStream(this.nodeElementRef)
.subscribe(() => {
this.isRightMenuVisible = false;
Expand Down
35 changes: 24 additions & 11 deletions src/tree.component.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
import {
Input, Component, OnInit, EventEmitter, Output, Inject, OnChanges, SimpleChanges, ViewChild,
OnDestroy, TemplateRef, ContentChild
Component,
ContentChild,
EventEmitter,
Inject,
Input,
OnChanges,
OnDestroy,
OnInit,
Output,
SimpleChanges,
TemplateRef,
ViewChild
} from '@angular/core';
import { TreeService } from './tree.service';
import {TreeService} from './tree.service';
import * as TreeTypes from './tree.types';

import { NodeEvent, NodeCheckedEvent, NodeUncheckedEvent, MenuItemSelectedEvent } from './tree.events';
import {MenuItemSelectedEvent, NodeCheckedEvent, NodeEvent, NodeUncheckedEvent} from './tree.events';

import { Tree } from './tree';
import { TreeController } from './tree-controller';
import { Subscription } from 'rxjs/Subscription';
import {Tree} from './tree';
import {TreeController} from './tree-controller';
import {Subscription} from 'rxjs/Subscription';

@Component({
selector: 'tree',
Expand Down Expand Up @@ -49,7 +59,6 @@ export class TreeComponent implements OnInit, OnChanges, OnDestroy {
public nodeCollapsed: EventEmitter<any> = new EventEmitter();

@Output()

public loadNextLevel: EventEmitter<any> = new EventEmitter();

@Output()
Expand All @@ -58,16 +67,20 @@ export class TreeComponent implements OnInit, OnChanges, OnDestroy {
@Output()
public nodeUnchecked: EventEmitter<NodeUncheckedEvent> = new EventEmitter();

@Output()
public menuItemSelected: EventEmitter<any> = new EventEmitter();

public tree: Tree;
@ViewChild('rootComponent') public rootComponent;

@ContentChild(TemplateRef) public template;
@ViewChild('rootComponent')
public rootComponent;

@ContentChild(TemplateRef)
public template;

private subscriptions: Subscription[] = [];

public constructor( @Inject(TreeService) private treeService: TreeService) {
public constructor(@Inject(TreeService) private treeService: TreeService) {
}

public ngOnChanges(changes: SimpleChanges): void {
Expand Down
5 changes: 2 additions & 3 deletions src/tree.events.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Tree } from './tree';
import { TreeController } from './tree-controller';
import { RenamableNode } from './tree.types';
import {Tree} from './tree';
import {RenamableNode} from './tree.types';

export class NodeEvent {
public constructor(public node: Tree) {
Expand Down
22 changes: 11 additions & 11 deletions src/tree.module.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import './rxjs-imports';

import { NgModule } from '@angular/core';
import { TreeComponent } from './tree.component';
import { TreeInternalComponent } from './tree-internal.component';
import { CommonModule } from '@angular/common';
import { NodeDraggableDirective } from './draggable/node-draggable.directive';
import { NodeDraggableService } from './draggable/node-draggable.service';
import { NodeEditableDirective } from './editable/node-editable.directive';
import { NodeMenuComponent } from './menu/node-menu.component';
import { NodeMenuService } from './menu/node-menu.service';
import { TreeService } from './tree.service';
import { SafeHtmlPipe } from './utils/safe-html.pipe';
import {NgModule} from '@angular/core';
import {TreeComponent} from './tree.component';
import {TreeInternalComponent} from './tree-internal.component';
import {CommonModule} from '@angular/common';
import {NodeDraggableDirective} from './draggable/node-draggable.directive';
import {NodeDraggableService} from './draggable/node-draggable.service';
import {NodeEditableDirective} from './editable/node-editable.directive';
import {NodeMenuComponent} from './menu/node-menu.component';
import {NodeMenuService} from './menu/node-menu.service';
import {TreeService} from './tree.service';
import {SafeHtmlPipe} from './utils/safe-html.pipe';

@NgModule({
imports: [CommonModule],
Expand Down
28 changes: 14 additions & 14 deletions src/tree.service.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import {
LoadNextLevelEvent,
MenuItemSelectedEvent,
NodeCheckedEvent,
NodeCollapsedEvent,
NodeCreatedEvent,
NodeExpandedEvent,
NodeIndeterminedEvent,
NodeMovedEvent,
NodeRemovedEvent,
NodeRenamedEvent,
NodeSelectedEvent,
LoadNextLevelEvent,
NodeCheckedEvent,
NodeUncheckedEvent,
MenuItemSelectedEvent,
NodeIndeterminedEvent
NodeUncheckedEvent
} from './tree.events';
import { RenamableNode } from './tree.types';
import { Tree } from './tree';
import { TreeController } from './tree-controller';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import { ElementRef, Inject, Injectable } from '@angular/core';
import { NodeDraggableService } from './draggable/node-draggable.service';
import { NodeDraggableEvent } from './draggable/draggable.events';
import { isEmpty } from './utils/fn.utils';
import {RenamableNode} from './tree.types';
import {Tree} from './tree';
import {TreeController} from './tree-controller';
import {Observable} from 'rxjs/Observable';
import {Subject} from 'rxjs/Subject';
import {ElementRef, Inject, Injectable} from '@angular/core';
import {NodeDraggableService} from './draggable/node-draggable.service';
import {NodeDraggableEvent} from './draggable/draggable.events';
import {isEmpty} from './utils/fn.utils';

@Injectable()
export class TreeService {
Expand Down
Loading

0 comments on commit 9aaa065

Please sign in to comment.