self.addEventListener('notificationclick', function (event) {
    event.notification.close()
    var promiseChain = clients.matchAll({
        type: 'window',
        includeUncontrolled: true
    }).then((windowClients) => {
        var matchingClient = null
        for (var i = 0; i < windowClients.length; i++) {
            var windowClient = windowClients[i]
            if (windowClient.url === event.notification.data.url) {
                return windowClient.focus()
            }
        }
    })
    event.waitUntil(promiseChain)
})