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