text: var staticCacheName = "pwa-v" + new Date().getTime();
  var filesToCache = [
      '/offline',
      '/logo.png',
      '/template/js/tabler.min.js',
      '/template/css/tabler.min.css',
      '/template/css/tabler-vendors.min.css',
      '/images/undraw_quitting_time_dm8t.svg',
      '/images/icons/icon-72x72.png',
      '/images/icons/icon-96x96.png',
      '/images/icons/icon-128x128.png',
      '/images/icons/icon-144x144.png',
      '/images/icons/icon-152x152.png',
      '/images/icons/icon-196x196.png',
      '/images/icons/icon-512x512.png',
  ];
  
  // Cache on install
  self.addEventListener("install", event => {
      this.skipWaiting();
      event.waitUntil(
          caches.open(staticCacheName)
              .then(cache => {
                  return cache.addAll(filesToCache);
              })
      )
  });
  
  // Clear cache on activate
  self.addEventListener('activate', event => {
      event.waitUntil(
          caches.keys().then(cacheNames => {
              return Promise.all(
                  cacheNames
                      .filter(cacheName => (cacheName.startsWith("pwa-")))
                      .filter(cacheName => (cacheName !== staticCacheName))
                      .map(cacheName => caches.delete(cacheName))
              );
          })
      );
  });
  
  // Serve from Cache
  self.addEventListener("fetch", event => {
      event.respondWith(
          caches.match(event.request)
              .then(response => {
                  return response || fetch(event.request);
              })
              .catch(() => {
                  return caches.match('offline');
              })
      )
  });
  