2023-10-29 00:07:24 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8" />
|
|
|
|
<meta
|
|
|
|
name="viewport"
|
|
|
|
content="width=device-width, initial-scale=0.90, user-scalable=no, viewport-fit=cover"
|
|
|
|
/>
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
|
|
<meta
|
|
|
|
name="apple-mobile-web-app-status-bar-style"
|
|
|
|
content="black-translucent"
|
|
|
|
/>
|
|
|
|
<meta
|
|
|
|
name="theme-color"
|
|
|
|
content="#F3F4F6"
|
|
|
|
media="(prefers-color-scheme: light)"
|
|
|
|
/>
|
|
|
|
<meta
|
|
|
|
name="theme-color"
|
|
|
|
content="#1F2937"
|
|
|
|
media="(prefers-color-scheme: dark)"
|
|
|
|
/>
|
|
|
|
|
2023-10-30 23:23:38 +00:00
|
|
|
<title>Book Manager - Local</title>
|
2023-10-29 00:07:24 +00:00
|
|
|
|
|
|
|
<link rel="manifest" href="/manifest.json" />
|
|
|
|
<link rel="stylesheet" href="/assets/style.css" />
|
|
|
|
|
2023-11-04 16:51:00 +00:00
|
|
|
<!-- Libraries -->
|
2023-10-30 22:25:43 +00:00
|
|
|
<script src="/assets/lib/jszip.min.js"></script>
|
|
|
|
<script src="/assets/lib/epub.min.js"></script>
|
2023-11-04 16:51:00 +00:00
|
|
|
<script src="/assets/lib/idb-keyval.min.js"></script>
|
|
|
|
<script src="/assets/lib/sw-helper.min.js"></script>
|
|
|
|
|
|
|
|
<!-- Local -->
|
|
|
|
<script src="/assets/common.js"></script>
|
2023-10-29 00:07:24 +00:00
|
|
|
<script src="/assets/index.js"></script>
|
2023-10-30 23:23:38 +00:00
|
|
|
<script src="/assets/local/index.js"></script>
|
2023-10-29 00:07:24 +00:00
|
|
|
|
|
|
|
<style>
|
|
|
|
/* ----------------------------- */
|
|
|
|
/* -------- PWA Styling -------- */
|
|
|
|
/* ----------------------------- */
|
|
|
|
html,
|
|
|
|
body {
|
|
|
|
overscroll-behavior-y: none;
|
|
|
|
margin: 0px;
|
|
|
|
}
|
|
|
|
|
|
|
|
html {
|
|
|
|
height: calc(100% + env(safe-area-inset-bottom));
|
|
|
|
padding: env(safe-area-inset-top) env(safe-area-inset-right) 0
|
|
|
|
env(safe-area-inset-left);
|
|
|
|
}
|
|
|
|
|
|
|
|
main {
|
|
|
|
height: calc(100dvh - 4rem - env(safe-area-inset-top));
|
|
|
|
}
|
|
|
|
|
|
|
|
#container {
|
|
|
|
padding-bottom: calc(5em + env(safe-area-inset-bottom) * 2);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* No Scrollbar - IE, Edge, Firefox */
|
|
|
|
* {
|
|
|
|
-ms-overflow-style: none;
|
|
|
|
scrollbar-width: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* No Scrollbar - WebKit */
|
|
|
|
*::-webkit-scrollbar {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.css-button:checked + div {
|
|
|
|
display: block;
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
.css-button + div {
|
|
|
|
display: none;
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.css-button:checked + div + label {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body class="bg-gray-100 dark:bg-gray-800">
|
|
|
|
<div class="flex items-center justify-between w-full h-16">
|
|
|
|
<h1 class="text-xl font-bold dark:text-white px-6 lg:ml-48">
|
2023-10-30 23:23:38 +00:00
|
|
|
Local Documents
|
2023-10-29 00:07:24 +00:00
|
|
|
</h1>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<main class="relative overflow-hidden">
|
|
|
|
<div
|
|
|
|
id="container"
|
|
|
|
class="h-[100dvh] px-4 overflow-auto md:px-6 lg:mx-48"
|
|
|
|
>
|
|
|
|
<div
|
|
|
|
id="online"
|
2023-10-30 22:25:43 +00:00
|
|
|
class="rounded text-black dark:text-white bg-white dark:bg-gray-700 text-center p-3 mb-4"
|
2023-10-29 00:07:24 +00:00
|
|
|
>
|
|
|
|
You're Online:
|
|
|
|
<a
|
|
|
|
href="/"
|
|
|
|
class="p-2 text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded text-sm text-center py-1 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800"
|
|
|
|
>Go Home</a
|
|
|
|
>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div
|
2023-10-30 22:25:43 +00:00
|
|
|
id="message"
|
2023-10-29 00:07:24 +00:00
|
|
|
class="rounded text-white bg-white dark:bg-gray-700 text-center p-3 mb-4"
|
|
|
|
>
|
|
|
|
Loading...
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div
|
|
|
|
id="items"
|
|
|
|
class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3"
|
|
|
|
></div>
|
|
|
|
|
|
|
|
<div
|
|
|
|
class="fixed bottom-6 right-6 rounded-full flex items-center justify-center"
|
|
|
|
>
|
|
|
|
<input
|
|
|
|
type="checkbox"
|
|
|
|
id="add-file-button"
|
|
|
|
class="hidden css-button"
|
|
|
|
/>
|
|
|
|
<div
|
|
|
|
class="rounded p-4 bg-gray-800 dark:bg-gray-200 text-white dark:text-black w-72 text-sm flex flex-col gap-2"
|
|
|
|
>
|
|
|
|
<div class="flex flex-col gap-2">
|
|
|
|
<input
|
|
|
|
type="file"
|
|
|
|
accept=".epub"
|
|
|
|
id="document_file"
|
|
|
|
name="document_file"
|
|
|
|
/>
|
|
|
|
<button
|
|
|
|
class="font-medium px-2 py-1 text-gray-800 bg-gray-500 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-800"
|
|
|
|
>
|
|
|
|
Add File
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<label for="add-file-button">
|
|
|
|
<div
|
|
|
|
class="w-full text-center cursor-pointer font-medium mt-2 px-2 py-1 text-gray-800 bg-gray-500 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-800"
|
|
|
|
>
|
|
|
|
Cancel
|
|
|
|
</div>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<label
|
|
|
|
class="w-16 h-16 bg-gray-800 dark:bg-gray-200 rounded-full flex items-center justify-center opacity-30 hover:opacity-100 transition-all duration-200 cursor-pointer"
|
|
|
|
for="add-file-button"
|
|
|
|
>
|
|
|
|
<svg
|
|
|
|
width="34"
|
|
|
|
height="34"
|
|
|
|
class="text-gray-200 dark:text-gray-600"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
fill="currentColor"
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
|
|
>
|
|
|
|
<path
|
|
|
|
fill-rule="evenodd"
|
|
|
|
clip-rule="evenodd"
|
|
|
|
d="M12 15.75C12.4142 15.75 12.75 15.4142 12.75 15V4.02744L14.4306 5.98809C14.7001 6.30259 15.1736 6.33901 15.4881 6.06944C15.8026 5.79988 15.839 5.3264 15.5694 5.01191L12.5694 1.51191C12.427 1.34567 12.2189 1.25 12 1.25C11.7811 1.25 11.573 1.34567 11.4306 1.51191L8.43056 5.01191C8.16099 5.3264 8.19741 5.79988 8.51191 6.06944C8.8264 6.33901 9.29988 6.30259 9.56944 5.98809L11.25 4.02744L11.25 15C11.25 15.4142 11.5858 15.75 12 15.75Z"
|
|
|
|
/>
|
|
|
|
<path
|
|
|
|
d="M16 9C15.2978 9 14.9467 9 14.6945 9.16851C14.5853 9.24148 14.4915 9.33525 14.4186 9.44446C14.25 9.69667 14.25 10.0478 14.25 10.75L14.25 15C14.25 16.2426 13.2427 17.25 12 17.25C10.7574 17.25 9.75004 16.2426 9.75004 15L9.75004 10.75C9.75004 10.0478 9.75004 9.69664 9.58149 9.4444C9.50854 9.33523 9.41481 9.2415 9.30564 9.16855C9.05341 9 8.70227 9 8 9C5.17157 9 3.75736 9 2.87868 9.87868C2 10.7574 2 12.1714 2 14.9998V15.9998C2 18.8282 2 20.2424 2.87868 21.1211C3.75736 21.9998 5.17157 21.9998 8 21.9998H16C18.8284 21.9998 20.2426 21.9998 21.1213 21.1211C22 20.2424 22 18.8282 22 15.9998V14.9998C22 12.1714 22 10.7574 21.1213 9.87868C20.2426 9 18.8284 9 16 9Z"
|
|
|
|
/>
|
|
|
|
</svg>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</main>
|
2023-10-30 22:25:43 +00:00
|
|
|
|
|
|
|
<!-- Template HTML Elements -->
|
|
|
|
<div class="hidden">
|
|
|
|
<svg id="local-svg-template" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V10C2 6.22876 2 4.34315 3.17157 3.17157C4.34315 2 6.23869 2 10.0298 2C10.6358 2 11.1214 2 11.53 2.01666C11.5166 2.09659 11.5095 2.17813 11.5092 2.26057L11.5 5.09497C11.4999 6.19207 11.4998 7.16164 11.6049 7.94316C11.7188 8.79028 11.9803 9.63726 12.6716 10.3285C13.3628 11.0198 14.2098 11.2813 15.0569 11.3952C15.8385 11.5003 16.808 11.5002 17.9051 11.5001L18 11.5001H21.9574C22 12.0344 22 12.6901 22 13.5629V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22Z" />
|
|
|
|
<path d="M19.3517 7.61665L15.3929 4.05375C14.2651 3.03868 13.7012 2.53114 13.0092 2.26562L13 5.00011C13 7.35713 13 8.53564 13.7322 9.26787C14.4645 10.0001 15.643 10.0001 18 10.0001H21.5801C21.2175 9.29588 20.5684 8.71164 19.3517 7.61665Z" />
|
|
|
|
</svg>
|
|
|
|
|
|
|
|
<svg id="remote-svg-template" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
|
|
<path d="M19.3517 7.61665L15.3929 4.05375C14.2651 3.03868 13.7012 2.53114 13.0092 2.26562L13 5.00011C13 7.35713 13 8.53564 13.7322 9.26787C14.4645 10.0001 15.643 10.0001 18 10.0001H21.5801C21.2175 9.29588 20.5684 8.71164 19.3517 7.61665Z"/>
|
|
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 22H14C17.7712 22 19.6569 22 20.8284 20.8284C22 19.6569 22 17.7712 22 14V13.5629C22 12.6901 22 12.0344 21.9574 11.5001H18L17.9051 11.5001C16.808 11.5002 15.8385 11.5003 15.0569 11.3952C14.2098 11.2813 13.3628 11.0198 12.6716 10.3285C11.9803 9.63726 11.7188 8.79028 11.6049 7.94316C11.4998 7.16164 11.4999 6.19207 11.5 5.09497L11.5092 2.26057C11.5095 2.17813 11.5166 2.09659 11.53 2.01666C11.1214 2 10.6358 2 10.0298 2C6.23869 2 4.34315 2 3.17157 3.17157C2 4.34315 2 6.22876 2 10V14C2 17.7712 2 19.6569 3.17157 20.8284C4.34315 22 6.22876 22 10 22ZM11 18C12.1046 18 13 17.2099 13 16.2353C13 15.4629 12.4375 14.8063 11.6543 14.5672C11.543 13.6855 10.6956 13 9.66667 13C8.5621 13 7.66667 13.7901 7.66667 14.7647C7.66667 14.9803 7.71047 15.1868 7.79066 15.3778C7.69662 15.3615 7.59944 15.3529 7.5 15.3529C6.67157 15.3529 6 15.9455 6 16.6765C6 17.4074 6.67157 18 7.5 18H11Z"/>
|
|
|
|
</svg>
|
|
|
|
|
|
|
|
<div id="item-template" class="w-full relative">
|
|
|
|
<div class="flex gap-4 w-full h-full p-4 bg-white shadow-lg dark:bg-gray-700 rounded">
|
|
|
|
<div class="min-w-fit my-auto h-48 relative">
|
|
|
|
<a href="#">
|
|
|
|
<img class="rounded object-cover h-full" src="/assets/images/no-cover.jpg"></img>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="flex flex-col justify-around dark:text-white w-full text-sm">
|
|
|
|
<div class="inline-flex shrink-0 items-center">
|
|
|
|
<div>
|
|
|
|
<p class="text-gray-400">Title</p>
|
|
|
|
<p class="font-medium">
|
|
|
|
N/A
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="inline-flex shrink-0 items-center">
|
|
|
|
<div>
|
|
|
|
<p class="text-gray-400">Author</p>
|
|
|
|
<p class="font-medium">
|
|
|
|
N/A
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="inline-flex shrink-0 items-center">
|
|
|
|
<div>
|
|
|
|
<p class="text-gray-400">Progress</p>
|
|
|
|
<p class="font-medium">
|
|
|
|
0%
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="absolute flex flex-col gap-2 right-4 bottom-4 text-gray-500 dark:text-gray-400">
|
|
|
|
<div class="relative">
|
|
|
|
<label for="delete-button">
|
|
|
|
<svg
|
|
|
|
class="cursor-pointer hover:text-gray-800 dark:hover:text-gray-100"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
fill="currentColor"
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
|
|
>
|
|
|
|
<path
|
|
|
|
d="M3 6.52381C3 6.12932 3.32671 5.80952 3.72973 5.80952H8.51787C8.52437 4.9683 8.61554 3.81504 9.45037 3.01668C10.1074 2.38839 11.0081 2 12 2C12.9919 2 13.8926 2.38839 14.5496 3.01668C15.3844 3.81504 15.4756 4.9683 15.4821 5.80952H20.2703C20.6733 5.80952 21 6.12932 21 6.52381C21 6.9183 20.6733 7.2381 20.2703 7.2381H3.72973C3.32671 7.2381 3 6.9183 3 6.52381Z"
|
|
|
|
/>
|
|
|
|
<path
|
|
|
|
d="M11.6066 22H12.3935C15.101 22 16.4547 22 17.3349 21.1368C18.2151 20.2736 18.3052 18.8576 18.4853 16.0257L18.7448 11.9452C18.8425 10.4086 18.8913 9.64037 18.4498 9.15352C18.0082 8.66667 17.2625 8.66667 15.7712 8.66667H8.22884C6.7375 8.66667 5.99183 8.66667 5.55026 9.15352C5.1087 9.64037 5.15756 10.4086 5.25528 11.9452L5.51479 16.0257C5.69489 18.8576 5.78494 20.2736 6.66513 21.1368C7.54532 22 8.89906 22 11.6066 22Z"
|
|
|
|
/>
|
|
|
|
</svg>
|
|
|
|
</label>
|
|
|
|
<input type="checkbox" id="delete-button" class="hidden css-button"/>
|
|
|
|
<div class="absolute z-30 bottom-7 right-0 p-3 transition-all duration-200 bg-gray-200 rounded shadow-lg shadow-gray-500 dark:shadow-gray-900 dark:bg-gray-600">
|
|
|
|
<span
|
|
|
|
class="block cursor-pointer font-medium text-sm text-center w-32 px-2 py-1 text-white bg-gray-500 dark:text-gray-800 hover:bg-gray-800 dark:hover:bg-gray-100"
|
|
|
|
>Delete</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<a href="#">
|
|
|
|
<svg
|
|
|
|
width="24"
|
|
|
|
height="24"
|
|
|
|
class="cursor-pointer hover:text-gray-800 dark:hover:text-gray-100"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
fill="currentColor"
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
|
|
>
|
|
|
|
<path
|
|
|
|
fill-rule="evenodd"
|
|
|
|
clip-rule="evenodd"
|
|
|
|
d="M2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C22 4.92893 22 7.28595 22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12ZM12 6.25C12.4142 6.25 12.75 6.58579 12.75 7V12.1893L14.4697 10.4697C14.7626 10.1768 15.2374 10.1768 15.5303 10.4697C15.8232 10.7626 15.8232 11.2374 15.5303 11.5303L12.5303 14.5303C12.3897 14.671 12.1989 14.75 12 14.75C11.8011 14.75 11.6103 14.671 11.4697 14.5303L8.46967 11.5303C8.17678 11.2374 8.17678 10.7626 8.46967 10.4697C8.76256 10.1768 9.23744 10.1768 9.53033 10.4697L11.25 12.1893V7C11.25 6.58579 11.5858 6.25 12 6.25ZM8 16.25C7.58579 16.25 7.25 16.5858 7.25 17C7.25 17.4142 7.58579 17.75 8 17.75H16C16.4142 17.75 16.75 17.4142 16.75 17C16.75 16.5858 16.4142 16.25 16 16.25H8Z"
|
|
|
|
/>
|
|
|
|
</svg>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="absolute top-0 right-0">
|
|
|
|
<strong class="bg-blue-100 text-blue-700 inline-flex items-center gap-1 rounded-tr rounded-bl p-1">
|
|
|
|
<div class="w-4 h-4"></div>
|
|
|
|
<span class="text-xs font-medium">REMOTE</span>
|
|
|
|
</strong>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-10-29 00:07:24 +00:00
|
|
|
</body>
|
|
|
|
</html>
|