From b4f60bc9c5f2f74eee61c2fc2a639618aaf52c2b Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 27 Feb 2018 16:57:03 +0800
Subject: [PATCH] 更新主题系统版本

---
 src/app/delon.module.ts                                    |   41 ++++++
 src/app/layout/default/header/components/i18n.component.ts |   40 ++++++
 src/app/layout/passport/passport.component.less            |    2 
 src/app/core/i18n/i18n.service.ts                          |    4 
 .angular-cli.json                                          |    3 
 src/app/layout/default/header/header.component.html        |    2 
 src/app/layout/layout.module.ts                            |    4 
 yarn.lock                                                  |  126 +++++++++++---------
 .travis.yml                                                |    2 
 src/app/core/net/default.interceptor.ts                    |   78 +++++++-----
 package.json                                               |   28 ++--
 src/app/routes/passport/login/login.component.ts           |    6 
 src/app/app.component.ts                                   |   12 -
 src/app/layout/passport/passport.component.html            |    8 
 14 files changed, 227 insertions(+), 129 deletions(-)

diff --git a/.angular-cli.json b/.angular-cli.json
index c11dab3..6eaae58 100644
--- a/.angular-cli.json
+++ b/.angular-cli.json
@@ -57,6 +57,9 @@
         }
     },
     "defaults": {
+        "schematics": {
+          "collection": "@delon/cli"
+        },
         "styleExt": "less",
         "class": {
             "spec": false
diff --git a/.travis.yml b/.travis.yml
index 95950e1..222d3c2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,4 @@
-sudo: false
+sudo: required
 language: node_js
 node_js:
   - "8.5.0"
diff --git a/package.json b/package.json
index 70968c8..5cee727 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "ng-alain",
-  "version": "0.6.0-rc.2",
+  "version": "0.6.6",
   "description": "ng-zorro-antd admin panel front-end framework",
   "author": "cipchk",
   "homepage": "https://cipchk.github.io/ng-alain/",
@@ -41,14 +41,14 @@
     "@angular/platform-browser": "^5.0.0",
     "@angular/platform-browser-dynamic": "^5.0.0",
     "@angular/router": "^5.0.0",
-    "@antv/data-set": "^0.8.3",
-    "@antv/g2": "^3.0.1",
-    "@antv/g2-plugin-slider": "^2.0.0",
-    "@delon/abc": "0.6.1",
-    "@delon/acl": "0.6.1",
-    "@delon/auth": "0.6.1",
-    "@delon/cache": "0.6.1",
-    "@delon/theme": "0.6.1",
+    "@antv/data-set": "^0.8.5",
+    "@antv/g2": "^3.0.5-beta.3",
+    "@antv/g2-plugin-slider": "^2.0.1",
+    "@delon/abc": "0.6.6",
+    "@delon/acl": "0.6.6",
+    "@delon/auth": "0.6.6",
+    "@delon/cache": "0.6.6",
+    "@delon/theme": "0.6.6",
     "@ngx-translate/core": "^9.0.0",
     "@ngx-translate/http-loader": "^2.0.0",
     "@types/jquery": "^3.3.0",
@@ -63,11 +63,10 @@
     "jquery": "^3.3.1",
     "moment": "^2.19.3",
     "ng-clipboard-antd": "^2.0.1",
-    "ng-tree-antd": "^2.0.0",
-    "ng-zorro-antd": "^0.6.5",
-    "ng-zorro-antd-extra": "^1.1.6",
+    "ng-tree-antd": "^2.2.2",
+    "ng-zorro-antd": "^0.6.15",
+    "ng-zorro-antd-extra": "^1.1.7",
     "ng2-dnd": "^5.0.0",
-    "ng2-file-upload": "^1.2.1",
     "ng2-img-cropper": "^0.9.0",
     "ngx-color-picker": "^5.0.0",
     "ngx-countdown": "^2.0.0",
@@ -86,6 +85,7 @@
     "@angular/language-service": "^5.0.0",
     "@angularclass/hmr": "^2.1.3",
     "@angularclass/hmr-loader": "^3.0.4",
+    "@delon/cli": "^0.6.6",
     "@types/jasmine": "~2.6.0",
     "@types/jasminewd2": "~2.0.3",
     "@types/jszip": "^3.1.2",
@@ -112,7 +112,7 @@
     "stylelint-config-standard": "^17.0.0",
     "ts-node": "~3.2.0",
     "tslint": "~5.7.0",
-    "typescript": "~2.5.0",
+    "typescript": "~2.5.3",
     "webpack-bundle-analyzer": "^2.9.0",
     "xlsx": "^0.11.16"
   },
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index efcceed..90c68af 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -3,7 +3,7 @@
 import { Component, HostBinding, OnInit } from '@angular/core';
 import { Router, NavigationEnd, NavigationStart } from '@angular/router';
 import { ThemesService, SettingsService, TitleService } from '@delon/theme';
-import { filter, map } from 'rxjs/operators';
+import { filter } from 'rxjs/operators';
 import * as $ from 'jquery';
 @Component({
   selector: 'app-root',
@@ -24,13 +24,9 @@
   }
 
   ngOnInit() {
-    this.router.events.pipe(
-            filter(evt => evt instanceof NavigationEnd),
-            map(() => this.router.url)
-        )
-        .subscribe(url => {
-            this.titleSrv.setTitleByUrl(url);
-        });
+    this.router.events
+        .pipe(filter(evt => evt instanceof NavigationEnd))
+        .subscribe(() => this.titleSrv.setTitle());
       this.router.events.pipe(
           filter(evt => evt instanceof NavigationStart)
       )
diff --git a/src/app/core/i18n/i18n.service.ts b/src/app/core/i18n/i18n.service.ts
index b01d206..651d62a 100644
--- a/src/app/core/i18n/i18n.service.ts
+++ b/src/app/core/i18n/i18n.service.ts
@@ -11,8 +11,8 @@
     private _default = 'zh-CN';
 
     private _langs = [
-        { code: 'zh-CN', text: '������' },
-        { code: 'en', text: 'English' }
+        { code: 'en', text: 'English' },
+        { code: 'zh-CN', text: '������' }
     ];
 
     constructor(
diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts
index aaf63a6..5d7b2e0 100644
--- a/src/app/core/net/default.interceptor.ts
+++ b/src/app/core/net/default.interceptor.ts
@@ -1,12 +1,14 @@
 import { Injectable, Injector } from '@angular/core';
 import { Router } from '@angular/router';
-import { HttpInterceptor, HttpRequest, HttpHandler,
+import { HttpInterceptor, HttpRequest, HttpHandler, HttpErrorResponse,
          HttpSentEvent, HttpHeaderResponse, HttpProgressEvent, HttpResponse, HttpUserEvent,
        } from '@angular/common/http';
 import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
 import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
-import { catchError } from 'rxjs/operators';
-import { map, mergeMap } from 'rxjs/operators';
+import { mergeMap, catchError } from 'rxjs/operators';
+import { NzMessageService } from 'ng-zorro-antd';
+import { _HttpClient } from '@delon/theme';
 import { environment } from '@env/environment';
 
 /**
@@ -16,54 +18,64 @@
 export class DefaultInterceptor implements HttpInterceptor {
     constructor(private injector: Injector) {}
 
-    private goLogin() {
-        const router = this.injector.get(Router);
-        router.navigate([ '/login' ]);
-        // window.location.reload();
+    get msg(): NzMessageService {
+        return this.injector.get(NzMessageService);
+    }
+
+    private goTo(url: string) {
+        setTimeout(() => this.injector.get(Router).navigateByUrl(url));
+    }
+
+    private handleData(event: HttpResponse<any> | HttpErrorResponse): Observable<any> {
+        // ��������������� `throw` ������������������ `_HttpClient` ��� `end()` ������
+        this.injector.get(_HttpClient).end();
+        // ���������������������������������
+        switch (event.status) {
+            case 200:
+                // ��������������������������������������������������� `status` ��������� `0` ���������������������
+                // ��������� `error_message` ������
+
+                // const body: any = event instanceof HttpResponse && event.body;
+                // if (body && body.status !== 0) {
+                //     this.msg.error(body.error_message);
+                //     // ������������������������������������ Pipe���subscribe ������������������
+                //     // this.http.get('/').subscribe() ���������������
+                //     return ErrorObservable.throw(event);
+                // }
+                break;
+            case 401: // ������������������
+                this.goTo('/passport/login');
+                break;
+            case 403:
+            case 404:
+            case 500:
+                this.goTo(`/${event.status}`);
+                break;
+        }
+        return of(event);
     }
 
     intercept(req: HttpRequest<any>, next: HttpHandler):
         Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
 
-        // TIPS������TOKEN��������������� `@delon/auth` ������
-        // Document: http://ng-alain.com/docs/auth
         // ���������������������������
         let url = req.url;
-        
         if (!url.startsWith('https://') && !url.startsWith('http://')) {
             url = environment.SERVER_URL + url;
         }
+
         const newReq = req.clone({
             url: url
         });
-
         return next.handle(newReq).pipe(
                     mergeMap((event: any) => {
                         // ������������������������������������������������������������������������������������������������HTTP������������������200������������������
-                        if (event instanceof HttpResponse && event.status !== 200) {
-                            // ���������������observer.error ��������������������� `catch`
-                            // return ErrorObservable.create(event);
-                        }
+                        if (event instanceof HttpResponse && event.status === 200)
+                            return this.handleData(event);
                         // ������������������������������������
-                        return Observable.create(observer => observer.next(event));
+                        return of(event);
                     }),
-                    catchError((res: HttpResponse<any>) => {
-                        // ���������������������������������
-                        switch (res.status) {
-                            case 401: // ������������������
-                                this.goLogin();
-                                break;
-                            case 200:
-                                // ������������������������
-                                console.log('������������');
-                                break;
-                            case 404:
-                                // 404
-                                break;
-                        }
-                        // ������������������������������������
-                        return ErrorObservable.create(event);
-                    })
+                    catchError((err: HttpErrorResponse) => this.handleData(err))
                 );
     }
 }
diff --git a/src/app/delon.module.ts b/src/app/delon.module.ts
index c268107..0305521 100644
--- a/src/app/delon.module.ts
+++ b/src/app/delon.module.ts
@@ -2,7 +2,7 @@
  * ���������������������������������������
  * ������������������������������������������https://github.com/cipchk/ng-alain/issues/180
  */
-import { NgModule, Optional, SkipSelf } from '@angular/core';
+import { NgModule, Optional, SkipSelf, ModuleWithProviders } from '@angular/core';
 import { throwIfAlreadyLoaded } from '@core/module-import-guard';
 
 // region: zorro modules
@@ -54,6 +54,7 @@
     // NzAffixModule,
     // NzAnchorModule,
     NzAvatarModule,
+    NzUploadModule,
     // SERVICES
     NzNotificationService,
     NzMessageService
@@ -104,7 +105,8 @@
     // NzBackTopModule,
     // NzAffixModule,
     // NzAnchorModule,
-    NzAvatarModule
+    NzAvatarModule,
+    NzUploadModule
 ];
 // endregion
 
@@ -172,8 +174,21 @@
 import { AlainAuthModule } from '@delon/auth';
 import { AlainACLModule } from '@delon/acl';
 import { DelonCacheModule } from '@delon/cache';
-import { environment } from '@env/environment';
+// mock
+// import { DelonMockModule } from '@delon/mock';
+// import * as MOCKDATA from '../../_mock';
+// import { environment } from '@env/environment';
+// const MOCKMODULE = !environment.production || environment.chore === true ?
+//                     [ DelonMockModule.forRoot({ data: MOCKDATA }) ] : [];
 
+// region: global config functions
+
+// import { SimpleTableConfig } from '@delon/abc';
+// export function simpleTableConfig(): SimpleTableConfig {
+//     return { ps: 20 };
+// }
+
+// endregion
 
 @NgModule({
     imports: [
@@ -182,7 +197,11 @@
         // theme
         AlainThemeModule.forRoot(),
         // abc
-        AlainABCModule.forRoot(),
+        AdErrorCollectModule.forRoot(), AdFooterToolbarModule.forRoot(), AdSidebarNavModule.forRoot(), AdDownFileModule.forRoot(), AdImageModule.forRoot(),
+        AdAvatarListModule.forRoot(), AdDescListModule.forRoot(), AdEllipsisModule.forRoot(), AdExceptionModule.forRoot(), AdExceptionModule.forRoot(),
+        AdNoticeIconModule.forRoot(), AdNumberInfoModule.forRoot(), AdProHeaderModule.forRoot(), AdResultModule.forRoot(), AdStandardFormRowModule.forRoot(),
+        AdTagSelectModule.forRoot(), AdTrendModule.forRoot(), AdUtilsModule.forRoot(), AdChartsModule.forRoot(), AdCountDownModule.forRoot(), AdSimpleTableModule.forRoot(),
+        AdReuseTabModule.forRoot(), AdFullContentModule.forRoot(), AdXlsxModule.forRoot(), AdZipModule.forRoot(),
         // auth
         AlainAuthModule.forRoot({
             // ignores: [ `\\/login`, `assets\\/` ],
@@ -195,11 +214,23 @@
         // acl
         AlainACLModule.forRoot(),
         // cache
-        DelonCacheModule.forRoot()
+        DelonCacheModule.forRoot(),
+        // mock
+        // ...MOCKMODULE
     ]
 })
 export class DelonModule {
   constructor( @Optional() @SkipSelf() parentModule: DelonModule) {
     throwIfAlreadyLoaded(parentModule, 'DelonModule');
   }
+
+  static forRoot(): ModuleWithProviders {
+      return {
+          ngModule: DelonModule,
+          providers: [
+              // TIPS���@delon/abc ��������������������������������������������������� `simple-table` ������������������ `20` ���
+              // { provide: SimpleTableConfig, useFactory: simpleTableConfig }
+          ]
+      };
+  }
 }
diff --git a/src/app/layout/default/header/components/i18n.component.ts b/src/app/layout/default/header/components/i18n.component.ts
new file mode 100644
index 0000000..2f037f7
--- /dev/null
+++ b/src/app/layout/default/header/components/i18n.component.ts
@@ -0,0 +1,40 @@
+import { Component } from '@angular/core';
+import { SettingsService, MenuService } from '@delon/theme';
+import { I18NService } from '@core/i18n/i18n.service';
+
+@Component({
+    selector: 'header-i18n',
+    template: `
+    <nz-dropdown>
+        <div nz-dropdown>
+            <i class="anticon anticon-edit"></i>
+            {{ 'language' | translate}}
+            <i class="anticon anticon-down"></i>
+        </div>
+        <ul nz-menu>
+            <li nz-menu-item *ngFor="let item of langs"
+            [nzSelected]="item.code === settings.layout.lang"
+                (click)="change(item.code)">{{item.text}}</li>
+        </ul>
+    </nz-dropdown>
+    `
+})
+export class HeaderI18nComponent {
+
+    langs: any[];
+
+    constructor(
+        private menuService: MenuService,
+        public settings: SettingsService,
+        public tsServ: I18NService
+    ) {
+        this.langs = this.tsServ.getLangs();
+    }
+
+    change(lang: string) {
+        this.tsServ.use(lang, false).subscribe(() => {
+            this.menuService.resume();
+        });
+        this.settings.setLayout('lang', lang);
+    }
+}
diff --git a/src/app/layout/default/header/header.component.html b/src/app/layout/default/header/header.component.html
index 134ccc8..d8b1b51 100644
--- a/src/app/layout/default/header/header.component.html
+++ b/src/app/layout/default/header/header.component.html
@@ -62,7 +62,7 @@
                         <header-storage></header-storage>
                     </div>
                     <div nz-menu-item>
-                        <header-langs></header-langs>
+                        <header-i18n></header-i18n>
                     </div>
                 </div>
             </nz-dropdown>
diff --git a/src/app/layout/layout.module.ts b/src/app/layout/layout.module.ts
index 221d8ec..f9b4d58 100644
--- a/src/app/layout/layout.module.ts
+++ b/src/app/layout/layout.module.ts
@@ -11,7 +11,7 @@
 import { HeaderTaskComponent } from './default/header/components/task.component';
 import { HeaderIconComponent } from './default/header/components/icon.component';
 import { HeaderFullScreenComponent } from './default/header/components/fullscreen.component';
-import { HeaderLangsComponent } from './default/header/components/langs.component';
+import { HeaderI18nComponent } from './default/header/components/i18n.component';
 import { HeaderStorageComponent } from './default/header/components/storage.component';
 import { HeaderUserComponent } from './default/header/components/user.component';
 
@@ -29,7 +29,7 @@
     HeaderIconComponent,
     HeaderFullScreenComponent,
     HeaderThemeComponent,
-    HeaderLangsComponent,
+    HeaderI18nComponent,
     HeaderStorageComponent,
     HeaderUserComponent
 ];
diff --git a/src/app/layout/passport/passport.component.html b/src/app/layout/passport/passport.component.html
index cd0480b..187cf13 100644
--- a/src/app/layout/passport/passport.component.html
+++ b/src/app/layout/passport/passport.component.html
@@ -3,15 +3,15 @@
         <div class="head">
             <a [routerLink]="['/']">
                 <img class="logo" src="./assets/img/logo-color.svg">
-                <span class="title">������������������������������</span>
+                <span class="title">ng-alain</span>
             </a>
         </div>
-        <p class="desc"></p>
+        <p class="desc">���������������������������������������������������������������������������</p>
     </div>
     <router-outlet></router-outlet>
-    <global-footer>
+    <global-footer [links]="links">
         <ng-template #copyright>
-            Copyright <nz-icon nzType="copyright"></nz-icon> 2018 <a href="http://www.7drlb.com/" target="_blank">������������������������</a>
+            Copyright <nz-icon nzType="copyright"></nz-icon> 2017 <a href="//github.com/cipchk" target="_blank">������</a>������
         </ng-template>
     </global-footer>
 </div>
diff --git a/src/app/layout/passport/passport.component.less b/src/app/layout/passport/passport.component.less
index a98b75f..b3dc2f6 100644
--- a/src/app/layout/passport/passport.component.less
+++ b/src/app/layout/passport/passport.component.less
@@ -34,7 +34,7 @@
 		}
 
 		.title {
-			font-size: 28px;
+			font-size: 33px;
 			color: @heading-color;
 			font-family: "Myriad Pro", "Helvetica Neue", Arial, Helvetica, sans-serif;
 			font-weight: 600;
diff --git a/src/app/routes/passport/login/login.component.ts b/src/app/routes/passport/login/login.component.ts
index c18af0b..c84c2a5 100644
--- a/src/app/routes/passport/login/login.component.ts
+++ b/src/app/routes/passport/login/login.component.ts
@@ -1,11 +1,12 @@
 import { Authorization } from '@business/entity/token';
 import { LoginService } from '@business/services/http/login.service';
 import { SettingsService } from '@delon/theme';
-import { Component, OnDestroy, Inject } from '@angular/core';
+import { Component, OnDestroy, Inject, Optional } from '@angular/core';
 import { Router } from '@angular/router';
 import { FormGroup, FormBuilder, Validators } from '@angular/forms';
 import { NzMessageService } from 'ng-zorro-antd';
 import { SocialService, SocialOpenType, ITokenService, DA_SERVICE_TOKEN } from '@delon/auth';
+import { ReuseTabService } from '@delon/abc';
 import { environment } from '@env/environment';
 import { CookieService } from 'angular2-cookie/services/cookies.service';
 @Component({
@@ -27,6 +28,7 @@
         public msg: NzMessageService,
         private settingsService: SettingsService,
         private socialService: SocialService,
+        @Optional() @Inject(ReuseTabService) private reuseTabService: ReuseTabService,
         private loginService:LoginService,
         @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {
         this.form = fb.group({
@@ -84,6 +86,8 @@
             this.loginService.validate(this.userName.value,this.password.value).subscribe(
                 (res:Authorization) => {
                    if(res.token!=null){
+                        // ������������������������
+                       this.reuseTabService.clear();
                        this.tokenService.set({
                            token: res.token,
                            name: this.userName.value,
diff --git a/yarn.lock b/yarn.lock
index 97a8085..756deda 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -175,9 +175,9 @@
   version "2.1.3"
   resolved "http://registry.npm.taobao.org/@angularclass/hmr/download/@angularclass/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f"
 
-"@antv/data-set@^0.8.3":
-  version "0.8.3"
-  resolved "http://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.8.3.tgz#7f58207532a9de5d174b52676b876247b2acab02"
+"@antv/data-set@^0.8.5":
+  version "0.8.5"
+  resolved "https://registry.yarnpkg.com/@antv/data-set/-/data-set-0.8.5.tgz#9ab5f53b7ac078f52211db6cefd0c6a42822bd0e"
   dependencies:
     d3-array "~1.2.0"
     d3-composite-projections "~1.2.0"
@@ -195,50 +195,54 @@
     topojson-client "~3.0.0"
     wolfy87-eventemitter "~5.1.0"
 
-"@antv/g2-plugin-slider@^2.0.0":
+"@antv/g2-plugin-slider@^2.0.1":
   version "2.0.1"
-  resolved "http://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.0.1.tgz#45cf6da6f2050fabe64166a213674422afe4eebf"
+  resolved "https://registry.yarnpkg.com/@antv/g2-plugin-slider/-/g2-plugin-slider-2.0.1.tgz#45cf6da6f2050fabe64166a213674422afe4eebf"
 
-"@antv/g2@^3.0.1":
-  version "3.0.3"
-  resolved "http://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.0.3.tgz#ee59e1ded71b065d1e9ef3fe6d572fe5de07c069"
+"@antv/g2@^3.0.5-beta.3":
+  version "3.0.5-beta.3"
+  resolved "https://registry.yarnpkg.com/@antv/g2/-/g2-3.0.5-beta.3.tgz#1cbdf3a6fbf1bcbccf848fb3efd3ab7c5c70c9a0"
   dependencies:
-    "@antv/g" "~2.0.4"
+    "@antv/g" "~2.0.5"
     fecha "~2.3.2"
     gl-matrix "~2.4.0"
     lodash "~4.17.4"
     wolfy87-eventemitter "~5.2.4"
 
-"@antv/g@~2.0.4":
-  version "2.0.4"
-  resolved "http://registry.npm.taobao.org/@antv/g/download/@antv/g-2.0.4.tgz#b637c641b4dd6092fc4d628aa604424d29faca0d"
+"@antv/g@~2.0.5":
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/@antv/g/-/g-2.0.6.tgz#88a85b5899eae6f3d51f016894b51e39356e56b1"
   dependencies:
-    d3-ease "^1.0.3"
-    d3-interpolate "^1.1.5"
-    d3-timer "^1.0.6"
-    gl-matrix "^2.3.2"
-    lodash "^4.17.4"
-    wolfy87-eventemitter "^5.1.0"
+    d3-ease "~1.0.3"
+    d3-interpolate "~1.1.5"
+    d3-timer "~1.0.6"
+    gl-matrix "~2.3.2"
+    lodash "~4.17.4"
+    wolfy87-eventemitter "~5.1.0"
 
-"@delon/abc@0.6.1":
-  version "0.6.1"
-  resolved "http://registry.npm.taobao.org/@delon/abc/download/@delon/abc-0.6.1.tgz#161ab09848715700fd00d073c55ac0a51268195d"
+"@delon/abc@0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/abc/-/abc-0.6.6.tgz#9749082a2fbc64096d6df9de4efc730bc54a3473"
 
-"@delon/acl@0.6.1":
-  version "0.6.1"
-  resolved "http://registry.npm.taobao.org/@delon/acl/download/@delon/acl-0.6.1.tgz#2728f2c24684640caff36db98c0777589b59f747"
+"@delon/acl@0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/acl/-/acl-0.6.6.tgz#c7181ce8b691ff404c28dd4578bfb71a30d88dfe"
 
-"@delon/auth@0.6.1":
-  version "0.6.1"
-  resolved "http://registry.npm.taobao.org/@delon/auth/download/@delon/auth-0.6.1.tgz#26b0945008663b7126ea30aca6372a6bc5d6a9cb"
+"@delon/auth@0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/auth/-/auth-0.6.6.tgz#0ad68abb18ae215c9bf5a409d3f7e8826227326f"
 
-"@delon/cache@0.6.1":
-  version "0.6.1"
-  resolved "http://registry.npm.taobao.org/@delon/cache/download/@delon/cache-0.6.1.tgz#13b412897743dc2ad612c4c4fca280c3dc044825"
+"@delon/cache@0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/cache/-/cache-0.6.6.tgz#7249ab3611ecf0b785932008540b3149c8e725f2"
 
-"@delon/theme@0.6.1":
-  version "0.6.1"
-  resolved "http://registry.npm.taobao.org/@delon/theme/download/@delon/theme-0.6.1.tgz#4e98b1dc565c2f0684717c44ed73509cd866f120"
+"@delon/cli@^0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/cli/-/cli-0.6.6.tgz#0e17ac163c12a2f6c73ac32f5bf919624b31b33f"
+
+"@delon/theme@0.6.6":
+  version "0.6.6"
+  resolved "https://registry.yarnpkg.com/@delon/theme/-/theme-0.6.6.tgz#de3439d709bdc3bac312f3f21b4a09d9ccc25467"
 
 "@ngtools/json-schema@1.2.0":
   version "1.2.0"
@@ -1859,9 +1863,9 @@
     iconv-lite "0.4"
     rw "1"
 
-d3-ease@^1.0.3:
+d3-ease@~1.0.3:
   version "1.0.3"
-  resolved "http://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e"
+  resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e"
 
 d3-geo-projection@~2.1.2:
   version "2.1.2"
@@ -1899,9 +1903,9 @@
   version "1.1.5"
   resolved "http://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26"
 
-d3-interpolate@^1.1.5:
+d3-interpolate@~1.1.5:
   version "1.1.6"
-  resolved "http://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6"
+  resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6"
   dependencies:
     d3-color "1"
 
@@ -1923,9 +1927,9 @@
   dependencies:
     d3-path "1"
 
-d3-timer@^1.0.6:
+d3-timer@~1.0.6:
   version "1.0.7"
-  resolved "http://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531"
+  resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531"
 
 d3-voronoi@~1.1.2:
   version "1.1.2"
@@ -3067,7 +3071,11 @@
   dependencies:
     assert-plus "^1.0.0"
 
-gl-matrix@^2.3.2, gl-matrix@~2.4.0:
+gl-matrix@~2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-2.3.2.tgz#aac808c74af7d5db05fe04cb60ca1a0fcb174d74"
+
+gl-matrix@~2.4.0:
   version "2.4.0"
   resolved "http://registry.npm.taobao.org/gl-matrix/download/gl-matrix-2.4.0.tgz#2089b13301a29eec822d9d99dffc1f78ee9a3c50"
 
@@ -5047,9 +5055,9 @@
     rxjs "^5.5.2"
     zone.js "^0.8.14"
 
-ng-tree-antd@^2.0.0:
-  version "2.1.0"
-  resolved "http://registry.npm.taobao.org/ng-tree-antd/download/ng-tree-antd-2.1.0.tgz#4cbb93ad3c7a2bddc6c329d788e767777481dcbb"
+ng-tree-antd@^2.2.2:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/ng-tree-antd/-/ng-tree-antd-2.2.2.tgz#a28ee1adaa194c3429e49999daaab32f97124175"
   dependencies:
     "@angular/animations" "^5.0.0"
     "@angular/common" "^5.0.0"
@@ -5065,11 +5073,19 @@
     rxjs "^5.5.2"
     zone.js "^0.8.14"
 
-ng-zorro-antd-extra@^1.1.6:
-  version "1.1.6"
-  resolved "http://registry.npm.taobao.org/ng-zorro-antd-extra/download/ng-zorro-antd-extra-1.1.6.tgz#b69ba30603843ffd6ded09a46dd2038542251e40"
+ng-zorro-antd-extra@^1.1.7:
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/ng-zorro-antd-extra/-/ng-zorro-antd-extra-1.1.7.tgz#0e0579cac2c8dc3ac566e1f49a4b0ca7f0186b50"
 
-ng-zorro-antd@^0.6.5, ng-zorro-antd@^0.6.7:
+ng-zorro-antd@^0.6.15:
+  version "0.6.15"
+  resolved "https://registry.yarnpkg.com/ng-zorro-antd/-/ng-zorro-antd-0.6.15.tgz#acef41a30febce835b871d52cd47d042ac2ed443"
+  dependencies:
+    "@angular/cdk" "^5.0.0"
+    moment "^2.18.1"
+    tslib "^1.7.1"
+
+ng-zorro-antd@^0.6.7:
   version "0.6.10"
   resolved "http://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-0.6.10.tgz#0cf5ec5cb94e10226a2b2becff67debf0c8ad860"
   dependencies:
@@ -5080,10 +5096,6 @@
 ng2-dnd@^5.0.0:
   version "5.0.2"
   resolved "http://registry.npm.taobao.org/ng2-dnd/download/ng2-dnd-5.0.2.tgz#862278ac7dedfa14f5783bbf34014d5d73dfefb4"
-
-ng2-file-upload@^1.2.1:
-  version "1.3.0"
-  resolved "http://registry.npm.taobao.org/ng2-file-upload/download/ng2-file-upload-1.3.0.tgz#d90f8f568f62383462175f8bdfa0096b131f277a"
 
 ng2-img-cropper@^0.9.0:
   version "0.9.0"
@@ -7657,9 +7669,9 @@
   version "0.0.6"
   resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
 
-typescript@~2.5.0:
+typescript@~2.5.3:
   version "2.5.3"
-  resolved "http://registry.npm.taobao.org/typescript/download/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
 
 typescript@~2.6.2:
   version "2.6.2"
@@ -8196,14 +8208,14 @@
   version "0.1.0"
   resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
 
-wolfy87-eventemitter@^5.1.0, wolfy87-eventemitter@~5.2.4:
-  version "5.2.4"
-  resolved "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.4.tgz#5021d2952d3611cbcd195149711d9b595cd11d48"
-
 wolfy87-eventemitter@~5.1.0:
   version "5.1.0"
   resolved "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011"
 
+wolfy87-eventemitter@~5.2.4:
+  version "5.2.4"
+  resolved "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.2.4.tgz#5021d2952d3611cbcd195149711d9b595cd11d48"
+
 wordwrap@0.0.2:
   version "0.0.2"
   resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"

--
Gitblit v1.8.0