-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathsw_webpush.min.js
1 lines (1 loc) · 1.87 KB
/
sw_webpush.min.js
1
!function(n){"function"==typeof define&&define.amd?define(n):n()}((function(){"use strict";if(importScripts("https://d2r1yp2w7bby2u.cloudfront.net/js/localforage.min.js"),void 0===t)var n,t;function i(n,t,i){let e="",c=t;"action1"===n.action?(void 0!==i.notificationOptions.actions[0].deepLink&&(c+="&r="+encodeURIComponent(i.notificationOptions.actions[0].deepLink),e=i.notificationOptions.actions[0].deepLink),c+="&b="+encodeURIComponent("button1")):"action2"===n.action?(void 0!==i.notificationOptions.actions[1].deepLink&&(c+="&r="+encodeURIComponent(i.notificationOptions.actions[1].deepLink),e=i.notificationOptions.actions[1].deepLink),c+="&b="+encodeURIComponent("button2")):(void 0!==i.deepLink&&(c+="&r="+encodeURIComponent(i.deepLink),e=i.deepLink),c+="&b="+encodeURIComponent("button0")),o(c),e&&clients.openWindow(e),n.notification.close()}self.addEventListener("install",(function(n){self.skipWaiting(),console.log("CT Service worker installed")})),self.addEventListener("activate",(function(n){console.log("CT Service worker activated")})),self.addEventListener("push",(function(i){console.log("Push event: ",i);var o,e=JSON.parse(i.data.text()),c=e.title,a=e.notificationOptions,d=a.data;void 0!==d&&(d.wzrk_id+="_".concat((new Date).getTime()),o=d.wzrk_id),void 0===o&&(o=c),localforage.setItem(o,i.data.text()).then((function(n){})).catch((function(n){console.log("Error in persisting")})),t=e.redirectPath,n=e;var s=e.raiseNotificationViewedPath;void 0!==s&&fetch(s,{mode:"no-cors"}),i.waitUntil(self.registration.showNotification(c,a))})),self.addEventListener("notificationclick",(function(o){var e,c=o.notification,a=c.data;null!=a&&(e=a.wzrk_id),void 0===e&&(e=c.title);var d=localforage.getItem(e).then((function(n){var t=JSON.parse(n),e=t.redirectPath;i(o,e,t)})).catch((function(e){i(o,t,n),console.log(e)}));o.waitUntil(d)}));var o=function(n){fetch(n+="&s=true",{mode:"no-cors"})}}));