UNPKG

bfend

Version:

Admin template base on ng-zorro-antd

147 lines 15.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { APP_INITIALIZER, NgModule } from '@angular/core'; import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { CommonModule } from '@angular/common'; import { NgProgressModule } from '@ngx-progressbar/core'; import { AngularWebStorageModule } from 'angular-web-storage'; import { JWT_OPTIONS, JwtModule } from '@auth0/angular-jwt'; import { BfAppService } from './app.service'; import { BFEND_OPTIONS } from './options.type'; import { BfTokenStorage } from './auth/token.service'; import { BfHttpManagedInterceptor } from './http/http-managed.interceptor'; import { BfAuthInterceptor } from './auth/auth.interceptor'; import { BfHttpInterceptor } from './http/http.interceptor'; import { BfLayoutComponent } from './components/layout/layout.component'; import { BfFullScreenComponent } from './components/layout/fullscreen.component'; import { BfHeaderComponent } from './components/layout/header.component'; import { BfAsideComponent } from './components/layout/aside.component'; import { BfFooterComponent } from './components/layout/footer.component'; import { BfPageComponent } from './components/layout/page.component'; import { BfModalProxyComponent } from './components/modal-proxy.component'; import { BfStateTextComponent } from './components/state-text.component'; import { BfChangePasswordComponent } from './components/change-password.component'; import { BfACLDirective } from './components/acl.directive'; import { BfConfirmationValidatorDirective } from './components/confirmation-validator.directive'; import { BfDatetimeValidatorDirective } from './components/datetime-validator.directive'; import { BfMinNumberValidatorDirective } from './components/min-number-validator.directive'; import { BfMaxNumberValidatorDirective } from './components/max-number-validator.directive'; import { BfYuanPipe } from './components/yuan.pipe'; /** @type {?} */ const COMPONENTS = [ BfLayoutComponent, BfFullScreenComponent, BfHeaderComponent, BfAsideComponent, BfFooterComponent, BfPageComponent, BfModalProxyComponent, BfStateTextComponent, BfChangePasswordComponent ]; /** @type {?} */ const ENTRY_COMPONENTS = [ BfChangePasswordComponent ]; /** @type {?} */ const DIRECTIVES = [ BfACLDirective, BfConfirmationValidatorDirective, BfDatetimeValidatorDirective, BfMinNumberValidatorDirective, BfMaxNumberValidatorDirective ]; /** @type {?} */ const PIPES = [ BfYuanPipe ]; /** * @param {?} storage * @return {?} */ export function jwtOptionsFactory(storage) { return { skipWhenExpired: false, whitelistedDomains: [/^null$/], tokenGetter: () => { return storage.token; } }; } /** * @param {?} appService * @return {?} */ export function startupServiceFactory(appService) { return () => appService.startup(); } /** * \@dynamic */ export class BfendModule { /** * @param {?} options * @return {?} */ static forRoot(options) { return { ngModule: BfendModule, providers: [ ...JwtModule.forRoot({ jwtOptionsProvider: { provide: JWT_OPTIONS, useFactory: jwtOptionsFactory, deps: [BfTokenStorage], } }).providers, ...NgProgressModule.forRoot().providers, { provide: NZ_I18N, useValue: zh_CN }, { provide: BFEND_OPTIONS, useValue: options }, { provide: APP_INITIALIZER, useFactory: startupServiceFactory, deps: [BfAppService], multi: true }, // 注意:这里后添加的先执行 { provide: HTTP_INTERCEPTORS, useClass: BfHttpManagedInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: BfAuthInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: BfHttpInterceptor, multi: true }, ] }; } } BfendModule.decorators = [ { type: NgModule, args: [{ imports: [ CommonModule, FormsModule, RouterModule, ReactiveFormsModule, NgZorroAntdModule, NgProgressModule, HttpClientModule, AngularWebStorageModule, NgZorroAntdModule ], exports: [ CommonModule, FormsModule, ReactiveFormsModule, RouterModule, NgZorroAntdModule, NgProgressModule, COMPONENTS, DIRECTIVES, PIPES ], declarations: [COMPONENTS, DIRECTIVES, PIPES], entryComponents: [ENTRY_COMPONENTS], },] }, ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmZlbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYmZlbmQvIiwic291cmNlcyI6WyJsaWIvYmZlbmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFP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RSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDdEUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7YUFDdkU7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBekRGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osbUJBQW1CO29CQUVuQixpQkFBaUI7b0JBQ2pCLGdCQUFnQjtvQkFFaEIsZ0JBQWdCO29CQUNoQix1QkFBdUI7b0JBQ3ZCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osaUJBQWlCO29CQUNqQixnQkFBZ0I7b0JBRWhCLFVBQVU7b0JBQ1YsVUFBVTtvQkFDVixLQUFLO2lCQUNOO2dCQUNELFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDO2dCQUM3QyxlQUFlLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzthQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdab3Jyb0FudGRNb2R1bGUsIE5aX0kxOE4sIHpoX0NOIH0gZnJvbSAnbmctem9ycm8tYW50ZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUywgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ1Byb2dyZXNzTW9kdWxlIH0gZnJvbSAnQG5neC1wcm9ncmVzc2Jhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJXZWJTdG9yYWdlTW9kdWxlIH0gZnJvbSAnYW5ndWxhci13ZWItc3RvcmFnZSc7XG5pbXBvcnQgeyBKV1RfT1BUSU9OUywgSnd0TW9kdWxlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcblxuaW1wb3J0IHsgQmZBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBCRkVORF9PUFRJT05TLCBCZmVuZE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBCZlRva2VuU3RvcmFnZSB9IGZyb20gJy4vYXV0aC90b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJmSHR0cE1hbmFnZWRJbnRlcmNlcHRvciB9IGZyb20gJy4vaHR0cC9odHRwLW1hbmFnZWQuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgQmZBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2F1dGgvYXV0aC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBCZkh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vaHR0cC9odHRwLmludGVyY2VwdG9yJztcblxuaW1wb3J0IHsgQmZMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmZGdWxsU2NyZWVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9mdWxsc2NyZWVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCZkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYXlvdXQvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCZkFzaWRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9hc2lkZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmZGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0L2Zvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmZQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCZk1vZGFsUHJveHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtcHJveHkuY29tcG9uZW50JztcbmltcG9ydCB7IEJmU3RhdGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0YXRlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEJmQ2hhbmdlUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCZkFDTERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9hY2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJmQ29uZmlybWF0aW9uVmFsaWRhdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJmRGF0ZXRpbWVWYWxpZGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXRpbWUtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCZk1pbk51bWJlclZhbGlkYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9taW4tbnVtYmVyLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmZNYXhOdW1iZXJWYWxpZGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbWF4LW51bWJlci12YWxpZGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJmWXVhblBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMveXVhbi5waXBlJztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgQmZMYXlvdXRDb21wb25lbnQsXG4gIEJmRnVsbFNjcmVlbkNvbXBvbmVudCxcbiAgQmZIZWFkZXJDb21wb25lbnQsXG4gIEJmQXNpZGVDb21wb25lbnQsXG4gIEJmRm9vdGVyQ29tcG9uZW50LFxuICBCZlBhZ2VDb21wb25lbnQsXG4gIEJmTW9kYWxQcm94eUNvbXBvbmVudCxcbiAgQmZTdGF0ZVRleHRDb21wb25lbnQsXG4gIEJmQ2hhbmdlUGFzc3dvcmRDb21wb25lbnRcbl07XG5cbmNvbnN0IEVOVFJZX0NPTVBPTkVOVFMgPSBbXG4gIEJmQ2hhbmdlUGFzc3dvcmRDb21wb25lbnRcbl07XG5cbmNvbnN0IERJUkVDVElWRVMgPSBbXG4gIEJmQUNMRGlyZWN0aXZlLFxuICBCZkNvbmZpcm1hdGlvblZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgQmZEYXRldGltZVZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgQmZNaW5OdW1iZXJWYWxpZGF0b3JEaXJlY3RpdmUsXG4gIEJmTWF4TnVtYmVyVmFsaWRhdG9yRGlyZWN0aXZlXG5dO1xuXG5jb25zdCBQSVBFUyA9IFtcbiAgQmZZdWFuUGlwZVxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGp3dE9wdGlvbnNGYWN0b3J5KHN0b3JhZ2U6IEJmVG9rZW5TdG9yYWdlKSB7XG4gIHJldHVybiB7XG4gICAgc2tpcFdoZW5FeHBpcmVkOiBmYWxzZSxcbiAgICB3aGl0ZWxpc3RlZERvbWFpbnM6IFsvXm51bGwkL10sXG4gICAgdG9rZW5HZXR0ZXI6ICgpID0+IHtcbiAgICAgIHJldHVybiBzdG9yYWdlLnRva2VuO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0dXBTZXJ2aWNlRmFjdG9yeShhcHBTZXJ2aWNlOiBCZkFwcFNlcnZpY2UpOiBGdW5jdGlvbiB7XG4gIHJldHVybiAoKSA9PiBhcHBTZXJ2aWNlLnN0YXJ0dXAoKTtcbn1cblxuLyoqIEBkeW5hbWljICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgTmdab3Jyb0FudGRNb2R1bGUsXG4gICAgTmdQcm9ncmVzc01vZHVsZSxcblxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgQW5ndWxhcldlYlN0b3JhZ2VNb2R1bGUsXG4gICAgTmdab3Jyb0FudGRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBOZ1pvcnJvQW50ZE1vZHVsZSxcbiAgICBOZ1Byb2dyZXNzTW9kdWxlLFxuXG4gICAgQ09NUE9ORU5UUyxcbiAgICBESVJFQ1RJVkVTLFxuICAgIFBJUEVTXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0NPTVBPTkVOVFMsIERJUkVDVElWRVMsIFBJUEVTXSxcbiAgZW50cnlDb21wb25lbnRzOiBbRU5UUllfQ09NUE9ORU5UU10sXG59KVxuZXhwb3J0IGNsYXNzIEJmZW5kTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9uczogQmZlbmRPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBCZmVuZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi5Kd3RNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgICAgand0T3B0aW9uc1Byb3ZpZGVyOiB7XG4gICAgICAgICAgICBwcm92aWRlOiBKV1RfT1BUSU9OUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGp3dE9wdGlvbnNGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0JmVG9rZW5TdG9yYWdlXSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLnByb3ZpZGVycyxcblxuICAgICAgICAuLi5OZ1Byb2dyZXNzTW9kdWxlLmZvclJvb3QoKS5wcm92aWRlcnMsXG4gICAgICAgIHtwcm92aWRlOiBOWl9JMThOLCB1c2VWYWx1ZTogemhfQ059LFxuICAgICAgICB7cHJvdmlkZTogQkZFTkRfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnN9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IHN0YXJ0dXBTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbQmZBcHBTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICAvLyDms6jmhI/vvJrov5nph4zlkI7mt7vliqDnmoTlhYjmiafooYxcbiAgICAgICAge3Byb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQmZIdHRwTWFuYWdlZEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgIHtwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEJmQXV0aEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgIHtwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IEJmSHR0cEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZX0sXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19