sample(EJ2-47773): Showcase sample updated with latest styles.

This commit is contained in:
Kanagambigai 2021-04-01 19:06:19 +05:30
Родитель af316c4a66
Коммит 12f72c0738
36 изменённых файлов: 641 добавлений и 22051 удалений

Просмотреть файл

@ -1,60 +0,0 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "ej2-ng-loan-calculator"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.css"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json",
"exclude": "**/node_modules/**"
},
{
"project": "src/tsconfig.spec.json",
"exclude": "**/node_modules/**"
},
{
"project": "e2e/tsconfig.e2e.json",
"exclude": "**/node_modules/**"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"component": {}
}
}

17
.browserslistrc Normal file
Просмотреть файл

@ -0,0 +1,17 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major version
last 2 iOS major versions
Firefox ESR
not IE 9-11 # For IE 9-11 support, remove 'not'.

16
.editorconfig Normal file
Просмотреть файл

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

5
.gitignore поставляемый
Просмотреть файл

@ -9,4 +9,7 @@ node_modules/
npm-debug.log npm-debug.log
*ngfactory.ts *ngfactory.ts
*metadata.json *metadata.json
*ngsummary.json *ngsummary.json
src/assets/index.css
src/assets/*.css
*.css

2
.npmrc Normal file
Просмотреть файл

@ -0,0 +1,2 @@
registry=https://registry.npmjs.org/
@syncfusion:registry=http://nexus.syncfusion.com/repository/ej2-release

124
angular.json Normal file
Просмотреть файл

@ -0,0 +1,124 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"ej2-ng-loan-calculator": {
"projectType": "application",
"schematics": {},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/ej2-ng-loan-calculator",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "ej2-ng-loan-calculator:build"
},
"configurations": {
"production": {
"browserTarget": "ej2-ng-loan-calculator:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "ej2-ng-loan-calculator:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.css"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "ej2-ng-loan-calculator:serve"
},
"configurations": {
"production": {
"devServerTarget": "ej2-ng-loan-calculator:serve:production"
}
}
}
}
}},
"defaultProject": "ej2-ng-loan-calculator"
}

7
config.json Normal file
Просмотреть файл

@ -0,0 +1,7 @@
{
"sasslint": ["./src/assets/**/*.scss"],
"tslint": ["./src/app/**/*.ts", "!./src/app/**/*-model.d.ts", "!./src/app/**/**/*.d.ts", "!./src/app/**/**/*.ngfactory.ts"],
"ts": ["./src/app/**/*.ts", "!./node_modules/**/*.ts"],
"styleDependency":["ej2"],
"isShowCase": true
}

14
e2e/app.e2e-spec.ts Normal file
Просмотреть файл

@ -0,0 +1,14 @@
import { AppPage } from './app.po';
describe('ej2-ng-loan-calculator App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should display welcome message', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!');
});
});

11
e2e/app.po.ts Normal file
Просмотреть файл

@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.css('app-root h1')).getText();
}
}

Просмотреть файл

@ -1,19 +1,14 @@
{ {
"extends": "../tsconfig.json", "extends": "../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../out-tsc/spec", "outDir": "../out-tsc/e2e",
"baseUrl": "./", "baseUrl": "./",
"module": "commonjs", "module": "commonjs",
"target": "es5",
"types": [ "types": [
"jasmine", "jasmine",
"jasminewd2",
"node" "node"
] ]
}, }
"files": [
"test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
} }

47
gulpfile.js Normal file
Просмотреть файл

@ -0,0 +1,47 @@
require("@syncfusion/ej2-sample-helpers");
var fs = require('fs');
var glob = require('glob');
var runSequence = require('run-sequence');
// var build = require("@syncfusion/ej2-build");
var gulp = require("gulp");
var webpack = require("webpack");
var shelljs = global.shelljs = global.shelljs || require('shelljs');
// var common = require("./node_modules/@syncfusion/ej2-build/src/utils/common.js");
// var isReleaseBranch = /^((release\/|hotfix\/))/g.test(process.env.BRANCH_NAME);
gulp.task('styles', function() {
var sass = require('gulp-sass');
return gulp.src(['./src/assets/**/*.scss'], { base: './' })
.pipe(sass({
outputStyle: 'expanded',
includePaths: './node_modules/@syncfusion/'
}))
.pipe(gulp.dest('.'));
});
gulp.task('build', function(done) {
shelljs.exec('npm run build', function (exitCode) {
done(exitCode);
})
runSequence('styles');
});
gulp.task('serve', ['build'], function (done) {
var browserSync = require('browser-sync');
var bs = browserSync.create('Essential TypeScript');
var options = {
server: {
baseDir: './src'
},
ui: false
};
bs.init(options, done);
});
gulp.task('clear-all', function () {
return gulp.src(['src/**/*.js.map', 'src/**/*.json', 'src/**/*.js', 'src/**/*.d.ts', 'src/**/*.ngfactory.ts', 'src/**/*.ngstyle.ts']).pipe(clean({
force: true
}))
});

32
karma.conf.js Normal file
Просмотреть файл

@ -0,0 +1,32 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, './coverage/ej2-ng-loan-calculator'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true
});
};

Просмотреть файл

@ -1,73 +1,61 @@
{ {
"name": "@syncfusion/ej2-ng-loan-calculator", "name": "@syncfusion/ej2-ng-loan-calculator",
"version": "0.0.1", "version": "0.0.1",
"description": "Essential JS 2 for Angular - Loan Calculator application", "description": "Essential JS 2 for Angular - Loan Calculator application",
"author": "Syncfusion Inc.", "author": "Syncfusion Inc.",
"license": "SEE LICENSE IN license", "license": "SEE LICENSE IN license",
"dependencies": { "scripts": {
"rxjs": "^5.0.1", "ng": "ng",
"tslint": "4.0.2", "start": "ng serve",
"zone.js": "^0.8.4", "build": "ng build",
"core-js": "^2.4.1", "test": "ng test",
"systemjs": "^0.19.40", "lint": "ng lint",
"gulp-print": "^2.0.1", "e2e": "ng e2e",
"gulp-tslint": "^7.0.1", "scss": "gulp styles"
"browser-sync": "2.11.2", },
"gulp-sass-lint": "^1.1.1", "private": true,
"reflect-metadata": "^0.1.9", "dependencies": {
"tslint-microsoft-contrib": "^4.0.0", "@angular/animations": "~10.0.0",
"@angular/core": "~5.0.0", "@angular/common": "~10.0.0",
"@angular/http": "~5.0.0", "@angular/compiler": "~10.0.0",
"@angular/forms": "~5.0.0", "@angular/core": "~10.0.0",
"@angular/router": "^5.0.0", "@angular/forms": "~10.0.0",
"@angular/common": "~5.0.0", "@angular/platform-browser": "~10.0.0",
"@angular-devkit/core": "^0.4.5", "@angular/platform-browser-dynamic": "~10.0.0",
"@angular/upgrade": "^5.0.0", "@angular/router": "~10.0.0",
"@angular/compiler": "~5.0.0", "@syncfusion/ej2-angular-base": "*",
"@angular/platform-browser": "~5.0.0", "@syncfusion/ej2-angular-buttons": "*",
"@angular/platform-browser-dynamic": "~5.0.0", "@syncfusion/ej2-angular-calendars": "*",
"@syncfusion/ej2-ng-base": "*", "@syncfusion/ej2-angular-charts": "*",
"@syncfusion/ej2-ng-buttons": "*", "@syncfusion/ej2-angular-grids": "*",
"@syncfusion/ej2-ng-grids": "*", "@syncfusion/ej2-angular-inputs": "*",
"@syncfusion/ej2-ng-inputs": "*", "@syncfusion/ej2-sample-helpers": "*",
"@syncfusion/ej2-ng-charts": "*", "gulp": "^3.9.0",
"@syncfusion/ej2-ng-calendars": "*" "gulp-sass": "^3.1.0",
}, "run-sequence": "2.2.0",
"devDependencies": { "shelljs": "^0.7.0",
"@angular/cli": "1.5.6", "rxjs": "~6.5.5",
"@angular/compiler-cli": "5.0.0", "tslib": "^2.0.0",
"@angular/platform-server": "5.0.0", "zone.js": "~0.10.3"
"@types/jasmine": "^2.2.29", },
"@types/requirejs": "^2.1.26", "devDependencies": {
"@types/node": "^6.0.46", "@angular-devkit/build-angular": "~0.1000.0",
"gulp": "^3.9.0", "@angular/cli": "~10.0.0",
"webpack": "2.5.1", "@angular/compiler-cli": "~10.0.0",
"shelljs": "^0.7.0", "@types/node": "^10.13.0",
"typescript": "~2.4.2", "@types/jasmine": "~3.5.0",
"gulp-sass": "^3.1.0", "@types/jasminewd2": "~2.0.3",
"gulp-clean": "^0.3.2", "codelyzer": "^6.0.0-next.1",
"run-sequence": "2.2.0", "jasmine-core": "~3.5.0",
"webpack-stream": "^3.2.0", "jasmine-spec-reporter": "~5.0.0",
"karma-systemjs": "^0.16.0", "karma": "~5.0.0",
"gulp-typescript": "^2.13.0", "karma-chrome-launcher": "~3.1.0",
"es6-module-loader": "^0.17.11", "karma-coverage-istanbul-reporter": "~3.0.2",
"systemjs-plugin-babel": "0.0.17" "karma-jasmine": "~3.3.0",
}, "karma-jasmine-html-reporter": "^1.5.0",
"keywords": [ "protractor": "~7.0.0",
"ej2", "ts-node": "~8.3.0",
"samples", "tslint": "~6.1.0",
"loan-calculator", "typescript": "~3.9.5"
"syncfusion", }
"ej2-samples", }
"ej2-ng-loan-calculator",
"ej2-showcase-samples",
"syncfusion-samples",
"syncfusion-loan-calculator"
],
"scripts": {
"build": "npm run scripts && gulp styles && gulp bundle",
"scripts": "ngc -p tsconfig-aot.json",
"bundle": "gulp bundle",
"ci-publish": "gulp publish-samples"
}
}

Просмотреть файл

@ -1,4 +1,4 @@
<h2 class="header-style">Loan Calculator</h2> <h1 class="header-style">Loan Calculator</h1>
<div class="container main-content" id="content"> <div class="container main-content" id="content">
<home-section #homeSection></home-section> <home-section #homeSection></home-section>
<statement-section #statementSection></statement-section> <statement-section #statementSection></statement-section>

Просмотреть файл

@ -5,7 +5,8 @@ import { DataService } from './data-service';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html' templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
}) })
export class AppComponent implements OnInit { export class AppComponent implements OnInit {

Просмотреть файл

@ -1,11 +1,11 @@
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { NumericTextBoxModule, SliderModule } from '@syncfusion/ej2-ng-inputs'; import { NumericTextBoxModule, SliderModule } from '@syncfusion/ej2-angular-inputs';
import { RadioButtonModule } from '@syncfusion/ej2-ng-buttons'; import { RadioButtonModule } from '@syncfusion/ej2-angular-buttons';
import { AccumulationChartModule, ChartModule } from '@syncfusion/ej2-ng-charts'; import { AccumulationChartModule, ChartModule } from '@syncfusion/ej2-angular-charts';
import { DatePickerModule } from '@syncfusion/ej2-ng-calendars'; import { DatePickerModule } from '@syncfusion/ej2-angular-calendars';
import { GridModule } from '@syncfusion/ej2-ng-grids'; import { GridModule } from '@syncfusion/ej2-angular-grids';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component'; import { HomeComponent } from './home/home.component';

Просмотреть файл

@ -39,7 +39,7 @@ export class DataService {
public totalPrincipalYear: number = 0; public totalPrincipalYear: number = 0;
public totalInterestYear: number = 0; public totalInterestYear: number = 0;
public inter: number; public inter: number;
public dataUnits: [Object] = <[Object]>[]; public dataUnits: Object[] = [];
public dateObj: Date = new Date(); public dateObj: Date = new Date();
public totalInterest: number = 0; public totalInterest: number = 0;
public totalAmount: number = 0; public totalAmount: number = 0;
@ -47,7 +47,7 @@ export class DataService {
public endBalance: number; public endBalance: number;
public beginBalance: number; public beginBalance: number;
public yearTotal: number = 0; public yearTotal: number = 0;
public monthNames: [string] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']; public monthNames: string[] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
public intl: Internationalization = new Internationalization(); public intl: Internationalization = new Internationalization();
public getCurrencyVal(value: number): string { public getCurrencyVal(value: number): string {
@ -182,8 +182,8 @@ export class DataService {
this.emi = this.calculateEMI(); this.emi = this.calculateEMI();
this.princ = this.principalValue; this.princ = this.principalValue;
this.tent = this.yearTenure ? (this.loanValue * 12) : this.loanValue; this.tent = this.yearTenure ? (this.loanValue * 12) : this.loanValue;
this.dataUnits = <[Object]>[]; this.dataUnits = [];
this.yearWiseData = <[Object]>[]; this.yearWiseData = [];
this.dateObj = new Date(this.dateValue.getTime()); this.dateObj = new Date(this.dateValue.getTime());
this.totalInterest = 0; this.totalInterest = 0;
this.totalAmount = 0; this.totalAmount = 0;

Просмотреть файл

@ -1,6 +1,6 @@
import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core'; import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core';
import { closest } from '@syncfusion/ej2-base'; import { closest } from '@syncfusion/ej2-base';
import { GridComponent } from '@syncfusion/ej2-ng-grids'; import { GridComponent } from '@syncfusion/ej2-angular-grids';
import { Grid, DetailRow, DetailDataBoundEventArgs } from '@syncfusion/ej2-grids'; import { Grid, DetailRow, DetailDataBoundEventArgs } from '@syncfusion/ej2-grids';
import { DataService } from '../data-service'; import { DataService } from '../data-service';
Grid.Inject(DetailRow); Grid.Inject(DetailRow);

Просмотреть файл

@ -4,7 +4,7 @@ import { AccumulationChart, AccumulationLegend, PieSeries, AccumulationTooltip,
Chart, LineSeries, DateTime, Legend, Tooltip, IAccLoadedEventArgs, AccumulationTheme, IAccPointRenderEventArgs, Chart, LineSeries, DateTime, Legend, Tooltip, IAccLoadedEventArgs, AccumulationTheme, IAccPointRenderEventArgs,
StackingColumnSeries, Crosshair, DataLabel, ColumnSeries, IMouseEventArgs, Series StackingColumnSeries, Crosshair, DataLabel, ColumnSeries, IMouseEventArgs, Series
} from '@syncfusion/ej2-charts'; } from '@syncfusion/ej2-charts';
import { AccumulationChartComponent } from '@syncfusion/ej2-ng-charts'; import { AccumulationChartComponent } from '@syncfusion/ej2-angular-charts';
import { DataService } from '../../data-service'; import { DataService } from '../../data-service';
AccumulationChart.Inject(AccumulationLegend, PieSeries, AccumulationTooltip, AccumulationDataLabel); AccumulationChart.Inject(AccumulationLegend, PieSeries, AccumulationTooltip, AccumulationDataLabel);

Просмотреть файл

@ -1,5 +1,5 @@
import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core'; import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core';
import { NumericTextBoxComponent, SliderTickRenderedEventArgs } from '@syncfusion/ej2-ng-inputs'; import { NumericTextBoxComponent, SliderTickRenderedEventArgs } from '@syncfusion/ej2-angular-inputs';
import { ChangeEventArgs } from '@syncfusion/ej2-inputs'; import { ChangeEventArgs } from '@syncfusion/ej2-inputs';
import { DataService } from '../../data-service'; import { DataService } from '../../data-service';
@ -79,7 +79,7 @@ export class InputComponent implements OnInit {
} }
public principalRenderedTicks(args: SliderTickRenderedEventArgs): void { public principalRenderedTicks(args: SliderTickRenderedEventArgs): void {
let li: NodeListOf<Element> = args.ticksWrapper.getElementsByClassName('e-large'); let li: HTMLCollectionBase = args.ticksWrapper.getElementsByClassName('e-large');
for (let i: number = 0; i < li.length; ++i) { for (let i: number = 0; i < li.length; ++i) {
let ele: HTMLElement = (li[i].querySelectorAll('.e-tick-value')[0] as HTMLElement); let ele: HTMLElement = (li[i].querySelectorAll('.e-tick-value')[0] as HTMLElement);
let num: number = parseInt(ele.innerText.substring(1).replace(/,/g , ''), 10) / 1000; let num: number = parseInt(ele.innerText.substring(1).replace(/,/g , ''), 10) / 1000;

3
src/app/main.ts Normal file
Просмотреть файл

@ -0,0 +1,3 @@
import { platformBrowser } from '@angular/platform-browser';
import { AppModuleNgFactory } from './app.module.ngfactory';
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

Просмотреть файл

@ -1,5 +1,5 @@
import { Component, ViewEncapsulation, OnInit } from '@angular/core'; import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { ChangedEventArgs } from '@syncfusion/ej2-ng-calendars'; import { ChangedEventArgs } from '@syncfusion/ej2-angular-calendars';
import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base'; import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
import { DataService } from '../data-service'; import { DataService } from '../data-service';

Просмотреть файл

@ -1,803 +0,0 @@
.content-space {
display: block;
margin-top: 25px;
margin-bottom: 25px;
width: 100%;
}
.content-space table {
width: 100%;
}
.content-space label {
float: left;
margin-top: 6px;
color: #E7E7E7;
font-size: 16px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
}
.editor-space {
display: flex;
justify-content: left;
float: right;
}
.form-space {
margin-bottom: 25px;
}
.form-space:not(:first-child) {
margin-top: 25px;
}
.navbar {
border-radius: 0;
}
.component-content {
border-radius: 3px;
height: 300px;
}
.parent {
min-height: 85px;
position: relative;
text-align: center;
}
.child {
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}
.top-space {
margin-top: 30px;
margin-bottom: 15px;
}
.top-space h6 {
position: relative;
}
.emi-content {
max-width: 634px;
max-height: 660px;
margin: 30px 0 25px 0;
padding: 0 44px;
}
.emi-content h6 {
font-family: 'Raleway', sans-serif;
font-weight: 500;
text-align: center;
}
.emi-content .emi-header {
font-size: 20px;
color: #E7E7E7;
letter-spacing: 0.7px;
line-height: 29px;
}
.emi-content .emi-footer {
font-size: 18px;
color: #989CA9;
margin-top: 5px;
text-align: center;
}
.emi-content h1 {
color: #F5F5F5;
font-size: 32px;
font-family: "Roboto";
font-weight: 500;
text-align: center;
}
.emi-content > div > h6 {
text-align: left;
}
.top-margin {
margin-top: 10px;
}
.bottom-margin {
margin-bottom: 35px;
}
.pie-content {
height: 100%;
padding: 0;
}
.pie-content p {
text-align: center;
font-size: 15px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
color: #989CA9;
}
.pie-content .pie-icon {
height: 21px;
width: 21px;
display: inline-block;
border-radius: 10px;
margin: 0 14px 0 0;
vertical-align: text-top;
}
.pie-content .pie-icon.pie-principal {
background: linear-gradient(#3AC8DC, #5B6BC0);
}
.pie-content .pie-icon.pie-interest {
background: linear-gradient(#F3A55B, #FB6589);
}
.pie-content h5 {
font-size: 18px;
font-family: "Roboto";
font-weight: 500;
color: #F5F5F5;
padding: 5px 0 10px;
text-align: center;
}
.pie-content > div {
margin: 35px 0;
}
.pie-content > div:first-child {
margin-top: 43px;
}
.pie-content > div.pie-total p:first-child {
margin-bottom: 0;
}
.pie-content > div.pie-total p + p {
font-size: 14px;
letter-spacing: 1px;
}
.center-heading {
padding: 10px;
font-size: 20px;
text-align: center;
font-weight: 500;
}
.border-set {
border: 1px solid #e4e2e2;
}
.tenure-value {
display: flex;
padding: 4px 5px 4px 10px;
position: relative;
}
.tenure-value li {
float: left;
}
.tenure-value .e-radio + label::before {
height: 20px;
width: 20px;
border-width: 2px;
}
.tenure-value .e-radio + label::before, .tenure-value .e-radio + label:hover::before {
border-color: #3B9ED4;
background-color: #3A4360;
}
.tenure-value .e-radio + label::after, .tenure-value .e-radio + label:hover::after {
background-color: #3B9ED4;
}
.tenure-value .e-radio + label .e-label {
color: #E7E7E7;
font-size: 16px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
}
.tenure-value .e-radio:focus + label::before {
border-color: #3B9ED4;
background-color: #3A4360;
}
.tenure-value .e-radio:focus + label::after {
background-color: #3B9ED4;
}
.tenure-value > li {
padding-left: 10px;
}
.graph-container {
height: 520px;
padding: 0 33px;
}
li {
list-style: none;
}
.border-unset-left {
border-left: 0;
}
.border-unset-right {
border-right: 0;
}
.main-content {
margin-top: 40px;
max-width: 1300px;
}
.main-content .loan-content {
background-color: #27304c;
color: #E7E7E7;
}
.main-content .e-slider-container .e-scale {
color: #ABABAB;
}
.main-content .e-slider-container .e-scale .e-tick.e-large {
top: 14px;
}
.main-content .e-slider-container .e-scale .e-tick .e-tick-value {
font-family: "Roboto";
font-weight: 400;
font-size: 13px;
}
.main-content .e-slider-container .e-slider .e-slider-track {
background: #20273E;
border-color: #20273E;
}
.main-content .e-slider-container .e-slider .e-handle {
height: 26px;
width: 26px;
top: calc(50% - 13px);
margin-left: -13px;
}
.main-content .e-slider-container .e-slider .e-handle::before {
content: '';
background: #3B9ED4;
width: 14px;
height: 14px;
position: absolute;
border-radius: 16px;
top: 5px;
left: 5px;
}
.main-content .e-slider-container .e-slider .e-range {
background-color: #3B9ED4;
top: calc(50% - 5px);
}
.main-content .e-slider-container .e-slider .e-slider-track, .main-content .e-slider-container .e-slider .e-range {
height: 12px;
}
.main-content .e-slider-container .e-slider .e-handle, .main-content .e-slider-container .e-slider .e-slider-track, .main-content .e-slider-container .e-slider .e-range {
border-radius: 15px;
}
.main-content .e-input-group.e-control-wrapper:not(.e-success):not(.e-warning):not(.e-error) {
border-color: #475274;
background: #3A4360;
}
.main-content .e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error):not(.e-input-focus) {
border-color: #404D75;
}
.main-content .e-input-group.e-control-wrapper .e-input-group-icon {
background: #3A4360;
color: #95979c;
border-color: #475274;
}
.main-content .e-input-group.e-control-wrapper .e-input-group-icon:hover {
background: #404D75;
color: #95979c;
}
.main-content .e-input-group.e-control-wrapper .e-spin-down {
border-right-width: 0;
}
.main-content .e-input-group.e-control-wrapper input.e-input {
font-family: "Roboto";
font-weight: 400;
font-size: 16px;
height: 38px;
background-color: #3A4360;
color: #fff;
}
.main-content .graph-text {
color: #E7E7E7;
font-size: 20px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
letter-spacing: 0.7px;
margin: 0 22px;
display: inline-block;
vertical-align: middle;
}
.main-content .graph-input {
display: inline-block;
margin: 34px 22px;
}
.main-content .e-grid {
border-color: #27304c;
border-radius: 0;
}
.main-content .e-grid .e-row {
cursor: pointer;
}
.main-content .e-grid .e-gridheader {
border-width: 0;
}
.main-content .e-grid .e-icon-grightarrow, .main-content .e-grid .e-icon-gdownarrow {
width: 11px;
height: 11px;
border: 1px solid #fff;
margin: auto;
text-indent: 0;
}
.main-content .e-grid .e-icon-grightarrow::before, .main-content .e-grid .e-icon-gdownarrow::before {
position: absolute;
font-size: 13px;
}
.main-content .e-grid .e-icon-grightarrow::before {
content: '+';
margin: -4px 0 0 -4px;
}
.main-content .e-grid .e-icon-gdownarrow::before {
content: '-';
margin: -6px 0 0 -2px;
}
.main-content .e-grid .e-headercelldiv {
font-size: 14px;
height: 55px;
line-height: 55px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
white-space: normal;
}
.main-content .e-grid .e-columnheader {
background: linear-gradient(-90deg, #5B6BC0, #3AC8DC);
}
.main-content .e-grid .e-headercell, .main-content .e-grid .e-detailheadercell {
background: transparent;
color: #fff;
}
.main-content .e-grid .e-rowcell, .main-content .e-grid .e-detailrowcollapse, .main-content .e-grid .e-detailrowexpand, .main-content .e-grid .e-detailindentcell, .main-content .e-grid .e-detailrow .e-altrow .e-rowcell {
background: #27304c;
border-width: 0;
font-size: 13px;
font-family: "Roboto";
font-weight: 400;
}
.main-content .e-grid .e-altrow .e-rowcell, .main-content .e-grid .e-altrow .e-detailrowcollapse, .main-content .e-grid .e-altrow .e-detailrowexpand {
background: #313B5A;
}
.main-content .e-grid .e-icons, .main-content .e-grid .e-rowcell, .main-content .e-grid .e-detailrowcollapse, .main-content .e-grid .e-detailrowexpand {
color: #fff;
}
.main-content .e-grid .e-detailcell {
padding: 0;
border-width: 0;
}
.main-content .e-grid.e-gridhover tr[role='row']:not(.e-editedrow):hover .e-rowcell:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell), .main-content .e-grid.e-gridhover tr[role='row']:hover .e-detailrowcollapse:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell), .main-content .e-grid.e-gridhover tr[role='row']:hover .e-detailrowexpand:not(.e-cellselectionbackground):not(.e-active):not(.e-updatedtd):not(.e-indentcell) {
background: #404D75;
}
.main-content .e-grid .e-grid .e-headercontent, .main-content .e-grid .e-grid .e-gridcontent .e-emptyrow, .main-content .e-grid .e-grid .e-spinner-pane {
display: none;
}
.main-content .e-grid [aria-selected] + tr .e-detailindentcell {
border-width: 0;
}
#control-container {
padding: 0px !important;
}
#principal_svg stop {
stop-color: #3AC8DC;
}
#principal_svg stop[offset="0"] {
stop-color: #3AC8DC;
}
#principal_svg stop[offset="1"] {
stop-color: #5B6BC0;
}
#interest_svg stop {
stop-color: #F3A55B;
}
#interest_svg stop[offset="0"] {
stop-color: #e97c11;
}
#interest_svg stop[offset="1"] {
stop-color: #FB6589;
}
.navbar-right {
float: right;
}
.navbar-header {
float: left;
}
.flex-container {
display: flex;
flex-wrap: wrap;
}
.flex-container .col-lg-4 {
width: 33.33333333%;
}
@media (max-width: 500px) {
.flex-container .col-lg-4 {
width: 100%;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 600;
}
body {
background-color: #162036;
color: #E7E7E7;
}
.left-content {
background-color: #27304c;
max-height: 660px;
margin: 25px 0;
padding: 0 44px;
border-right: 1px solid #475274;
}
.header-style {
background: #27304c;
color: white;
margin: 0;
padding: 15px;
text-align: center;
text-transform: uppercase;
font-size: 26px;
font-family: 'Raleway', sans-serif;
font-weight: 500;
}
.margin-setter {
margin: 35px;
}
.start-setter {
margin: 17px 0;
}
.e-datepicker.e-popup-wrapper {
border-color: #475274;
}
.e-datepicker .e-calendar {
background-color: #3A4360;
}
.e-calendar .e-header .e-title, .e-calendar .e-content span, .e-calendar .e-header.e-decade .e-title,
.e-calendar .e-header .e-title:hover {
color: #fff;
}
.e-calendar .e-header .e-icon-container span, .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
.e-calendar .e-header button.e-prev:active span, .e-calendar .e-header button.e-next:active span {
color: #95979c;
}
.e-calendar .e-content td.e-selected span.e-day, .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active {
background: #5B6BC0;
}
.e-calendar .e-content.e-decade tr:first-child .e-cell:first-child span.e-day, .e-calendar .e-content.e-decade tr:last-child .e-cell:last-child span.e-day {
color: #ABABAB;
}
.e-calendar .e-header .e-prev:hover, .e-calendar .e-header .e-next:hover, .e-calendar .e-content td.e-focused-date span.e-day,
.e-calendar .e-content.e-year td:hover span.e-day, .e-calendar .e-content.e-decade td:hover span.e-day,
.e-calendar .e-content.e-year td.e-selected:hover span.e-day, .e-calendar .e-content.e-decade td.e-selected:hover span.e-day {
background: #404D75;
color: #fff;
}
@media (max-width: 319px) {
.container {
min-width: 300px;
}
}
@media (max-width: 576px) {
.header-style {
font-size: 20px;
padding: 13px 0;
}
.container {
padding: 10px;
margin: 0;
}
.container .e-slider-container .e-scale .e-tick .e-tick-value {
font-size: 12px;
}
.top-space {
margin: 10px;
}
.row {
margin-left: 0;
margin-right: 0;
}
.left-content-wrap .loan-content:first-child {
margin-bottom: 10px;
}
.left-content {
padding: 0;
margin: 0;
border-right-width: 0;
}
.left-content .col-lg-12 {
padding: 12px 12px 18px 12px;
}
.left-content .content-space {
margin: 0 0 12px 0;
}
.left-content .content-space td {
display: block;
}
.left-content .content-space label {
font-size: 15px;
margin: 0 0 12px;
}
.left-content .content-space .tenure-value .e-radio + label {
margin: 0;
}
.left-content .content-space .tenure-value .e-radio + label .e-label {
font-size: 13px;
}
.left-content .editor-space {
float: left;
width: 100%;
}
.left-content .form-space {
margin-bottom: 23px;
}
.left-content .form-space:last-child {
margin-bottom: 0;
}
.left-content .e-input-group {
width: 100% !important;
}
.emi-content {
padding: 0;
margin-top: 0;
}
.emi-content .emi-header {
text-align: center;
font-size: 18px;
}
.tenure-value {
padding: 0;
float: none;
}
.emi-content h6 {
font-size: 23px;
}
.emi-content h1 {
font-size: 30px;
}
.emi-content .col-lg-7 {
width: 100%;
float: left;
}
.emi-content .col-lg-5 {
width: 100%;
float: left;
}
.pie-content div {
margin: 10px 0;
text-align: center;
}
.pie-content div:first-child {
margin-top: 0;
}
.pie-content p {
display: inline-block;
margin: 0;
}
.pie-content h5 {
display: inline-block;
margin: 0;
padding: 5px;
}
.pie-content .pie-total span {
display: inline-block;
}
.pie-content .pie-total p {
display: block;
}
.main-content .loan-content .graph-text {
margin: 12px;
font-size: 18px;
}
.main-content .loan-content .graph-input {
padding: 0 12px 12px;
width: 100%;
margin: 0;
}
.center-heading {
font-size: 18px;
}
.graph-container {
padding: 0 2px;
}
}
@media (min-width: 576px) and (max-width: 991px) {
.container {
padding: 0 30px;
width: 100%;
}
.left-content-wrap .loan-content {
width: 100%;
float: left;
margin: 0;
padding-bottom: 25px;
}
.left-content-wrap .loan-content + .loan-content {
margin-top: 30px;
padding-top: 25px;
padding-bottom: 0px;
}
.left-content {
border-right-width: 0;
}
.emi-content {
max-width: 100%;
}
.emi-content .col-lg-7 {
width: 60%;
float: left;
}
.emi-content .col-lg-5 {
width: 40%;
float: left;
}
}
@media (max-width: 700px) {
.main-content .graph-text {
margin-top: 15px;
}
.main-content .graph-input {
margin: 21px;
}
}
@media (min-width: 992px) {
.container {
padding: 0 35px;
width: 100%;
}
.left-content-wrap .loan-content {
width: 50%;
float: left;
margin: 0;
}
.left-content-wrap .loan-content + .loan-content {
margin: 0;
}
.left-content {
border-right-width: 1px;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.left-content {
min-width: 450px;
padding: 0 20px;
margin-bottom: 40px;
}
.emi-content {
max-width: 100%;
padding: 0 20px;
}
.emi-content .col-lg-7 {
width: 60%;
float: left;
}
.emi-content .col-lg-5 {
width: 40%;
float: left;
}
.emi-content .emi-footer {
margin-top: 15px;
}
.graph-container {
padding: 0 10px;
}
}
@media (min-width: 1200px) and (max-width: 1329px) {
.container {
padding: 0 35px;
}
}
@media (min-width: 1330px) {
.container {
width: 1300px;
}
}
.e-grid#scheduleGrid > .e-gridheader .e-headercontent .e-table colgroup col:first-child,
.e-grid .e-content .e-table#scheduleGrid_content_table > colgroup col:first-child {
width: 0px !important;
}
.e-grid .e-detailrowexpand > div,
.e-grid .e-detailrowcollapse > div {
display: none;
}
.e-grid .e-row .e-row-toggle {
display: inline-block;
}

Просмотреть файл

@ -88,7 +88,7 @@ $tick-color: #ABABAB;
.component-content { .component-content {
border-radius: 3px; border-radius: 3px;
height: 300px; height: 100%;
} }
.parent { .parent {
@ -326,6 +326,7 @@ li {
.e-tick-value { .e-tick-value {
@include Roboto-400(); @include Roboto-400();
font-size: 13px; font-size: 13px;
color: $tick-color;
} }
} }
} }
@ -500,17 +501,11 @@ li {
&:not(.e-active):not(.e-updatedtd):not(.e-indentcell) { &:not(.e-active):not(.e-updatedtd):not(.e-indentcell) {
background: $hover-color; background: $hover-color;
color: #fff;
} }
} }
} }
.e-grid {
& .e-headercontent, & .e-gridcontent .e-emptyrow, & .e-spinner-pane {
display: none;
}
}
& [aria-selected] + tr .e-detailindentcell { & [aria-selected] + tr .e-detailindentcell {
border-width: 0; border-width: 0;
} }
@ -899,3 +894,6 @@ body {
.e-grid .e-row .e-row-toggle { .e-grid .e-row .e-row-toggle {
display: inline-block; display: inline-block;
} }
#payment_pieChartPointHover_Border {
opacity: 0;
}

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -1,3 +1,7 @@
//sass-lint:disable-all //sass-lint:disable-all
@import 'ej2-inputs/styles/bootstrap.scss'; @import 'ej2-inputs/styles/bootstrap.scss';
@import 'ej2-grids/styles/bootstrap.scss'; @import 'ej2-grids/styles/bootstrap.scss';
@import 'ej2-buttons/styles/bootstrap.scss';
@import 'ej2-base/styles/bootstrap.scss';
@import 'ej2-calendars/styles/bootstrap.scss';
@import 'ej2-popups/styles/bootstrap.scss';

Просмотреть файл

@ -1,16 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
}); var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-WLQL39J');</script>
<!-- End Google Tag Manager -->
<title>Essential JS 2 for Angular - Loan Calculator</title> <title>Essential JS 2 for Angular - Loan Calculator</title>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Essential JS 2 for Angular - Loan Calculator"> <meta name="description" content="Essential JS 2 for Angular - Loan Calculator - You can use this application to Calculates your loan payment based on your loan amount, interest and term">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="icon" type="image/x-icon" href="./favicon.ico"> <link rel="icon" type="image/x-icon" href="./favicon.ico">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Raleway:500,600" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Raleway:500,600" rel="stylesheet">
<link href="./styles.css" rel="stylesheet" /> <link href="./styles.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.10/Reflect.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.10/Reflect.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
@ -21,9 +32,15 @@
</head> </head>
<body> <body>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WLQL39J" height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<div hidden id="sync-analytics" data-queue="EJ2 - Showcase - Angular - Loan Calculator"></div>
<app-root></app-root> <app-root></app-root>
</body> </body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.8.18/zone.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.8.18/zone.min.js"></script>
<script src="./dist/common.js"></script> <!-- <script src="./dist/common.js"></script> -->
</html> </html>

Просмотреть файл

@ -10,4 +10,3 @@ if (environment.production) {
platformBrowserDynamic().bootstrapModule(AppModule) platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err)); .catch(err => console.log(err));

Просмотреть файл

@ -11,54 +11,51 @@
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
* *
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html * Learn more in https://angular.io/guide/browser-support
*/ */
/*************************************************************************************************** /***************************************************************************************************
* BROWSER POLYFILLS * BROWSER POLYFILLS
*/ */
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
// import 'core-js/es6/symbol';
// import 'core-js/es6/object';
// import 'core-js/es6/function';
// import 'core-js/es6/parse-int';
// import 'core-js/es6/parse-float';
// import 'core-js/es6/number';
// import 'core-js/es6/math';
// import 'core-js/es6/string';
// import 'core-js/es6/date';
// import 'core-js/es6/array';
// import 'core-js/es6/regexp';
// import 'core-js/es6/map';
// import 'core-js/es6/weak-map';
// import 'core-js/es6/set';
/** IE10 and IE11 requires the following for NgClass support on SVG elements */ /** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`. // import 'classlist.js'; // Run `npm install --save classlist.js`.
/** IE10 and IE11 requires the following for the Reflect API. */
// import 'core-js/es6/reflect';
/** Evergreen browsers require these. **/
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/es7/reflect';
/** /**
* Required to support Web Animations `@angular/platform-browser/animations`. * Web Animations `@angular/platform-browser/animations`
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
**/ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`. // import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
*
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for IE/Edge
*
* (window as any).__Zone_enable_cross_context_check = true;
*
*/
/*************************************************************************************************** /***************************************************************************************************
* Zone JS is required by default for Angular itself. * Zone JS is required by default for Angular itself.
*/ */
import 'zone.js/dist/zone'; // Included with Angular CLI. //import 'zone.js/dist/zone'; // Included with Angular CLI.
/*************************************************************************************************** /***************************************************************************************************

Просмотреть файл

@ -1,13 +0,0 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}

Просмотреть файл

@ -1,25 +0,0 @@
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"declaration": true,
"lib": ["es2015", "dom"],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"types": ["requirejs"]
},
"exclude": [
"node_modules"
],
"files": [
"src/app/app.module.ts",
"src/app/main.ts"
],
"angularCompilerOptions": {
"skipMetadataEmit": true
}
}

15
tsconfig.app.json Normal file
Просмотреть файл

@ -0,0 +1,15 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
"files": [
"src/main.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}

20
tsconfig.base.json Normal file
Просмотреть файл

@ -0,0 +1,20 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"module": "es6",
"lib": [
"es2015",
"dom"
]
}
}

Просмотреть файл

@ -1,28 +1,21 @@
{ {
"compilerOptions": { "compileOnSave": false,
"target": "es5", "compilerOptions": {
"module": "amd", "baseUrl": "./",
"declaration": true, "outDir": "./dist/out-tsc",
"removeComments": true, "sourceMap": true,
"noLib": false, "declaration": false,
"lib": ["es2015", "dom"], "module": "es2015",
"experimentalDecorators": true, "moduleResolution": "node",
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
"sourceMap": true, "experimentalDecorators": true,
"pretty": true, "target": "es2015",
"allowUnreachableCode": false, "typeRoots": [
"allowUnusedLabels": false, "node_modules/@types"
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitUseStrict": false,
"noFallthroughCasesInSwitch": true,
"allowJs": false,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"types": ["requirejs"]
},
"exclude": [
"node_modules"
], ],
"compileOnSave": false "lib": [
} "es2017",
"dom"
]
}
}

18
tsconfig.spec.json Normal file
Просмотреть файл

@ -0,0 +1,18 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jasmine"
]
},
"files": [
"src/test.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
}

152
tslint.json Normal file
Просмотреть файл

@ -0,0 +1,152 @@
{
"extends": "tslint:recommended",
"rules": {
"align": {
"options": [
"parameters",
"statements"
]
},
"array-type": false,
"arrow-return-shorthand": true,
"curly": true,
"deprecation": {
"severity": "warning"
},
"component-class-suffix": true,
"contextual-lifecycle": true,
"directive-class-suffix": true,
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
"component-selector": [
true,
"element",
"app",
"kebab-case"
],
"eofline": true,
"import-blacklist": [
true,
"rxjs/Rx"
],
"import-spacing": true,
"indent": {
"options": [
"spaces"
]
},
"max-classes-per-file": false,
"max-line-length": [
true,
140
],
"member-ordering": [
true,
{
"order": [
"static-field",
"instance-field",
"static-method",
"instance-method"
]
}
],
"no-console": [
true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-empty": false,
"no-inferrable-types": [
true,
"ignore-params"
],
"no-non-null-assertion": true,
"no-redundant-jsdoc": true,
"no-switch-case-fall-through": true,
"no-var-requires": false,
"object-literal-key-quotes": [
true,
"as-needed"
],
"quotemark": [
true,
"single"
],
"semicolon": {
"options": [
"always"
]
},
"space-before-function-paren": {
"options": {
"anonymous": "never",
"asyncArrow": "always",
"constructor": "never",
"method": "never",
"named": "never"
}
},
"typedef": [
true,
"call-signature"
],
"typedef-whitespace": {
"options": [
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
},
{
"call-signature": "onespace",
"index-signature": "onespace",
"parameter": "onespace",
"property-declaration": "onespace",
"variable-declaration": "onespace"
}
]
},
"variable-name": {
"options": [
"ban-keywords",
"check-format",
"allow-pascal-case"
]
},
"whitespace": {
"options": [
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type",
"check-typecast"
]
},
"no-conflicting-lifecycle": true,
"no-host-metadata-property": true,
"no-input-rename": true,
"no-inputs-metadata-property": true,
"no-output-native": true,
"no-output-on-prefix": true,
"no-output-rename": true,
"no-outputs-metadata-property": true,
"template-banana-in-box": true,
"template-no-negated-async": true,
"use-lifecycle-interface": true,
"use-pipe-transform-interface": true
},
"rulesDirectory": [
"codelyzer"
]
}