{ "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
\n \n
\n ${clipping.creator.name}\n \n
\n
\n \n`;\n return header;\n}\nasync function main(rootDOM) {\n const cidStr = rootDOM.getAttribute(\"data-cid\");\n if (!cidStr) {\n return;\n }\n const cid = ~~cidStr;\n const clipping = await fetchClipping(cid);\n const newHeader = getHeaderDOM(clipping);\n rootDOM.insertBefore(newHeader, rootDOM.firstChild);\n const href = `${WEBSITE_ENDPOINT}/dash/${clipping.creator.id}/clippings/${clipping.id}?iac=1`;\n rootDOM.addEventListener(\"click\", () => {\n window.open(href, \"_blank\");\n });\n}\nfor (const dom of rootDOMs) {\n main(dom);\n}\n"], "mappings": "AAAO,GAAM,GAAe,sDACf,EAAmB,mCACnB,EAAa,8BACb,EAAU,EAAa,sBACvB,EAAsB,mBACtB,EAAW,SAAS,iBAAiB,IAAM,GCJxD,GAAM,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BtB,WAAuB,EAAK,CACjC,MAAO,OAAM,EAAc,CACzB,OAAQ,OACR,QAAS,CACP,eAAgB,oBAElB,KAAM,KAAK,UAAU,CACnB,cAAe,gBACf,MAAO,EACP,UAAW,CACT,GAAI,OAGP,KAAK,AAAC,GAAQ,EAAI,QAAQ,KAAK,AAAC,GAAQ,EAAI,KAAK,UCzC/C,YAAyB,CAC9B,MAAO,QAAO,YAAc,OAAO,WAAW,gCAAgC,QAEhF,YAAyB,CACvB,AAAI,CAAC,OAAO,YAEZ,OAAO,WAAW,gCAAgC,iBAAiB,SAAU,GAE/E,WAA6B,EAAG,CAC9B,OAAW,KAAW,GACpB,AAAI,EAAE,QACJ,EAAQ,UAAU,IAAI,WAEtB,EAAQ,UAAU,OAAO,WAI/B,IACA,GAAI,IACF,OAAW,KAAW,GACpB,EAAQ,UAAU,IAAI,WCjB1B,GAAM,GAAY,IACZ,EAAgB,IACtB,WAAsB,EAAU,CAC9B,GAAM,GAAS,SAAS,cAAc,UAChC,EAAS,EAAS,QAAQ,OAAO,WAAW,QAAU,EAAS,QAAQ,OAAS,GAAG,KAAc,EAAS,QAAQ,SACxH,SAAO,UAAU,IAAI,aACrB,EAAO,UAAY;AAAA;AAAA,oBAED;AAAA;AAAA,oBAEA,EAAS,QAAQ;AAAA;AAAA,uBAEd,WAAmB;AAAA;AAAA;AAAA;AAAA,gBAI1B;AAAA,EAEP,EAET,iBAAoB,EAAS,CAC3B,GAAM,GAAS,EAAQ,aAAa,YACpC,GAAI,CAAC,EACH,OAEF,GAAM,GAAM,CAAC,CAAC,EACR,EAAW,KAAM,GAAc,GAC/B,EAAY,EAAa,GAC/B,EAAQ,aAAa,EAAW,EAAQ,YACxC,GAAM,GAAO,GAAG,UAAyB,EAAS,QAAQ,gBAAgB,EAAS,WACnF,EAAQ,iBAAiB,QAAS,IAAM,CACtC,OAAO,KAAK,EAAM,YAGtB,OAAW,KAAO,GAChB,EAAK", "names": [] }