New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

angular-media-events

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-media-events - npm Package Compare versions

Comparing version
0.5.0
to
1.0.1
+1
dist/media-events.js.map
{"version":3,"sources":["webpack:///webpack/bootstrap adf7e84f77c8e8a6c227","webpack:///./src/_module.js","webpack:///./src/eval-service.js","webpack:///./src/loadedmetadata.js","webpack:///./src/pause.js","webpack:///./src/play.js","webpack:///./src/progress.js"],"names":[],"mappings":"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","file":"media-events.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap adf7e84f77c8e8a6c227\n **/","'use strict';\n\nconst MODULE_NAME = 'media-events';\n\nimport EvalService from './eval-service';\nimport LoadedMetadata from './loadedmetadata';\nimport Progress from './progress';\nimport Play from './play';\nimport Pause from './pause';\n\nangular\n .module(MODULE_NAME, [])\n .service(EvalService.name, EvalService.main)\n .directive(LoadedMetadata.name, LoadedMetadata.main)\n .directive(Progress.name, Progress.main)\n .directive(Play.name, Play.main)\n .directive(Pause.name, Pause.main);\n\nmodule.exports = MODULE_NAME;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/_module.js\n **/","'use strict';\n\nconst EVAL_SERVICE_NAME = 'eval-service';\n\nclass EvalService {\n scopeEval(options = {}) {\n var scope = options.scope;\n var locals = {\n $event: options.$event\n };\n\n if(options.attrs) {\n locals.attrs = options.attrs;\n }\n\n scope.$eval(options.fn, locals);\n }\n}\n\nexport default {\n name: EVAL_SERVICE_NAME,\n main: EvalService\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/eval-service.js\n **/","'use strict';\n\nimport EvalService from './eval-service';\n\nconst LOADED_METADATA_DIRECTIVE_NAME = 'onLoadedMetadata';\n\nconst LoadedMetadataDirective = (evalService) => ({\n restrict: 'A',\n scope: true,\n link(scope, element, attrs) {\n element.on('loadedmetadata', function(event) {\n var locals = {\n width: this.videoWidth,\n height: this.videoHeight\n };\n\n evalService.scopeEval({\n scope: scope,\n fn: attrs[LOADED_METADATA_DIRECTIVE_NAME],\n $event: event,\n attrs: locals\n });\n });\n }\n});\n\nexport default {\n name: LOADED_METADATA_DIRECTIVE_NAME,\n main: [\n EvalService.name,\n LoadedMetadataDirective\n ]\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/loadedmetadata.js\n **/","'use strict';\n\nimport EvalService from './eval-service';\n\nconst PAUSE_DIRECTIVE_NAME = 'onPause';\n\nconst PauseDirective = (evalService) => ({\n restrict: 'A',\n scope: true,\n link(scope, element, attrs) {\n element.on('pause', (event) => {\n evalService.scopeEval({\n scope: scope,\n fn: attrs[PAUSE_DIRECTIVE_NAME],\n $event: event\n });\n });\n }\n});\n\nexport default {\n name: PAUSE_DIRECTIVE_NAME,\n main: [\n EvalService.name,\n PauseDirective\n ]\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/pause.js\n **/","'use strict';\n\nimport EvalService from './eval-service';\n\nconst PLAY_DIRECTIVE_NAME = 'onPlay';\n\nconst PlayDirective = (evalService) => ({\n restrict: 'A',\n scope: true,\n link(scope, element, attrs) {\n element.on('play', (event) => {\n evalService.scopeEval({\n scope: scope,\n fn: attrs[PLAY_DIRECTIVE_NAME],\n $event: event\n });\n });\n }\n});\n\nexport default {\n name: PLAY_DIRECTIVE_NAME,\n main: [\n EvalService.name,\n PlayDirective\n ]\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/play.js\n **/","'use strict';\n\nimport EvalService from './eval-service';\n\nconst PROGRESS_DIRECTIVE_NAME = 'onProgress';\n\nconst ProgressDirective = (evalService) => ({\n restrict: 'A',\n scope: true,\n link(scope, element, attrs) {\n element.on('progress', function(event) {\n var locals = {\n buffered: this.buffered\n };\n\n evalService.scopeEval({\n scope: scope,\n fn: attrs[PROGRESS_DIRECTIVE_NAME],\n $event: event,\n attrs: locals\n });\n });\n }\n});\n\nexport default {\n name: PROGRESS_DIRECTIVE_NAME,\n main: [\n EvalService.name,\n ProgressDirective\n ]\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/progress.js\n **/"],"sourceRoot":""}
+0
-0

@@ -0,0 +0,0 @@ #Contributing to Angular Media Events

+281
-135

@@ -1,147 +0,293 @@

/**
* angular-media-events - angular directives for media events
* @author Alex Vernacchia <alvernacchia@gmail.com>
* @version 0.5.0
* @repo https://github.com/vernak2539/angular-media-events
* @license MIT
* Created: Fri May 13 2016 13:29:40 GMT+0100 (GMT Summer Time)
*/
(function() {
'use strict';
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
angular
.module('media-events', [])
.service('eval-service', [
function() {
this.scopeEval = function(options) {
var scope;
'use strict';
var _evalService = __webpack_require__(1);
var _evalService2 = _interopRequireDefault(_evalService);
var _loadedmetadata = __webpack_require__(2);
var _loadedmetadata2 = _interopRequireDefault(_loadedmetadata);
var _progress = __webpack_require__(5);
var _progress2 = _interopRequireDefault(_progress);
var _play = __webpack_require__(4);
var _play2 = _interopRequireDefault(_play);
var _pause = __webpack_require__(3);
var _pause2 = _interopRequireDefault(_pause);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MODULE_NAME = 'media-events';
angular.module(MODULE_NAME, []).service(_evalService2.default.name, _evalService2.default.main).directive(_loadedmetadata2.default.name, _loadedmetadata2.default.main).directive(_progress2.default.name, _progress2.default.main).directive(_play2.default.name, _play2.default.main).directive(_pause2.default.name, _pause2.default.main);
module.exports = MODULE_NAME;
options = options || {};
scope = options.scope;
/***/ },
/* 1 */
/***/ function(module, exports) {
var locals = {
$event: options.$event
};
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var EVAL_SERVICE_NAME = 'eval-service';
var EvalService = function () {
function EvalService() {
_classCallCheck(this, EvalService);
}
_createClass(EvalService, [{
key: 'scopeEval',
value: function scopeEval() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var scope = options.scope;
var locals = {
$event: options.$event
};
if (options.attrs) {
locals.attrs = options.attrs;
}
scope.$eval(options.fn, locals);
}
}]);
return EvalService;
}();
exports.default = {
name: EVAL_SERVICE_NAME,
main: EvalService
};
if(options.attrs) {
locals.attrs = options.attrs;
}
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
scope.$eval(options.fn, locals);
};
}
]);
})();
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _evalService = __webpack_require__(1);
var _evalService2 = _interopRequireDefault(_evalService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var LOADED_METADATA_DIRECTIVE_NAME = 'onLoadedMetadata';
var LoadedMetadataDirective = function LoadedMetadataDirective(evalService) {
return {
restrict: 'A',
scope: true,
link: function link(scope, element, attrs) {
element.on('loadedmetadata', function (event) {
var locals = {
width: this.videoWidth,
height: this.videoHeight
};
evalService.scopeEval({
scope: scope,
fn: attrs[LOADED_METADATA_DIRECTIVE_NAME],
$event: event,
attrs: locals
});
});
}
};
};
exports.default = {
name: LOADED_METADATA_DIRECTIVE_NAME,
main: [_evalService2.default.name, LoadedMetadataDirective]
};
(function() {
'use strict';
/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
angular
.module('media-events')
.directive('loadedMetadata', [
'eval-service',
function(evalService) {
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
element.on('loadedmetadata', function(event) {
var locals = {
width: this.videoWidth,
height: this.videoHeight
};
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _evalService = __webpack_require__(1);
var _evalService2 = _interopRequireDefault(_evalService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PAUSE_DIRECTIVE_NAME = 'onPause';
var PauseDirective = function PauseDirective(evalService) {
return {
restrict: 'A',
scope: true,
link: function link(scope, element, attrs) {
element.on('pause', function (event) {
evalService.scopeEval({
scope: scope,
fn: attrs[PAUSE_DIRECTIVE_NAME],
$event: event
});
});
}
};
};
exports.default = {
name: PAUSE_DIRECTIVE_NAME,
main: [_evalService2.default.name, PauseDirective]
};
evalService.scopeEval({
scope: scope,
fn: attrs.loadedMetadata,
$event: event,
attrs: locals
});
});
}
};
}
]);
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
})();
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _evalService = __webpack_require__(1);
var _evalService2 = _interopRequireDefault(_evalService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PLAY_DIRECTIVE_NAME = 'onPlay';
var PlayDirective = function PlayDirective(evalService) {
return {
restrict: 'A',
scope: true,
link: function link(scope, element, attrs) {
element.on('play', function (event) {
evalService.scopeEval({
scope: scope,
fn: attrs[PLAY_DIRECTIVE_NAME],
$event: event
});
});
}
};
};
exports.default = {
name: PLAY_DIRECTIVE_NAME,
main: [_evalService2.default.name, PlayDirective]
};
(function() {
'use strict';
/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
angular
.module('media-events')
.directive('onPause', [
'eval-service',
function(evalService) {
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
element.on('pause', function(event) {
evalService.scopeEval({
scope: scope,
fn: attrs.onPause,
$event: event
});
});
}
};
}
]);
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _evalService = __webpack_require__(1);
var _evalService2 = _interopRequireDefault(_evalService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PROGRESS_DIRECTIVE_NAME = 'onProgress';
var ProgressDirective = function ProgressDirective(evalService) {
return {
restrict: 'A',
scope: true,
link: function link(scope, element, attrs) {
element.on('progress', function (event) {
var locals = {
buffered: this.buffered
};
evalService.scopeEval({
scope: scope,
fn: attrs[PROGRESS_DIRECTIVE_NAME],
$event: event,
attrs: locals
});
});
}
};
};
exports.default = {
name: PROGRESS_DIRECTIVE_NAME,
main: [_evalService2.default.name, ProgressDirective]
};
})();
(function() {
'use strict';
angular
.module('media-events')
.directive('onPlay', [
'eval-service',
function(evalService) {
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
element.on('play', function(event) {
evalService.scopeEval({
scope: scope,
fn: attrs.onPlay,
$event: event
});
});
}
};
}
]);
})();
(function() {
'use strict';
angular
.module('media-events')
.directive('progress', [
'eval-service',
function(evalService) {
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
element.on('progress', function(event) {
var locals = {
buffered: this.buffered
};
evalService.scopeEval({
scope: scope,
fn: attrs.progress,
$event: event,
attrs: locals
});
});
}
};
}
]);
})();
/***/ }
/******/ ]);
//# sourceMappingURL=media-events.js.map
{
"name": "angular-media-events",
"version": "0.5.0",
"version": "1.0.1",
"description": "angular directives for media events",
"main": "./dist/media-events.js",
"scripts": {
"test": "gulp jshint && karma start ./karma.conf-ci.js"
"test": "node ./node_modules/gulp/bin/gulp tests --ci",
"dev": "node ./node_modules/webpack/bin/webpack --config ./gulp/config/webpack.config.js --watch"
},

@@ -26,11 +27,10 @@ "repository": {

"devDependencies": {
"babel-core": "^6.8.0",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0",
"del": "^2.2.0",
"gulp": "^3.9.0",
"gulp-concat": "^2.6.0",
"gulp-header": "^1.2.2",
"gulp-jshint": "^1.11.2",
"gulp-order": "^1.1.1",
"gulp-rename": "^1.2.2",
"gulp-rimraf": "^0.1.1",
"gulp-sourcemaps": "^1.5.2",
"gulp-uglify": "^1.2.0",
"gulp-workflow": "^1.1.3",
"jasmine-core": "^2.4.1",
"jshint-stylish": "^2.0.1",

@@ -41,4 +41,5 @@ "karma": "^0.12.37",

"karma-jasmine": "^0.3.6",
"karma-sauce-launcher": "^0.2.14"
"karma-sauce-launcher": "^0.2.14",
"webpack": "^1.13.0"
}
}
/**
* angular-media-events - angular directives for media events
* @author Alex Vernacchia <alvernacchia@gmail.com>
* @version 0.5.0
* @repo https://github.com/vernak2539/angular-media-events
* @license MIT
* Created: Fri May 13 2016 13:29:40 GMT+0100 (GMT Summer Time)
*/
!function(){"use strict";angular.module("media-events",[]).service("eval-service",[function(){this.scopeEval=function(e){var t;e=e||{},t=e.scope;var n={$event:e.$event};e.attrs&&(n.attrs=e.attrs),t.$eval(e.fn,n)}}])}(),function(){"use strict";angular.module("media-events").directive("loadedMetadata",["eval-service",function(e){return{restrict:"A",scope:!0,link:function(t,n,i){n.on("loadedmetadata",function(n){var s={width:this.videoWidth,height:this.videoHeight};e.scopeEval({scope:t,fn:i.loadedMetadata,$event:n,attrs:s})})}}}])}(),function(){"use strict";angular.module("media-events").directive("onPause",["eval-service",function(e){return{restrict:"A",scope:!0,link:function(t,n,i){n.on("pause",function(n){e.scopeEval({scope:t,fn:i.onPause,$event:n})})}}}])}(),function(){"use strict";angular.module("media-events").directive("onPlay",["eval-service",function(e){return{restrict:"A",scope:!0,link:function(t,n,i){n.on("play",function(n){e.scopeEval({scope:t,fn:i.onPlay,$event:n})})}}}])}(),function(){"use strict";angular.module("media-events").directive("progress",["eval-service",function(e){return{restrict:"A",scope:!0,link:function(t,n,i){n.on("progress",function(n){var s={buffered:this.buffered};e.scopeEval({scope:t,fn:i.progress,$event:n,attrs:s})})}}}])}();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9tb2R1bGUuanMiLCJsb2FkZWRtZXRhZGF0YS5qcyIsInBhdXNlLmpzIiwicGxheS5qcyIsInByb2dyZXNzLmpzIl0sIm5hbWVzIjpbImFuZ3VsYXIiLCJtb2R1bGUiLCJzZXJ2aWNlIiwidGhpcyIsInNjb3BlRXZhbCIsIm9wdGlvbnMiLCJzY29wZSIsImxvY2FscyIsIiRldmVudCIsImF0dHJzIiwiJGV2YWwiLCJmbiIsImRpcmVjdGl2ZSIsImV2YWxTZXJ2aWNlIiwicmVzdHJpY3QiLCJsaW5rIiwiZWxlbWVudCIsIm9uIiwiZXZlbnQiLCJ3aWR0aCIsInZpZGVvV2lkdGgiLCJoZWlnaHQiLCJ2aWRlb0hlaWdodCIsImxvYWRlZE1ldGFkYXRhIiwib25QYXVzZSIsIm9uUGxheSIsImJ1ZmZlcmVkIiwicHJvZ3Jlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0NBQUEsV0FDQSxZQUVBQSxTQUNBQyxPQUFBLG1CQUNBQyxRQUFBLGdCQUNBLFdBQ0FDLEtBQUFDLFVBQUEsU0FBQUMsR0FDQSxHQUFBQyxFQUVBRCxHQUFBQSxNQUNBQyxFQUFBRCxFQUFBQyxLQUVBLElBQUFDLElBQ0FDLE9BQUFILEVBQUFHLE9BR0FILEdBQUFJLFFBQ0FGLEVBQUFFLE1BQUFKLEVBQUFJLE9BR0FILEVBQUFJLE1BQUFMLEVBQUFNLEdBQUFKLFVDckJBLFdBQ0EsWUFFQVAsU0FDQUMsT0FBQSxnQkFDQVcsVUFBQSxrQkFDQSxlQUNBLFNBQUFDLEdBQ0EsT0FDQUMsU0FBQSxJQUNBUixPQUFBLEVBQ0FTLEtBQUEsU0FBQVQsRUFBQVUsRUFBQVAsR0FDQU8sRUFBQUMsR0FBQSxpQkFBQSxTQUFBQyxHQUNBLEdBQUFYLElBQ0FZLE1BQUFoQixLQUFBaUIsV0FDQUMsT0FBQWxCLEtBQUFtQixZQUdBVCxHQUFBVCxXQUNBRSxNQUFBQSxFQUNBSyxHQUFBRixFQUFBYyxlQUNBZixPQUFBVSxFQUNBVCxNQUFBRixjQ3RCQSxXQUNBLFlBRUFQLFNBQ0FDLE9BQUEsZ0JBQ0FXLFVBQUEsV0FDQSxlQUNBLFNBQUFDLEdBQ0EsT0FDQUMsU0FBQSxJQUNBUixPQUFBLEVBQ0FTLEtBQUEsU0FBQVQsRUFBQVUsRUFBQVAsR0FDQU8sRUFBQUMsR0FBQSxRQUFBLFNBQUFDLEdBQ0FMLEVBQUFULFdBQ0FFLE1BQUFBLEVBQ0FLLEdBQUFGLEVBQUFlLFFBQ0FoQixPQUFBVSxjQ2hCQSxXQUNBLFlBRUFsQixTQUNBQyxPQUFBLGdCQUNBVyxVQUFBLFVBQ0EsZUFDQSxTQUFBQyxHQUNBLE9BQ0FDLFNBQUEsSUFDQVIsT0FBQSxFQUNBUyxLQUFBLFNBQUFULEVBQUFVLEVBQUFQLEdBQ0FPLEVBQUFDLEdBQUEsT0FBQSxTQUFBQyxHQUNBTCxFQUFBVCxXQUNBRSxNQUFBQSxFQUNBSyxHQUFBRixFQUFBZ0IsT0FDQWpCLE9BQUFVLGNDaEJBLFdBQ0EsWUFFQWxCLFNBQ0FDLE9BQUEsZ0JBQ0FXLFVBQUEsWUFDQSxlQUNBLFNBQUFDLEdBQ0EsT0FDQUMsU0FBQSxJQUNBUixPQUFBLEVBQ0FTLEtBQUEsU0FBQVQsRUFBQVUsRUFBQVAsR0FDQU8sRUFBQUMsR0FBQSxXQUFBLFNBQUFDLEdBQ0EsR0FBQVgsSUFDQW1CLFNBQUF2QixLQUFBdUIsU0FHQWIsR0FBQVQsV0FDQUUsTUFBQUEsRUFDQUssR0FBQUYsRUFBQWtCLFNBQ0FuQixPQUFBVSxFQUNBVCxNQUFBRiIsImZpbGUiOiJtZWRpYS1ldmVudHMubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgYW5ndWxhclxyXG4gICAgLm1vZHVsZSgnbWVkaWEtZXZlbnRzJywgW10pXHJcbiAgICAuc2VydmljZSgnZXZhbC1zZXJ2aWNlJywgW1xyXG4gICAgICBmdW5jdGlvbigpIHtcclxuICAgICAgICB0aGlzLnNjb3BlRXZhbCA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcclxuICAgICAgICAgIHZhciBzY29wZTtcclxuXHJcbiAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgICAgICAgIHNjb3BlICAgPSBvcHRpb25zLnNjb3BlO1xyXG5cclxuICAgICAgICAgIHZhciBsb2NhbHMgPSB7XHJcbiAgICAgICAgICAgICRldmVudDogb3B0aW9ucy4kZXZlbnRcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgaWYob3B0aW9ucy5hdHRycykge1xyXG4gICAgICAgICAgICBsb2NhbHMuYXR0cnMgPSBvcHRpb25zLmF0dHJzO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNjb3BlLiRldmFsKG9wdGlvbnMuZm4sIGxvY2Fscyk7XHJcbiAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIF0pO1xyXG59KSgpO1xyXG4iLCIoZnVuY3Rpb24oKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICBhbmd1bGFyXHJcbiAgICAubW9kdWxlKCdtZWRpYS1ldmVudHMnKVxyXG4gICAgLmRpcmVjdGl2ZSgnbG9hZGVkTWV0YWRhdGEnLCBbXHJcbiAgICAgICdldmFsLXNlcnZpY2UnLFxyXG4gICAgICBmdW5jdGlvbihldmFsU2VydmljZSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICByZXN0cmljdDogJ0EnLFxyXG4gICAgICAgICAgc2NvcGU6IHRydWUsXHJcbiAgICAgICAgICBsaW5rOiBmdW5jdGlvbihzY29wZSwgZWxlbWVudCwgYXR0cnMpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5vbignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICAgIHZhciBsb2NhbHMgPSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy52aWRlb1dpZHRoLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnZpZGVvSGVpZ2h0XHJcbiAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgZXZhbFNlcnZpY2Uuc2NvcGVFdmFsKHtcclxuICAgICAgICAgICAgICAgIHNjb3BlOiBzY29wZSxcclxuICAgICAgICAgICAgICAgIGZuOiBhdHRycy5sb2FkZWRNZXRhZGF0YSxcclxuICAgICAgICAgICAgICAgICRldmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBhdHRyczogbG9jYWxzXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIF0pO1xyXG5cclxufSkoKTtcclxuIiwiKGZ1bmN0aW9uKCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgYW5ndWxhclxyXG4gICAgLm1vZHVsZSgnbWVkaWEtZXZlbnRzJylcclxuICAgIC5kaXJlY3RpdmUoJ29uUGF1c2UnLCBbXHJcbiAgICAgICdldmFsLXNlcnZpY2UnLFxyXG4gICAgICBmdW5jdGlvbihldmFsU2VydmljZSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICByZXN0cmljdDogJ0EnLFxyXG4gICAgICAgICAgc2NvcGU6IHRydWUsXHJcbiAgICAgICAgICBsaW5rOiBmdW5jdGlvbihzY29wZSwgZWxlbWVudCwgYXR0cnMpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5vbigncGF1c2UnLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICAgIGV2YWxTZXJ2aWNlLnNjb3BlRXZhbCh7XHJcbiAgICAgICAgICAgICAgICBzY29wZTogc2NvcGUsXHJcbiAgICAgICAgICAgICAgICBmbjogYXR0cnMub25QYXVzZSxcclxuICAgICAgICAgICAgICAgICRldmVudDogZXZlbnRcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgXSk7XHJcblxyXG59KSgpO1xyXG4iLCIoZnVuY3Rpb24oKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICBhbmd1bGFyXHJcbiAgICAubW9kdWxlKCdtZWRpYS1ldmVudHMnKVxyXG4gICAgLmRpcmVjdGl2ZSgnb25QbGF5JywgW1xyXG4gICAgICAnZXZhbC1zZXJ2aWNlJyxcclxuICAgICAgZnVuY3Rpb24oZXZhbFNlcnZpY2UpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVzdHJpY3Q6ICdBJyxcclxuICAgICAgICAgIHNjb3BlOiB0cnVlLFxyXG4gICAgICAgICAgbGluazogZnVuY3Rpb24oc2NvcGUsIGVsZW1lbnQsIGF0dHJzKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQub24oJ3BsYXknLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICAgIGV2YWxTZXJ2aWNlLnNjb3BlRXZhbCh7XHJcbiAgICAgICAgICAgICAgICBzY29wZTogc2NvcGUsXHJcbiAgICAgICAgICAgICAgICBmbjogYXR0cnMub25QbGF5LFxyXG4gICAgICAgICAgICAgICAgJGV2ZW50OiBldmVudFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICBdKTtcclxufSkoKTtcclxuIiwiKGZ1bmN0aW9uKCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgYW5ndWxhclxyXG4gICAgLm1vZHVsZSgnbWVkaWEtZXZlbnRzJylcclxuICAgIC5kaXJlY3RpdmUoJ3Byb2dyZXNzJywgW1xyXG4gICAgICAnZXZhbC1zZXJ2aWNlJyxcclxuICAgICAgZnVuY3Rpb24oZXZhbFNlcnZpY2UpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVzdHJpY3Q6ICdBJyxcclxuICAgICAgICAgIHNjb3BlOiB0cnVlLFxyXG4gICAgICAgICAgbGluazogZnVuY3Rpb24oc2NvcGUsIGVsZW1lbnQsIGF0dHJzKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQub24oJ3Byb2dyZXNzJywgZnVuY3Rpb24oZXZlbnQpIHtcclxuICAgICAgICAgICAgICB2YXIgbG9jYWxzID0ge1xyXG4gICAgICAgICAgICAgICAgYnVmZmVyZWQ6IHRoaXMuYnVmZmVyZWRcclxuICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICBldmFsU2VydmljZS5zY29wZUV2YWwoe1xyXG4gICAgICAgICAgICAgICAgc2NvcGU6IHNjb3BlLFxyXG4gICAgICAgICAgICAgICAgZm46IGF0dHJzLnByb2dyZXNzLFxyXG4gICAgICAgICAgICAgICAgJGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICAgIGF0dHJzOiBsb2NhbHNcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgXSk7XHJcbn0pKCk7XHJcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
# Angular Media Events [![Build Status](https://travis-ci.org/vernak2539/angular-media-events.svg?branch=master)](https://travis-ci.org/vernak2539/angular-media-events)
This library should introduce angular directives that respond to [events on media objects][1].
[![Sauce Test Status](https://saucelabs.com/browser-matrix/alvernacchia.svg)](https://saucelabs.com/u/alvernacchia)
*Please note, the SauceLabs badge will show results for all tests run, not just master. If the build status is "passing" on the master branch, you can be sure that all these browser versions are passing.*
#### Supported Events
This list should grow as time goes on.
* [loadedmetadata][2] ([example][3])
* [progress][6] ([example][5])
* [play][9] ([example][10])
* [pause][7] ([example][8])
## Setup
### Installing
#### Bower
```
bower install angular-media-events --save
```
#### NPM
```
npm install angular-media-events --save
```
### Including
```js
<script src="/bower_components/angular-media-events/dist/media-events.js"></script>
// or
import 'angular-media-events';
```
### Using in Angular
```js
angular.module('test', ['media-events']);
```
## Events
### loadedmetadata
* **available params** (in template):
* anything in the scope
* `$event` (jqlite/jQuery Event object)
* `attrs`
* `width`
* `height`
* **Note:** some videos do not return these attributes. I believe this is due to how it is encoded/what codec is used
```html
<video ng-src="..." loaded-metadata="someFunction($event, attrs)" />
```
### progress
* **available params** (in template):
* anything in the scope
* `$event` (jqlite/jQuery Event object)
* `attrs`
* `buffered`
```html
<video ng-src="..." progress="someFunction($event, attrs)" />
```
### play (on-play)
* **available params** (in template):
* anything in the scope
* `$event` (jqlite/jQuery Event object)
```html
<video ng-src="..." on-play="someFunction($event)" />
```
### pause (on-pause)
* **available params** (in template):
* anything in the scope
* `$event` (jqlite/jQuery Event object)
```html
<video ng-src="..." on-pause="someFunction($event)" />
```
## Contributing
Please feel free to contribute. Checkout [the guidelines][4]. I'm pretty responsive, if I say so myself, so hit me up.
[4]: https://github.com/vernak2539/angular-media-events/blob/master/CONTRIBUTING.md
[1]: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events
[3]: #loadedmetadata
[5]: #progress
[2]: https://developer.mozilla.org/en-US/docs/Web/Events/loadedmetadata
[6]: https://developer.mozilla.org/en-US/docs/Web/Events/progress
[7]: https://developer.mozilla.org/en-US/docs/Web/Events/pause
[8]: #pause-on-pause
[9]: https://developer.mozilla.org/en-US/docs/Web/Events/play
[10]: #play-on-play