mirror of
https://gitlab.com/walljm/dynamicbible.git
synced 2025-07-25 16:29:49 -04:00
FEATURE: Unit testing framework
* added jasmine and karma (they don't work yet...) * fixed bug in strongs display (hebrews failed because of no rmac) * added option to append to bottom of list instead of top * fixed duplicate es6 shim reference * added function to automatically upgrade user profile
This commit is contained in:
parent
8badd5dfc1
commit
5c85bfdb19
48
DynamicBibleIonic/karma.conf.js
Normal file
48
DynamicBibleIonic/karma.conf.js
Normal file
@ -0,0 +1,48 @@
|
||||
module.exports = function (config)
|
||||
{
|
||||
config.set({
|
||||
basePath: '',
|
||||
frameworks: ['jasmine', 'karma-typescript'],
|
||||
|
||||
files: [
|
||||
'./src/polyfills.ts',
|
||||
'./src/mocks.ts',
|
||||
'./src/**/*.ts',
|
||||
'./src/**/*.spec.ts'
|
||||
],
|
||||
|
||||
exclude: [
|
||||
],
|
||||
|
||||
preprocessors: {
|
||||
'./src/polyfills.ts': ['karma-typescript'],
|
||||
'./src/mocks.ts': ['karma-typescript'],
|
||||
'./src/**/*.ts': ['karma-typescript'],
|
||||
'./src/**/*.spec.ts': ['karma-typescript']
|
||||
},
|
||||
|
||||
typescriptPreprocessor: {
|
||||
options: {
|
||||
sourceMap: false,
|
||||
target: 'ES5',
|
||||
module: 'amd',
|
||||
noImplicitAny: true,
|
||||
noResolve: true,
|
||||
removeComments: true,
|
||||
concatenateOutput: false
|
||||
},
|
||||
transformPath: function (path)
|
||||
{
|
||||
return path.replace(/\.ts$/, '.js');
|
||||
}
|
||||
},
|
||||
reporters: ['progress', 'karma-typescript'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_DEBUG,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
singleRun: false,
|
||||
concurrency: Infinity
|
||||
})
|
||||
}
|
@ -11,7 +11,8 @@
|
||||
"clean": "ionic-app-scripts clean",
|
||||
"build": "ionic-app-scripts build",
|
||||
"ionic:build": "ionic-app-scripts build",
|
||||
"ionic:serve": "ionic-app-scripts serve"
|
||||
"ionic:serve": "ionic-app-scripts serve",
|
||||
"test": "karma start karma.conf.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/common": "2.2.1",
|
||||
@ -24,14 +25,21 @@
|
||||
"@angular/platform-browser-dynamic": "2.2.1",
|
||||
"@angular/platform-server": "2.2.1",
|
||||
"@ionic/storage": "1.1.7",
|
||||
"@types/jasmine": "^2.5.38",
|
||||
"ionic-angular": "2.0.0-rc.4",
|
||||
"ionic-native": "2.2.11",
|
||||
"ionicons": "3.0.0",
|
||||
"jasmine-core": "^2.5.2",
|
||||
"karma": "^1.3.0",
|
||||
"karma-chrome-launcher": "^2.0.0",
|
||||
"karma-jasmine": "^1.1.0",
|
||||
"karma-typescript": "^2.1.5",
|
||||
"rxjs": "5.0.0-beta.12",
|
||||
"zone.js": "0.6.26"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ionic/app-scripts": "0.0.47",
|
||||
"karma": "^1.3.0",
|
||||
"typescript": "2.0.9"
|
||||
},
|
||||
"cordovaPlugins": [
|
||||
|
24
DynamicBibleIonic/src/Helpers.ts
Normal file
24
DynamicBibleIonic/src/Helpers.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import { Storage } from '@ionic/storage';
|
||||
|
||||
export class UserHelpers
|
||||
{
|
||||
constructor(public local: Storage)
|
||||
{
|
||||
}
|
||||
|
||||
public validate(u: User, t: User)
|
||||
{
|
||||
let updated = false;
|
||||
for (var k in u)
|
||||
{
|
||||
if (t[k] === undefined)
|
||||
{
|
||||
t[k] = u[k];
|
||||
updated = true;
|
||||
}
|
||||
}
|
||||
if (updated)
|
||||
this.local.set('profile', JSON.stringify(t));
|
||||
}
|
||||
|
||||
}
|
1
DynamicBibleIonic/src/bible-service.spec.ts
Normal file
1
DynamicBibleIonic/src/bible-service.spec.ts
Normal file
@ -0,0 +1 @@
|
||||
|
@ -16,13 +16,16 @@
|
||||
<p>
|
||||
<b>{{item.def.tr}} ({{item.def.sn}})</b> - {{item.def.p}} - {{item.def.lemma}} - <span [innerHTML]="item.def.de"></span><br>
|
||||
</p>
|
||||
<h2>Robinsons Morphalogical Analysis Code</h2>
|
||||
<b>{{item.rmac.id}}</b><br>
|
||||
<ul>
|
||||
<li *ngFor="let c of item.rmac.d">
|
||||
{{c}}
|
||||
</li>
|
||||
</ul>
|
||||
<template [ngIf]="item.rmac !== null">
|
||||
<h2>Robinsons Morphalogical Analysis Code</h2>
|
||||
<b>{{item.rmac.id}}</b>
|
||||
<br>
|
||||
<ul>
|
||||
<li *ngFor="let c of item.rmac.d">
|
||||
{{c}}
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
<h2>Cross References</h2>
|
||||
<dl>
|
||||
<dd *ngFor="let wrd of item.crossrefs.ss">
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { EventEmitter, Component, Input, Output } from "@angular/core";
|
||||
import { EventEmitter, Component, Output } from "@angular/core";
|
||||
import { Platform, NavParams, ViewController } from 'ionic-angular';
|
||||
import { Reference } from '../../Reference.ts';
|
||||
|
||||
|
@ -10,17 +10,22 @@
|
||||
<p>
|
||||
<b>{{item.def.tr}} ({{item.def.sn}})</b> - {{item.def.p}} - {{item.def.lemma}} - <span [innerHTML]="item.def.de"></span><br>
|
||||
</p>
|
||||
<h2>Robinsons Morphalogical Analysis Code</h2>
|
||||
<b>{{item.rmac.id}}</b><br>
|
||||
<ul>
|
||||
<li *ngFor="let c of item.rmac.d">
|
||||
{{c}}
|
||||
</li>
|
||||
</ul>
|
||||
<template [ngIf]="item.rmac !== null">
|
||||
<h2>Robinsons Morphalogical Analysis Code</h2>
|
||||
<b>{{item.rmac.id}}</b>
|
||||
<br>
|
||||
<ul>
|
||||
<li *ngFor="let c of item.rmac.d">
|
||||
{{c}}
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
<h2>Cross References</h2>
|
||||
<dl>
|
||||
<dd *ngFor="let wrd of item.crossrefs.ss">
|
||||
{{wrd.w}}: <span *ngFor="let p of wrd.rs"><a (click)="openPassage(p.r)">{{makePassage(p.r)}}</a>, </span>
|
||||
</dd>
|
||||
</dl>
|
||||
<ion-scroll scrollY="true">
|
||||
<dl>
|
||||
<dd *ngFor="let wrd of item.crossrefs.ss">
|
||||
<b>{{wrd.w}}</b>: <span *ngFor="let p of wrd.rs"><a (click)="openPassage(p.r)">{{makePassage(p.r)}}</a>, </span>
|
||||
</dd>
|
||||
</dl>
|
||||
</ion-scroll>
|
||||
</ion-card-content>
|
3
DynamicBibleIonic/src/components/strongs/strongs.scss
Normal file
3
DynamicBibleIonic/src/components/strongs/strongs.scss
Normal file
@ -0,0 +1,3 @@
|
||||
strongs ion-scroll {
|
||||
height: 250px;
|
||||
}
|
17
DynamicBibleIonic/src/components/words/words.scss
Normal file
17
DynamicBibleIonic/src/components/words/words.scss
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
words ion-scroll {
|
||||
white-space: nowrap;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
ion-col .button{
|
||||
background-color: #fbfbfb;
|
||||
padding: 9px 6px 9px 6px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
ion-col {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
82
DynamicBibleIonic/src/mocks.ts
Normal file
82
DynamicBibleIonic/src/mocks.ts
Normal file
@ -0,0 +1,82 @@
|
||||
export class ConfigMock
|
||||
{
|
||||
|
||||
public get(): any
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public getBoolean(): boolean
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public getNumber(): number
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
export class FormMock
|
||||
{
|
||||
public register(): any
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class NavMock
|
||||
{
|
||||
|
||||
public pop(): any
|
||||
{
|
||||
return new Promise(function (resolve: Function): void
|
||||
{
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
public push(): any
|
||||
{
|
||||
return new Promise(function (resolve: Function): void
|
||||
{
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
public getActive(): any
|
||||
{
|
||||
return {
|
||||
'instance': {
|
||||
'model': 'something',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
public setRoot(): any
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export class PlatformMock
|
||||
{
|
||||
public ready(): any
|
||||
{
|
||||
return new Promise((resolve: Function) =>
|
||||
{
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class MenuMock
|
||||
{
|
||||
public close(): any
|
||||
{
|
||||
return new Promise((resolve: Function) =>
|
||||
{
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
}
|
@ -28,23 +28,3 @@ body {
|
||||
.card-md h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
ion-scroll {
|
||||
white-space: nowrap;
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
ion-col {
|
||||
//border-bottom: 1px solid #cbcbcb !important;
|
||||
}
|
||||
|
||||
ion-col .button{
|
||||
background-color: #fbfbfb;
|
||||
padding: 9px 6px 9px 6px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
ion-col {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
@ -5,11 +5,9 @@ import {BibleService} from "../../bible-service";
|
||||
import {LoadingController, ModalController } from "ionic-angular";
|
||||
import {StrongsService} from "../../strongs-service";
|
||||
import {WordService} from "../../word-service";
|
||||
import {Strongs} from "../../components/strongs/strongs";
|
||||
import {Passage} from "../../components/passage/passage.ts";
|
||||
import {StrongsModal} from "../../components/strongs-modal/strongs-modal.ts";
|
||||
import {Storage} from '@ionic/storage';
|
||||
import {Words} from '../../components/words/words.ts';
|
||||
import {UserHelpers} from '../../Helpers';
|
||||
|
||||
class Item
|
||||
{
|
||||
@ -27,7 +25,7 @@ export class SearchPage
|
||||
{
|
||||
searchQuery: string = "";
|
||||
last: number;
|
||||
user: User = { strongs_modal: true, clear_search_after_query: true, items: [] };
|
||||
user: User = { strongs_modal: true, clear_search_after_query: true, items: [], append_to_bottom: false };
|
||||
|
||||
constructor(
|
||||
private strongsService: StrongsService
|
||||
@ -44,9 +42,9 @@ export class SearchPage
|
||||
if (profile === null)
|
||||
this.local.set('profile', JSON.stringify(this.user));
|
||||
else
|
||||
{
|
||||
t = JSON.parse(profile);
|
||||
}
|
||||
|
||||
new UserHelpers(local).validate(this.user, t);
|
||||
|
||||
this.initializeItems(t);
|
||||
}).catch(error =>
|
||||
@ -105,6 +103,14 @@ export class SearchPage
|
||||
this.local.set('profile', JSON.stringify(this.user));
|
||||
}
|
||||
|
||||
addItemToList(item)
|
||||
{
|
||||
if (this.user.append_to_bottom)
|
||||
this.user.items.push(item);
|
||||
else
|
||||
this.user.items.unshift(item);
|
||||
}
|
||||
|
||||
getItems(search)
|
||||
{
|
||||
try
|
||||
@ -121,7 +127,7 @@ export class SearchPage
|
||||
if (q.search(/[0-9]/i) === -1)
|
||||
{
|
||||
let result = this.wordService.getResult(q);
|
||||
this.user.items.unshift({ id: this.last++, data: result, type: "Words", dict: "na" });
|
||||
this.addItemToList({ id: this.last++, data: result, type: "Words", dict: "na" });
|
||||
}
|
||||
else if (q.search(/(H|G)[0-9]/i) !== -1)
|
||||
{
|
||||
@ -140,7 +146,7 @@ export class SearchPage
|
||||
if (this.user.strongs_modal)
|
||||
this.presentStrongsModal(result);
|
||||
else
|
||||
this.user.items.unshift({ id: this.last++, data: result, type: "Strongs", dict: "na" });
|
||||
this.addItemToList({ id: this.last++, data: result, type: "Strongs", dict: "na" });
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -150,7 +156,7 @@ export class SearchPage
|
||||
let myref = new Reference(q.trim());
|
||||
let r = this.bibleService.getResult(myref.Section);
|
||||
r.ref = myref.toString();
|
||||
this.user.items.unshift({ id: this.last++, data: r, type: "Passage", dict: r.testament == 'new' ? "G" : "H" });
|
||||
this.addItemToList({ id: this.last++, data: r, type: "Passage", dict: r.testament == 'new' ? "G" : "H" });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,15 +8,21 @@
|
||||
</ion-navbar>
|
||||
</ion-header>
|
||||
<ion-content padding>
|
||||
<ion-item *ngIf="user">
|
||||
<ion-label>Show Strongs as Modal</ion-label>
|
||||
<ion-toggle color="dark" [(ngModel)]="user.strongs_modal" (ionChange)="save()"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="user">
|
||||
<ion-label>Clear Search Bar after Query</ion-label>
|
||||
<ion-toggle color="dark" [(ngModel)]="user.clear_search_after_query" (ionChange)="save()"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="user">
|
||||
<button ion-button (click)="reset()">Reset Settings</button>
|
||||
</ion-item>
|
||||
<template [ngIf]="user">
|
||||
<ion-item>
|
||||
<ion-label>Show Strongs as Modal</ion-label>
|
||||
<ion-toggle color="dark" [(ngModel)]="user.strongs_modal" (ionChange)="save()"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<ion-label>Clear Search Bar after Query</ion-label>
|
||||
<ion-toggle color="dark" [(ngModel)]="user.clear_search_after_query" (ionChange)="save()"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<ion-label>Append Results to the Bottom of List</ion-label>
|
||||
<ion-toggle color="dark" [(ngModel)]="user.append_to_bottom" (ionChange)="save()"></ion-toggle>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<button ion-button (click)="reset()">Reset Settings</button>
|
||||
</ion-item>
|
||||
</template>
|
||||
</ion-content>
|
@ -2,6 +2,7 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { NavController } from 'ionic-angular';
|
||||
import { Storage } from '@ionic/storage';
|
||||
import {UserHelpers} from '../../Helpers';
|
||||
|
||||
@Component({
|
||||
selector: 'settings',
|
||||
@ -9,17 +10,20 @@ import { Storage } from '@ionic/storage';
|
||||
})
|
||||
export class SettingsPage
|
||||
{
|
||||
user: User = { strongs_modal: true, clear_search_after_query: true, items: [] };
|
||||
user: User = { strongs_modal: true, clear_search_after_query: true, items: [], append_to_bottom: false };
|
||||
|
||||
constructor(public navCtrl: NavController, public local: Storage)
|
||||
{
|
||||
// Check if there is a profile saved in local storage
|
||||
this.local.get('profile').then(profile =>
|
||||
{
|
||||
if (profile === null)
|
||||
this.save();
|
||||
else
|
||||
this.user = JSON.parse(profile);
|
||||
let t = this.user;
|
||||
|
||||
if (profile !== null)
|
||||
t = JSON.parse(profile);
|
||||
|
||||
new UserHelpers(local).validate(this.user, t);
|
||||
this.user = t;
|
||||
}).catch(error =>
|
||||
{
|
||||
console.log(error);
|
||||
@ -33,7 +37,7 @@ export class SettingsPage
|
||||
|
||||
reset()
|
||||
{
|
||||
this.user = { strongs_modal: true, clear_search_after_query: true, items: [] };
|
||||
this.user = { strongs_modal: true, clear_search_after_query: true, items: [], append_to_bottom: false };
|
||||
this.save();
|
||||
}
|
||||
|
||||
|
19
DynamicBibleIonic/src/polyfills.ts
Normal file
19
DynamicBibleIonic/src/polyfills.ts
Normal file
@ -0,0 +1,19 @@
|
||||
// This file includes polyfills needed by Angular 2 and is loaded before
|
||||
// the app. You can add your own extra polyfills to this file.
|
||||
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/set';
|
||||
import 'core-js/es6/reflect';
|
||||
|
||||
import 'core-js/es7/reflect';
|
||||
import 'zone.js/dist/zone';
|
@ -15,7 +15,8 @@ type CardItem = { id: number, data: any, type: string, dict: string }
|
||||
type User = {
|
||||
strongs_modal: boolean,
|
||||
clear_search_after_query: boolean,
|
||||
items: CardItem[]
|
||||
items: CardItem[],
|
||||
append_to_bottom: boolean
|
||||
}
|
||||
|
||||
type BiblePassage = {
|
||||
|
2
DynamicBibleIonic/typings/browser.d.ts
vendored
2
DynamicBibleIonic/typings/browser.d.ts
vendored
@ -1,2 +1,2 @@
|
||||
/// <reference path="browser/ambient/es6-shim/index.d.ts" />
|
||||
/// <reference path="globals/es6-shim/index.d.ts" />
|
||||
/// <reference path="browser/ambient/jquery/index.d.ts" />
|
||||
|
@ -1,670 +0,0 @@
|
||||
// Generated by typings
|
||||
// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/es6-shim/es6-shim.d.ts
|
||||
// Type definitions for es6-shim v0.31.2
|
||||
// Project: https://github.com/paulmillr/es6-shim
|
||||
// Definitions by: Ron Buckton <http://github.com/rbuckton>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
declare type PropertyKey = string | number | symbol;
|
||||
|
||||
interface IteratorResult<T> {
|
||||
done: boolean;
|
||||
value?: T;
|
||||
}
|
||||
|
||||
interface IterableShim<T> {
|
||||
/**
|
||||
* Shim for an ES6 iterable. Not intended for direct use by user code.
|
||||
*/
|
||||
"_es6-shim iterator_"(): Iterator<T>;
|
||||
}
|
||||
|
||||
interface Iterator<T> {
|
||||
next(value?: any): IteratorResult<T>;
|
||||
return?(value?: any): IteratorResult<T>;
|
||||
throw?(e?: any): IteratorResult<T>;
|
||||
}
|
||||
|
||||
interface IterableIteratorShim<T> extends IterableShim<T>, Iterator<T> {
|
||||
/**
|
||||
* Shim for an ES6 iterable iterator. Not intended for direct use by user code.
|
||||
*/
|
||||
"_es6-shim iterator_"(): IterableIteratorShim<T>;
|
||||
}
|
||||
|
||||
interface StringConstructor {
|
||||
/**
|
||||
* Return the String value whose elements are, in order, the elements in the List elements.
|
||||
* If length is 0, the empty string is returned.
|
||||
*/
|
||||
fromCodePoint(...codePoints: number[]): string;
|
||||
|
||||
/**
|
||||
* String.raw is intended for use as a tag function of a Tagged Template String. When called
|
||||
* as such the first argument will be a well formed template call site object and the rest
|
||||
* parameter will contain the substitution values.
|
||||
* @param template A well-formed template string call site representation.
|
||||
* @param substitutions A set of substitution values.
|
||||
*/
|
||||
raw(template: TemplateStringsArray, ...substitutions: any[]): string;
|
||||
}
|
||||
|
||||
interface String {
|
||||
/**
|
||||
* Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
|
||||
* value of the UTF-16 encoded code point starting at the string element at position pos in
|
||||
* the String resulting from converting this object to a String.
|
||||
* If there is no element at that position, the result is undefined.
|
||||
* If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.
|
||||
*/
|
||||
codePointAt(pos: number): number;
|
||||
|
||||
/**
|
||||
* Returns true if searchString appears as a substring of the result of converting this
|
||||
* object to a String, at one or more positions that are
|
||||
* greater than or equal to position; otherwise, returns false.
|
||||
* @param searchString search string
|
||||
* @param position If position is undefined, 0 is assumed, so as to search all of the String.
|
||||
*/
|
||||
includes(searchString: string, position?: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns true if the sequence of elements of searchString converted to a String is the
|
||||
* same as the corresponding elements of this object (converted to a String) starting at
|
||||
* endPosition – length(this). Otherwise returns false.
|
||||
*/
|
||||
endsWith(searchString: string, endPosition?: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns a String value that is made from count copies appended together. If count is 0,
|
||||
* T is the empty String is returned.
|
||||
* @param count number of copies to append
|
||||
*/
|
||||
repeat(count: number): string;
|
||||
|
||||
/**
|
||||
* Returns true if the sequence of elements of searchString converted to a String is the
|
||||
* same as the corresponding elements of this object (converted to a String) starting at
|
||||
* position. Otherwise returns false.
|
||||
*/
|
||||
startsWith(searchString: string, position?: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns an <a> HTML anchor element and sets the name attribute to the text value
|
||||
* @param name
|
||||
*/
|
||||
anchor(name: string): string;
|
||||
|
||||
/** Returns a <big> HTML element */
|
||||
big(): string;
|
||||
|
||||
/** Returns a <blink> HTML element */
|
||||
blink(): string;
|
||||
|
||||
/** Returns a <b> HTML element */
|
||||
bold(): string;
|
||||
|
||||
/** Returns a <tt> HTML element */
|
||||
fixed(): string
|
||||
|
||||
/** Returns a <font> HTML element and sets the color attribute value */
|
||||
fontcolor(color: string): string
|
||||
|
||||
/** Returns a <font> HTML element and sets the size attribute value */
|
||||
fontsize(size: number): string;
|
||||
|
||||
/** Returns a <font> HTML element and sets the size attribute value */
|
||||
fontsize(size: string): string;
|
||||
|
||||
/** Returns an <i> HTML element */
|
||||
italics(): string;
|
||||
|
||||
/** Returns an <a> HTML element and sets the href attribute value */
|
||||
link(url: string): string;
|
||||
|
||||
/** Returns a <small> HTML element */
|
||||
small(): string;
|
||||
|
||||
/** Returns a <strike> HTML element */
|
||||
strike(): string;
|
||||
|
||||
/** Returns a <sub> HTML element */
|
||||
sub(): string;
|
||||
|
||||
/** Returns a <sup> HTML element */
|
||||
sup(): string;
|
||||
|
||||
/**
|
||||
* Shim for an ES6 iterable. Not intended for direct use by user code.
|
||||
*/
|
||||
"_es6-shim iterator_"(): IterableIteratorShim<string>;
|
||||
}
|
||||
|
||||
interface ArrayConstructor {
|
||||
/**
|
||||
* Creates an array from an array-like object.
|
||||
* @param arrayLike An array-like object to convert to an array.
|
||||
* @param mapfn A mapping function to call on every element of the array.
|
||||
* @param thisArg Value of 'this' used to invoke the mapfn.
|
||||
*/
|
||||
from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
|
||||
|
||||
/**
|
||||
* Creates an array from an iterable object.
|
||||
* @param iterable An iterable object to convert to an array.
|
||||
* @param mapfn A mapping function to call on every element of the array.
|
||||
* @param thisArg Value of 'this' used to invoke the mapfn.
|
||||
*/
|
||||
from<T, U>(iterable: IterableShim<T>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>;
|
||||
|
||||
/**
|
||||
* Creates an array from an array-like object.
|
||||
* @param arrayLike An array-like object to convert to an array.
|
||||
*/
|
||||
from<T>(arrayLike: ArrayLike<T>): Array<T>;
|
||||
|
||||
/**
|
||||
* Creates an array from an iterable object.
|
||||
* @param iterable An iterable object to convert to an array.
|
||||
*/
|
||||
from<T>(iterable: IterableShim<T>): Array<T>;
|
||||
|
||||
/**
|
||||
* Returns a new array from a set of elements.
|
||||
* @param items A set of elements to include in the new array object.
|
||||
*/
|
||||
of<T>(...items: T[]): Array<T>;
|
||||
}
|
||||
|
||||
interface Array<T> {
|
||||
/**
|
||||
* Returns the value of the first element in the array where predicate is true, and undefined
|
||||
* otherwise.
|
||||
* @param predicate find calls predicate once for each element of the array, in ascending
|
||||
* order, until it finds one where predicate returns true. If such an element is found, find
|
||||
* immediately returns that element value. Otherwise, find returns undefined.
|
||||
* @param thisArg If provided, it will be used as the this value for each invocation of
|
||||
* predicate. If it is not provided, undefined is used instead.
|
||||
*/
|
||||
find(predicate: (value: T, index: number, obj: Array<T>) => boolean, thisArg?: any): T;
|
||||
|
||||
/**
|
||||
* Returns the index of the first element in the array where predicate is true, and undefined
|
||||
* otherwise.
|
||||
* @param predicate find calls predicate once for each element of the array, in ascending
|
||||
* order, until it finds one where predicate returns true. If such an element is found, find
|
||||
* immediately returns that element value. Otherwise, find returns undefined.
|
||||
* @param thisArg If provided, it will be used as the this value for each invocation of
|
||||
* predicate. If it is not provided, undefined is used instead.
|
||||
*/
|
||||
findIndex(predicate: (value: T) => boolean, thisArg?: any): number;
|
||||
|
||||
/**
|
||||
* Returns the this object after filling the section identified by start and end with value
|
||||
* @param value value to fill array section with
|
||||
* @param start index to start filling the array at. If start is negative, it is treated as
|
||||
* length+start where length is the length of the array.
|
||||
* @param end index to stop filling the array at. If end is negative, it is treated as
|
||||
* length+end.
|
||||
*/
|
||||
fill(value: T, start?: number, end?: number): T[];
|
||||
|
||||
/**
|
||||
* Returns the this object after copying a section of the array identified by start and end
|
||||
* to the same array starting at position target
|
||||
* @param target If target is negative, it is treated as length+target where length is the
|
||||
* length of the array.
|
||||
* @param start If start is negative, it is treated as length+start. If end is negative, it
|
||||
* is treated as length+end.
|
||||
* @param end If not specified, length of the this object is used as its default value.
|
||||
*/
|
||||
copyWithin(target: number, start: number, end?: number): T[];
|
||||
|
||||
/**
|
||||
* Returns an array of key, value pairs for every entry in the array
|
||||
*/
|
||||
entries(): IterableIteratorShim<[number, T]>;
|
||||
|
||||
/**
|
||||
* Returns an list of keys in the array
|
||||
*/
|
||||
keys(): IterableIteratorShim<number>;
|
||||
|
||||
/**
|
||||
* Returns an list of values in the array
|
||||
*/
|
||||
values(): IterableIteratorShim<T>;
|
||||
|
||||
/**
|
||||
* Shim for an ES6 iterable. Not intended for direct use by user code.
|
||||
*/
|
||||
"_es6-shim iterator_"(): IterableIteratorShim<T>;
|
||||
}
|
||||
|
||||
interface NumberConstructor {
|
||||
/**
|
||||
* The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1
|
||||
* that is representable as a Number value, which is approximately:
|
||||
* 2.2204460492503130808472633361816 x 10−16.
|
||||
*/
|
||||
EPSILON: number;
|
||||
|
||||
/**
|
||||
* Returns true if passed value is finite.
|
||||
* Unlike the global isFininte, Number.isFinite doesn't forcibly convert the parameter to a
|
||||
* number. Only finite values of the type number, result in true.
|
||||
* @param number A numeric value.
|
||||
*/
|
||||
isFinite(number: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns true if the value passed is an integer, false otherwise.
|
||||
* @param number A numeric value.
|
||||
*/
|
||||
isInteger(number: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns a Boolean value that indicates whether a value is the reserved value NaN (not a
|
||||
* number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter
|
||||
* to a number. Only values of the type number, that are also NaN, result in true.
|
||||
* @param number A numeric value.
|
||||
*/
|
||||
isNaN(number: number): boolean;
|
||||
|
||||
/**
|
||||
* Returns true if the value passed is a safe integer.
|
||||
* @param number A numeric value.
|
||||
*/
|
||||
isSafeInteger(number: number): boolean;
|
||||
|
||||
/**
|
||||
* The value of the largest integer n such that n and n + 1 are both exactly representable as
|
||||
* a Number value.
|
||||
* The value of Number.MIN_SAFE_INTEGER is 9007199254740991 2^53 − 1.
|
||||
*/
|
||||
MAX_SAFE_INTEGER: number;
|
||||
|
||||
/**
|
||||
* The value of the smallest integer n such that n and n − 1 are both exactly representable as
|
||||
* a Number value.
|
||||
* The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).
|
||||
*/
|
||||
MIN_SAFE_INTEGER: number;
|
||||
|
||||
/**
|
||||
* Converts a string to a floating-point number.
|
||||
* @param string A string that contains a floating-point number.
|
||||
*/
|
||||
parseFloat(string: string): number;
|
||||
|
||||
/**
|
||||
* Converts A string to an integer.
|
||||
* @param s A string to convert into a number.
|
||||
* @param radix A value between 2 and 36 that specifies the base of the number in numString.
|
||||
* If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
|
||||
* All other strings are considered decimal.
|
||||
*/
|
||||
parseInt(string: string, radix?: number): number;
|
||||
}
|
||||
|
||||
interface ObjectConstructor {
|
||||
/**
|
||||
* Copy the values of all of the enumerable own properties from one or more source objects to a
|
||||
* target object. Returns the target object.
|
||||
* @param target The target object to copy to.
|
||||
* @param sources One or more source objects to copy properties from.
|
||||
*/
|
||||
assign(target: any, ...sources: any[]): any;
|
||||
|
||||
/**
|
||||
* Returns true if the values are the same value, false otherwise.
|
||||
* @param value1 The first value.
|
||||
* @param value2 The second value.
|
||||
*/
|
||||
is(value1: any, value2: any): boolean;
|
||||
|
||||
/**
|
||||
* Sets the prototype of a specified object o to object proto or null. Returns the object o.
|
||||
* @param o The object to change its prototype.
|
||||
* @param proto The value of the new prototype or null.
|
||||
* @remarks Requires `__proto__` support.
|
||||
*/
|
||||
setPrototypeOf(o: any, proto: any): any;
|
||||
}
|
||||
|
||||
interface RegExp {
|
||||
/**
|
||||
* Returns a string indicating the flags of the regular expression in question. This field is read-only.
|
||||
* The characters in this string are sequenced and concatenated in the following order:
|
||||
*
|
||||
* - "g" for global
|
||||
* - "i" for ignoreCase
|
||||
* - "m" for multiline
|
||||
* - "u" for unicode
|
||||
* - "y" for sticky
|
||||
*
|
||||
* If no flags are set, the value is the empty string.
|
||||
*/
|
||||
flags: string;
|
||||
}
|
||||
|
||||
interface Math {
|
||||
/**
|
||||
* Returns the number of leading zero bits in the 32-bit binary representation of a number.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
clz32(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the result of 32-bit multiplication of two numbers.
|
||||
* @param x First number
|
||||
* @param y Second number
|
||||
*/
|
||||
imul(x: number, y: number): number;
|
||||
|
||||
/**
|
||||
* Returns the sign of the x, indicating whether x is positive, negative or zero.
|
||||
* @param x The numeric expression to test
|
||||
*/
|
||||
sign(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the base 10 logarithm of a number.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
log10(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the base 2 logarithm of a number.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
log2(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the natural logarithm of 1 + x.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
log1p(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the result of (e^x - 1) of x (e raised to the power of x, where e is the base of
|
||||
* the natural logarithms).
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
expm1(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the hyperbolic cosine of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
cosh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the hyperbolic sine of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
sinh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the hyperbolic tangent of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
tanh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the inverse hyperbolic cosine of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
acosh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the inverse hyperbolic sine of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
asinh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the inverse hyperbolic tangent of a number.
|
||||
* @param x A numeric expression that contains an angle measured in radians.
|
||||
*/
|
||||
atanh(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the square root of the sum of squares of its arguments.
|
||||
* @param values Values to compute the square root for.
|
||||
* If no arguments are passed, the result is +0.
|
||||
* If there is only one argument, the result is the absolute value.
|
||||
* If any argument is +Infinity or -Infinity, the result is +Infinity.
|
||||
* If any argument is NaN, the result is NaN.
|
||||
* If all arguments are either +0 or −0, the result is +0.
|
||||
*/
|
||||
hypot(...values: number[]): number;
|
||||
|
||||
/**
|
||||
* Returns the integral part of the a numeric expression, x, removing any fractional digits.
|
||||
* If x is already an integer, the result is x.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
trunc(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns the nearest single precision float representation of a number.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
fround(x: number): number;
|
||||
|
||||
/**
|
||||
* Returns an implementation-dependent approximation to the cube root of number.
|
||||
* @param x A numeric expression.
|
||||
*/
|
||||
cbrt(x: number): number;
|
||||
}
|
||||
|
||||
interface PromiseLike<T> {
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the completion of an asynchronous operation
|
||||
*/
|
||||
interface Promise<T> {
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
|
||||
|
||||
/**
|
||||
* Attaches a callback for only the rejection of the Promise.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of the callback.
|
||||
*/
|
||||
catch(onrejected?: (reason: any) => T | PromiseLike<T>): Promise<T>;
|
||||
catch(onrejected?: (reason: any) => void): Promise<T>;
|
||||
}
|
||||
|
||||
interface PromiseConstructor {
|
||||
/**
|
||||
* A reference to the prototype.
|
||||
*/
|
||||
prototype: Promise<any>;
|
||||
|
||||
/**
|
||||
* Creates a new Promise.
|
||||
* @param executor A callback used to initialize the promise. This callback is passed two arguments:
|
||||
* a resolve callback used resolve the promise with a value or the result of another promise,
|
||||
* and a reject callback used to reject the promise with a provided reason or error.
|
||||
*/
|
||||
new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a Promise that is resolved with an array of results when all of the provided Promises
|
||||
* resolve, or rejected when any Promise is rejected.
|
||||
* @param values An array of Promises.
|
||||
* @returns A new Promise.
|
||||
*/
|
||||
all<T>(values: IterableShim<T | PromiseLike<T>>): Promise<T[]>;
|
||||
|
||||
/**
|
||||
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
|
||||
* or rejected.
|
||||
* @param values An array of Promises.
|
||||
* @returns A new Promise.
|
||||
*/
|
||||
race<T>(values: IterableShim<T | PromiseLike<T>>): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a new rejected promise for the provided reason.
|
||||
* @param reason The reason the promise was rejected.
|
||||
* @returns A new rejected Promise.
|
||||
*/
|
||||
reject(reason: any): Promise<void>;
|
||||
|
||||
/**
|
||||
* Creates a new rejected promise for the provided reason.
|
||||
* @param reason The reason the promise was rejected.
|
||||
* @returns A new rejected Promise.
|
||||
*/
|
||||
reject<T>(reason: any): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a new resolved promise for the provided value.
|
||||
* @param value A promise.
|
||||
* @returns A promise whose internal state matches the provided promise.
|
||||
*/
|
||||
resolve<T>(value: T | PromiseLike<T>): Promise<T>;
|
||||
|
||||
/**
|
||||
* Creates a new resolved promise .
|
||||
* @returns A resolved promise.
|
||||
*/
|
||||
resolve(): Promise<void>;
|
||||
}
|
||||
|
||||
declare var Promise: PromiseConstructor;
|
||||
|
||||
interface Map<K, V> {
|
||||
clear(): void;
|
||||
delete(key: K): boolean;
|
||||
forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
|
||||
get(key: K): V;
|
||||
has(key: K): boolean;
|
||||
set(key: K, value?: V): Map<K, V>;
|
||||
size: number;
|
||||
entries(): IterableIteratorShim<[K, V]>;
|
||||
keys(): IterableIteratorShim<K>;
|
||||
values(): IterableIteratorShim<V>;
|
||||
}
|
||||
|
||||
interface MapConstructor {
|
||||
new <K, V>(): Map<K, V>;
|
||||
new <K, V>(iterable: IterableShim<[K, V]>): Map<K, V>;
|
||||
prototype: Map<any, any>;
|
||||
}
|
||||
|
||||
declare var Map: MapConstructor;
|
||||
|
||||
interface Set<T> {
|
||||
add(value: T): Set<T>;
|
||||
clear(): void;
|
||||
delete(value: T): boolean;
|
||||
forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
|
||||
has(value: T): boolean;
|
||||
size: number;
|
||||
entries(): IterableIteratorShim<[T, T]>;
|
||||
keys(): IterableIteratorShim<T>;
|
||||
values(): IterableIteratorShim<T>;
|
||||
}
|
||||
|
||||
interface SetConstructor {
|
||||
new <T>(): Set<T>;
|
||||
new <T>(iterable: IterableShim<T>): Set<T>;
|
||||
prototype: Set<any>;
|
||||
}
|
||||
|
||||
declare var Set: SetConstructor;
|
||||
|
||||
interface WeakMap<K, V> {
|
||||
delete(key: K): boolean;
|
||||
get(key: K): V;
|
||||
has(key: K): boolean;
|
||||
set(key: K, value?: V): WeakMap<K, V>;
|
||||
}
|
||||
|
||||
interface WeakMapConstructor {
|
||||
new <K, V>(): WeakMap<K, V>;
|
||||
new <K, V>(iterable: IterableShim<[K, V]>): WeakMap<K, V>;
|
||||
prototype: WeakMap<any, any>;
|
||||
}
|
||||
|
||||
declare var WeakMap: WeakMapConstructor;
|
||||
|
||||
interface WeakSet<T> {
|
||||
add(value: T): WeakSet<T>;
|
||||
delete(value: T): boolean;
|
||||
has(value: T): boolean;
|
||||
}
|
||||
|
||||
interface WeakSetConstructor {
|
||||
new <T>(): WeakSet<T>;
|
||||
new <T>(iterable: IterableShim<T>): WeakSet<T>;
|
||||
prototype: WeakSet<any>;
|
||||
}
|
||||
|
||||
declare var WeakSet: WeakSetConstructor;
|
||||
|
||||
declare namespace Reflect {
|
||||
function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
|
||||
function construct(target: Function, argumentsList: ArrayLike<any>): any;
|
||||
function defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
|
||||
function deleteProperty(target: any, propertyKey: PropertyKey): boolean;
|
||||
function enumerate(target: any): IterableIteratorShim<any>;
|
||||
function get(target: any, propertyKey: PropertyKey, receiver?: any): any;
|
||||
function getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
|
||||
function getPrototypeOf(target: any): any;
|
||||
function has(target: any, propertyKey: PropertyKey): boolean;
|
||||
function isExtensible(target: any): boolean;
|
||||
function ownKeys(target: any): Array<PropertyKey>;
|
||||
function preventExtensions(target: any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
|
||||
function setPrototypeOf(target: any, proto: any): boolean;
|
||||
}
|
||||
|
||||
declare module "es6-shim" {
|
||||
var String: StringConstructor;
|
||||
var Array: ArrayConstructor;
|
||||
var Number: NumberConstructor;
|
||||
var Math: Math;
|
||||
var Object: ObjectConstructor;
|
||||
var Map: MapConstructor;
|
||||
var Set: SetConstructor;
|
||||
var WeakMap: WeakMapConstructor;
|
||||
var WeakSet: WeakSetConstructor;
|
||||
var Promise: PromiseConstructor;
|
||||
namespace Reflect {
|
||||
function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
|
||||
function construct(target: Function, argumentsList: ArrayLike<any>): any;
|
||||
function defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
|
||||
function deleteProperty(target: any, propertyKey: PropertyKey): boolean;
|
||||
function enumerate(target: any): Iterator<any>;
|
||||
function get(target: any, propertyKey: PropertyKey, receiver?: any): any;
|
||||
function getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
|
||||
function getPrototypeOf(target: any): any;
|
||||
function has(target: any, propertyKey: PropertyKey): boolean;
|
||||
function isExtensible(target: any): boolean;
|
||||
function ownKeys(target: any): Array<PropertyKey>;
|
||||
function preventExtensions(target: any): boolean;
|
||||
function set(target: any, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
|
||||
function setPrototypeOf(target: any, proto: any): boolean;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user