Commit 842b954e by Ali Arshad

Updated Angular to latest version.

parent 40bddcd6
[submodule "client/imports/vqode"]
path = client/imports/vqode
url = ssh://git@gitlab.vqode.com:30022/usman-vqode/angular-vqode-module.git
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/VQode_Management.iml" filepath="$PROJECT_DIR$/.idea/VQode_Management.iml" />
</modules>
</component>
</project>
\ No newline at end of file
......@@ -6,16 +6,14 @@
meteor-base@1.4.0 # Packages every Meteor app needs to have
mobile-experience@1.0.5 # Packages for a great mobile UX
mongo@1.5.0 # The database Meteor supports right now
mongo@1.6.0 # The database Meteor supports right now
reactive-var@1.0.11 # Reactive variable for tracker
tracker@1.2.0 # Meteor's client-side reactive programming library
standard-minifier-css@1.4.1 # CSS minifier run for production mode
standard-minifier-js@2.3.4 # JS minifier run for production mode
standard-minifier-css@1.5.2 # CSS minifier run for production mode
standard-minifier-js@2.4.0 # JS minifier run for production mode
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
ecmascript@0.11.1 # Enable ECMAScript2015+ syntax in app code
shell-server@0.3.1 # Server-side component of the `meteor shell` command
ecmascript@0.12.3 # Enable ECMAScript2015+ syntax in app code
shell-server@0.4.0 # Server-side component of the `meteor shell` command
autopublish@1.0.7 # Publish all data to the clients (for prototyping)
insecure@1.0.7 # Allow all DB writes from clients (for prototyping)
angular-compilers
METEOR@1.7.0.4
METEOR@1.8.1
......@@ -3,62 +3,61 @@ angular-compilers@0.3.2
angular-html-compiler@0.3.2
angular-scss-compiler@0.3.2
angular-typescript-compiler@0.3.2
autopublish@1.0.7
autoupdate@1.4.1
babel-compiler@7.1.1
babel-runtime@1.2.4
autoupdate@1.6.0
babel-compiler@7.3.4
babel-runtime@1.3.0
base64@1.0.11
binary-heap@1.0.10
boilerplate-generator@1.5.0
binary-heap@1.0.11
boilerplate-generator@1.6.0
callback-hook@1.1.0
check@1.3.1
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-server@2.2.0
diff-sequence@1.1.0
dynamic-import@0.4.1
ecmascript@0.11.1
ddp-server@2.3.0
diff-sequence@1.1.1
dynamic-import@0.5.1
ecmascript@0.12.4
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.7.2
ecmascript-runtime-client@0.8.0
ecmascript-runtime-server@0.7.1
ejson@1.1.0
es5-shim@4.8.0
fetch@0.1.1
geojson-utils@1.0.10
hot-code-push@1.0.4
http@1.4.1
id-map@1.1.0
insecure@1.0.7
inter-process-messaging@0.1.0
launch-screen@1.1.1
livedata@1.0.18
logging@1.1.20
meteor@1.9.2
meteor@1.9.3
meteor-base@1.4.0
minifier-css@1.3.1
minifier-js@2.3.5
minimongo@1.4.4
minifier-css@1.4.2
minifier-js@2.4.1
minimongo@1.4.5
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.2
modules@0.12.2
modules-runtime@0.10.2
mongo@1.5.1
modern-browsers@0.1.4
modules@0.13.0
modules-runtime@0.10.3
mongo@1.6.2
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
npm-mongo@3.0.11
npm-mongo@3.1.2
ordered-dict@1.1.0
promise@0.11.1
promise@0.11.2
random@1.1.0
reactive-var@1.0.11
reload@1.2.0
reload@1.3.0
retry@1.1.0
routepolicy@1.0.13
shell-server@0.3.1
routepolicy@1.1.0
shell-server@0.4.0
socket-stream-client@0.2.2
standard-minifier-css@1.4.1
standard-minifier-js@2.3.4
standard-minifier-css@1.5.3
standard-minifier-js@2.4.1
tracker@1.2.0
underscore@1.0.10
url@1.2.0
webapp@1.6.2
webapp@1.7.3
webapp-hashing@1.0.9
import {Component, OnInit, ViewEncapsulation} from '@angular/core';
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
selector: 'app',
templateUrl: 'app.html',
styleUrls: ['./app.scss'],
encapsulation: ViewEncapsulation.None
selector: 'app-main',
templateUrl: 'app.html',
styleUrls: ['./app.scss'],
// tslint:disable-next-line:use-component-view-encapsulation
encapsulation: ViewEncapsulation.None
})
export class AppComponent implements OnInit {
ngOnInit() {
}
export class AppComponent {
}
<mat-toolbar>
<span>BoilerPlate</span>
</mat-toolbar>
<router-outlet></router-outlet>
\ No newline at end of file
<router-outlet></router-outlet>
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
import {RoutesModule} from "./routes/routes.module";
import {SharedModule} from "./shared/shared.module";
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { RoutesModule } from './routes/routes.module';
import { SharedModule } from './shared/shared.module';
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
RoutesModule,
SharedModule
],
declarations: [
AppComponent
],
bootstrap: [
AppComponent
],
providers: []
imports: [
BrowserModule,
BrowserAnimationsModule,
SharedModule,
RoutesModule
],
declarations: [
AppComponent
],
bootstrap: [
AppComponent
]
})
export class AppModule {
}
import {Injectable} from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable()
export class AlreadyLoginGuard implements CanActivate {
constructor(private router: Router,
public activatedRoute: ActivatedRoute) {
}
constructor(private readonly router: Router) {
}
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (Meteor.user()) {
this.router.navigate(['/']);
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) {
if(Meteor.user()){
this.router.navigate(['/']);
} else {
return true;
}
return false;
}
return true;
}
}
import {Injectable} from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable()
export class AppGuard implements CanActivate {
constructor(private router: Router,
public activatedRoute: ActivatedRoute) {
// nothing in constructor
}
constructor(private readonly router: Router) {
// nothing in constructor
}
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) {
if(Meteor.user()){
return true;
} else {
this.router.navigate(['/auth/login']);
}
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (Meteor.user()) {
return true;
}
this.router.navigate(['/auth/login']);
}
}
import {CanDeactivate} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import { CanDeactivate } from '@angular/router';
import { Observable } from 'rxjs';
export interface ComponentCanDeactivate {
canDeactivate: () => boolean | Observable<boolean>;
canDeactivate(): boolean | Observable<boolean>;
}
export class PendingChangesGuard implements CanDeactivate<ComponentCanDeactivate> {
canDeactivate(component): boolean | Observable<boolean> {
// if there are no pending changes, just allow deactivation; else confirm first
return component.canDeactivate() ?
true :
// NOTE: this warning message will only be shown when navigating elsewhere within your angular app;
// when navigating away from your angular app, the browser will show a generic warning message
// see http://stackoverflow.com/a/42207299/7307355
confirm('WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.');
}
canDeactivate(component): boolean | Observable<boolean> {
// if there are no pending changes, just allow deactivation; else confirm first
return component.canDeactivate() ?
true :
// NOTE: this warning message will only be shown when navigating elsewhere within your angular app;
// when navigating away from your angular app, the browser will show a generic warning message
// see http://stackoverflow.com/a/42207299/7307355
confirm('WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.');
}
}
import {Injectable} from '@angular/core';
import {ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable()
export class RoleGuard implements CanActivate {
constructor(private router: Router,
public activatedRoute: ActivatedRoute) {
// nothing in constructor
}
constructor(private readonly router: Router) {
// nothing in constructor
}
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (Meteor.user()) {
const roles = next.data.roles;
if (roles.indexOf(Meteor.user().profile.role) > -1) {
canActivate(next: ActivatedRouteSnapshot,
state: RouterStateSnapshot) {
if(Meteor.user()){
const roles = next.data["roles"];
if(roles.indexOf(Meteor.user().profile.role) > -1 ){
return true;
} else {
this.router.navigate(['/scores']);
}
} else {
this.router.navigate(['/auth/login']);
}
return true;
}
this.router.navigate(['/auth/login']);
} else {
this.router.navigate(['/auth/login']);
}
}
}
import {NgModule} from '@angular/core';
import {PreloadAllModules, RouterModule, Routes} from '@angular/router';
import {AppGuard} from './app.guard';
import {PendingChangesGuard} from './pending.changes.guard';
import {AlreadyLoginGuard} from "./already-login.guard";
import {RoleGuard} from "./role.guard";
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
import { AlreadyLoginGuard } from './already-login.guard';
import { AppGuard } from './app.guard';
import { PendingChangesGuard } from './pending.changes.guard';
import { RoleGuard } from './role.guard';
declare global {
interface NodeModule {
dynamicImport(path: string): any;
}
interface NodeModule {
dynamicImport(path: string): any;
}
}
export const routes: Routes = [];
@NgModule({
imports: [RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})],
exports: [RouterModule],
declarations: [],
providers: [AppGuard, PendingChangesGuard, AlreadyLoginGuard, RoleGuard]
imports: [RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})],
exports: [RouterModule],
declarations: [],
providers: [AppGuard, PendingChangesGuard, AlreadyLoginGuard, RoleGuard]
})
export class RoutesModule {
}
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {MatTabsModule, MatToolbarModule} from "@angular/material";
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { MatTabsModule, MatToolbarModule } from '@angular/material';
@NgModule({
imports: [
......
......@@ -7,4 +7,3 @@ import 'zone.js/dist/sync-test';
import 'zone.js/dist/proxy';
import 'zone.js/dist/mocha-patch';
import 'core-js/es7/reflect';
import 'zone.js';
import 'core-js/es7/reflect';
import 'zone.js';
Subproject commit 67096fbf4c3163f59a63e5eaa7bb4a5f1562f032
<head>
<base href="/">
<title>Todos</title>
<link id="layout-css" rel="stylesheet" type="text/css" href="/layout-amber.css">
<title>BoilerPlate</title>
</head>
<body>
<app></app>
<app-main></app-main>
</body>
// tslint:disable-next-line:no-import-side-effect
import './imports/polyfills';
import {Meteor} from 'meteor/meteor';
import 'zone.js';
import 'reflect-metadata';
import {enableProdMode} from '@angular/core';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './imports/app/app.module';
import "../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css";
// tslint:disable-next-line:ordered-imports
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { Meteor } from 'meteor/meteor';
// tslint:disable-next-line:no-import-side-effect
import '../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css';
import { AppModule } from './imports/app/app.module';
Meteor.startup(() => {
if (Meteor.isProduction) {
if (Meteor.isProduction) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
});
\ No newline at end of file
}
platformBrowserDynamic()
.bootstrapModule(AppModule);
});
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,31 +5,34 @@
"start": "meteor run",
"test": "meteor test --once --driver-package meteortesting:mocha",
"test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
"visualize": "meteor --production --extra-packages bundle-visualizer"
"visualize": "meteor --production --extra-packages bundle-visualizer",
"lint": "tslint -c tslint.json --project tsconfig.json",
"lint:fix": "tslint -c tslint.json --project tsconfig.json --fix"
},
"dependencies": {
"@angular/animations": "^6.0.5",
"@angular/cdk": "^6.4.3",
"@angular/forms": "6.0.2",
"@angular/material": "^6.4.3",
"@angular/platform-browser": "6.0.2",
"@angular/platform-browser-dynamic": "6.0.2",
"@angular/router": "6.0.2",
"@babel/runtime": "^7.0.0-beta.55",
"core-js": "2.5.6",
"fibers": "^3.0.0",
"@angular/animations": "8.2.8",
"@angular/cdk": "8.2.1",
"@angular/common": "8.2.8",
"@angular/compiler": "8.2.8",
"@angular/core": "8.2.8",
"@angular/forms": "8.2.8",
"@angular/material": "8.2.1",
"@angular/platform-browser": "8.2.8",
"@angular/platform-browser-dynamic": "8.2.8",
"@angular/router": "8.2.8",
"@babel/runtime": "7.6.2",
"angular-tslint-rules": "^1.20.1",
"codelyzer": "^5.1.2",
"core-js": "2.5.7",
"meteor-node-stubs": "0.4.1",
"meteor-rxjs": "0.4.11",
"rxjs": "6.1.0",
"rxjs-compat": "6.1.0",
"systemjs": "^0.21.4",
"zone.js": "0.8.26"
"meteor-rxjs": "0.4.14",
"rxjs": "6.4.0",
"tslib": "1.10.0",
"tslint": "^5.20.0",
"zone.js": "0.9.1"
},
"devDependencies": {
"@angular/common": "^6.0.2",
"@angular/compiler": "^6.0.2",
"@angular/compiler-cli": "^6.0.2",
"@angular/core": "^6.0.2",
"@angular/compiler-cli": "8.2.8",
"@types/chai": "4.1.2",
"@types/meteor": "1.4.13",
"@types/mocha": "2.2.48",
......@@ -37,13 +40,12 @@
"chai": "4.1.2",
"phantomjs-prebuilt": "2.1.16",
"sinon": "4.4.6",
"typescript": "^3.0.1"
"typescript": "3.4.5"
},
"meteor": {
"mainModule": {
"client": "client/main.ts",
"server": "server/main.ts"
},
"testModule": "tests/main.js"
}
}
}
import {Meteor} from 'meteor/meteor';
/* tslint:disable-next-line */
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
// code to run on server at startup
// code to run on server at startup
});
import assert from "assert";
describe("VQode_Management", function () {
it("package.json has correct name", async function () {
const { name } = await import("../package.json");
assert.strictEqual(name, "VQode_Management");
});
if (Meteor.isClient) {
it("client is not server", function () {
assert.strictEqual(Meteor.isServer, false);
});
}
if (Meteor.isServer) {
it("server is not client", function () {
assert.strictEqual(Meteor.isClient, false);
});
}
});
{
"rulesDirectory": "node_modules/codelyzer",
"extends": "angular-tslint-rules",
"rules": {
"comment-format": [
true,
"check-space",
{
"ignore-words": [
"TODO"
]
}
],
"directive-selector": [
true,
"attribute",
[
"app",
"test"
],
"camelCase"
],
"component-selector": [
true,
"element",
[
"app",
"test"
],
"kebab-case"
],
"template-use-track-by-function": true,
"template-no-call-expression": true,
"no-implicit-dependencies": false,
"no-floating-promises": false,
"template-i18n": [
false
],
"comment-type": [
true,
"multiline",
"singleline",
"doc"
]
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment