Skip to content

Commit 4d611bd

Browse files
committed
chore(*): add prettier for auto formatting support
1 parent ae75381 commit 4d611bd

20 files changed

+420
-198
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.vscode
33
.publish
44
dist
5-
demo-dist
5+
dist-demo
66
build
77
coverage
88
bundles

.prettierrc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
printWidth: 120
2+
singleQuote: true

package.json

+9-3
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,23 @@
3333
"scripts": {
3434
"compile": "ngc -p tsconfig-aot.json && node umd-bundler.js",
3535
"clean": "rimraf coverage build dist dist-demo bundles factories .publish",
36-
"pre:publish": "npm run clean && npm run test && npm run lint && npm run compile && mkdir -p dist && cp -R src/styles.css README.md media dist",
36+
"pre:publish":
37+
"npm run clean && npm run test && npm run lint && npm run compile && mkdir -p dist && cp -R src/styles.css README.md media dist",
3738
"post:publish": "npm run build:demo && gh-pages -d dist-demo",
3839
"start": "ng serve",
3940
"build:demo": "ng build",
4041
"test": "ng test -sr",
4142
"test:w": "ng test -w",
4243
"test:cov": "ng test -sr -cc",
43-
"lint": "ng lint --fix --type-check",
44+
"lint": "ng lint --type-check",
4445
"e2e": "ng e2e",
4546
"changelog": "conventional-changelog -i CHANGELOG.md -s -p angular",
4647
"github-release": "conventional-github-releaser -p angular",
4748
"version": "npm run changelog && git add CHANGELOG.md",
4849
"postversion": "git push origin master && git push --tags && npm run github-release && node publish.js",
49-
"webdriver-update": "node ./node_modules/protractor/bin/webdriver-manager update"
50+
"webdriver-update": "node ./node_modules/protractor/bin/webdriver-manager update",
51+
"precommit": "pretty-quick --staged",
52+
"prettier": "prettier --write {src,test}/**/*.ts"
5053
},
5154
"devDependencies": {
5255
"@angular/cli": "1.6.8",
@@ -70,6 +73,7 @@
7073
"core-js": "2.5.1",
7174
"font-awesome": "4.7.0",
7275
"gh-pages": "1.1.0",
76+
"husky": "0.14.3",
7377
"jasmine-core": "2.8.0",
7478
"jasmine-data-provider": "2.2.0",
7579
"jasmine-spec-reporter": "4.2.1",
@@ -82,6 +86,8 @@
8286
"karma-phantomjs-launcher": "1.0.4",
8387
"phantomjs-polyfill": "0.0.2",
8488
"phantomjs-prebuilt": "2.1.16",
89+
"prettier": "1.10.2",
90+
"pretty-quick": "1.4.1",
8591
"protractor": "5.2.0",
8692
"rimraf": "2.6.2",
8793
"rxjs": "5.5.2",

src/demo/main.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {enableProdMode} from '@angular/core';
2-
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
1+
import { enableProdMode } from '@angular/core';
2+
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
33

4-
import {AppModule} from './app/app.module';
5-
import {environment} from './environments/environment';
4+
import { AppModule } from './app/app.module';
5+
import { environment } from './environments/environment';
66

77
if (environment.production) {
88
enableProdMode();

src/demo/polyfills.ts

-3
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,9 @@ import 'zone.js/dist/zone'; // Included with Angular CLI.
4646
/** IE10 and IE11 requires the following to support `@angular/animation`. */
4747
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
4848

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

53-
54-
5552
/***************************************************************************************************
5653
* APPLICATION IMPORTS
5754
*/

src/draggable/captured-node.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import {Tree} from '../tree';
2-
import {ElementRef} from '@angular/core';
1+
import { Tree } from '../tree';
2+
import { ElementRef } from '@angular/core';
33

44
export class CapturedNode {
5-
public constructor(private anElement: ElementRef,
6-
private aTree: Tree) {
7-
}
5+
public constructor(private anElement: ElementRef, private aTree: Tree) {}
86

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

src/draggable/draggable.events.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import {ElementRef} from '@angular/core';
2-
import {CapturedNode} from './captured-node';
1+
import { ElementRef } from '@angular/core';
2+
import { CapturedNode } from './captured-node';
33

44
export class NodeDraggableEvent {
5-
public constructor(public captured: CapturedNode, public target: ElementRef) {
6-
}
5+
public constructor(public captured: CapturedNode, public target: ElementRef) {}
76
}

src/draggable/node-draggable.directive.ts

+31-21
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,50 @@
1-
import {Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2} from '@angular/core';
2-
import {NodeDraggableService} from './node-draggable.service';
3-
import {CapturedNode} from './captured-node';
4-
import {Tree} from '../tree';
1+
import { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2+
import { NodeDraggableService } from './node-draggable.service';
3+
import { CapturedNode } from './captured-node';
4+
import { Tree } from '../tree';
55

66
@Directive({
77
selector: '[nodeDraggable]'
88
})
99
export class NodeDraggableDirective implements OnDestroy, OnInit {
1010
public static DATA_TRANSFER_STUB_DATA = 'some browsers enable drag-n-drop only when dataTransfer has data';
1111

12-
@Input()
13-
public nodeDraggable: ElementRef;
12+
@Input() public nodeDraggable: ElementRef;
1413

15-
@Input()
16-
public tree: Tree;
14+
@Input() public tree: Tree;
1715

1816
private nodeNativeElement: HTMLElement;
1917
private disposersForDragListeners: Function[] = [];
2018

21-
public constructor(@Inject(ElementRef) public element: ElementRef,
22-
@Inject(NodeDraggableService) private nodeDraggableService: NodeDraggableService,
23-
@Inject(Renderer2) private renderer: Renderer2) {
19+
public constructor(
20+
@Inject(ElementRef) public element: ElementRef,
21+
@Inject(NodeDraggableService) private nodeDraggableService: NodeDraggableService,
22+
@Inject(Renderer2) private renderer: Renderer2
23+
) {
2424
this.nodeNativeElement = element.nativeElement;
2525
}
2626

2727
public ngOnInit(): void {
2828
if (!this.tree.isStatic()) {
2929
this.renderer.setAttribute(this.nodeNativeElement, 'draggable', 'true');
30-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'dragenter', this.handleDragEnter.bind(this)));
31-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'dragover', this.handleDragOver.bind(this)));
32-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'dragstart', this.handleDragStart.bind(this)));
33-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'dragleave', this.handleDragLeave.bind(this)));
34-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'drop', this.handleDrop.bind(this)));
35-
this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement, 'dragend', this.handleDragEnd.bind(this)));
30+
this.disposersForDragListeners.push(
31+
this.renderer.listen(this.nodeNativeElement, 'dragenter', this.handleDragEnter.bind(this))
32+
);
33+
this.disposersForDragListeners.push(
34+
this.renderer.listen(this.nodeNativeElement, 'dragover', this.handleDragOver.bind(this))
35+
);
36+
this.disposersForDragListeners.push(
37+
this.renderer.listen(this.nodeNativeElement, 'dragstart', this.handleDragStart.bind(this))
38+
);
39+
this.disposersForDragListeners.push(
40+
this.renderer.listen(this.nodeNativeElement, 'dragleave', this.handleDragLeave.bind(this))
41+
);
42+
this.disposersForDragListeners.push(
43+
this.renderer.listen(this.nodeNativeElement, 'drop', this.handleDrop.bind(this))
44+
);
45+
this.disposersForDragListeners.push(
46+
this.renderer.listen(this.nodeNativeElement, 'dragend', this.handleDragEnd.bind(this))
47+
);
3648
}
3749
}
3850

@@ -90,9 +102,7 @@ export class NodeDraggableDirective implements OnDestroy, OnInit {
90102

91103
private isDropPossible(e: DragEvent): boolean {
92104
const capturedNode = this.nodeDraggableService.getCapturedNode();
93-
return capturedNode
94-
&& capturedNode.canBeDroppedAt(this.nodeDraggable)
95-
&& this.containsElementAt(e);
105+
return capturedNode && capturedNode.canBeDroppedAt(this.nodeDraggable) && this.containsElementAt(e);
96106
}
97107

98108
private handleDragEnd(e: DragEvent): any {
@@ -101,7 +111,7 @@ export class NodeDraggableDirective implements OnDestroy, OnInit {
101111
}
102112

103113
private containsElementAt(e: DragEvent): boolean {
104-
const {x = e.clientX, y = e.clientY} = e;
114+
const { x = e.clientX, y = e.clientY } = e;
105115
return this.nodeNativeElement.contains(document.elementFromPoint(x, y));
106116
}
107117

src/draggable/node-draggable.service.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {ElementRef, Injectable} from '@angular/core';
2-
import {Subject} from 'rxjs/Subject';
3-
import {CapturedNode} from './captured-node';
4-
import {NodeDraggableEvent} from './draggable.events';
1+
import { ElementRef, Injectable } from '@angular/core';
2+
import { Subject } from 'rxjs/Subject';
3+
import { CapturedNode } from './captured-node';
4+
import { NodeDraggableEvent } from './draggable.events';
55

66
@Injectable()
77
export class NodeDraggableService {

src/editable/node-editable.directive.ts

+9-10
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,22 @@ import {
99
Output,
1010
Renderer2
1111
} from '@angular/core';
12-
import {NodeEditableEvent, NodeEditableEventAction} from './editable.events';
12+
import { NodeEditableEvent, NodeEditableEventAction } from './editable.events';
1313

1414
@Directive({
1515
selector: '[nodeEditable]'
1616
})
1717
export class NodeEditableDirective implements OnInit {
1818
/* tslint:disable:no-input-rename */
19-
@Input('nodeEditable')
20-
public nodeValue: string;
19+
@Input('nodeEditable') public nodeValue: string;
2120
/* tslint:enable:no-input-rename */
2221

23-
@Output()
24-
public valueChanged: EventEmitter<NodeEditableEvent> = new EventEmitter<NodeEditableEvent>(false);
22+
@Output() public valueChanged: EventEmitter<NodeEditableEvent> = new EventEmitter<NodeEditableEvent>(false);
2523

26-
public constructor(@Inject(Renderer2) private renderer: Renderer2,
27-
@Inject(ElementRef) private elementRef: ElementRef) {
28-
}
24+
public constructor(
25+
@Inject(Renderer2) private renderer: Renderer2,
26+
@Inject(ElementRef) private elementRef: ElementRef
27+
) {}
2928

3029
public ngOnInit(): void {
3130
const nativeElement = this.elementRef.nativeElement;
@@ -39,12 +38,12 @@ export class NodeEditableDirective implements OnInit {
3938

4039
@HostListener('keyup.enter', ['$event.target.value'])
4140
public applyNewValue(newNodeValue: string): void {
42-
this.valueChanged.emit({type: 'keyup', value: newNodeValue});
41+
this.valueChanged.emit({ type: 'keyup', value: newNodeValue });
4342
}
4443

4544
@HostListener('blur', ['$event.target.value'])
4645
public applyNewValueByLoosingFocus(newNodeValue: string): void {
47-
this.valueChanged.emit({type: 'blur', value: newNodeValue});
46+
this.valueChanged.emit({ type: 'blur', value: newNodeValue });
4847
}
4948

5049
@HostListener('keyup.esc')

src/menu/node-menu.component.ts

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild} from '@angular/core';
2-
import {NodeMenuService} from './node-menu.service';
3-
import {NodeMenuAction, NodeMenuItemAction, NodeMenuItemSelectedEvent} from './menu.events';
4-
import {isEscapePressed, isLeftButtonClicked} from '../utils/event.utils';
1+
import { Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild } from '@angular/core';
2+
import { NodeMenuService } from './node-menu.service';
3+
import { NodeMenuAction, NodeMenuItemAction, NodeMenuItemSelectedEvent } from './menu.events';
4+
import { isEscapePressed, isLeftButtonClicked } from '../utils/event.utils';
55

66
@Component({
77
selector: 'node-menu',
@@ -21,8 +21,7 @@ export class NodeMenuComponent implements OnInit, OnDestroy {
2121
@Output()
2222
public menuItemSelected: EventEmitter<NodeMenuItemSelectedEvent> = new EventEmitter<NodeMenuItemSelectedEvent>();
2323

24-
@Input()
25-
public menuItems: NodeMenuItem[];
24+
@Input() public menuItems: NodeMenuItem[];
2625

2726
@ViewChild('menuContainer') public menuContainer: any;
2827

@@ -51,9 +50,10 @@ export class NodeMenuComponent implements OnInit, OnDestroy {
5150

5251
private disposersForGlobalListeners: Function[] = [];
5352

54-
public constructor(@Inject(Renderer2) private renderer: Renderer2,
55-
@Inject(NodeMenuService) private nodeMenuService: NodeMenuService) {
56-
}
53+
public constructor(
54+
@Inject(Renderer2) private renderer: Renderer2,
55+
@Inject(NodeMenuService) private nodeMenuService: NodeMenuService
56+
) {}
5757

5858
public ngOnInit(): void {
5959
this.availableMenuItems = this.menuItems || this.availableMenuItems;
@@ -79,9 +79,10 @@ export class NodeMenuComponent implements OnInit, OnDestroy {
7979
private closeMenu(e: MouseEvent | KeyboardEvent): void {
8080
const mouseClicked = e instanceof MouseEvent;
8181
// Check if the click is fired on an element inside a menu
82-
const containingTarget = (this.menuContainer.nativeElement !== e.target && this.menuContainer.nativeElement.contains(e.target));
82+
const containingTarget =
83+
this.menuContainer.nativeElement !== e.target && this.menuContainer.nativeElement.contains(e.target);
8384

84-
if (mouseClicked && !containingTarget || isEscapePressed(e as KeyboardEvent)) {
85+
if ((mouseClicked && !containingTarget) || isEscapePressed(e as KeyboardEvent)) {
8586
this.nodeMenuService.fireMenuEvent(e.target as HTMLElement, NodeMenuAction.Close);
8687
}
8788
}

src/menu/node-menu.service.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {ElementRef, Injectable} from '@angular/core';
2-
import {Subject} from 'rxjs/Subject';
3-
import {Observable} from 'rxjs/Observable';
4-
import {NodeMenuAction, NodeMenuEvent} from './menu.events';
1+
import { ElementRef, Injectable } from '@angular/core';
2+
import { Subject } from 'rxjs/Subject';
3+
import { Observable } from 'rxjs/Observable';
4+
import { NodeMenuAction, NodeMenuEvent } from './menu.events';
55

66
@Injectable()
77
export class NodeMenuService {

src/utils/fn.utils.ts

+10-12
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,12 @@ export function get(value: any, path: string, defaultValue?: any) {
3737
}
3838

3939
export function omit(value: any, propToSkip: string): any {
40-
return Object
41-
.keys(value)
42-
.reduce((result, prop) => {
43-
if (prop === propToSkip) {
44-
return result;
45-
}
46-
return Object.assign(result, { [prop]: value[prop] });
47-
}, {});
40+
return Object.keys(value).reduce((result, prop) => {
41+
if (prop === propToSkip) {
42+
return result;
43+
}
44+
return Object.assign(result, { [prop]: value[prop] });
45+
}, {});
4846
}
4947

5048
export function size(value: any[]): number {
@@ -54,7 +52,7 @@ export function size(value: any[]): number {
5452
export function once(fn: Once): Once {
5553
let result;
5654

57-
return (... args: any[]) => {
55+
return (...args: any[]) => {
5856
if (fn) {
5957
result = fn.apply(null, args);
6058
fn = null;
@@ -63,13 +61,13 @@ export function once(fn: Once): Once {
6361
};
6462
}
6563

66-
export function defaultsDeep(target: any, ... sources: any[]): any {
64+
export function defaultsDeep(target: any, ...sources: any[]): any {
6765
return [target].concat(sources).reduce((result: any, source: any) => {
6866
if (!source) {
6967
return result;
7068
}
7169

72-
Object.keys(source).forEach((prop) => {
70+
Object.keys(source).forEach(prop => {
7371
if (isNil(result[prop])) {
7472
result[prop] = source[prop];
7573
return;
@@ -98,4 +96,4 @@ export function isNil(value: any): boolean {
9896
return value === undefined || value === null;
9997
}
10098

101-
export type Once = (... args: any[]) => any;
99+
export type Once = (...args: any[]) => any;

src/utils/safe-html.pipe.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import {Pipe, PipeTransform} from '@angular/core';
2-
import {DomSanitizer, SafeHtml} from '@angular/platform-browser';
1+
import { Pipe, PipeTransform } from '@angular/core';
2+
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
33

44
@Pipe({ name: 'safeHtml' })
5-
export class SafeHtmlPipe implements PipeTransform {
5+
export class SafeHtmlPipe implements PipeTransform {
66
public constructor(private sanitizer: DomSanitizer) {}
77

88
public transform(value: string): SafeHtml {
9-
// return value;
9+
// return value;
1010
return this.sanitizer.bypassSecurityTrustHtml(value);
1111
}
1212
}

0 commit comments

Comments
 (0)