angular-desktop-notification
Version:
A simple HTML5 notification for Angular 1
1 lines • 1.93 kB
JavaScript
!function n(i,o,t){function e(u,a){if(!o[u]){if(!i[u]){var c="function"==typeof require&&require;if(!a&&c)return c(u,!0);if(r)return r(u,!0);var d=new Error("Cannot find module '"+u+"'");throw d.code="MODULE_NOT_FOUND",d}var s=o[u]={exports:{}};i[u][0].call(s.exports,function(n){var o=i[u][1][n];return e(o||n)},s,s.exports,n,i,o,t)}return o[u].exports}for(var r="function"==typeof require&&require,u=0;u<t.length;u++)e(t[u]);return e}({1:[function(n,i,o){"use strict";function t(){var n={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(i){for(var o in i)n.hasOwnProperty(o)&&void 0!=i[o]&&(n[o]=i[o])},$get:["$q","$timeout","$window","PERMISSIONS",function(i,o,t,e){function r(){return!(void 0===s)}function u(){return(s||{}).permission}function a(n,i){var o=angular.isString(n),t=!i.onClick||angular.isFunction(i.onClick);return o&&t}function c(i){if(i||n.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}function d(n,i){var t=1e3*i;o(n.close.bind(n),t,!1)}var s=t.Notification||t.mozNotification||t.webkitNotification;return{isSupported:r,currentPermission:u,requestPermission:function(){if(!r())return i.reject("Notification API not supported");var n=i.defer();return s.requestPermission().then(function(i){e.GRANTED===i?n.resolve(i):n.reject(i)}),n.promise},show:function(i,o){if(o=o||{},r()&&a(i,o)&&!c(o.showOnPageHidden)&&u()===e.GRANTED){var t=new s(i,o),f=o.duration||n.duration,l=void 0===o.autoClose?n.autoClose:o.autoClose;return t.onclick=o.onClick,l&&d(t,f),t}},permissions:{default:e.DEFAULT,granted:e.GRANTED,denied:e.DENIED}}}]}}t.$inject=[],i.exports=t},{}],2:[function(n,i,o){"use strict";var t=n("./angular-desktop-notification");angular.module("ngDesktopNotification",[]).provider("desktopNotification",t).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})},{"./angular-desktop-notification":1}]},{},[2]);