angular-media-events
Advanced tools
+123
| # Angular Media Events [](https://travis-ci.org/vernak2539/angular-media-events) | ||
| This library should introduce angular directives that respond to [events on media objects][1]. | ||
| [](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]) | ||
| * [ended][11] ([example][12]) | ||
| ## 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 angularMediaEvents from 'angular-media-events'; | ||
| ``` | ||
| ### Using in Angular | ||
| ```js | ||
| angular.module('myApp', ['media-events']); | ||
| // or | ||
| angular.module('myApp', [angularMediaEvents]); | ||
| ``` | ||
| ## 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="..." on-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="..." on-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)" /> | ||
| ``` | ||
| ### ended (on-ended) | ||
| * **available params** (in template): | ||
| * anything in the scope | ||
| * `$event` (jqlite/jQuery Event object) | ||
| ```html | ||
| <video ng-src="..." on-ended="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 | ||
| [11]: https://developer.mozilla.org/en-US/docs/Web/Events/ended | ||
| [12]: #ended-on-ended |
+65
-10
@@ -1,2 +0,12 @@ | ||
| /******/ (function(modules) { // webpackBootstrap | ||
| (function webpackUniversalModuleDefinition(root, factory) { | ||
| if(typeof exports === 'object' && typeof module === 'object') | ||
| module.exports = factory(); | ||
| else if(typeof define === 'function' && define.amd) | ||
| define([], factory); | ||
| else { | ||
| var a = factory(); | ||
| for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; | ||
| } | ||
| })(this, function() { | ||
| return /******/ (function(modules) { // webpackBootstrap | ||
| /******/ // The module cache | ||
@@ -53,15 +63,19 @@ /******/ var installedModules = {}; | ||
| var _loadedmetadata = __webpack_require__(2); | ||
| var _loadedmetadata = __webpack_require__(3); | ||
| var _loadedmetadata2 = _interopRequireDefault(_loadedmetadata); | ||
| var _progress = __webpack_require__(5); | ||
| var _progress = __webpack_require__(6); | ||
| var _progress2 = _interopRequireDefault(_progress); | ||
| var _play = __webpack_require__(4); | ||
| var _ended = __webpack_require__(2); | ||
| var _ended2 = _interopRequireDefault(_ended); | ||
| var _play = __webpack_require__(5); | ||
| var _play2 = _interopRequireDefault(_play); | ||
| var _pause = __webpack_require__(3); | ||
| var _pause = __webpack_require__(4); | ||
@@ -74,3 +88,3 @@ var _pause2 = _interopRequireDefault(_pause); | ||
| 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); | ||
| 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(_ended2.default.name, _ended2.default.main).directive(_play2.default.name, _play2.default.main).directive(_pause2.default.name, _pause2.default.main); | ||
@@ -142,2 +156,41 @@ module.exports = MODULE_NAME; | ||
| var ENDED_DIRECTIVE_NAME = 'onEnded'; | ||
| var EndedDirective = function EndedDirective(evalService) { | ||
| return { | ||
| restrict: 'A', | ||
| scope: true, | ||
| link: function link(scope, element, attrs) { | ||
| element.on('ended', function (event) { | ||
| evalService.scopeEval({ | ||
| scope: scope, | ||
| fn: attrs[ENDED_DIRECTIVE_NAME], | ||
| $event: event | ||
| }); | ||
| }); | ||
| } | ||
| }; | ||
| }; | ||
| exports.default = { | ||
| name: ENDED_DIRECTIVE_NAME, | ||
| main: [_evalService2.default.name, EndedDirective] | ||
| }; | ||
| /***/ }, | ||
| /* 3 */ | ||
| /***/ 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 LOADED_METADATA_DIRECTIVE_NAME = 'onLoadedMetadata'; | ||
@@ -173,3 +226,3 @@ | ||
| /***/ }, | ||
| /* 3 */ | ||
| /* 4 */ | ||
| /***/ function(module, exports, __webpack_require__) { | ||
@@ -213,3 +266,3 @@ | ||
| /***/ }, | ||
| /* 4 */ | ||
| /* 5 */ | ||
| /***/ function(module, exports, __webpack_require__) { | ||
@@ -253,3 +306,3 @@ | ||
| /***/ }, | ||
| /* 5 */ | ||
| /* 6 */ | ||
| /***/ function(module, exports, __webpack_require__) { | ||
@@ -298,3 +351,5 @@ | ||
| /***/ } | ||
| /******/ ]); | ||
| /******/ ]) | ||
| }); | ||
| ; | ||
| //# sourceMappingURL=media-events.js.map |
@@ -1,1 +0,1 @@ | ||
| {"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":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;;AAIA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AANA,KAAM,cAAc,cAApB;;AAQA,SACK,MADL,CACY,WADZ,EACyB,EADzB,EAEK,OAFL,CAEa,sBAAY,IAFzB,EAE+B,sBAAY,IAF3C,EAGK,SAHL,CAGe,yBAAe,IAH9B,EAGoC,yBAAe,IAHnD,EAIK,SAJL,CAIe,mBAAS,IAJxB,EAI8B,mBAAS,IAJvC,EAKK,SALL,CAKe,eAAK,IALpB,EAK0B,eAAK,IAL/B,EAMK,SANL,CAMe,gBAAM,IANrB,EAM2B,gBAAM,IANjC;;AAQA,QAAO,OAAP,GAAiB,WAAjB,C;;;;;;AClBA;;;;;;;;;;AAEA,KAAM,oBAAoB,cAA1B;;KAEM,W;;;;;;;qCACsB;AAAA,iBAAd,OAAc,yDAAJ,EAAI;;AACpB,iBAAI,QAAQ,QAAQ,KAApB;AACA,iBAAI,SAAS;AACT,yBAAQ,QAAQ;AADP,cAAb;;AAIA,iBAAG,QAAQ,KAAX,EAAkB;AACd,wBAAO,KAAP,GAAe,QAAQ,KAAvB;AACH;;AAED,mBAAM,KAAN,CAAY,QAAQ,EAApB,EAAwB,MAAxB;AACH;;;;;;mBAGU;AACX,WAAM,iBADK;AAEX,WAAM;AAFK,E;;;;;;ACnBf;;;;;;AAEA;;;;;;AAEA,KAAM,iCAAiC,kBAAvC;;AAEA,KAAM,0BAA0B,SAA1B,uBAA0B,CAAC,WAAD;AAAA,YAAkB;AAC9C,mBAAU,GADoC;AAE9C,gBAAO,IAFuC;AAG9C,aAH8C,gBAGzC,KAHyC,EAGlC,OAHkC,EAGzB,KAHyB,EAGlB;AACxB,qBAAQ,EAAR,CAAW,gBAAX,EAA6B,UAAS,KAAT,EAAgB;AACzC,qBAAI,SAAS;AACT,4BAAO,KAAK,UADH;AAET,6BAAQ,KAAK;AAFJ,kBAAb;;AAKA,6BAAY,SAAZ,CAAsB;AAClB,4BAAO,KADW;AAElB,yBAAI,MAAM,8BAAN,CAFc;AAGlB,6BAAQ,KAHU;AAIlB,4BAAO;AAJW,kBAAtB;AAMH,cAZD;AAaH;AAjB6C,MAAlB;AAAA,EAAhC;;mBAoBe;AACX,WAAM,8BADK;AAEX,WAAM,CACF,sBAAY,IADV,EAEF,uBAFE;AAFK,E;;;;;;AC1Bf;;;;;;AAEA;;;;;;AAEA,KAAM,uBAAuB,SAA7B;;AAEA,KAAM,iBAAiB,SAAjB,cAAiB,CAAC,WAAD;AAAA,YAAkB;AACrC,mBAAU,GAD2B;AAErC,gBAAO,IAF8B;AAGrC,aAHqC,gBAGhC,KAHgC,EAGzB,OAHyB,EAGhB,KAHgB,EAGT;AACxB,qBAAQ,EAAR,CAAW,OAAX,EAAoB,UAAC,KAAD,EAAW;AAC3B,6BAAY,SAAZ,CAAsB;AAClB,4BAAO,KADW;AAElB,yBAAI,MAAM,oBAAN,CAFc;AAGlB,6BAAQ;AAHU,kBAAtB;AAKH,cAND;AAOH;AAXoC,MAAlB;AAAA,EAAvB;;mBAce;AACX,WAAM,oBADK;AAEX,WAAM,CACF,sBAAY,IADV,EAEF,cAFE;AAFK,E;;;;;;ACpBf;;;;;;AAEA;;;;;;AAEA,KAAM,sBAAsB,QAA5B;;AAEA,KAAM,gBAAgB,SAAhB,aAAgB,CAAC,WAAD;AAAA,YAAkB;AACpC,mBAAU,GAD0B;AAEpC,gBAAO,IAF6B;AAGpC,aAHoC,gBAG/B,KAH+B,EAGxB,OAHwB,EAGf,KAHe,EAGR;AACxB,qBAAQ,EAAR,CAAW,MAAX,EAAmB,UAAC,KAAD,EAAW;AAC1B,6BAAY,SAAZ,CAAsB;AAClB,4BAAO,KADW;AAElB,yBAAI,MAAM,mBAAN,CAFc;AAGlB,6BAAQ;AAHU,kBAAtB;AAKH,cAND;AAOH;AAXmC,MAAlB;AAAA,EAAtB;;mBAce;AACX,WAAM,mBADK;AAEX,WAAM,CACF,sBAAY,IADV,EAEF,aAFE;AAFK,E;;;;;;ACpBf;;;;;;AAEA;;;;;;AAEA,KAAM,0BAA0B,YAAhC;;AAEA,KAAM,oBAAoB,SAApB,iBAAoB,CAAC,WAAD;AAAA,YAAkB;AACxC,mBAAU,GAD8B;AAExC,gBAAO,IAFiC;AAGxC,aAHwC,gBAGnC,KAHmC,EAG5B,OAH4B,EAGnB,KAHmB,EAGZ;AACxB,qBAAQ,EAAR,CAAW,UAAX,EAAuB,UAAS,KAAT,EAAgB;AACnC,qBAAI,SAAS;AACT,+BAAU,KAAK;AADN,kBAAb;;AAIA,6BAAY,SAAZ,CAAsB;AAClB,4BAAO,KADW;AAElB,yBAAI,MAAM,uBAAN,CAFc;AAGlB,6BAAQ,KAHU;AAIlB,4BAAO;AAJW,kBAAtB;AAMH,cAXD;AAYH;AAhBuC,MAAlB;AAAA,EAA1B;;mBAmBe;AACX,WAAM,uBADK;AAEX,WAAM,CACF,sBAAY,IADV,EAEF,iBAFE;AAFK,E","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":""} | ||
| {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 7356ce8862bd1a537b65","webpack:///./src/_module.js","webpack:///./src/eval-service.js","webpack:///./src/ended.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":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \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 7356ce8862bd1a537b65\n **/","'use strict';\n\nconst MODULE_NAME = 'media-events';\n\nimport EvalService from './eval-service';\nimport LoadedMetadata from './loadedmetadata';\nimport Progress from './progress';\nimport Ended from './ended';\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(Ended.name, Ended.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 ENDED_DIRECTIVE_NAME = 'onEnded';\n\nconst EndedDirective = (evalService) => ({\n restrict: 'A',\n scope: true,\n link(scope, element, attrs) {\n element.on('ended', function(event) {\n evalService.scopeEval({\n scope: scope,\n fn: attrs[ENDED_DIRECTIVE_NAME],\n $event: event\n });\n });\n }\n});\n\nexport default {\n name: ENDED_DIRECTIVE_NAME,\n main: [\n EvalService.name,\n EndedDirective\n ]\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/ended.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":""} |
+1
-1
| { | ||
| "name": "angular-media-events", | ||
| "version": "1.0.1", | ||
| "version": "1.1.0", | ||
| "description": "angular directives for media events", | ||
@@ -5,0 +5,0 @@ "main": "./dist/media-events.js", |
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
25632
33.84%5
25%271
19.38%1
-50%124
Infinity%1
-50%