Skip to content

Instantly share code, notes, and snippets.

Benjamin Charity benjamincharity

Block or report user

Report or block benjamincharity

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View strikethrough.js
const sheet = window.document.styleSheets[0];
const rule = '.task-list-item-checkbox:checked+.task-list-item-text{opacity:.5;text-decoration:line-through;}';
sheet.insertRule(rule, sheet.cssRules.length);
const listItems = document.querySelectorAll('.task-list-item');
Array.from(listItems).forEach(item => {
const nodes = Array.from(item.childNodes).filter(item => item instanceof Text || item.tagName === "CODE");
const checkbox = item.querySelectorAll('input')[0];
const originalText = => node.nodeValue || node.textContent).join('').trim();
View component.ts
public readonly headerCellResizes: Observable<TsHeaderCellResizeEvent> | Observable<{}> = defer(() => {
if (this.headerCells && this.headerCells.length) {
return merge( => cell.resized));
// If there are any subscribers before `ngAfterViewInit`, `headerCells` may be undefined.
// In that case, return a stream that we'll replace with the real one once everything is in place.
return this.ngZone.onStable
.pipe(take(1), switchMap(() => this.headerCellResizes));
View qeury.ts
public queryStates(query: string): State[] {
query = query.toLowerCase();
if (query) {
const letters = query.split('').map(l => `${l}.*`).join('');
const regex = new RegExp(letters, 'ig');
return this.states.filter(s => !!;
} else {
// if no query, return first 10 states
return STATES.slice(0, 10);
View index.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
View optionalTemplateExample.html
<ng-content *ngIf="!optionTemplate">
[ngTemplateOutletContext]="{$implicit: option}"
ngx-tools/src/jwt-token-managment/reducer.ts(33,7): error TS2536: Type 'keyof C' cannot be used to index type '{ [x: string]: string; }'.
ngx-tools/src/jwt-token-managment/utilities/token-extractor.mock.ts(34,10): error TS2416: Property 'extractJwtToken' in type 'TokenExtractorMock<CM>' is not assignable to the same property in base type 'TokenExtractor<ClaimMap>'.
Type '<T extends Object | HttpResponse<any>>({ tokenName, isDefaultToken }: ExtractTokenParams<CM>) => ...' is not assignable to type '<T extends Object | HttpResponse<any>>({ tokenName, resetAllOtherTokens, isDefaultToken }: Extrac...'.
Types of parameters '__0' and '__0' are incompatible.
Type 'ExtractTokenParams<ClaimMap>' is not assignable to type 'ExtractTokenParams<CM>'.
Types of property 'tokenName' are incompatible.
Type 'string | number' is not assignable to type 'keyof CM'.
Type 'string' is not assignable to type 'keyof CM'.
benjamincharity / custom-date-adapter.ts
Created Aug 28, 2018
Custom date adaptor for material
View custom-date-adapter.ts
import { NativeDateAdapter } from '@angular/material/core';
export const TS_DATE_FORMATS = {
parse: {
dateInput: {month: 'short', year: 'numeric', day: 'numeric'},
display: {
dateInput: 'input',
monthYearLabel: 'inputMonth',
View removeByKey.js
removeByKey(array, params) {
array.some(function(item, index) {
if (array[index][params.key] === params.value) {
array.splice(index, 1);
return true;
return false;
return array;
View mockStore.ts
import { Action, Store } from '@ngrx/store';
import { Subject } from 'rxjs/Subject';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
* Standard mockstore that can be used in unittests to mock a @ngrx/store
You can’t perform that action at this time.