Skip to content

Commit

Permalink
update: restructure branchy
Browse files Browse the repository at this point in the history
  • Loading branch information
rychkog committed Jun 18, 2016
1 parent a9348ab commit 27e7e8a
Show file tree
Hide file tree
Showing 17 changed files with 113 additions and 118 deletions.
4 changes: 2 additions & 2 deletions src/branchy.component.styl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@import '../common/styles/colors'
@import '../common/styles/fonts'
@import 'common/styles/colors'
@import 'common/styles/fonts'

// mixins
node-folding(icon)
Expand Down
28 changes: 9 additions & 19 deletions src/branchy.component.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
import {Input, Component, OnInit, EventEmitter, Output, ElementRef, Inject} from '@angular/core';
import {CORE_DIRECTIVES} from '@angular/common';
import * as _ from 'lodash';
import {
TreeStatus,
NodeMenuItemSelectedEvent,
NodeMenuItemAction,
NodeEditableEvent,
NodeDraggableEvent,
NodeMenuAction,
NodeMenuEvent,
TreeModel,
FoldingType,
TreeEvent, NodeDraggableEventAction
} from './types';
import {NodeEditableDirective} from './node-editable.directive';
import {NodeMenuComponent} from './node-menu.component';
import {NodeDraggableService} from './node-draggable.service';
import {NodeMenuService} from './node-menu.service';
import {NodeDraggableDirective} from './node-draggable.directive';
import {TreeStatus, TreeModel, FoldingType, TreeEvent, FoldingTypeCssClass} from './branchy.types';
import {NodeEditableDirective} from './editable/node-editable.directive';
import {NodeMenuComponent} from './menu/node-menu.component';
import {NodeDraggableService} from './draggable/node-draggable.service';
import {NodeMenuService} from './menu/node-menu.service';
import {NodeDraggableDirective} from './draggable/node-draggable.directive';
import {NodeDraggableEventAction, NodeDraggableEvent} from './draggable/draggable.types';
import {NodeMenuEvent, NodeMenuAction, NodeMenuItemSelectedEvent, NodeMenuItemAction} from './menu/menu.types';
import {NodeEditableEvent} from './editable/editable.type';

@Component({
selector: 'tree',
Expand Down Expand Up @@ -262,8 +254,6 @@ class TreeComponent implements OnInit {
}
}

type FoldingTypeCssClass = 'node-expanded' | 'node-collapsed' | 'node-leaf';

@Component({
selector: 'branchy',
providers: [NodeMenuService, NodeDraggableService],
Expand Down
25 changes: 25 additions & 0 deletions src/branchy.types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export enum FoldingType {
Expanded,
Collapsed,
Leaf
}

export type FoldingTypeCssClass = 'node-expanded' | 'node-collapsed' | 'node-leaf';

export interface TreeEvent {
node: TreeModel
}

export interface TreeModel {
value: string;
children?: Array<TreeModel>;
status?: TreeStatus,
foldingType?: FoldingType,
indexInParent?: number
}

export enum TreeStatus {
New,
Modified,
EditInProgress
}
File renamed without changes.
File renamed without changes.
28 changes: 28 additions & 0 deletions src/draggable/captured-node.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import {TreeModel} from '../branchy.types';
import {ElementRef} from '@angular/core';

export class CapturedNode {
constructor(private anElement: ElementRef,
private aTree: TreeModel) {
}

public canBeDroppedAt(element: ElementRef): boolean {
return !this.sameAs(element) && !this.contains(element);
}

public contains(other: ElementRef): boolean {
return this.element.nativeElement.contains(other.nativeElement)
}

public sameAs(other: ElementRef): boolean {
return this.element === other;
}

get element(): ElementRef {
return this.anElement;
}

get tree(): TreeModel {
return this.aTree;
}
}
12 changes: 12 additions & 0 deletions src/draggable/draggable.types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import {ElementRef} from '@angular/core';
import {CapturedNode} from './captured-node';

export enum NodeDraggableEventAction {
Remove
}

export interface NodeDraggableEvent {
captured: CapturedNode;
target: ElementRef;
action?: NodeDraggableEventAction;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import {Directive, ElementRef, Input, Inject, Renderer, OnDestroy} from '@angular/core';
import {TreeModel, CapturedNode, NodeDraggableEvent} from './types';
import {TreeModel} from '../branchy.types';
import {NodeDraggableService} from './node-draggable.service';
import {CapturedNode} from './captured-node';
import {NodeDraggableEvent} from './draggable.types';

@Directive({
selector: '[nodeDraggable]'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import {Injectable} from '@angular/core';
import {NodeDraggableEvent, CapturedNode} from './types';
import {Subject} from 'rxjs/Rx';
import {CapturedNode} from './captured-node';
import {NodeDraggableEvent} from './draggable.types';

@Injectable()
export class NodeDraggableService {
Expand Down
6 changes: 6 additions & 0 deletions src/editable/editable.type.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export type NodeEditableEventType = 'blur' | 'keyup';

export interface NodeEditableEvent {
value: string,
type: NodeEditableEventType
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
Inject,
Renderer
} from '@angular/core';
import {NodeEditableEvent} from './types';
import {NodeEditableEvent} from './editable.type';

@Directive({
selector: '[nodeEditable]'
Expand Down
23 changes: 23 additions & 0 deletions src/menu/menu.types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
export enum MouseButtons {
Left = 1,
}

export enum NodeMenuItemAction {
NewFolder,
NewTag,
Rename,
Remove
}

export enum NodeMenuAction {
Close
}

export interface NodeMenuEvent {
sender: HTMLElement;
action: NodeMenuAction;
}

export interface NodeMenuItemSelectedEvent {
nodeMenuItemAction: NodeMenuItemAction
}
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {Component, EventEmitter, Output, Renderer, Inject, OnDestroy, OnInit} from '@angular/core';
import {CORE_DIRECTIVES} from '@angular/common';
import {MouseButtons, NodeMenuItemAction, NodeMenuItemSelectedEvent, NodeMenuAction, NodeMenuEvent} from './types';
import {NodeMenuService} from './node-menu.service';
import {NodeMenuItemSelectedEvent, NodeMenuItemAction, MouseButtons, NodeMenuEvent, NodeMenuAction} from './menu.types';

@Component({
selector: 'node-menu',
Expand Down
2 changes: 1 addition & 1 deletion src/node-menu.service.ts → src/menu/node-menu.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Injectable} from '@angular/core';
import {Subject} from 'rxjs/Rx';
import {NodeMenuEvent} from './types';
import {NodeMenuEvent} from './menu.types';

@Injectable()
export class NodeMenuService {
Expand Down
92 changes: 0 additions & 92 deletions src/types.ts

This file was deleted.

0 comments on commit 27e7e8a

Please sign in to comment.