Skip to content

Instantly share code, notes, and snippets.

@BenevidesLecontes
Created May 17, 2017 16:41
Show Gist options
  • Save BenevidesLecontes/c72bfe2042de5cb5b96a79fdd8f6d241 to your computer and use it in GitHub Desktop.
Save BenevidesLecontes/c72bfe2042de5cb5b96a79fdd8f6d241 to your computer and use it in GitHub Desktop.
import {CUSTOM_ELEMENTS_SCHEMA, Inject, Injector, NgModule, NgModuleFactoryLoader, SystemJsNgModuleLoader} from '@angular/core';
import {APP_BASE_HREF, CommonModule} from '@angular/common';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {BrowserModule} from '@angular/platform-browser';
import 'wiseit'; // "bare import" for side-effects
import {PessoaModule} from './pessoa/pessoa.module';
import {UtilsModule} from './utils/utils.module';
import {VisaoModule} from './visao/visao.module';
import {TranslateLoader, TranslateModule, TranslateService} from '@ngx-translate/core';
import {WiseITTranslateModule} from './translate/translate.module';
import {AllTranslateHttpLoader} from './translate/service/translate.loader';
import {UIRouterUpgradeModule, } from '@uirouter/angular-hybrid';
import {UrlService} from '@uirouter/core';
import {NKDatetimeModule} from 'ng2-datetime/ng2-datetime';
import {HelloComponent} from './example/hello.component';
import {HelloWorld} from './example/hello.app';
import {AchadosPerdidosApp} from './achados.perdidos/achados.perdidos.app';
import {UIRouter, UIRouterModule} from '@uirouter/angular';
import {NgSelectizeModule} from 'ng-selectize';
import {AchadosPerdidosService} from './achados.perdidos/services/achados.perdidos.services';
import {Http, HttpModule, RequestOptions, XHRBackend} from '@angular/http';
import {InfiniteScrollModule} from 'ngx-infinite-scroll';
import {HttpService} from './http-interceptor/interceptor';
import {wiAuthenticationService} from 'wiseit';
import {SegmentacaoVisualizacaoModule} from './segmentacao/visualizacao/segmentacao.visualizacao.module';
import {Ng2Bs3ModalModule} from 'ng2-bs3-modal/ng2-bs3-modal';
import {AchadosPerdidosModule} from './achados.perdidos/achados.perdidos.module';
import {AtendimentoFidelidadeModule} from './atendimento/fidelidade/atendimento.fidelidade.module.app';
import {ClientesModule} from './atendimento/clientes/clientes.module';
import {SacFormulariosModule} from './sac/formularios/sac.formularios.module';
import {EntradaModule} from './entrada/entrada.module';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {downgradeComponent, downgradeInjectable, UpgradeModule} from '@angular/upgrade/static';
import {LojaSacFormularioComponent} from './sac/formularios/loja/lojaForm.component';
import {EntradaService} from './entrada/service/entrada.services';
export function getUiService($injector) {
$injector.get('uiService');
}
export function getWiAuthenticationService($injector) {
$injector.get('wiAuthenticationService');
}
export function getWiLocalPersistence($injector) {
$injector.get('wiLocalPersistence');
}
export function getUiMessageService($injector) {
$injector.get('uiMessageService');
}
export function getRootScope($injector) {
$injector.get('$rootScope');
}
export function getUiModalService($injector) {
$injector.get('uiModalService');
}
export function getUiRolesServices($injector) {
$injector.get('uiRolesServices');
}
export function getRecordsServices($injector) {
$injector.get('recordsServices');
}
export function getUiDataServices($injector) {
$injector.get('uiDataServices');
}
/*
* Create our upgradeAdapter
*/
// const upgradeAdapter: UpgradeAdapter = new UpgradeAdapter(forwardRef(() => WiseitAppModule));
export let loginService: wiAuthenticationService;
/*
* Expose our ng1 content to ng2
*/
// uiRouterNgUpgrade.setUpgradeAdapter(upgradeAdapter);
const helloState = {name: 'hello', url: '/hello', component: HelloComponent};
export function HttpLoaderFactory(translate: AllTranslateHttpLoader) {
return translate;
}
@NgModule({
declarations: [
HelloComponent
],
imports: [
UIRouterUpgradeModule,
UpgradeModule,
CommonModule,
BrowserModule,
ReactiveFormsModule,
FormsModule,
HttpModule,
PessoaModule,
AtendimentoFidelidadeModule,
UtilsModule,
VisaoModule,
SegmentacaoVisualizacaoModule,
UIRouterModule.forChild(
{states: [helloState]}
),
WiseITTranslateModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [AllTranslateHttpLoader]
}
}),
NgSelectizeModule,
Ng2Bs3ModalModule,
InfiniteScrollModule,
NKDatetimeModule,
AchadosPerdidosModule,
ClientesModule,
SacFormulariosModule,
EntradaModule
],
providers: [
{provide: NgModuleFactoryLoader, useClass: SystemJsNgModuleLoader},
{provide: APP_BASE_HREF, useValue: '/'},
{provide: 'uiService', deps: ['$injector'], useFactory: getUiService},
{provide: 'wiAuthenticationService', deps: ['$injector'], useFactory: getWiAuthenticationService},
{provide: 'wiLocalPersistence', deps: ['$injector'], useFactory: getWiLocalPersistence},
{provide: 'uiMessageService', deps: ['$injector'], useFactory: getUiMessageService},
{provide: '$rootScope', deps: ['$injector'], useFactory: getRootScope},
{provide: 'uiModalService', deps: ['$injector'], useFactory: getUiModalService},
{provide: 'uiRolesServices', deps: ['$injector'], useFactory: getUiRolesServices},
{provide: 'recordsServices', deps: ['$injector'], useFactory: getRecordsServices},
{provide: 'uiDataServices', deps: ['$injector'], useFactory: getUiDataServices},
{
provide: Http,
useFactory: (backend: XHRBackend, options: RequestOptions, router: UIRouter, wiAuthenticationService: wiAuthenticationService) => {
return new HttpService(backend, options, router, wiAuthenticationService);
},
deps: [XHRBackend, RequestOptions, UIRouter]
},
AchadosPerdidosService],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class WiseitAppModule {
constructor(private translate: TranslateService,
@Inject('wiAuthenticationService') private wiAuthenticationService: wiAuthenticationService) {
translate.addLangs(['pt-BR']);
translate.setDefaultLang('pt-BR');
const browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/pt-BR/) ? browserLang : 'pt-BR');
loginService = this.wiAuthenticationService;
}
ngDoBootstrap() { /* no body */
}
}
/*
* Bootstrap the App
*/
const exampleNg1 = new HelloWorld;
const achadosperdidosapp = new AchadosPerdidosApp;
angular.module('wiseit').config(['$urlServiceProvider', ($urlService: UrlService) => $urlService.deferIntercept()]);
angular.module('wiseit').directive('appSacFormularioLoja', downgradeComponent({
component: LojaSacFormularioComponent,
inputs: ['viewReadOnly', 'formulario', 'entradas']
}) as angular.IDirectiveFactory);
angular.module('wiseit').factory('appEntradaService', downgradeInjectable(EntradaService));
angular.element(document).ready(function () {
// Manually bootstrap the Angular app
platformBrowserDynamic().bootstrapModule(WiseitAppModule).then(platformRef => {
const injector: Injector = platformRef.injector;
const upgrade = injector.get(UpgradeModule) as UpgradeModule;
// Manually bootstrap the AngularJS app
upgrade.bootstrap(document.documentElement, ['wiseit']);
// Intialize the Angular Module (get() any UIRouter service from DI to initialize it)
const url: UrlService = injector.get(UrlService);
// Instruct UIRouter to listen to URL changes
url.listen();
url.sync();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment