{ "version": 3, "sources": ["../dist/common.js", "../dist/api.js", "../dist/prefers-dark.js", "../dist/main.js"], "sourcesContent": ["export const API_ENDPOINT = \"https://clippingkk-api.annatarhe.com/api/v2/graphql\";\nexport const WEBSITE_ENDPOINT = \"https://clippingkk.annatarhe.com\";\nexport const CDN_PREFIX = \"https://ck-cdn.annatarhe.cn\";\nexport const logoURL = CDN_PREFIX + \"/ck-assets/logo.png\";\nexport const ROOT_SELECTOR_CLASS = \"ck-clipping-card\";\nexport const rootDOMs = document.querySelectorAll(\".\" + ROOT_SELECTOR_CLASS);\n", "import {API_ENDPOINT} from \"./common.js\";\nconst FETCH_CLIPPING_QUERY = `\nquery fetchClipping($id: Int!) {\n clipping(id: $id) {\n id\n bookID\n title\n content\n createdAt\n pageAt\n visible\n reactions {\n id\n symbol\n creator {\n id\n avatar\n name\n }\n createdAt\n }\n creator {\n id\n name\n avatar\n }\n }\n}\n`;\nexport function fetchClipping(cid) {\n return fetch(API_ENDPOINT, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n operationName: \"fetchClipping\",\n query: FETCH_CLIPPING_QUERY,\n variables: {\n id: cid\n }\n })\n }).then((res) => res.json()).then((res) => res.data.clipping);\n}\n", "import {rootDOMs} from \"./common.js\";\nexport function checkDarkMode() {\n return window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\nfunction watchDarkMode() {\n if (!window.matchMedia)\n return;\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", addDarkModeSelector);\n}\nfunction addDarkModeSelector(e) {\n for (const rootDOM of rootDOMs) {\n if (e.matches) {\n rootDOM.classList.add(\"ck-dark\");\n } else {\n rootDOM.classList.remove(\"ck-dark\");\n }\n }\n}\nwatchDarkMode();\nif (checkDarkMode()) {\n for (const rootDOM of rootDOMs) {\n rootDOM.classList.add(\"ck-dark\");\n }\n}\n", "import {fetchClipping} from \"./api.js\";\nimport {CDN_PREFIX, logoURL, rootDOMs, WEBSITE_ENDPOINT} from \"./common.js\";\nimport \"./prefers-dark.js\";\nimport \"./style.css\";\nconst bookCount = 100;\nconst clippingCount = 100;\nfunction getHeaderDOM(clipping) {\n const header = document.createElement(\"header\");\n const avatar = clipping.creator.avatar.startsWith(\"http\") ? clipping.creator.avatar : `${CDN_PREFIX}/${clipping.creator.avatar}`;\n header.classList.add(\"ck-header\");\n header.innerHTML = `\n