Skip to content

Instantly share code, notes, and snippets.

View hoisel's full-sized avatar
🏠
Working from home

Hoisel hoisel

🏠
Working from home
  • https://cloud.name-coach.com/
  • Vitória-ES
  • 10:12 (UTC -03:00)
  • X @danielhoisel
View GitHub Profile
@Manduro
Manduro / keyboard-attach.directive.ts
Last active August 24, 2020 06:50
Ionic Keyboard Attach Directive
import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';
import { Keyboard } from '@ionic-native/keyboard';
import { Content, Platform } from 'ionic-angular';
import { Subscription } from 'rxjs/Subscription';
/**
* @name KeyboardAttachDirective
* @source https://gist.github.com/Manduro/bc121fd39f21558df2a952b39e907754
* @description
@g0t4
g0t4 / System.tap.js
Last active April 2, 2021 03:04
SystemJS / jspm course components that might need updates
var normalize = System.normalize;
System.normalize = function (name, parentName, parentAddress) {
console.log("normalize: " + JSON.stringify({
name: name,
parentName: parentName,
parentAddress: parentAddress
}));
return normalize.call(this, name, parentName, parentAddress);
};
@gaearon
gaearon / slim-redux.js
Last active August 25, 2026 18:55
Redux without the sanity checks in a single file. Don't use this, use normal Redux. :-)
function mapValues(obj, fn) {
return Object.keys(obj).reduce((result, key) => {
result[key] = fn(obj[key], key);
return result;
}, {});
}
function pick(obj, fn) {
return Object.keys(obj).reduce((result, key) => {
if (fn(obj[key])) {
@paulirish
paulirish / what-forces-layout.md
Last active September 25, 2026 05:33
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
@lgvo
lgvo / angularjs-i18n-with-jspm.js
Last active July 10, 2016 09:49
Adding angular i18n with JSPM
// Install angularjs that way (jspm install angularjs)
// For i18n files you can find from the npm register to install use: jspm install angular-i18n=npm:angular-i18n
//
// The following is more or less how you can import
import angular from 'angular';
import 'angular-i18n/pt-br'; // on pt-br you can use your locale
@Yimiprod
Yimiprod / difference.js
Last active May 28, 2026 08:17
Deep diff between two object, using lodash
/**
* This code is licensed under the terms of the MIT license
*
* Deep diff between two object, using lodash
* @param {Object} object Object compared
* @param {Object} base Object to compare with
* @return {Object} Return a new object who represent the diff
*/
function difference(object, base) {
function changes(object, base) {
@dcollien
dcollien / ImageTools.es6
Last active July 17, 2026 19:09
Resize Images in the Browser
let hasBlobConstructor = typeof(Blob) !== 'undefined' && (function () {
try {
return Boolean(new Blob());
} catch (e) {
return false;
}
}());
let hasArrayBufferViewSupport = hasBlobConstructor && typeof(Uint8Array) !== 'undefined' && (function () {
try {
@stevemao
stevemao / np.sh
Last active February 4, 2025 10:08 — forked from sindresorhus/np.sh
Publish node module
# npm publish with goodies
# prerequisites:
# `npm install -g trash conventional-recommended-bump conventional-changelog conventional-github-releaser conventional-commits-detector json`
# `np` with optional argument `patch`/`minor`/`major`/`<version>`
# defaults to conventional-recommended-bump
# and optional argument preset `angular`/ `jquery` ...
# defaults to conventional-commits-detector
np() {
travis status --no-interactive &&
trash node_modules &>/dev/null;
@johnpapa
johnpapa / shell.controller.spec.with.bard.js
Last active March 4, 2016 00:46
Basic Controller with and without bard.js
/* jshint -W117, -W030 */
describe('layout shell controller', function() {
var controller;
beforeEach(function() {
bard.appModule('app.layout');
bard.inject(this, '$controller', '$log', '$timeout');
controller = $controller('Shell');
});