{
  "name": "OB Roaster - AA Jaya Global",
  "short_name": "OB Roaster",
  "description": "Aplikasi absensi offline-first untuk karyawan tambang AA Jaya Global",
  "start_url": "/ob-roaster/",
  "display": "standalone",
  "background_color": "#1e1e1e",
  "theme_color": "#f39c12",
  "orientation": "portrait-primary",
  "scope": "/ob-roaster/",
  "categories": ["business", "productivity"],
  "lang": "id",
  "dir": "ltr",
  
  "icons": [
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCA3MiA3MiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iNzIiIGhlaWdodD0iNzIiIHJ4PSIxNiIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNMjIgMzZMMzYgMjJINTBMMzYgMzZINTBMMzYgNTBMMjIgMzZMMzYgNTBMMjIgMzZaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",
      "sizes": "72x72",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHJ4PSIyMCIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNMzAgNDhMNDggMzBINjZMNDggNDhINjZMNDggNjZMMzAgNDhMNDggNjZMMzAgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",
      "sizes": "96x96",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjggZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHJ4PSIyNCIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNMzkgNjRMNjQgMzlIODlMNjQgNjRIODlMNjQgODlMMzkgNjRMNjQgODlMMzkgNjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",
      "sizes": "128x128",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE0NCIgaGVpZ2h0PSIxNDQiIHJ4PSIyOCIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNMzYgNzJMNzIgMzZIMTA4TDcyIDcySDEwOEw3MiAxMDhMMzYgNzJMNzIgMTA4TDM2IDcyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",
      "sizes": "144x144",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDE5MiAxOTIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE5MiIgaGVpZ2h0PSIxOTIiIHJ4PSIzMiIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNNDggOTZMOTYgNDhIMTQ0TDk2IDk2SDE0NEw5NiAxNDRMNDggOTZMOTYgMTQ0TDQ4IDk2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",
      "sizes": "192x192",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHJ4PSI4MCIgZmlsbD0iI2YzOWMxMiIvPgo8cGF0aCBkPSJNMTI4IDI1NkwyNTYgMTI4SDM4NEwyNTYgMjU2SDM4NEwyNTYgMzg0TDEyOCAyNTZMMjU2IDM4NEwxMjggMjU2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",
      "sizes": "512x512",
      "type": "image/svg+xml"
    }
  ],

  "screenshots": [
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkwIiBoZWlnaHQ9Ijg0NCIgdmlld0JveD0iMCAwIDM5MCA4NDQgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjM5MCIgaGVpZ2h0PSI4NDQiIGZpbGw9IiMxZTFlMWUiLz4KPHJlY3QgeD0iMjAiIHk9IjUwIiB3aWR0aD0iMzUwIiBoZWlnaHQ9Ijc0NCIgcng9IjIwIiBmaWxsPSIjMmMyYzJjIi8+CjxyZWN0IHg9IjQwIiB5PSIxNTAiIHdpZHRoPSIzMTAiIGhlaWdodD0iNjAiIHJ4PSIxMiIgZmlsbD0iI2YzOWMxMiIvPgo8cmVjdCB4PSI0MCIgeT0iMjMwIiB3aWR0aD0iMzEwIiBoZWlnaHQ9IjYwIiByeD0iMTIiIGZpbGw9IiNmMzljMTIiLz4KPC9zdmc+Cg==",
      "sizes": "390x844",
      "type": "image/svg+xml",
      "form_factor": "narrow",
      "label": "Tampilan absensi OB Roaster di smartphone"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI4MDAiIHZpZXdCb3g9IjAgMCAxMjgwIDgwMCBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI4MDAiIGZpbGw9IiMxZTFlMWUiLz4KPHJlY3QgeD0iNDQwIiB5PSIxMDAiIHdpZHRoPSI0MDAiIGhlaWdodD0iNjAwIiByeD0iMzAiIGZpbGw9IiMyYzJjMmMiLz4KPHJlY3QgeD0iNDgwIiB5PSIyNTAiIHdpZHRoPSIzMjAiIGhlaWdodD0iODAiIHJ4PSIxNiIgZmlsbD0iI2YzOWMxMiIvPgo8cmVjdCB4PSI0ODAiIHk9IjM3MCIgd2lkdGg9IjMyMCIgaGVpZ2h0PSI4MCIgcng9IjE2IiBmaWxsPSIjZjM5YzEyIi8+Cjwvc3ZnPgo=",
      "sizes": "1280x800",
      "type": "image/svg+xml",
      "form_factor": "wide",
      "label": "Tampilan absensi OB Roaster di desktop"
    }
  ],

  "share_target": {
    "action": "/ob-roaster/",
    "method": "GET",
    "enctype": "application/x-www-form-urlencoded",
    "params": {
      "title": "title",
      "text": "text",
      "url": "url"
    }
  },

  "protocol_handlers": [
    {
      "protocol": "web+obroaster",
      "url": "/ob-roaster/?url=%s"
    }
  ],

  "handle_links": "preferred",
  "launch_handler": {
    "client_mode": "auto"
  },

  "display_override": ["window-controls-overlay", "minimal-ui"],

  "permissions": [
    "geolocation",
    "notifications"
  ],

  "shortcuts": [
    {
      "name": "Absen Masuk AA Jaya Global",
      "short_name": "Masuk",
      "description": "Absen masuk kerja di AA Jaya Global",
      "url": "/ob-roaster/?action=checkin",
      "icons": [{ "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHJ4PSIyMCIgZmlsbD0iIzI3YWU2MCIvPgo8cGF0aCBkPSJNMzAgNDhMNDggMzBINjZMNDggNDhINjZMNDggNjZMMzAgNDhMNDggNjZMMzAgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K", "sizes": "96x96" }]
    },
    {
      "name": "Absen Pulang AA Jaya Global",
      "short_name": "Pulang",
      "description": "Absen pulang kerja di AA Jaya Global",
      "url": "/ob-roaster/?action=checkout",
      "icons": [{ "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHJ4PSIyMCIgZmlsbD0iI2U3NGMzYyIvPgo8cGF0aCBkPSJNMzAgNDhMNDggMzBINjZMNDggNDhINjZMNDggNjZMMzAgNDhMNDggNjZMMzAgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K", "sizes": "96x96" }]
    }
  ],

  "file_handlers": [
    {
      "action": "/ob-roaster/",
      "accept": {
        "text/csv": [".csv"],
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": [".xlsx"]
      }
    }
  ]
}