Skip to content

Instantly share code, notes, and snippets.

@qdouble
qdouble / window.service.ts
Created September 8, 2016 12:10
Window service
import { OpaqueToken } from '@angular/core'
var win = typeof window !== 'undefined' && window || <any>{};
export { win as window };
function CONST_EXPR(expr) {
return expr;
}
function _window(): any {
@qdouble
qdouble / webpack.config.ts
Last active February 12, 2018 20:19
Webpack 2 config for Angular2 with AOT and Production settings
/* tslint:disable: variable-name max-line-length */
import 'ts-helpers';
const {
HotModuleReplacementPlugin,
DefinePlugin,
ProgressPlugin,
NoErrorsPlugin,
optimize: {
CommonsChunkPlugin
@qdouble
qdouble / combine-sort.ts
Last active September 1, 2016 11:24
Sorting observable with combine latest and sort function
const sortOther = function (a, b, sortBy, reverse) {
let nameA = a[sortBy];
let nameB = b[sortBy];
if (reverse) {
nameA = b[sortBy];
nameB = a[sortBy];
}
if (nameA < nameB) {
return -1;
}
@qdouble
qdouble / min-max.ts
Created August 26, 2016 11:07
Min-max validator
import { AbstractControl } from '@angular/forms';
import { ValidatorFn } from '@angular/forms';
export function minMax(min: number, max: number): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } => {
return control.value < min || control.value > max ?
{ 'invalidNumber': true } :
<any>null;
};
}
@qdouble
qdouble / text-input.html
Last active August 25, 2016 15:17
text-input
<md-input
align="start"
[dividerColor]="dynamicControl.valid || (!dynamicControl.valid && dynamicControl.errors?.required) ? 'primary' : 'warn'"
floatingPlaceholder="true"
[placeholder]="(dynamicControl.errors?.required && !hideRequired) ? label + ' (required)' : label "
[formControl]="dynamicControl"
[hintLabel]="help">
</md-input>
<button *ngIf="submit" type="submit" [disabled]="!form.valid">{{submit}}</button>
@qdouble
qdouble / home.module.ts
Last active August 18, 2016 08:38
Routing to Module Components from Parent
@NgModule({
imports: [
CommonModule
],
declerations: [HomeComponent],
exports: [HomeComponent]
})
export class HomeModule {}
@qdouble
qdouble / routes.ts
Created August 6, 2016 17:57
Route Config
import { RouterConfig } from '@angular/router';
import {
AffiliatesRoutes,
ConfigRoutes,
CreditsRoutes,
Dashboard,
OffersRoutes,
PrizesRoutes,
SitesRoutes,
@qdouble
qdouble / app.module.ts
Last active August 6, 2016 17:55
ngModules config
const MATERIAL_DESIGN_DIRECTIVES = [
MdButton,
MdInput,
];
@NgModule({
imports: [
BrowserModule,
ReactiveFormsModule,
FormsModule,
@qdouble
qdouble / Username Validation
Created July 13, 2016 02:42
Username validator
import { FormControl } from '@angular/forms';
import { AsyncValidatorFn, ValidatorFn } from '@angular/forms/src/directives/validators';
import { Control } from '@angular/common';
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { ReplaySubject } from 'rxjs/ReplaySubject';
import { API_USER_URL } from '../services/constants';
@Injectable()
@qdouble
qdouble / input-field.ts
Last active February 3, 2016 04:32
Input TS
import {
Component,
ChangeDetectionStrategy,
ChangeDetectorRef,
Input
} from 'angular2/core';
import {ROUTER_DIRECTIVES} from 'angular2/router';
import {APPLICATION_VALIDATORS} from './application-validators';
import {FocusOn} from './focus-on.directive.ts';
import {Control} from 'angular2/common';