(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
| Version 2, December 2004 | |
| Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE> | |
| Everyone is permitted to copy and distribute verbatim or modified | |
| copies of this license document, and changing it is allowed as long | |
| as the name is changed. | |
| DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |
| function Gauge(placeholderName, configuration) | |
| { | |
| this.placeholderName = placeholderName; | |
| var self = this; // for internal d3 functions | |
| this.configure = function(configuration) | |
| { | |
| this.config = configuration; | |
| app.directive('ngFocus', ['$parse', function($parse) { | |
| return function(scope, element, attr) { | |
| var fn = $parse(attr['ngFocus']); | |
| element.bind('focus', function(event) { | |
| scope.$apply(function() { | |
| fn(scope, {$event:event}); | |
| }); | |
| }); | |
| } | |
| }]); |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
Native HTML controls are a challenge to style. You can style any element in the web platform that uses Shadow DOM with a pseudo element ::pseudo-element or the /deep/ path selector.
video::webkit-media-controls-timeline {
background-color: lime;
}
video /deep/ input[type=range] {| module App { | |
| "use strict"; | |
| //Method name should be exactly "response" - http://docs.angularjs.org/api/ng/service/$http | |
| export interface IInterceptor { | |
| request: Function; | |
| requestError: Function; | |
| response: Function; | |
| responseError: Function; | |
| } |
| /** | |
| * ================== angular-ios9-uiwebview.patch.js v1.1.1 ================== | |
| * | |
| * This patch works around iOS9 UIWebView regression that causes infinite digest | |
| * errors in Angular. | |
| * | |
| * The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular | |
| * have the workaround baked in. | |
| * | |
| * To apply this patch load/bundle this file with your application and add a |
| (function() { | |
| let canvas = document.querySelector('canvas'); | |
| // Optional frames per second argument. | |
| let stream = canvas.captureStream(25); | |
| var options = {mimeType: 'video/webm; codecs=vp9'}; | |
| let recorder = new MediaRecorder(stream, options); | |
| let blobs = []; | |
| function download(blob) { | |
| var url = window.URL.createObjectURL(blob); |
| /* tslint:disable */ | |
| const program = | |
| ` | |
| module "login" | |
| go to "app/login" | |
| fill "[email protected]" in "#username" | |
| fill "foobar" in "#password" | |
| click "#login" |
| const pixels = ['r','g','b','a','r','g','b','a','r','g','b','a']; | |
| const propMap = ['r', 'g', 'b', 'a']; | |
| const rgbas = pixels.reduce((acc, curr, i) => { | |
| const mod = i%4; | |
| switch (mod) { | |
| case 0: | |
| return [...acc, {r: curr}]; | |
| default: |