fedipod 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -0
  3. package/architecture.svg +89 -0
  4. package/bin/fedipod.mjs +2303 -0
  5. package/cli.md +243 -0
  6. package/groups.md +85 -0
  7. package/gui.md +99 -0
  8. package/lib/account.mjs +87 -0
  9. package/lib/admin.mjs +1606 -0
  10. package/lib/atproto.mjs +310 -0
  11. package/lib/bskyfeed.mjs +166 -0
  12. package/lib/bskygroup.mjs +162 -0
  13. package/lib/c2s.mjs +305 -0
  14. package/lib/certs.mjs +265 -0
  15. package/lib/deliver.mjs +249 -0
  16. package/lib/directory.mjs +90 -0
  17. package/lib/embed.mjs +214 -0
  18. package/lib/export-collections.mjs +161 -0
  19. package/lib/front-core.mjs +322 -0
  20. package/lib/gateway-core.mjs +115 -0
  21. package/lib/guard.mjs +213 -0
  22. package/lib/home.mjs +161 -0
  23. package/lib/httpsig.mjs +109 -0
  24. package/lib/import.mjs +357 -0
  25. package/lib/intake.mjs +1710 -0
  26. package/lib/keys.mjs +139 -0
  27. package/lib/lease.mjs +190 -0
  28. package/lib/localapi.mjs +87 -0
  29. package/lib/mastoapi.mjs +1588 -0
  30. package/lib/migrate.mjs +127 -0
  31. package/lib/oidc-auth.mjs +53 -0
  32. package/lib/podrdf.mjs +132 -0
  33. package/lib/ports.mjs +27 -0
  34. package/lib/publisher.mjs +1003 -0
  35. package/lib/remote.mjs +303 -0
  36. package/lib/safefetch.mjs +235 -0
  37. package/lib/setup.mjs +262 -0
  38. package/lib/social.mjs +505 -0
  39. package/lib/storage.mjs +170 -0
  40. package/lib/store.mjs +470 -0
  41. package/lib/streaming.mjs +154 -0
  42. package/lib/tagfeed.mjs +158 -0
  43. package/lib/ua.mjs +29 -0
  44. package/lib/update.mjs +91 -0
  45. package/lib/webpush.mjs +98 -0
  46. package/lib/wire.mjs +762 -0
  47. package/package.json +60 -0
  48. package/phanpy/dist/404.html +40 -0
  49. package/phanpy/dist/_headers +2 -0
  50. package/phanpy/dist/apple-touch-icon.png +0 -0
  51. package/phanpy/dist/assets/ICONS-DIPJeU0C.js +2 -0
  52. package/phanpy/dist/assets/ICONS-DIPJeU0C.js.map +1 -0
  53. package/phanpy/dist/assets/ScheduledAtField-D-Abfo4J.js +183 -0
  54. package/phanpy/dist/assets/ScheduledAtField-D-Abfo4J.js.map +1 -0
  55. package/phanpy/dist/assets/Temml-CCjoacWt.woff2 +0 -0
  56. package/phanpy/dist/assets/__vite-browser-external-C7iut881.js +2 -0
  57. package/phanpy/dist/assets/__vite-browser-external-C7iut881.js.map +1 -0
  58. package/phanpy/dist/assets/boosts-carousel-BiOaNdMT.jpg +0 -0
  59. package/phanpy/dist/assets/catch-up-O5q5C75Z.png +0 -0
  60. package/phanpy/dist/assets/chunk-aKtaBQYM.js +1 -0
  61. package/phanpy/dist/assets/compose-CFEx7wb4.js +2 -0
  62. package/phanpy/dist/assets/compose-CFEx7wb4.js.map +1 -0
  63. package/phanpy/dist/assets/compose-ZJN5xSb4.js +35 -0
  64. package/phanpy/dist/assets/compose-ZJN5xSb4.js.map +1 -0
  65. package/phanpy/dist/assets/debug.module-YFQgwnIr.js +52 -0
  66. package/phanpy/dist/assets/debug.module-YFQgwnIr.js.map +1 -0
  67. package/phanpy/dist/assets/dom-p1YcJ5Rw.js +2 -0
  68. package/phanpy/dist/assets/dom-p1YcJ5Rw.js.map +1 -0
  69. package/phanpy/dist/assets/home-mobile-dark@2x-Dc-J8-SM.png +0 -0
  70. package/phanpy/dist/assets/home-mobile-light@2x-Bd3fod8m.png +0 -0
  71. package/phanpy/dist/assets/home-tablet-dark@2x-BgcNI8le.png +0 -0
  72. package/phanpy/dist/assets/home-tablet-light@2x-BW2RV9T6.png +0 -0
  73. package/phanpy/dist/assets/icons/add-circle-line-WD0mwORD.js +1 -0
  74. package/phanpy/dist/assets/icons/alert-line-CpFUMf9s.js +1 -0
  75. package/phanpy/dist/assets/icons/android-2-line-Bzxnrd3S.js +1 -0
  76. package/phanpy/dist/assets/icons/announcement-line-5nwaJFJm.js +1 -0
  77. package/phanpy/dist/assets/icons/arrow-down-circle-line-a7Id9-Iv.js +1 -0
  78. package/phanpy/dist/assets/icons/arrow-down-line-B8uzXzq6.js +1 -0
  79. package/phanpy/dist/assets/icons/arrow-left-line-CGrGT9C-.js +1 -0
  80. package/phanpy/dist/assets/icons/arrow-right-line-CE-HERfX.js +1 -0
  81. package/phanpy/dist/assets/icons/arrow-to-up-line-CvdQjmcy.js +1 -0
  82. package/phanpy/dist/assets/icons/arrow-up-circle-line-DEparSNF.js +1 -0
  83. package/phanpy/dist/assets/icons/arrow-up-line-C7yBeugc.js +1 -0
  84. package/phanpy/dist/assets/icons/arrows-right-line-BtbXmJGP.js +1 -0
  85. package/phanpy/dist/assets/icons/at-line-CF66Bznk.js +1 -0
  86. package/phanpy/dist/assets/icons/attachment-line-BY8It-l9.js +1 -0
  87. package/phanpy/dist/assets/icons/blockquote-line-BS6pU_hm.js +1 -0
  88. package/phanpy/dist/assets/icons/board-line-C0UWXyA6.js +1 -0
  89. package/phanpy/dist/assets/icons/bookmark-line-1CtX5JLF.js +1 -0
  90. package/phanpy/dist/assets/icons/building-5-line-Dd59MzbO.js +1 -0
  91. package/phanpy/dist/assets/icons/bus-2-line-6_dvA0GG.js +1 -0
  92. package/phanpy/dist/assets/icons/calendar-day-line-Crpl_fmu.js +1 -0
  93. package/phanpy/dist/assets/icons/calendar-month-line-vommts2C.js +1 -0
  94. package/phanpy/dist/assets/icons/calendar-time-add-line-BU_DTlQk.js +1 -0
  95. package/phanpy/dist/assets/icons/camera-line-Cv69MEei.js +1 -0
  96. package/phanpy/dist/assets/icons/celebrate-line-B8DvIoi0.js +1 -0
  97. package/phanpy/dist/assets/icons/chart-bar-line-FK-QOmtF.js +1 -0
  98. package/phanpy/dist/assets/icons/chart-line-line-BGcJAFWw.js +1 -0
  99. package/phanpy/dist/assets/icons/chat-3-line-YFK2-hwz.js +1 -0
  100. package/phanpy/dist/assets/icons/check-circle-line-DsAxFr5-.js +1 -0
  101. package/phanpy/dist/assets/icons/clipboard-line-BBp364gJ.js +1 -0
  102. package/phanpy/dist/assets/icons/close-circle-line-CICdiuGz.js +1 -0
  103. package/phanpy/dist/assets/icons/close-line-DYrFWcjv.js +1 -0
  104. package/phanpy/dist/assets/icons/cloud-line-tiQAbah8.js +1 -0
  105. package/phanpy/dist/assets/icons/code-line-fAl8iiV3.js +1 -0
  106. package/phanpy/dist/assets/icons/comment-2-line-CR3g7WeB.js +1 -0
  107. package/phanpy/dist/assets/icons/copy-2-line-CLW69yF5.js +1 -0
  108. package/phanpy/dist/assets/icons/delete-2-line-B8xmbr4n.js +1 -0
  109. package/phanpy/dist/assets/icons/document-3-line-DBGNhAg2.js +1 -0
  110. package/phanpy/dist/assets/icons/document-line-C7mb9sb7.js +1 -0
  111. package/phanpy/dist/assets/icons/down-line-BGqSSThd.js +1 -0
  112. package/phanpy/dist/assets/icons/edit-4-line-DcgGaEhx.js +1 -0
  113. package/phanpy/dist/assets/icons/emoji-2-line-D8YgnM-y.js +1 -0
  114. package/phanpy/dist/assets/icons/exit-line-Dc07BS-x.js +1 -0
  115. package/phanpy/dist/assets/icons/external-link-line-BvpSkmjO.js +1 -0
  116. package/phanpy/dist/assets/icons/eye-2-line-CiWXx-f_.js +1 -0
  117. package/phanpy/dist/assets/icons/eye-close-line-BgTaSJ4P.js +1 -0
  118. package/phanpy/dist/assets/icons/filter-2-line-B_mR2usy.js +1 -0
  119. package/phanpy/dist/assets/icons/filter-line-C_nm-3cU.js +1 -0
  120. package/phanpy/dist/assets/icons/flag-1-line-C2HB05I0.js +1 -0
  121. package/phanpy/dist/assets/icons/forbid-circle-line-D3LTT9yd.js +1 -0
  122. package/phanpy/dist/assets/icons/formula-line-DLrt2d6j.js +1 -0
  123. package/phanpy/dist/assets/icons/grid-line-CgUmEikf.js +1 -0
  124. package/phanpy/dist/assets/icons/group-line-C5fnX0wU.js +1 -0
  125. package/phanpy/dist/assets/icons/hand-finger-2-line-BGgxbuL9.js +1 -0
  126. package/phanpy/dist/assets/icons/hashtag-line-CyTEEXBb.js +1 -0
  127. package/phanpy/dist/assets/icons/heart-crack-line-BZddbO2C.js +1 -0
  128. package/phanpy/dist/assets/icons/heart-line-CJ7K47J4.js +1 -0
  129. package/phanpy/dist/assets/icons/history-2-line-kWWvFzqv.js +1 -0
  130. package/phanpy/dist/assets/icons/history-line-bGQiwbTH.js +1 -0
  131. package/phanpy/dist/assets/icons/home-3-line-fRU1zeLG.js +1 -0
  132. package/phanpy/dist/assets/icons/information-line-iNk6-sOY.js +1 -0
  133. package/phanpy/dist/assets/icons/keyboard-line-DsCyuQNz.js +1 -0
  134. package/phanpy/dist/assets/icons/layout-4-line-CZkOX52Z.js +1 -0
  135. package/phanpy/dist/assets/icons/layout-5-line-B_znt5wO.js +1 -0
  136. package/phanpy/dist/assets/icons/left-line-eUw0tya4.js +1 -0
  137. package/phanpy/dist/assets/icons/lightning-line-DaKoDdix.js +1 -0
  138. package/phanpy/dist/assets/icons/link-2-line-DCqLmMA7.js +1 -0
  139. package/phanpy/dist/assets/icons/list-check-line-BAxosBh9.js +1 -0
  140. package/phanpy/dist/assets/icons/lock-line-CPoaXeUW.js +1 -0
  141. package/phanpy/dist/assets/icons/mail-line-B0P8aa1L.js +1 -0
  142. package/phanpy/dist/assets/icons/moon-line-CEqNAToP.js +1 -0
  143. package/phanpy/dist/assets/icons/more-1-fill-Dw2e5xab.js +1 -0
  144. package/phanpy/dist/assets/icons/more-3-line-BIiVjYTz.js +1 -0
  145. package/phanpy/dist/assets/icons/notification-line-BZZq2Gtu.js +1 -0
  146. package/phanpy/dist/assets/icons/pencil-line-CKh8-A1v.js +1 -0
  147. package/phanpy/dist/assets/icons/photo-album-line-Bnfg2u40.js +1 -0
  148. package/phanpy/dist/assets/icons/pin-line-DpTolyhs.js +1 -0
  149. package/phanpy/dist/assets/icons/play-fill-B0-G_8lX.js +1 -0
  150. package/phanpy/dist/assets/icons/qrcode-2-line-B6SPCaHn.js +1 -0
  151. package/phanpy/dist/assets/icons/quill-pen-line-B6LUrnCP.js +1 -0
  152. package/phanpy/dist/assets/icons/quote-left-fill-hQZ1cj_6.js +1 -0
  153. package/phanpy/dist/assets/icons/radar-line-CKyroTth.js +1 -0
  154. package/phanpy/dist/assets/icons/react-line-CoIKhhtK.js +1 -0
  155. package/phanpy/dist/assets/icons/refresh-2-line-D0mTF97S.js +1 -0
  156. package/phanpy/dist/assets/icons/right-line-B3KWJaqc.js +1 -0
  157. package/phanpy/dist/assets/icons/rocket-line-4KZl537D.js +1 -0
  158. package/phanpy/dist/assets/icons/round-fill-C69NTrZ0.js +1 -0
  159. package/phanpy/dist/assets/icons/round-line-B9k_1uo-.js +1 -0
  160. package/phanpy/dist/assets/icons/route-line-B28ReHcE.js +1 -0
  161. package/phanpy/dist/assets/icons/rows-4-line-CrBniagM.js +1 -0
  162. package/phanpy/dist/assets/icons/scan-line-DSf74YdP.js +1 -0
  163. package/phanpy/dist/assets/icons/search-2-line-B6geIU1z.js +1 -0
  164. package/phanpy/dist/assets/icons/settings-3-line-azJwK47w.js +1 -0
  165. package/phanpy/dist/assets/icons/settings-6-line-C_5zc5YR.js +1 -0
  166. package/phanpy/dist/assets/icons/share-2-line-D5MxWjrm.js +1 -0
  167. package/phanpy/dist/assets/icons/share-forward-line-Cp61fZzZ.js +1 -0
  168. package/phanpy/dist/assets/icons/sparkles-2-line-DYYyXTaW.js +1 -0
  169. package/phanpy/dist/assets/icons/sparkles-line-C2hY1s6I.js +1 -0
  170. package/phanpy/dist/assets/icons/time-line-BF3eet1v.js +1 -0
  171. package/phanpy/dist/assets/icons/transfer-4-line-oisfvTBw.js +1 -0
  172. package/phanpy/dist/assets/icons/translate-line-BFWol2Ce.js +1 -0
  173. package/phanpy/dist/assets/icons/unlock-line-X_x5vwv3.js +1 -0
  174. package/phanpy/dist/assets/icons/upload-3-line-DgzwUJeW.js +1 -0
  175. package/phanpy/dist/assets/icons/user-4-line-BVSynZCp.js +1 -0
  176. package/phanpy/dist/assets/icons/user-add-2-line-BlGS5Q8q.js +1 -0
  177. package/phanpy/dist/assets/icons/user-add-line-BbXdHG4z.js +1 -0
  178. package/phanpy/dist/assets/icons/user-edit-line-BFAHOV0X.js +1 -0
  179. package/phanpy/dist/assets/icons/user-follow-line-BXux0wSd.js +1 -0
  180. package/phanpy/dist/assets/icons/user-star-line-DdYlpHLU.js +1 -0
  181. package/phanpy/dist/assets/icons/user-warning-line-Cj43j0_E.js +1 -0
  182. package/phanpy/dist/assets/icons/user-x-line-DIDgNlPH.js +1 -0
  183. package/phanpy/dist/assets/icons/volume-line-Bs390KQt.js +1 -0
  184. package/phanpy/dist/assets/icons/volume-mute-line-DzlzIqFZ.js +1 -0
  185. package/phanpy/dist/assets/icons/walk-line-yNXfB-md.js +1 -0
  186. package/phanpy/dist/assets/icons/world-2-line-CenkGIwj.js +1 -0
  187. package/phanpy/dist/assets/icons/zoom-in-line-CaENUphf.js +1 -0
  188. package/phanpy/dist/assets/icons/zoom-out-line-BDNk0EWo.js +1 -0
  189. package/phanpy/dist/assets/instances-BNPptnn-.json +333 -0
  190. package/phanpy/dist/assets/locales/ar-SA-CfheRbCu.js +1 -0
  191. package/phanpy/dist/assets/locales/ca-ES-DHRW86Tz.js +1 -0
  192. package/phanpy/dist/assets/locales/cs-CZ-CKoqEuA1.js +1 -0
  193. package/phanpy/dist/assets/locales/de-DE-ByRPMRFy.js +1 -0
  194. package/phanpy/dist/assets/locales/eo-UY-CPC7wLCS.js +1 -0
  195. package/phanpy/dist/assets/locales/es-ES-dJa0Fd9t.js +1 -0
  196. package/phanpy/dist/assets/locales/eu-ES-C3djlPR2.js +1 -0
  197. package/phanpy/dist/assets/locales/fa-IR-DTT490Ck.js +1 -0
  198. package/phanpy/dist/assets/locales/fi-FI-B23MCPuz.js +1 -0
  199. package/phanpy/dist/assets/locales/fr-FR-BcaQsO5C.js +1 -0
  200. package/phanpy/dist/assets/locales/gl-ES-BR-CVKBN.js +1 -0
  201. package/phanpy/dist/assets/locales/he-IL-CfheRbCu.js +1 -0
  202. package/phanpy/dist/assets/locales/hu-HU-CfheRbCu.js +1 -0
  203. package/phanpy/dist/assets/locales/it-IT-C1136UFV.js +1 -0
  204. package/phanpy/dist/assets/locales/ja-JP-CRZmRAhD.js +1 -0
  205. package/phanpy/dist/assets/locales/kab-Cz8xH_TT.js +1 -0
  206. package/phanpy/dist/assets/locales/ko-KR-CG9UiY4o.js +1 -0
  207. package/phanpy/dist/assets/locales/lt-LT-CJcI6sHZ.js +1 -0
  208. package/phanpy/dist/assets/locales/nb-NO-CfheRbCu.js +1 -0
  209. package/phanpy/dist/assets/locales/nl-NL-DxN4Yc1t.js +1 -0
  210. package/phanpy/dist/assets/locales/oc-FR-CfheRbCu.js +1 -0
  211. package/phanpy/dist/assets/locales/pl-PL-DkwGXf6P.js +1 -0
  212. package/phanpy/dist/assets/locales/pseudo-LOCALE-CQ4XxkQ0.js +1 -0
  213. package/phanpy/dist/assets/locales/pt-BR-nGL0HdFS.js +1 -0
  214. package/phanpy/dist/assets/locales/pt-PT-Cp17aj2z.js +1 -0
  215. package/phanpy/dist/assets/locales/ru-RU-0Y8cIoaK.js +1 -0
  216. package/phanpy/dist/assets/locales/th-TH-CfheRbCu.js +1 -0
  217. package/phanpy/dist/assets/locales/tok-CfheRbCu.js +1 -0
  218. package/phanpy/dist/assets/locales/tr-TR-CfheRbCu.js +1 -0
  219. package/phanpy/dist/assets/locales/uk-UA-C5E3dFBf.js +1 -0
  220. package/phanpy/dist/assets/locales/zh-CN-BHJi7_et.js +1 -0
  221. package/phanpy/dist/assets/locales/zh-TW-CfheRbCu.js +1 -0
  222. package/phanpy/dist/assets/main-BdqNbG-a.js +26 -0
  223. package/phanpy/dist/assets/main-BdqNbG-a.js.map +1 -0
  224. package/phanpy/dist/assets/mock-home-DGhR__He.js +2 -0
  225. package/phanpy/dist/assets/mock-home-DGhR__He.js.map +1 -0
  226. package/phanpy/dist/assets/multi-column-ROck0NVt.jpg +0 -0
  227. package/phanpy/dist/assets/multi-hashtag-timeline-DH5INVHi.jpg +0 -0
  228. package/phanpy/dist/assets/nested-comments-thread-hv59kZLc.jpg +0 -0
  229. package/phanpy/dist/assets/polyfill-force-H8sUkLGp.js +2 -0
  230. package/phanpy/dist/assets/polyfill-force-H8sUkLGp.js.map +1 -0
  231. package/phanpy/dist/assets/pwa-viewport-ogKbF51K.js +20 -0
  232. package/phanpy/dist/assets/pwa-viewport-ogKbF51K.js.map +1 -0
  233. package/phanpy/dist/assets/style-B1iLPTPR.css +2 -0
  234. package/phanpy/dist/assets/temml-DuyIQMei.js +97 -0
  235. package/phanpy/dist/assets/temml-DuyIQMei.js.map +1 -0
  236. package/phanpy/dist/assets/tinyld.light.node-DtbBhLYC.js +2 -0
  237. package/phanpy/dist/assets/tinyld.light.node-DtbBhLYC.js.map +1 -0
  238. package/phanpy/dist/assets/year-in-posts-B2lywqdx.png +0 -0
  239. package/phanpy/dist/assets/year-in-posts-DJv_star.js +3 -0
  240. package/phanpy/dist/assets/year-in-posts-DJv_star.js.map +1 -0
  241. package/phanpy/dist/compose/index.html +20 -0
  242. package/phanpy/dist/favicon.ico +0 -0
  243. package/phanpy/dist/index.html +73 -0
  244. package/phanpy/dist/logo-192.png +0 -0
  245. package/phanpy/dist/logo-512.png +0 -0
  246. package/phanpy/dist/logo-badge-72.png +0 -0
  247. package/phanpy/dist/logo-maskable-512.png +0 -0
  248. package/phanpy/dist/logo-monochrome-512.png +0 -0
  249. package/phanpy/dist/logo-monochrome-maskable-512.png +0 -0
  250. package/phanpy/dist/manifest.webmanifest +1 -0
  251. package/phanpy/dist/og-image-2.jpg +0 -0
  252. package/phanpy/dist/og-image.png +0 -0
  253. package/phanpy/dist/robots.txt +2 -0
  254. package/phanpy/dist/sw.js +25 -0
  255. package/phanpy/dist/version.json +1 -0
  256. package/run-agent.mjs +805 -0
  257. package/scripts/build-dist.mjs +37 -0
  258. package/scripts/verify-ui.mjs +60 -0
  259. package/ui/README.md +23 -0
  260. package/vendor/gate.cjs +132 -0
  261. package/vendor/idp-grant.cjs +394 -0
  262. package/vendor/jfetch.cjs +16 -0
  263. package/web/admin/admin.js +958 -0
  264. package/web/admin/bar.css +64 -0
  265. package/web/admin/bar.js +61 -0
  266. package/web/admin/client/client.js +66 -0
  267. package/web/admin/client/index.html +42 -0
  268. package/web/admin/index.html +493 -0
  269. package/web/admin/setup/index.html +172 -0
  270. package/web/admin/setup/setup.js +268 -0
  271. package/web/admin/window.css +55 -0
  272. package/web/admin/window.js +136 -0
  273. package/web/front/install.sh +69 -0
  274. package/web/front/new-account.html +424 -0
  275. package/web/front/run.html +138 -0
  276. package/web/front/solid-client-authn.bundle.js +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"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","names":["YEAR_IN_POSTS_LIST_KEY","loadAvailableYears","list","store","account","get","Object","entries","map","year","data","parseInt","sort","a","b","sortedYears","console","error","NS","getCurrentAccountNS","dataId","yearToRemove","db","yearInPosts","createdAt","postDate","Date","startOfYear","masto","instance","api","allResults","gapsFilled","getCurrentAccount","accountId","info","accountAcct","acct","maxId","exclude_reblogs","latestPostIterator","limit","exclude_replies","values","latestResult","value","isPostInYear","latestPost","beforeStr","beforeResults","q","max_id","stillAfterYear","fetchLoop","done","foundInYear","endOfYear","status","earliestFetched","gapCheckIterator","min_id","earliestId","gapFillLoop","result","e","totalSize","timezoneOffset","id","posts","fetchedAt","MIN_YEAR","getDefaultYear","now","currentYear","getFullYear","currentMonth","getMonth","currentDay","getDate","formatTimezoneOffset","offset","sign","absOffset","Math","abs","hours","floor","minutes","String","padStart","getCurrentTimezoneOffset","getTimezoneOffset","FILTER_KEYS","all","original","replies","quotes","boosts","media","SORT_OPTIONS","key","condition","getMonthName","month","locale","format","date","DateTimeFormat","getYear","SEARCH_RESULT_PAGE_SIZE","YearInPosts","i18n","_useLingui","searchParams","setSearchParams","useSearchParams","yearParam","monthParam","postType","setPostType","useState","searchQuery","setSearchQuery","useTitle","uiState","setUIState","setPosts","availableYears","setAvailableYears","searchEnabled","setSearchEnabled","showSearchField","setShowSearchField","searchLimit","setSearchLimit","sortBy","setSortBy","sortOrder","setSortOrder","searchFieldRef","useRef","scrollableRef","useMemo","useHotkeys","current","focus","setTimeout","useKey","preventDefault","ignoreEventWhen","hasModal","document","querySelector","isInput","includes","target","tagName","metaKey","ctrlKey","altKey","shiftKey","totalPosts","length","useEffect","isFocused","loadYears","years","handleGenerate","generateYear","elements","existingData","fetchYearPosts","showToast","confirm","removeYear","y","alert","monthHeatmaps","heatmaps","forEach","post","total","boost","dayData","reblog","days","maxCount","firstDayOfMonth","firstDayOfWeek","calendar","i","day","count","ratio","reply","monthMediaGrids","grids","d","m","push","keys","dayPosts","bestPost","hasMedia","actualPost","mediaAttachments","some","postsWithMedia","topPost","totalCount","favouritesCount","topTotalCount","monthsWithPosts","monthCounts","monthTypes","supportsNativeQuote","inReplyToId","heatmap","mediaGrid","types","quote","searchIndexRef","index","preset","p","pollText","mediaText","cardText","card","content","spoilerText","poll","searchedPosts","search","flatMap","r","uniqueOrderedIds","postsMap","Map","postResults","filterCounts","monthPosts","filter","postMonth","counts","filteredPosts","filtered","sorted","postB","valueA","valueB","currentMonthIndex","prevMonth","nextMonth","time","timeEnd","monthFilter","block","inline","_jsxs","ref","class","tabIndex","style","children","onClick","behavior","NavMenu","to","icon","size","Link","_jsx","_Fragment","placeholder","onSearch","val","type","Menu2","align","menuButton","checked","alt","src","width","height","onSubmit","min","max","name","defaultValue","disabled","currentOffset","tzMismatch","title","toLocaleString","confirmLabel","handleRegenerate","handleRemoveYear","label","o","stopPropagation","onChange","relevance","repliesCount","reblogsCount","currentDate","previousPost","previousDate","showDateHeader","hideTime","formatOpts","niceDateTime","root","defaultShow","Status","Icon","IntersectionPostItem","setShow","observer","IntersectionObserver","unobserve","rootMargin","statusId","undefined","show","CalendarBar","originalRatio","replyRatio","quoteRatio","boostRatio","item","previewUrl","loading","decoding","CalendarLegend","SearchField","forwardRef","useImperativeHandle","setValue","activeElement","throttledSearch","searchInputRef","dir","autocomplete","autocorrect","autocapitalize","spellCheck","enterKeyHint","onInput","onKeyDown"],"ignoreList":[0],"sources":["../../node_modules/flexsearch/dist/flexsearch.bundle.module.min.mjs","../../src/assets/features/year-in-posts.png","../../src/utils/year-in-posts.js","../../src/pages/year-in-posts.jsx"],"sourcesContent":["/**!\r\n * FlexSearch.js v0.8.212 (Bundle/Module)\r\n * Author and Copyright: Thomas Wilkerling\r\n * Licence: Apache-2.0\r\n * Hosted by Nextapps GmbH\r\n * https://github.com/nextapps-de/flexsearch\r\n */\nvar w;function H(a,c,b){const e=typeof b,d=typeof a;if(e!==\"undefined\"){if(d!==\"undefined\"){if(b){if(d===\"function\"&&e===d)return function(k){return a(b(k))};c=a.constructor;if(c===b.constructor){if(c===Array)return b.concat(a);if(c===Map){var f=new Map(b);for(var g of a)f.set(g[0],g[1]);return f}if(c===Set){g=new Set(b);for(f of a.values())g.add(f);return g}}}return a}return b}return d===\"undefined\"?c:a}function aa(a,c){return typeof a===\"undefined\"?c:a}function I(){return Object.create(null)}\nfunction M(a){return typeof a===\"string\"}function ba(a){return typeof a===\"object\"}function ca(a,c){if(M(c))a=a[c];else for(let b=0;a&&b<c.length;b++)a=a[c[b]];return a};const ea=/[^\\p{L}\\p{N}]+/u,fa=/(\\d{3})/g,ha=/(\\D)(\\d{3})/g,ia=/(\\d{3})(\\D)/g,ja=/[\\u0300-\\u036f]/g;function ka(a={}){if(!this||this.constructor!==ka)return new ka(...arguments);if(arguments.length)for(a=0;a<arguments.length;a++)this.assign(arguments[a]);else this.assign(a)}w=ka.prototype;\nw.assign=function(a){this.normalize=H(a.normalize,!0,this.normalize);let c=a.include,b=c||a.exclude||a.split,e;if(b||b===\"\"){if(typeof b===\"object\"&&b.constructor!==RegExp){let d=\"\";e=!c;c||(d+=\"\\\\p{Z}\");b.letter&&(d+=\"\\\\p{L}\");b.number&&(d+=\"\\\\p{N}\",e=!!c);b.symbol&&(d+=\"\\\\p{S}\");b.punctuation&&(d+=\"\\\\p{P}\");b.control&&(d+=\"\\\\p{C}\");if(b=b.char)d+=typeof b===\"object\"?b.join(\"\"):b;try{this.split=new RegExp(\"[\"+(c?\"^\":\"\")+d+\"]+\",\"u\")}catch(f){this.split=/\\s+/}}else this.split=b,e=b===!1||\"a1a\".split(b).length<\n2;this.numeric=H(a.numeric,e)}else{try{this.split=H(this.split,ea)}catch(d){this.split=/\\s+/}this.numeric=H(a.numeric,H(this.numeric,!0))}this.prepare=H(a.prepare,null,this.prepare);this.finalize=H(a.finalize,null,this.finalize);b=a.filter;this.filter=typeof b===\"function\"?b:H(b&&new Set(b),null,this.filter);this.dedupe=H(a.dedupe,!0,this.dedupe);this.matcher=H((b=a.matcher)&&new Map(b),null,this.matcher);this.mapper=H((b=a.mapper)&&new Map(b),null,this.mapper);this.stemmer=H((b=a.stemmer)&&new Map(b),\nnull,this.stemmer);this.replacer=H(a.replacer,null,this.replacer);this.minlength=H(a.minlength,1,this.minlength);this.maxlength=H(a.maxlength,1024,this.maxlength);this.rtl=H(a.rtl,!1,this.rtl);if(this.cache=b=H(a.cache,!0,this.cache))this.F=null,this.L=typeof b===\"number\"?b:2E5,this.B=new Map,this.D=new Map,this.I=this.H=128;this.h=\"\";this.J=null;this.A=\"\";this.K=null;if(this.matcher)for(const d of this.matcher.keys())this.h+=(this.h?\"|\":\"\")+d;if(this.stemmer)for(const d of this.stemmer.keys())this.A+=\n(this.A?\"|\":\"\")+d;return this};w.addStemmer=function(a,c){this.stemmer||(this.stemmer=new Map);this.stemmer.set(a,c);this.A+=(this.A?\"|\":\"\")+a;this.K=null;this.cache&&Q(this);return this};w.addFilter=function(a){typeof a===\"function\"?this.filter=a:(this.filter||(this.filter=new Set),this.filter.add(a));this.cache&&Q(this);return this};\nw.addMapper=function(a,c){if(typeof a===\"object\")return this.addReplacer(a,c);if(a.length>1)return this.addMatcher(a,c);this.mapper||(this.mapper=new Map);this.mapper.set(a,c);this.cache&&Q(this);return this};w.addMatcher=function(a,c){if(typeof a===\"object\")return this.addReplacer(a,c);if(a.length<2&&(this.dedupe||this.mapper))return this.addMapper(a,c);this.matcher||(this.matcher=new Map);this.matcher.set(a,c);this.h+=(this.h?\"|\":\"\")+a;this.J=null;this.cache&&Q(this);return this};\nw.addReplacer=function(a,c){if(typeof a===\"string\")return this.addMatcher(a,c);this.replacer||(this.replacer=[]);this.replacer.push(a,c);this.cache&&Q(this);return this};\nw.encode=function(a,c){if(this.cache&&a.length<=this.H)if(this.F){if(this.B.has(a))return this.B.get(a)}else this.F=setTimeout(Q,50,this);this.normalize&&(typeof this.normalize===\"function\"?a=this.normalize(a):a=ja?a.normalize(\"NFKD\").replace(ja,\"\").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&a.length>3&&(a=a.replace(ha,\"$1 $2\").replace(ia,\"$1 $2\").replace(fa,\"$1 \"));const b=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer);let e=\n[],d=I(),f,g,k=this.split||this.split===\"\"?a.split(this.split):[a];for(let l=0,m,p;l<k.length;l++)if((m=p=k[l])&&!(m.length<this.minlength||m.length>this.maxlength)){if(c){if(d[m])continue;d[m]=1}else{if(f===m)continue;f=m}if(b)e.push(m);else if(!this.filter||(typeof this.filter===\"function\"?this.filter(m):!this.filter.has(m))){if(this.cache&&m.length<=this.I)if(this.F){var h=this.D.get(m);if(h||h===\"\"){h&&e.push(h);continue}}else this.F=setTimeout(Q,50,this);if(this.stemmer){this.K||(this.K=new RegExp(\"(?!^)(\"+\nthis.A+\")$\"));let u;for(;u!==m&&m.length>2;)u=m,m=m.replace(this.K,r=>this.stemmer.get(r))}if(m&&(this.mapper||this.dedupe&&m.length>1)){h=\"\";for(let u=0,r=\"\",t,n;u<m.length;u++)t=m.charAt(u),t===r&&this.dedupe||((n=this.mapper&&this.mapper.get(t))||n===\"\"?n===r&&this.dedupe||!(r=n)||(h+=n):h+=r=t);m=h}this.matcher&&m.length>1&&(this.J||(this.J=new RegExp(\"(\"+this.h+\")\",\"g\")),m=m.replace(this.J,u=>this.matcher.get(u)));if(m&&this.replacer)for(h=0;m&&h<this.replacer.length;h+=2)m=m.replace(this.replacer[h],\nthis.replacer[h+1]);this.cache&&p.length<=this.I&&(this.D.set(p,m),this.D.size>this.L&&(this.D.clear(),this.I=this.I/1.1|0));if(m){if(m!==p)if(c){if(d[m])continue;d[m]=1}else{if(g===m)continue;g=m}e.push(m)}}}this.finalize&&(e=this.finalize(e)||e);this.cache&&a.length<=this.H&&(this.B.set(a,e),this.B.size>this.L&&(this.B.clear(),this.H=this.H/1.1|0));return e};function Q(a){a.F=null;a.B.clear();a.D.clear()};function la(a,c,b){b||(c||typeof a!==\"object\"?typeof c===\"object\"&&(b=c,c=0):b=a);b&&(a=b.query||a,c=b.limit||c);let e=\"\"+(c||0);b&&(e+=(b.offset||0)+!!b.context+!!b.suggest+(b.resolve!==!1)+(b.resolution||this.resolution)+(b.boost||0));a=(\"\"+a).toLowerCase();this.cache||(this.cache=new ma);let d=this.cache.get(a+e);if(!d){const f=b&&b.cache;f&&(b.cache=!1);d=this.search(a,c,b);f&&(b.cache=f);this.cache.set(a+e,d)}return d}function ma(a){this.limit=a&&a!==!0?a:1E3;this.cache=new Map;this.h=\"\"}\nma.prototype.set=function(a,c){this.cache.set(this.h=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};ma.prototype.get=function(a){const c=this.cache.get(a);c&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,c));return c};ma.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};ma.prototype.clear=function(){this.cache.clear();this.h=\"\"};const na={normalize:!1,numeric:!1,dedupe:!1};const oa={};const ra=new Map([[\"b\",\"p\"],[\"v\",\"f\"],[\"w\",\"f\"],[\"z\",\"s\"],[\"x\",\"s\"],[\"d\",\"t\"],[\"n\",\"m\"],[\"c\",\"k\"],[\"g\",\"k\"],[\"j\",\"k\"],[\"q\",\"k\"],[\"i\",\"e\"],[\"y\",\"e\"],[\"u\",\"o\"]]);const sa=new Map([[\"ae\",\"a\"],[\"oe\",\"o\"],[\"sh\",\"s\"],[\"kh\",\"k\"],[\"th\",\"t\"],[\"ph\",\"f\"],[\"pf\",\"f\"]]),ta=[/([^aeo])h(.)/g,\"$1$2\",/([aeo])h([^aeo]|$)/g,\"$1$2\",/(.)\\1+/g,\"$1\"];const ua={a:\"\",e:\"\",i:\"\",o:\"\",u:\"\",y:\"\",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,\"\\u00df\":2,d:3,t:3,l:4,m:5,n:5,r:6};var va={Exact:na,Default:oa,Normalize:oa,LatinBalance:{mapper:ra},LatinAdvanced:{mapper:ra,matcher:sa,replacer:ta},LatinExtra:{mapper:ra,replacer:ta.concat([/(?!^)[aeo]/g,\"\"]),matcher:sa},LatinSoundex:{dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;b<a.length;b++){var c=a[b];let e=c.charAt(0),d=ua[e];for(let f=1,g;f<c.length&&(g=c.charAt(f),g===\"h\"||g===\"w\"||!(g=ua[g])||g===d||(e+=g,d=g,e.length!==4));f++);a[b]=e}}},CJK:{split:\"\"},LatinExact:na,LatinDefault:oa,LatinSimple:oa};function wa(a,c,b,e){let d=[];for(let f=0,g;f<a.index.length;f++)if(g=a.index[f],c>=g.length)c-=g.length;else{c=g[e?\"splice\":\"slice\"](c,b);const k=c.length;if(k&&(d=d.length?d.concat(c):c,b-=k,e&&(a.length-=k),!b))break;c=0}return d}\nfunction xa(a){if(!this||this.constructor!==xa)return new xa(a);this.index=a?[a]:[];this.length=a?a.length:0;const c=this;return new Proxy([],{get(b,e){if(e===\"length\")return c.length;if(e===\"push\")return function(d){c.index[c.index.length-1].push(d);c.length++};if(e===\"pop\")return function(){if(c.length)return c.length--,c.index[c.index.length-1].pop()};if(e===\"indexOf\")return function(d){let f=0;for(let g=0,k,h;g<c.index.length;g++){k=c.index[g];h=k.indexOf(d);if(h>=0)return f+h;f+=k.length}return-1};\nif(e===\"includes\")return function(d){for(let f=0;f<c.index.length;f++)if(c.index[f].includes(d))return!0;return!1};if(e===\"slice\")return function(d,f){return wa(c,d||0,f||c.length,!1)};if(e===\"splice\")return function(d,f){return wa(c,d||0,f||c.length,!0)};if(e===\"constructor\")return Array;if(typeof e!==\"symbol\")return(b=c.index[e/2**31|0])&&b[e]},set(b,e,d){b=e/2**31|0;(c.index[b]||(c.index[b]=[]))[e]=d;c.length++;return!0}})}xa.prototype.clear=function(){this.index.length=0};xa.prototype.push=function(){};\nfunction R(a=8){if(!this||this.constructor!==R)return new R(a);this.index=I();this.h=[];this.size=0;a>32?(this.B=Aa,this.A=BigInt(a)):(this.B=Ba,this.A=a)}R.prototype.get=function(a){const c=this.index[this.B(a)];return c&&c.get(a)};R.prototype.set=function(a,c){var b=this.B(a);let e=this.index[b];e?(b=e.size,e.set(a,c),(b-=e.size)&&this.size++):(this.index[b]=e=new Map([[a,c]]),this.h.push(e),this.size++)};\nfunction S(a=8){if(!this||this.constructor!==S)return new S(a);this.index=I();this.h=[];this.size=0;a>32?(this.B=Aa,this.A=BigInt(a)):(this.B=Ba,this.A=a)}S.prototype.add=function(a){var c=this.B(a);let b=this.index[c];b?(c=b.size,b.add(a),(c-=b.size)&&this.size++):(this.index[c]=b=new Set([a]),this.h.push(b),this.size++)};w=R.prototype;w.has=S.prototype.has=function(a){const c=this.index[this.B(a)];return c&&c.has(a)};\nw.delete=S.prototype.delete=function(a){const c=this.index[this.B(a)];c&&c.delete(a)&&this.size--};w.clear=S.prototype.clear=function(){this.index=I();this.h=[];this.size=0};w.values=S.prototype.values=function*(){for(let a=0;a<this.h.length;a++)for(let c of this.h[a].values())yield c};w.keys=S.prototype.keys=function*(){for(let a=0;a<this.h.length;a++)for(let c of this.h[a].keys())yield c};w.entries=S.prototype.entries=function*(){for(let a=0;a<this.h.length;a++)for(let c of this.h[a].entries())yield c};\nfunction Ba(a){let c=2**this.A-1;if(typeof a==\"number\")return a&c;let b=0,e=this.A+1;for(let d=0;d<a.length;d++)b=(b*e^a.charCodeAt(d))&c;return this.A===32?b+2**31:b}function Aa(a){let c=BigInt(2)**this.A-BigInt(1);var b=typeof a;if(b===\"bigint\")return a&c;if(b===\"number\")return BigInt(a)&c;b=BigInt(0);let e=this.A+BigInt(1);for(let d=0;d<a.length;d++)b=(b*e^BigInt(a.charCodeAt(d)))&c;return b};let Ca,Da;\nasync function Ea(a){a=a.data;var c=a.task;const b=a.id;let e=a.args;switch(c){case \"init\":Da=a.options||{};(c=a.factory)?(Function(\"return \"+c)()(self),Ca=new self.FlexSearch.Index(Da),delete self.FlexSearch):Ca=new T(Da);postMessage({id:b});break;default:let d;c===\"export\"&&(e[1]?(e[0]=Da.export,e[2]=0,e[3]=1):e=null);c===\"import\"?e[0]&&(a=await Da.import.call(Ca,e[0]),Ca.import(e[0],a)):((d=e&&Ca[c].apply(Ca,e))&&d.then&&(d=await d),d&&d.await&&(d=await d.await),c===\"search\"&&d.result&&(d=d.result));\npostMessage(c===\"search\"?{id:b,msg:d}:{id:b})}};function Fa(a){Ga.call(a,\"add\");Ga.call(a,\"append\");Ga.call(a,\"search\");Ga.call(a,\"update\");Ga.call(a,\"remove\");Ga.call(a,\"searchCache\")}let Ha,Ia,Ja;function Ka(){Ha=Ja=0}\nfunction Ga(a){this[a+\"Async\"]=function(){const c=arguments;var b=c[c.length-1];let e;typeof b===\"function\"&&(e=b,delete c[c.length-1]);Ha?Ja||(Ja=Date.now()-Ia>=this.priority*this.priority*3):(Ha=setTimeout(Ka,0),Ia=Date.now());if(Ja){const f=this;return new Promise(g=>{setTimeout(function(){g(f[a+\"Async\"].apply(f,c))},0)})}const d=this[a].apply(this,c);b=d.then?d:new Promise(f=>f(d));e&&b.then(e);return b}};let V=0;\nfunction La(a={},c){function b(k){function h(l){l=l.data||l;const m=l.id,p=m&&f.h[m];p&&(p(l.msg),delete f.h[m])}this.worker=k;this.h=I();if(this.worker){d?this.worker.on(\"message\",h):this.worker.onmessage=h;if(a.config)return new Promise(function(l){V>1E9&&(V=0);f.h[++V]=function(){l(f)};f.worker.postMessage({id:V,task:\"init\",factory:e,options:a})});this.priority=a.priority||4;this.encoder=c||null;this.worker.postMessage({task:\"init\",factory:e,options:a});return this}}if(!this||this.constructor!==La)return new La(a);\nlet e=typeof self!==\"undefined\"?self._factory:typeof window!==\"undefined\"?window._factory:null;e&&(e=e.toString());const d=typeof window===\"undefined\",f=this,g=Ma(e,d,a.worker);return g.then?g.then(function(k){return b.call(f,k)}):b.call(this,g)}W(\"add\");W(\"append\");W(\"search\");W(\"update\");W(\"remove\");W(\"clear\");W(\"export\");W(\"import\");La.prototype.searchCache=la;Fa(La.prototype);\nfunction W(a){La.prototype[a]=function(){const c=this,b=[].slice.call(arguments);var e=b[b.length-1];let d;typeof e===\"function\"&&(d=e,b.pop());e=new Promise(function(f){a===\"export\"&&typeof b[0]===\"function\"&&(b[0]=null);V>1E9&&(V=0);c.h[++V]=f;c.worker.postMessage({task:a,id:V,args:b})});return d?(e.then(d),this):e}}\nfunction Ma(a,c,b){return c?typeof module!==\"undefined\"?new(require(\"worker_threads\")[\"Worker\"])(__dirname+\"/worker/node.js\"):import(\"worker_threads\").then(function(worker){return new worker[\"Worker\"](import.meta.dirname+\"/node/node.mjs\")}):a?new window.Worker(URL.createObjectURL(new Blob([\"onmessage=\"+Ea.toString()],{type:\"text/javascript\"}))):new window.Worker(typeof b===\"string\"?b:import.meta.url.replace(\"/worker.js\",\"/worker/worker.js\").replace(\"flexsearch.bundle.module.min.js\",\n\"module/worker/worker.js\").replace(\"flexsearch.bundle.module.min.mjs\",\"module/worker/worker.js\"),{type:\"module\"})};Na.prototype.add=function(a,c,b){ba(a)&&(c=a,a=ca(c,this.key));if(c&&(a||a===0)){if(!b&&this.reg.has(a))return this.update(a,c);for(let k=0,h;k<this.field.length;k++){h=this.B[k];var e=this.index.get(this.field[k]);if(typeof h===\"function\"){var d=h(c);d&&e.add(a,d,b,!0)}else if(d=h.G,!d||d(c))h.constructor===String?h=[\"\"+h]:M(h)&&(h=[h]),Qa(c,h,this.D,0,e,a,h[0],b)}if(this.tag)for(e=0;e<this.A.length;e++){var f=this.A[e];d=this.tag.get(this.F[e]);let k=I();if(typeof f===\"function\"){if(f=f(c),!f)continue}else{var g=\nf.G;if(g&&!g(c))continue;f.constructor===String&&(f=\"\"+f);f=ca(c,f)}if(d&&f){M(f)&&(f=[f]);for(let h=0,l,m;h<f.length;h++)if(l=f[h],!k[l]&&(k[l]=1,(g=d.get(l))?m=g:d.set(l,m=[]),!b||!m.includes(a))){if(m.length===2**31-1){g=new xa(m);if(this.fastupdate)for(let p of this.reg.values())p.includes(m)&&(p[p.indexOf(m)]=g);d.set(l,m=g)}m.push(a);this.fastupdate&&((g=this.reg.get(a))?g.push(m):this.reg.set(a,[m]))}}}if(this.store&&(!b||!this.store.has(a))){let k;if(this.h){k=I();for(let h=0,l;h<this.h.length;h++){l=\nthis.h[h];if((b=l.G)&&!b(c))continue;let m;if(typeof l===\"function\"){m=l(c);if(!m)continue;l=[l.O]}else if(M(l)||l.constructor===String){k[l]=c[l];continue}Ra(c,k,l,0,l[0],m)}}this.store.set(a,k||c)}this.worker&&(this.fastupdate||this.reg.add(a))}return this};function Ra(a,c,b,e,d,f){a=a[d];if(e===b.length-1)c[d]=f||a;else if(a)if(a.constructor===Array)for(c=c[d]=Array(a.length),d=0;d<a.length;d++)Ra(a,c,b,e,d);else c=c[d]||(c[d]=I()),d=b[++e],Ra(a,c,b,e,d)}\nfunction Qa(a,c,b,e,d,f,g,k){if(a=a[g])if(e===c.length-1){if(a.constructor===Array){if(b[e]){for(c=0;c<a.length;c++)d.add(f,a[c],!0,!0);return}a=a.join(\" \")}d.add(f,a,k,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)Qa(a,c,b,e,d,f,g,k);else g=c[++e],Qa(a,c,b,e,d,f,g,k)};function Sa(a,c,b,e){if(!a.length)return a;if(a.length===1)return a=a[0],a=b||a.length>c?a.slice(b,b+c):a,e?Ta.call(this,a):a;let d=[];for(let f=0,g,k;f<a.length;f++)if((g=a[f])&&(k=g.length)){if(b){if(b>=k){b-=k;continue}g=g.slice(b,b+c);k=g.length;b=0}k>c&&(g=g.slice(0,c),k=c);if(!d.length&&k>=c)return e?Ta.call(this,g):g;d.push(g);c-=k;if(!c)break}d=d.length>1?[].concat.apply([],d):d[0];return e?Ta.call(this,d):d};function Ua(a,c,b,e){var d=e[0];if(d[0]&&d[0].query)return a[c].apply(a,d);if(!(c!==\"and\"&&c!==\"not\"||a.result.length||a.await||d.suggest))return e.length>1&&(d=e[e.length-1]),(e=d.resolve)?a.await||a.result:a;let f=[],g=0,k=0,h,l,m,p,u;for(c=0;c<e.length;c++)if(d=e[c]){var r=void 0;if(d.constructor===X)r=d.await||d.result;else if(d.then||d.constructor===Array)r=d;else{g=d.limit||0;k=d.offset||0;m=d.suggest;l=d.resolve;h=((p=d.highlight||a.highlight)||d.enrich)&&l;r=d.queue;let t=d.async||r,n=d.index,\nq=d.query;n?a.index||(a.index=n):n=a.index;if(q||d.tag){const x=d.field||d.pluck;x&&(!q||a.query&&!p||(a.query=q,a.field=x,a.highlight=p),n=n.index.get(x));if(r&&(u||a.await)){u=1;let v;const A=a.C.length,D=new Promise(function(F){v=F});(function(F,E){D.h=function(){E.index=null;E.resolve=!1;let B=t?F.searchAsync(E):F.search(E);if(B.then)return B.then(function(z){a.C[A]=z=z.result||z;v(z);return z});B=B.result||B;v(B);return B}})(n,Object.assign({},d));a.C.push(D);f[c]=D;continue}else d.resolve=!1,\nd.index=null,r=t?n.searchAsync(d):n.search(d),d.resolve=l,d.index=n}else if(d.and)r=Va(d,\"and\",n);else if(d.or)r=Va(d,\"or\",n);else if(d.not)r=Va(d,\"not\",n);else if(d.xor)r=Va(d,\"xor\",n);else continue}r.await?(u=1,r=r.await):r.then?(u=1,r=r.then(function(t){return t.result||t})):r=r.result||r;f[c]=r}u&&!a.await&&(a.await=new Promise(function(t){a.return=t}));if(u){const t=Promise.all(f).then(function(n){for(let q=0;q<a.C.length;q++)if(a.C[q]===t){a.C[q]=function(){return b.call(a,n,g,k,h,l,m,p)};break}Wa(a)});\na.C.push(t)}else if(a.await)a.C.push(function(){return b.call(a,f,g,k,h,l,m,p)});else return b.call(a,f,g,k,h,l,m,p);return l?a.await||a.result:a}function Va(a,c,b){a=a[c];const e=a[0]||a;e.index||(e.index=b);b=new X(e);a.length>1&&(b=b[c].apply(b,a.slice(1)));return b};X.prototype.or=function(){return Ua(this,\"or\",Xa,arguments)};function Xa(a,c,b,e,d,f,g){a.length&&(this.result.length&&a.push(this.result),a.length<2?this.result=a[0]:(this.result=Ya(a,c,b,!1,this.h),b=0));d&&(this.await=null);return d?this.resolve(c,b,e,g):this};X.prototype.and=function(){return Ua(this,\"and\",Za,arguments)};function Za(a,c,b,e,d,f,g){if(!f&&!this.result.length)return d?this.result:this;let k;if(a.length)if(this.result.length&&a.unshift(this.result),a.length<2)this.result=a[0];else{let h=0;for(let l=0,m,p;l<a.length;l++)if((m=a[l])&&(p=m.length))h<p&&(h=p);else if(!f){h=0;break}h?(this.result=$a(a,h,c,b,f,this.h,d),k=!0):this.result=[]}else f||(this.result=a);d&&(this.await=null);return d?this.resolve(c,b,e,g,k):this};X.prototype.xor=function(){return Ua(this,\"xor\",ab,arguments)};\nfunction ab(a,c,b,e,d,f,g){if(a.length)if(this.result.length&&a.unshift(this.result),a.length<2)this.result=a[0];else{a:{f=b;var k=this.h;const h=[],l=I();let m=0;for(let p=0,u;p<a.length;p++)if(u=a[p]){m<u.length&&(m=u.length);for(let r=0,t;r<u.length;r++)if(t=u[r])for(let n=0,q;n<t.length;n++)q=t[n],l[q]=l[q]?2:1}for(let p=0,u,r=0;p<m;p++)for(let t=0,n;t<a.length;t++)if(n=a[t])if(u=n[p])for(let q=0,x;q<u.length;q++)if(x=u[q],l[x]===1)if(f)f--;else if(d){if(h.push(x),h.length===c){a=h;break a}}else{const v=\np+(t?k:0);h[v]||(h[v]=[]);h[v].push(x);if(++r===c){a=h;break a}}a=h}this.result=a;k=!0}else f||(this.result=a);d&&(this.await=null);return d?this.resolve(c,b,e,g,k):this};X.prototype.not=function(){return Ua(this,\"not\",bb,arguments)};\nfunction bb(a,c,b,e,d,f,g){if(!f&&!this.result.length)return d?this.result:this;if(a.length&&this.result.length){a:{f=b;var k=[];a=new Set(a.flat().flat());for(let h=0,l,m=0;h<this.result.length;h++)if(l=this.result[h])for(let p=0,u;p<l.length;p++)if(u=l[p],!a.has(u))if(f)f--;else if(d){if(k.push(u),k.length===c){a=k;break a}}else if(k[h]||(k[h]=[]),k[h].push(u),++m===c){a=k;break a}a=k}this.result=a;k=!0}d&&(this.await=null);return d?this.resolve(c,b,e,g,k):this};function cb(a,c,b,e,d){let f,g,k;typeof d===\"string\"?(f=d,d=\"\"):f=d.template;g=f.indexOf(\"$1\");k=f.substring(g+2);g=f.substring(0,g);let h=d&&d.boundary,l=!d||d.clip!==!1,m=d&&d.merge&&k&&g&&new RegExp(k+\" \"+g,\"g\");d=d&&d.ellipsis;var p=0;if(typeof d===\"object\"){var u=d.template;p=u.length-2;d=d.pattern}typeof d!==\"string\"&&(d=d===!1?\"\":\"...\");p&&(d=u.replace(\"$1\",d));u=d.length-p;let r,t;typeof h===\"object\"&&(r=h.before,r===0&&(r=-1),t=h.after,t===0&&(t=-1),h=h.total||9E5);p=new Map;for(let Oa=0,\nda,db,pa;Oa<c.length;Oa++){let qa;if(e)qa=c,pa=e;else{var n=c[Oa];pa=n.field;if(!pa)continue;qa=n.result}db=b.get(pa);da=db.encoder;n=p.get(da);typeof n!==\"string\"&&(n=da.encode(a),p.set(da,n));for(let ya=0;ya<qa.length;ya++){var q=qa[ya].doc;if(!q)continue;q=ca(q,pa);if(!q)continue;var x=q.trim().split(/\\s+/);if(!x.length)continue;q=\"\";var v=[];let za=[];var A=-1,D=-1,F=0;for(var E=0;E<x.length;E++){var B=x[E],z=da.encode(B);z=z.length>1?z.join(\" \"):z[0];let y;if(z&&B){var C=B.length,J=(da.split?\nB.replace(da.split,\"\"):B).length-z.length,G=\"\",N=0;for(var O=0;O<n.length;O++){var P=n[O];if(P){var L=P.length;L+=J<0?0:J;N&&L<=N||(P=z.indexOf(P),P>-1&&(G=(P?B.substring(0,P):\"\")+g+B.substring(P,P+L)+k+(P+L<C?B.substring(P+L):\"\"),N=L,y=!0))}}G&&(h&&(A<0&&(A=q.length+(q?1:0)),D=q.length+(q?1:0)+G.length,F+=C,za.push(v.length),v.push({match:G})),q+=(q?\" \":\"\")+G)}if(!y)B=x[E],q+=(q?\" \":\"\")+B,h&&v.push({text:B});else if(h&&F>=h)break}F=za.length*(f.length-2);if(r||t||h&&q.length-F>h)if(F=h+F-u*2,E=D-\nA,r>0&&(E+=r),t>0&&(E+=t),E<=F)x=r?A-(r>0?r:0):A-((F-E)/2|0),v=t?D+(t>0?t:0):x+F,l||(x>0&&q.charAt(x)!==\" \"&&q.charAt(x-1)!==\" \"&&(x=q.indexOf(\" \",x),x<0&&(x=0)),v<q.length&&q.charAt(v-1)!==\" \"&&q.charAt(v)!==\" \"&&(v=q.lastIndexOf(\" \",v),v<D?v=D:++v)),q=(x?d:\"\")+q.substring(x,v)+(v<q.length?d:\"\");else{D=[];A={};F={};E={};B={};z={};G=J=C=0;for(O=N=1;;){var U=void 0;for(let y=0,K;y<za.length;y++){K=za[y];if(G)if(J!==G){if(E[y+1])continue;K+=G;if(A[K]){C-=u;F[y+1]=1;E[y+1]=1;continue}if(K>=v.length-\n1){if(K>=v.length){E[y+1]=1;K>=x.length&&(F[y+1]=1);continue}C-=u}q=v[K].text;if(L=t&&z[y])if(L>0){if(q.length>L)if(E[y+1]=1,l)q=q.substring(0,L);else continue;(L-=q.length)||(L=-1);z[y]=L}else{E[y+1]=1;continue}if(C+q.length+1<=h)q=\" \"+q,D[y]+=q;else if(l)U=h-C-1,U>0&&(q=\" \"+q.substring(0,U),D[y]+=q),E[y+1]=1;else{E[y+1]=1;continue}}else{if(E[y])continue;K-=J;if(A[K]){C-=u;E[y]=1;F[y]=1;continue}if(K<=0){if(K<0){E[y]=1;F[y]=1;continue}C-=u}q=v[K].text;if(L=r&&B[y])if(L>0){if(q.length>L)if(E[y]=1,\nl)q=q.substring(q.length-L);else continue;(L-=q.length)||(L=-1);B[y]=L}else{E[y]=1;continue}if(C+q.length+1<=h)q+=\" \",D[y]=q+D[y];else if(l)U=q.length+1-(h-C),U>=0&&U<q.length&&(q=q.substring(U)+\" \",D[y]=q+D[y]),E[y]=1;else{E[y]=1;continue}}else{q=v[K].match;r&&(B[y]=r);t&&(z[y]=t);y&&C++;let Pa;K?!y&&u&&(C+=u):(F[y]=1,E[y]=1);K>=x.length-1?Pa=1:K<v.length-1&&v[K+1].match?Pa=1:u&&(C+=u);C-=f.length-2;if(!y||C+q.length<=h)D[y]=q;else{U=N=O=F[y]=0;break}Pa&&(F[y+1]=1,E[y+1]=1)}C+=q.length;U=A[K]=1}if(U)J===\nG?G++:J++;else{J===G?N=0:O=0;if(!N&&!O)break;N?(J++,G=J):G++}}q=\"\";for(let y=0,K;y<D.length;y++)K=(F[y]?y?\" \":\"\":(y&&!d?\" \":\"\")+d)+D[y],q+=K;d&&!F[D.length]&&(q+=d)}m&&(q=q.replace(m,\" \"));qa[ya].highlight=q}if(e)break}return c};function X(a,c){if(!this||this.constructor!==X)return new X(a,c);let b=0,e,d,f,g,k,h;if(a&&a.index){const l=a;c=l.index;b=l.boost||0;if(d=l.query){f=l.field||l.pluck;g=l.highlight;const m=l.resolve;a=l.async||l.queue;l.resolve=!1;l.index=null;a=a?c.searchAsync(l):c.search(l);l.resolve=m;l.index=c;a=a.result||a}else a=[]}if(a&&a.then){const l=this;a=a.then(function(m){l.C[0]=l.result=m.result||m;Wa(l)});e=[a];a=[];k=new Promise(function(m){h=m})}this.index=c||null;this.result=a||[];this.h=b;this.C=\ne||[];this.await=k||null;this.return=h||null;this.highlight=g||null;this.query=d||\"\";this.field=f||\"\"}w=X.prototype;w.limit=function(a){if(this.await){const c=this;this.C.push(function(){return c.limit(a).result})}else if(this.result.length){const c=[];for(let b=0,e;b<this.result.length;b++)if(e=this.result[b])if(e.length<=a){if(c[b]=e,a-=e.length,!a)break}else{c[b]=e.slice(0,a);break}this.result=c}return this};\nw.offset=function(a){if(this.await){const c=this;this.C.push(function(){return c.offset(a).result})}else if(this.result.length){const c=[];for(let b=0,e;b<this.result.length;b++)if(e=this.result[b])e.length<=a?a-=e.length:(c[b]=e.slice(a),a=0);this.result=c}return this};w.boost=function(a){if(this.await){const c=this;this.C.push(function(){return c.boost(a).result})}else this.h+=a;return this};\nfunction Wa(a,c){let b=a.result;var e=a.await;a.await=null;for(let d=0,f;d<a.C.length;d++)if(f=a.C[d])if(typeof f===\"function\")b=f(),a.C[d]=b=b.result||b,d--;else if(f.h)b=f.h(),a.C[d]=b=b.result||b,d--;else if(f.then)return a.await=e;e=a.return;a.C=[];a.return=null;c||e(b);return b}\nw.resolve=function(a,c,b,e,d){let f=this.await?Wa(this,!0):this.result;if(f.then){const g=this;return f.then(function(){return g.resolve(a,c,b,e,d)})}f.length&&(typeof a===\"object\"?(e=a.highlight||this.highlight,b=!!e||a.enrich,c=a.offset,a=a.limit):(e=e||this.highlight,b=!!e||b),f=d?b?Ta.call(this.index,f):f:Sa.call(this.index,f,a||100,c,b));return this.finalize(f,e)};\nw.finalize=function(a,c){if(a.then){const e=this;return a.then(function(d){return e.finalize(d,c)})}c&&a.length&&this.query&&(a=cb(this.query,a,this.index.index,this.field,c));const b=this.return;this.highlight=this.index=this.result=this.C=this.await=this.return=null;this.query=this.field=\"\";b&&b(a);return a};function $a(a,c,b,e,d,f,g){const k=a.length;let h=[],l,m;l=I();for(let p=0,u,r,t,n;p<c;p++)for(let q=0;q<k;q++)if(t=a[q],p<t.length&&(u=t[p]))for(let x=0;x<u.length;x++){r=u[x];(m=l[r])?l[r]++:(m=0,l[r]=1);n=h[m]||(h[m]=[]);if(!g){let v=p+(q||!d?0:f||0);n=n[v]||(n[v]=[])}n.push(r);if(g&&b&&m===k-1&&n.length-e===b)return e?n.slice(e):n}if(a=h.length)if(d)h=h.length>1?Ya(h,b,e,g,f):(h=h[0])&&b&&h.length>b||e?h.slice(e,b+e):h;else{if(a<k)return[];h=h[a-1];if(b||e)if(g){if(h.length>b||e)h=h.slice(e,b+\ne)}else{d=[];for(let p=0,u;p<h.length;p++)if(u=h[p])if(e&&u.length>e)e-=u.length;else{if(b&&u.length>b||e)u=u.slice(e,b+e),b-=u.length,e&&(e-=u.length);d.push(u);if(!b)break}h=d}}return h}\nfunction Ya(a,c,b,e,d){const f=[],g=I();let k;var h=a.length;let l;if(e)for(d=h-1;d>=0;d--){if(l=(e=a[d])&&e.length)for(h=0;h<l;h++)if(k=e[h],!g[k])if(g[k]=1,b)b--;else if(f.push(k),f.length===c)return f}else for(let m=h-1,p,u=0;m>=0;m--){p=a[m];for(let r=0;r<p.length;r++)if(l=(e=p[r])&&e.length)for(let t=0;t<l;t++)if(k=e[t],!g[k])if(g[k]=1,b)b--;else{let n=(r+(m<h-1?d||0:0))/(m+1)|0;(f[n]||(f[n]=[])).push(k);if(++u===c)return f}}return f}\nfunction eb(a,c,b,e,d){const f=I(),g=[];for(let k=0,h;k<c.length;k++){h=c[k];for(let l=0;l<h.length;l++)f[h[l]]=1}if(d)for(let k=0,h;k<a.length;k++){if(h=a[k],f[h])if(e)e--;else if(g.push(h),f[h]=0,b&&--b===0)break}else for(let k=0,h,l;k<a.result.length;k++)for(h=a.result[k],c=0;c<h.length;c++)l=h[c],f[l]&&((g[k]||(g[k]=[])).push(l),f[l]=0);return g};I();Na.prototype.search=function(a,c,b,e){b||(!c&&ba(a)?(b=a,a=\"\"):ba(c)&&(b=c,c=0));let d=[];var f=[];let g;let k,h,l,m,p;let u=0,r=!0,t;if(b){b.constructor===Array&&(b={index:b});a=b.query||a;g=b.pluck;k=b.merge;l=b.boost;p=g||b.field||(p=b.index)&&(p.index?null:p);var n=this.tag&&b.tag;h=b.suggest;r=b.resolve!==!1;m=b.cache;t=r&&this.store&&b.highlight;var q=!!t||r&&this.store&&b.enrich;c=b.limit||c;var x=b.offset||0;c||(c=r?100:0);if(n&&(!this.db||!e)){n.constructor!==Array&&(n=[n]);var v=[];for(let B=\n0,z;B<n.length;B++)if(z=n[B],z.field&&z.tag){var A=z.tag;if(A.constructor===Array)for(var D=0;D<A.length;D++)v.push(z.field,A[D]);else v.push(z.field,A)}else{A=Object.keys(z);for(let C=0,J,G;C<A.length;C++)if(J=A[C],G=z[J],G.constructor===Array)for(D=0;D<G.length;D++)v.push(J,G[D]);else v.push(J,G)}n=v;if(!a){f=[];if(v.length)for(n=0;n<v.length;n+=2){if(this.db){e=this.index.get(v[n]);if(!e)continue;f.push(e=e.db.tag(v[n+1],c,x,q))}else e=fb.call(this,v[n],v[n+1],c,x,q);d.push(r?{field:v[n],tag:v[n+\n1],result:e}:[e])}if(f.length){const B=this;return Promise.all(f).then(function(z){for(let C=0;C<z.length;C++)r?d[C].result=z[C]:d[C]=z[C];return r?d:new X(d.length>1?$a(d,1,0,0,h,l):d[0],B)})}return r?d:new X(d.length>1?$a(d,1,0,0,h,l):d[0],this)}}r||g||!(p=p||this.field)||(M(p)?g=p:(p.constructor===Array&&p.length===1&&(p=p[0]),g=p.field||p.index));p&&p.constructor!==Array&&(p=[p])}p||(p=this.field);let F;v=(this.worker||this.db)&&!e&&[];for(let B=0,z,C,J;B<p.length;B++){C=p[B];if(this.db&&this.tag&&\n!this.B[B])continue;let G;M(C)||(G=C,C=G.field,a=G.query||a,c=aa(G.limit,c),x=aa(G.offset,x),h=aa(G.suggest,h),t=r&&this.store&&aa(G.highlight,t),q=!!t||r&&this.store&&aa(G.enrich,q),m=aa(G.cache,m));if(e)z=e[B];else{A=G||b||{};D=A.enrich;var E=this.index.get(C);n&&(this.db&&(A.tag=n,A.field=p,F=E.db.support_tag_search),!F&&D&&(A.enrich=!1),F||(A.limit=0,A.offset=0));z=m?E.searchCache(a,n&&!F?0:c,A):E.search(a,n&&!F?0:c,A);n&&!F&&(A.limit=c,A.offset=x);D&&(A.enrich=D);if(v){v[B]=z;continue}}J=(z=\nz.result||z)&&z.length;if(n&&J){A=[];D=0;if(this.db&&e){if(!F)for(E=p.length;E<e.length;E++){let N=e[E];if(N&&N.length)D++,A.push(N);else if(!h)return r?d:new X(d,this)}}else for(let N=0,O,P;N<n.length;N+=2){O=this.tag.get(n[N]);if(!O)if(h)continue;else return r?d:new X(d,this);if(P=(O=O&&O.get(n[N+1]))&&O.length)D++,A.push(O);else if(!h)return r?d:new X(d,this)}if(D){z=eb(z,A,c,x,r);J=z.length;if(!J&&!h)return r?z:new X(z,this);D--}}if(J)f[u]=C,d.push(z),u++;else if(p.length===1)return r?d:new X(d,\nthis)}if(v){if(this.db&&n&&n.length&&!F)for(q=0;q<n.length;q+=2){f=this.index.get(n[q]);if(!f)if(h)continue;else return r?d:new X(d,this);v.push(f.db.tag(n[q+1],c,x,!1))}const B=this;return Promise.all(v).then(function(z){b&&(b.resolve=r);z.length&&(z=B.search(a,c,b,z));return z})}if(!u)return r?d:new X(d,this);if(g&&(!q||!this.store))return d=d[0],r?d:new X(d,this);v=[];for(x=0;x<f.length;x++){n=d[x];q&&n.length&&typeof n[0].doc===\"undefined\"&&(this.db?v.push(n=this.index.get(this.field[0]).db.enrich(n)):\nn=Ta.call(this,n));if(g)return r?t?cb(a,n,this.index,g,t):n:new X(n,this);d[x]={field:f[x],result:n}}if(q&&this.db&&v.length){const B=this;return Promise.all(v).then(function(z){for(let C=0;C<z.length;C++)d[C].result=z[C];t&&(d=cb(a,d,B.index,g,t));return k?gb(d):d})}t&&(d=cb(a,d,this.index,g,t));return k?gb(d):d};\nfunction gb(a){const c=[],b=I(),e=I();for(let d=0,f,g,k,h,l,m,p;d<a.length;d++){f=a[d];g=f.field;k=f.result;for(let u=0;u<k.length;u++)if(l=k[u],typeof l!==\"object\"?l={id:h=l}:h=l.id,(m=b[h])?m.push(g):(l.field=b[h]=[g],c.push(l)),p=l.highlight)m=e[h],m||(e[h]=m={},l.highlight=m),m[g]=p}return c}function fb(a,c,b,e,d){a=this.tag.get(a);if(!a)return[];a=a.get(c);if(!a)return[];c=a.length-e;if(c>0){if(b&&c>b||e)a=a.slice(e,e+b);d&&(a=Ta.call(this,a))}return a}\nfunction Ta(a){if(!this||!this.store)return a;if(this.db)return this.index.get(this.field[0]).db.enrich(a);const c=Array(a.length);for(let b=0,e;b<a.length;b++)e=a[b],c[b]={id:e,doc:this.store.get(e)};return c};function Na(a){if(!this||this.constructor!==Na)return new Na(a);const c=a.document||a.doc||a;let b,e;this.B=[];this.field=[];this.D=[];this.key=(b=c.key||c.id)&&hb(b,this.D)||\"id\";(e=a.keystore||0)&&(this.keystore=e);this.fastupdate=!!a.fastupdate;this.reg=!this.fastupdate||a.worker||a.db?e?new S(e):new Set:e?new R(e):new Map;this.h=(b=c.store||null)&&b&&b!==!0&&[];this.store=b?e?new R(e):new Map:null;this.cache=(b=a.cache||null)&&new ma(b);a.cache=!1;this.worker=a.worker||!1;this.priority=a.priority||\n4;this.index=ib.call(this,a,c);this.tag=null;if(b=c.tag)if(typeof b===\"string\"&&(b=[b]),b.length){this.tag=new Map;this.A=[];this.F=[];for(let d=0,f,g;d<b.length;d++){f=b[d];g=f.field||f;if(!g)throw Error(\"The tag field from the document descriptor is undefined.\");f.custom?this.A[d]=f.custom:(this.A[d]=hb(g,this.D),f.filter&&(typeof this.A[d]===\"string\"&&(this.A[d]=new String(this.A[d])),this.A[d].G=f.filter));this.F[d]=g;this.tag.set(g,new Map)}}if(this.worker){this.fastupdate=!1;a=[];for(const d of this.index.values())d.then&&\na.push(d);if(a.length){const d=this;return Promise.all(a).then(function(f){let g=0;for(const k of d.index.entries()){const h=k[0];let l=k[1];l.then&&(l=f[g],d.index.set(h,l),g++)}return d})}}else a.db&&(this.fastupdate=!1,this.mount(a.db))}w=Na.prototype;\nw.mount=function(a){let c=this.field;if(this.tag)for(let f=0,g;f<this.F.length;f++){g=this.F[f];var b=void 0;this.index.set(g,b=new T({},this.reg));c===this.field&&(c=c.slice(0));c.push(g);b.tag=this.tag.get(g)}b=[];const e={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let f=0,g,k;f<c.length;f++){e.field=k=c[f];g=this.index.get(k);const h=new a.constructor(a.id,e);h.id=a.id;b[f]=h.mount(g);g.document=!0;f?g.bypass=!0:g.store=this.store}const d=this;return this.db=Promise.all(b).then(function(){d.db=\n!0})};w.commit=async function(){const a=[];for(const c of this.index.values())a.push(c.commit());await Promise.all(a);this.reg.clear()};w.destroy=function(){const a=[];for(const c of this.index.values())a.push(c.destroy());return Promise.all(a)};\nfunction ib(a,c){const b=new Map;let e=c.index||c.field||c;M(e)&&(e=[e]);for(let f=0,g,k;f<e.length;f++){g=e[f];M(g)||(k=g,g=g.field);k=ba(k)?Object.assign({},a,k):a;if(this.worker){var d=void 0;d=(d=k.encoder)&&d.encode?d:new ka(typeof d===\"string\"?va[d]:d||{});d=new La(k,d);b.set(g,d)}this.worker||b.set(g,new T(k,this.reg));k.custom?this.B[f]=k.custom:(this.B[f]=hb(g,this.D),k.filter&&(typeof this.B[f]===\"string\"&&(this.B[f]=new String(this.B[f])),this.B[f].G=k.filter));this.field[f]=g}if(this.h){a=\nc.store;M(a)&&(a=[a]);for(let f=0,g,k;f<a.length;f++)g=a[f],k=g.field||g,g.custom?(this.h[f]=g.custom,g.custom.O=k):(this.h[f]=hb(k,this.D),g.filter&&(typeof this.h[f]===\"string\"&&(this.h[f]=new String(this.h[f])),this.h[f].G=g.filter))}return b}function hb(a,c){const b=a.split(\":\");let e=0;for(let d=0;d<b.length;d++)a=b[d],a[a.length-1]===\"]\"&&(a=a.substring(0,a.length-2))&&(c[e]=!0),a&&(b[e++]=a);e<b.length&&(b.length=e);return e>1?b:b[0]}w.append=function(a,c){return this.add(a,c,!0)};\nw.update=function(a,c){return this.remove(a).add(a,c)};w.remove=function(a){ba(a)&&(a=ca(a,this.key));for(var c of this.index.values())c.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let b of this.tag.values())for(let e of b){c=e[0];const d=e[1],f=d.indexOf(a);f>-1&&(d.length>1?d.splice(f,1):b.delete(c))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};\nw.clear=function(){const a=[];for(const c of this.index.values()){const b=c.clear();b.then&&a.push(b)}if(this.tag)for(const c of this.tag.values())c.clear();this.store&&this.store.clear();this.cache&&this.cache.clear();return a.length?Promise.all(a):this};w.contain=function(a){return this.db?this.index.get(this.field[0]).db.has(a):this.reg.has(a)};w.cleanup=function(){for(const a of this.index.values())a.cleanup();return this};\nw.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(c){return c[0]&&c[0].doc||null}):this.store.get(a)||null};w.set=function(a,c){typeof a===\"object\"&&(c=a,a=ca(c,this.key));this.store.set(a,c);return this};w.searchCache=la;w.export=jb;w.import=kb;Fa(Na.prototype);function lb(a,c=0){let b=[],e=[];c&&(c=25E4/c*5E3|0);for(const d of a.entries())e.push(d),e.length===c&&(b.push(e),e=[]);e.length&&b.push(e);return b}function mb(a,c){c||(c=new Map);for(let b=0,e;b<a.length;b++)e=a[b],c.set(e[0],e[1]);return c}function nb(a,c=0){let b=[],e=[];c&&(c=25E4/c*1E3|0);for(const d of a.entries())e.push([d[0],lb(d[1])[0]||[]]),e.length===c&&(b.push(e),e=[]);e.length&&b.push(e);return b}\nfunction ob(a,c){c||(c=new Map);for(let b=0,e,d;b<a.length;b++)e=a[b],d=c.get(e[0]),c.set(e[0],mb(e[1],d));return c}function pb(a){let c=[],b=[];for(const e of a.keys())b.push(e),b.length===25E4&&(c.push(b),b=[]);b.length&&c.push(b);return c}function qb(a,c){c||(c=new Set);for(let b=0;b<a.length;b++)c.add(a[b]);return c}\nfunction rb(a,c,b,e,d,f,g=0){const k=e&&e.constructor===Array;var h=k?e.shift():e;if(!h)return this.export(a,c,d,f+1);if((h=a((c?c+\".\":\"\")+(g+1)+\".\"+b,JSON.stringify(h)))&&h.then){const l=this;return h.then(function(){return rb.call(l,a,c,b,k?e:null,d,f,g+1)})}return rb.call(this,a,c,b,k?e:null,d,f,g+1)}\nfunction jb(a,c,b=0,e=0){if(b<this.field.length){const g=this.field[b];if((c=this.index.get(g).export(a,g,b,e=1))&&c.then){const k=this;return c.then(function(){return k.export(a,g,b+1)})}return this.export(a,g,b+1)}let d,f;switch(e){case 0:d=\"reg\";f=pb(this.reg);c=null;break;case 1:d=\"tag\";f=this.tag&&nb(this.tag,this.reg.size);c=null;break;case 2:d=\"doc\";f=this.store&&lb(this.store);c=null;break;default:return}return rb.call(this,a,c,d,f||null,b,e)}\nfunction kb(a,c){var b=a.split(\".\");b[b.length-1]===\"json\"&&b.pop();const e=b.length>2?b[0]:\"\";b=b.length>2?b[2]:b[1];if(this.worker&&e)return this.index.get(e).import(a);if(c){typeof c===\"string\"&&(c=JSON.parse(c));if(e)return this.index.get(e).import(b,c);switch(b){case \"reg\":this.fastupdate=!1;this.reg=qb(c,this.reg);for(let d=0,f;d<this.field.length;d++)f=this.index.get(this.field[d]),f.fastupdate=!1,f.reg=this.reg;if(this.worker){c=[];for(const d of this.index.values())c.push(d.import(a));return Promise.all(c)}break;\ncase \"tag\":this.tag=ob(c,this.tag);break;case \"doc\":this.store=mb(c,this.store)}}}function sb(a,c){let b=\"\";for(const e of a.entries()){a=e[0];const d=e[1];let f=\"\";for(let g=0,k;g<d.length;g++){k=d[g]||[\"\"];let h=\"\";for(let l=0;l<k.length;l++)h+=(h?\",\":\"\")+(c===\"string\"?'\"'+k[l]+'\"':k[l]);h=\"[\"+h+\"]\";f+=(f?\",\":\"\")+h}f='[\"'+a+'\",['+f+\"]]\";b+=(b?\",\":\"\")+f}return b};T.prototype.remove=function(a,c){const b=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(b){if(this.fastupdate)for(let e=0,d,f;e<b.length;e++){if((d=b[e])&&(f=d.length))if(d[f-1]===a)d.pop();else{const g=d.indexOf(a);g>=0&&d.splice(g,1)}}else tb(this.map,a),this.depth&&tb(this.ctx,a);c||this.reg.delete(a)}this.db&&(this.commit_task.push({del:a}),this.M&&ub(this));this.cache&&this.cache.remove(a);return this};\nfunction tb(a,c){let b=0;var e=typeof c===\"undefined\";if(a.constructor===Array)for(let d=0,f,g,k;d<a.length;d++){if((f=a[d])&&f.length){if(e)return 1;g=f.indexOf(c);if(g>=0){if(f.length>1)return f.splice(g,1),1;delete a[d];if(b)return 1;k=1}else{if(k)return 1;b++}}}else for(let d of a.entries())e=d[0],tb(d[1],c)?b++:a.delete(e);return b};const vb={memory:{resolution:1},performance:{resolution:3,fastupdate:!0,context:{depth:1,resolution:1}},match:{tokenize:\"forward\"},score:{resolution:9,context:{depth:2,resolution:3}}};T.prototype.add=function(a,c,b,e){if(c&&(a||a===0)){if(!e&&!b&&this.reg.has(a))return this.update(a,c);e=this.depth;c=this.encoder.encode(c,!e);const l=c.length;if(l){const m=I(),p=I(),u=this.resolution;for(let r=0;r<l;r++){let t=c[this.rtl?l-1-r:r];var d=t.length;if(d&&(e||!p[t])){var f=this.score?this.score(c,t,r,null,0):wb(u,l,r),g=\"\";switch(this.tokenize){case \"tolerant\":Y(this,p,t,f,a,b);if(d>2){for(let n=1,q,x,v,A;n<d-1;n++)q=t.charAt(n),x=t.charAt(n+1),v=t.substring(0,n)+x,A=t.substring(n+\n2),g=v+q+A,Y(this,p,g,f,a,b),g=v+A,Y(this,p,g,f,a,b);Y(this,p,t.substring(0,t.length-1),f,a,b)}break;case \"full\":if(d>2){for(let n=0,q;n<d;n++)for(f=d;f>n;f--){g=t.substring(n,f);q=this.rtl?d-1-n:n;var k=this.score?this.score(c,t,r,g,q):wb(u,l,r,d,q);Y(this,p,g,k,a,b)}break}case \"bidirectional\":case \"reverse\":if(d>1){for(k=d-1;k>0;k--){g=t[this.rtl?d-1-k:k]+g;var h=this.score?this.score(c,t,r,g,k):wb(u,l,r,d,k);Y(this,p,g,h,a,b)}g=\"\"}case \"forward\":if(d>1){for(k=0;k<d;k++)g+=t[this.rtl?d-1-k:k],Y(this,\np,g,f,a,b);break}default:if(Y(this,p,t,f,a,b),e&&l>1&&r<l-1)for(d=this.N,g=t,f=Math.min(e+1,this.rtl?r+1:l-r),k=1;k<f;k++){t=c[this.rtl?l-1-r-k:r+k];h=this.bidirectional&&t>g;const n=this.score?this.score(c,g,r,t,k-1):wb(d+(l/2>d?0:1),l,r,f-1,k-1);Y(this,m,h?g:t,n,a,b,h?t:g)}}}}this.fastupdate||this.reg.add(a)}}this.db&&(this.commit_task.push(b?{ins:a}:{del:a}),this.M&&ub(this));return this};\nfunction Y(a,c,b,e,d,f,g){let k,h;if(!(k=c[b])||g&&!k[g]){g?(c=k||(c[b]=I()),c[g]=1,h=a.ctx,(k=h.get(g))?h=k:h.set(g,h=a.keystore?new R(a.keystore):new Map)):(h=a.map,c[b]=1);(k=h.get(b))?h=k:h.set(b,h=k=[]);if(f)for(let l=0,m;l<k.length;l++)if((m=k[l])&&m.includes(d)){if(l<=e)return;m.splice(m.indexOf(d),1);a.fastupdate&&(c=a.reg.get(d))&&c.splice(c.indexOf(m),1);break}h=h[e]||(h[e]=[]);h.push(d);if(h.length===2**31-1){c=new xa(h);if(a.fastupdate)for(let l of a.reg.values())l.includes(h)&&(l[l.indexOf(h)]=\nc);k[e]=h=c}a.fastupdate&&((e=a.reg.get(d))?e.push(h):a.reg.set(d,[h]))}}function wb(a,c,b,e,d){return b&&a>1?c+(e||0)<=a?b+(d||0):(a-1)/(c+(e||0))*(b+(d||0))+1|0:0};T.prototype.search=function(a,c,b){b||(c||typeof a!==\"object\"?typeof c===\"object\"&&(b=c,c=0):(b=a,a=\"\"));if(b&&b.cache)return b.cache=!1,a=this.searchCache(a,c,b),b.cache=!0,a;let e=[],d,f,g,k=0,h,l,m,p,u;b&&(a=b.query||a,c=b.limit||c,k=b.offset||0,f=b.context,g=b.suggest,u=(h=b.resolve)&&b.enrich,m=b.boost,p=b.resolution,l=this.db&&b.tag);typeof h===\"undefined\"&&(h=this.resolve);f=this.depth&&f!==!1;let r=this.encoder.encode(a,!f);d=r.length;c=c||(h?100:0);if(d===1)return xb.call(this,r[0],\"\",c,\nk,h,u,l);if(d===2&&f&&!g)return xb.call(this,r[1],r[0],c,k,h,u,l);let t=I(),n=0,q;f&&(q=r[0],n=1);p||p===0||(p=q?this.N:this.resolution);if(this.db){if(this.db.search&&(b=this.db.search(this,r,c,k,g,h,u,l),b!==!1))return b;const x=this;return async function(){for(let v,A;n<d;n++){if((A=r[n])&&!t[A]){t[A]=1;v=await yb(x,A,q,0,0,!1,!1);if(v=zb(v,e,g,p)){e=v;break}q&&(g&&v&&e.length||(q=A))}g&&q&&n===d-1&&!e.length&&(p=x.resolution,q=\"\",n=-1,t=I())}return Ab(e,p,c,k,g,m,h)}()}for(let x,v;n<d;n++){if((v=\nr[n])&&!t[v]){t[v]=1;x=yb(this,v,q,0,0,!1,!1);if(x=zb(x,e,g,p)){e=x;break}q&&(g&&x&&e.length||(q=v))}g&&q&&n===d-1&&!e.length&&(p=this.resolution,q=\"\",n=-1,t=I())}return Ab(e,p,c,k,g,m,h)};function Ab(a,c,b,e,d,f,g){let k=a.length,h=a;if(k>1)h=$a(a,c,b,e,d,f,g);else if(k===1)return g?Sa.call(null,a[0],b,e):new X(a[0],this);return g?h:new X(h,this)}\nfunction xb(a,c,b,e,d,f,g){a=yb(this,a,c,b,e,d,f,g);return this.db?a.then(function(k){return d?k||[]:new X(k,this)}):a&&a.length?d?Sa.call(this,a,b,e):new X(a,this):d?[]:new X([],this)}function zb(a,c,b,e){let d=[];if(a&&a.length){if(a.length<=e){c.push(a);return}for(let f=0,g;f<e;f++)if(g=a[f])d[f]=g;if(d.length){c.push(d);return}}if(!b)return d}\nfunction yb(a,c,b,e,d,f,g,k){let h;b&&(h=a.bidirectional&&c>b)&&(h=b,b=c,c=h);if(a.db)return a.db.get(c,b,e,d,f,g,k);a=b?(a=a.ctx.get(b))&&a.get(c):a.map.get(c);return a};function T(a,c){if(!this||this.constructor!==T)return new T(a);if(a){var b=M(a)?a:a.preset;b&&(a=Object.assign({},vb[b],a))}else a={};b=a.context;const e=b===!0?{depth:1}:b||{},d=M(a.encoder)?va[a.encoder]:a.encode||a.encoder||{};this.encoder=d.encode?d:typeof d===\"object\"?new ka(d):{encode:d};this.resolution=a.resolution||9;this.tokenize=b=(b=a.tokenize)&&b!==\"default\"&&b!==\"exact\"&&b||\"strict\";this.depth=b===\"strict\"&&e.depth||0;this.bidirectional=e.bidirectional!==!1;this.fastupdate=!!a.fastupdate;\nthis.score=a.score||null;(b=a.keystore||0)&&(this.keystore=b);this.map=b?new R(b):new Map;this.ctx=b?new R(b):new Map;this.reg=c||(this.fastupdate?b?new R(b):new Map:b?new S(b):new Set);this.N=e.resolution||3;this.rtl=d.rtl||a.rtl||!1;this.cache=(b=a.cache||null)&&new ma(b);this.resolve=a.resolve!==!1;if(b=a.db)this.db=this.mount(b);this.M=a.commit!==!1;this.commit_task=[];this.commit_timer=null;this.priority=a.priority||4}w=T.prototype;\nw.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};w.commit=function(){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.commit(this)};w.destroy=function(){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.destroy()};function ub(a){a.commit_timer||(a.commit_timer=setTimeout(function(){a.commit_timer=null;a.db.commit(a)},1))}\nw.clear=function(){this.map.clear();this.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this.db?(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[],this.db.clear()):this};w.append=function(a,c){return this.add(a,c,!0)};w.contain=function(a){return this.db?this.db.has(a):this.reg.has(a)};w.update=function(a,c){const b=this,e=this.remove(a);return e&&e.then?e.then(()=>b.add(a,c)):this.add(a,c)};\nw.cleanup=function(){if(!this.fastupdate)return this;tb(this.map);this.depth&&tb(this.ctx);return this};w.searchCache=la;w.export=function(a,c,b=0,e=0){let d,f;switch(e){case 0:d=\"reg\";f=pb(this.reg);break;case 1:d=\"cfg\";f=null;break;case 2:d=\"map\";f=lb(this.map,this.reg.size);break;case 3:d=\"ctx\";f=nb(this.ctx,this.reg.size);break;default:return}return rb.call(this,a,c,d,f,b,e)};\nw.import=function(a,c){if(c)switch(typeof c===\"string\"&&(c=JSON.parse(c)),a=a.split(\".\"),a[a.length-1]===\"json\"&&a.pop(),a.length===3&&a.shift(),a=a.length>1?a[1]:a[0],a){case \"reg\":this.fastupdate=!1;this.reg=qb(c,this.reg);break;case \"map\":this.map=mb(c,this.map);break;case \"ctx\":this.ctx=ob(c,this.ctx)}};\nw.serialize=function(a=!0){let c=\"\",b=\"\",e=\"\";if(this.reg.size){let f;for(var d of this.reg.keys())f||(f=typeof d),c+=(c?\",\":\"\")+(f===\"string\"?'\"'+d+'\"':d);c=\"index.reg=new Set([\"+c+\"]);\";b=sb(this.map,f);b=\"index.map=new Map([\"+b+\"]);\";for(const g of this.ctx.entries()){d=g[0];let k=sb(g[1],f);k=\"new Map([\"+k+\"])\";k='[\"'+d+'\",'+k+\"]\";e+=(e?\",\":\"\")+k}e=\"index.ctx=new Map([\"+e+\"]);\"}return a?\"function inject(index){\"+c+b+e+\"}\":c+b+e};Fa(T.prototype);const Bb=typeof window!==\"undefined\"&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Cb=[\"map\",\"ctx\",\"tag\",\"reg\",\"cfg\"],Db=I();\nfunction Eb(a,c={}){if(!this||this.constructor!==Eb)return new Eb(a,c);typeof a===\"object\"&&(c=a,a=a.name);a||console.info(\"Default storage space was used, because a name was not passed.\");this.id=\"flexsearch\"+(a?\":\"+a.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\");this.field=c.field?c.field.toLowerCase().replace(/[^a-z0-9_\\-]/g,\"\"):\"\";this.type=c.type;this.fastupdate=this.support_tag_search=!1;this.db=null;this.h={}}w=Eb.prototype;w.mount=function(a){if(a.index)return a.mount(this);a.db=this;return this.open()};\nw.open=function(){if(this.db)return this.db;let a=this;navigator.storage&&navigator.storage.persist&&navigator.storage.persist();Db[a.id]||(Db[a.id]=[]);Db[a.id].push(a.field);const c=Bb.open(a.id,1);c.onupgradeneeded=function(){const b=a.db=this.result;for(let e=0,d;e<Cb.length;e++){d=Cb[e];for(let f=0,g;f<Db[a.id].length;f++)g=Db[a.id][f],b.objectStoreNames.contains(d+(d!==\"reg\"?g?\":\"+g:\"\":\"\"))||b.createObjectStore(d+(d!==\"reg\"?g?\":\"+g:\"\":\"\"))}};return a.db=Z(c,function(b){a.db=b;a.db.onversionchange=\nfunction(){a.close()}})};w.close=function(){this.db&&this.db.close();this.db=null};w.destroy=function(){const a=Bb.deleteDatabase(this.id);return Z(a)};w.clear=function(){const a=[];for(let b=0,e;b<Cb.length;b++){e=Cb[b];for(let d=0,f;d<Db[this.id].length;d++)f=Db[this.id][d],a.push(e+(e!==\"reg\"?f?\":\"+f:\"\":\"\"))}const c=this.db.transaction(a,\"readwrite\");for(let b=0;b<a.length;b++)c.objectStore(a[b]).clear();return Z(c)};\nw.get=function(a,c,b=0,e=0,d=!0,f=!1){a=this.db.transaction((c?\"ctx\":\"map\")+(this.field?\":\"+this.field:\"\"),\"readonly\").objectStore((c?\"ctx\":\"map\")+(this.field?\":\"+this.field:\"\")).get(c?c+\":\"+a:a);const g=this;return Z(a).then(function(k){let h=[];if(!k||!k.length)return h;if(d){if(!b&&!e&&k.length===1)return k[0];for(let l=0,m;l<k.length;l++)if((m=k[l])&&m.length){if(e>=m.length){e-=m.length;continue}const p=b?e+Math.min(m.length-e,b):m.length;for(let u=e;u<p;u++)h.push(m[u]);e=0;if(h.length===b)break}return f?\ng.enrich(h):h}return k})};w.tag=function(a,c=0,b=0,e=!1){a=this.db.transaction(\"tag\"+(this.field?\":\"+this.field:\"\"),\"readonly\").objectStore(\"tag\"+(this.field?\":\"+this.field:\"\")).get(a);const d=this;return Z(a).then(function(f){if(!f||!f.length||b>=f.length)return[];if(!c&&!b)return f;f=f.slice(b,b+c);return e?d.enrich(f):f})};\nw.enrich=function(a){typeof a!==\"object\"&&(a=[a]);const c=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\"),b=[];for(let e=0;e<a.length;e++)b[e]=Z(c.get(a[e]));return Promise.all(b).then(function(e){for(let d=0;d<e.length;d++)e[d]={id:a[d],doc:e[d]?JSON.parse(e[d]):null};return e})};w.has=function(a){a=this.db.transaction(\"reg\",\"readonly\").objectStore(\"reg\").getKey(a);return Z(a).then(function(c){return!!c})};w.search=null;w.info=function(){};\nw.transaction=function(a,c,b){a+=a!==\"reg\"?this.field?\":\"+this.field:\"\":\"\";let e=this.h[a+\":\"+c];if(e)return b.call(this,e);let d=this.db.transaction(a,c);this.h[a+\":\"+c]=e=d.objectStore(a);const f=b.call(this,e);this.h[a+\":\"+c]=null;return Z(d).finally(function(){return f})};\nw.commit=async function(a){let c=a.commit_task,b=[];a.commit_task=[];for(let e=0,d;e<c.length;e++)d=c[e],d.del&&b.push(d.del);b.length&&await this.remove(b);a.reg.size&&(await this.transaction(\"map\",\"readwrite\",function(e){for(const d of a.map){const f=d[0],g=d[1];g.length&&(e.get(f).onsuccess=function(){let k=this.result;var h;if(k&&k.length){const l=Math.max(k.length,g.length);for(let m=0,p,u;m<l;m++)if((u=g[m])&&u.length){if((p=k[m])&&p.length)for(h=0;h<u.length;h++)p.push(u[h]);else k[m]=u;h=\n1}}else k=g,h=1;h&&e.put(k,f)})}}),await this.transaction(\"ctx\",\"readwrite\",function(e){for(const d of a.ctx){const f=d[0],g=d[1];for(const k of g){const h=k[0],l=k[1];l.length&&(e.get(f+\":\"+h).onsuccess=function(){let m=this.result;var p;if(m&&m.length){const u=Math.max(m.length,l.length);for(let r=0,t,n;r<u;r++)if((n=l[r])&&n.length){if((t=m[r])&&t.length)for(p=0;p<n.length;p++)t.push(n[p]);else m[r]=n;p=1}}else m=l,p=1;p&&e.put(m,f+\":\"+h)})}}}),a.store?await this.transaction(\"reg\",\"readwrite\",\nfunction(e){for(const d of a.store){const f=d[0],g=d[1];e.put(typeof g===\"object\"?JSON.stringify(g):1,f)}}):a.bypass||await this.transaction(\"reg\",\"readwrite\",function(e){for(const d of a.reg.keys())e.put(1,d)}),a.tag&&await this.transaction(\"tag\",\"readwrite\",function(e){for(const d of a.tag){const f=d[0],g=d[1];g.length&&(e.get(f).onsuccess=function(){let k=this.result;k=k&&k.length?k.concat(g):g;e.put(k,f)})}}),a.map.clear(),a.ctx.clear(),a.tag&&a.tag.clear(),a.store&&a.store.clear(),a.document||\na.reg.clear())};function Fb(a,c,b){const e=a.value;let d,f=0;for(let g=0,k;g<e.length;g++){if(k=b?e:e[g]){for(let h=0,l,m;h<c.length;h++)if(m=c[h],l=k.indexOf(m),l>=0)if(d=1,k.length>1)k.splice(l,1);else{e[g]=[];break}f+=k.length}if(b)break}f?d&&a.update(e):a.delete();a.continue()}\nw.remove=function(a){typeof a!==\"object\"&&(a=[a]);return Promise.all([this.transaction(\"map\",\"readwrite\",function(c){c.openCursor().onsuccess=function(){const b=this.result;b&&Fb(b,a)}}),this.transaction(\"ctx\",\"readwrite\",function(c){c.openCursor().onsuccess=function(){const b=this.result;b&&Fb(b,a)}}),this.transaction(\"tag\",\"readwrite\",function(c){c.openCursor().onsuccess=function(){const b=this.result;b&&Fb(b,a,!0)}}),this.transaction(\"reg\",\"readwrite\",function(c){for(let b=0;b<a.length;b++)c.delete(a[b])})])};\nfunction Z(a,c){return new Promise((b,e)=>{a.onsuccess=a.oncomplete=function(){c&&c(this.result);c=null;b(this.result)};a.onerror=a.onblocked=e;a=null})};export default {Index:T,Charset:va,Encoder:ka,Document:Na,Worker:La,Resolver:X,IndexedDB:Eb,Language:{}};\nexport const Index=T;export const Charset=va;export const Encoder=ka;export const Document=Na;export const Worker=La;export const Resolver=X;export const IndexedDB=Eb;export const Language={};","export default \"__VITE_ASSET__WPGYjwIlzWVNM1bYhOc83w__\"","import { api } from './api';\nimport db from './db';\nimport isSearchEnabled from './is-search-enabled';\nimport store from './store';\nimport { getCurrentAccount, getCurrentAccountNS } from './store-utils';\n\nconst YEAR_IN_POSTS_LIST_KEY = 'year-in-posts-list';\n\nexport function loadAvailableYears() {\n try {\n const list = store.account.get(YEAR_IN_POSTS_LIST_KEY) || {};\n const sortedYears = Object.entries(list)\n .map(([year, data]) => ({ year: parseInt(year), ...data }))\n .sort((a, b) => b.year - a.year);\n return sortedYears;\n } catch (e) {\n console.error(e);\n return [];\n }\n}\n\nexport async function removeYear(yearToRemove) {\n try {\n const NS = getCurrentAccountNS();\n const dataId = `${NS}-${yearToRemove}`;\n await db.yearInPosts.del(dataId);\n\n const list = store.account.get(YEAR_IN_POSTS_LIST_KEY) || {};\n delete list[yearToRemove];\n store.account.set(YEAR_IN_POSTS_LIST_KEY, list);\n\n return true;\n } catch (e) {\n console.error(e);\n throw e;\n }\n}\n\nfunction isPostInYear(createdAt, year) {\n const postDate = new Date(createdAt);\n const startOfYear = new Date(year, 0, 1);\n const endOfYear = new Date(year, 11, 31, 23, 59, 59, 999);\n return postDate >= startOfYear && postDate <= endOfYear;\n}\n\nexport async function fetchYearPosts(year) {\n const { masto, instance } = api();\n const allResults = [];\n let gapsFilled = false;\n\n const account = getCurrentAccount();\n if (!account) {\n throw new Error('No current account');\n }\n const accountId = account.info.id;\n const accountAcct = account.info.acct;\n\n const startOfYear = new Date(year, 0, 1);\n const endOfYear = new Date(year, 11, 31, 23, 59, 59, 999);\n\n const searchEnabled = await isSearchEnabled(instance);\n\n // Use search strategies if available\n let maxId = null;\n if (searchEnabled) {\n try {\n const latestPostIterator = masto.v1.accounts\n .$select(accountId)\n .statuses.list({\n limit: 1,\n exclude_replies: false,\n exclude_reblogs: false,\n })\n .values();\n const latestResult = await latestPostIterator.next();\n\n if (latestResult?.value?.length) {\n const latestPost = latestResult.value[0];\n if (!isPostInYear(latestPost.createdAt, year)) {\n // Use \"before\" search to find last post before year ends\n const beforeStr = `${year + 1}-01-02`;\n try {\n const beforeResults = await masto.v2.search.list({\n q: `from:${accountAcct} before:${beforeStr}`,\n type: 'statuses',\n limit: 1,\n });\n\n if (beforeResults?.statuses?.length) {\n maxId = beforeResults.statuses[0].id;\n }\n } catch (e) {\n console.error('Before search failed', e);\n }\n }\n }\n } catch (e) {\n console.error('Failed to fetch latest post', e);\n }\n }\n\n const statusIterator = masto.v1.accounts\n .$select(accountId)\n .statuses.list({\n limit: 40,\n exclude_replies: false,\n exclude_reblogs: false,\n max_id: maxId || undefined,\n })\n .values();\n\n let stillAfterYear = true;\n fetchLoop: while (true) {\n try {\n const result = await statusIterator.next();\n const { value, done } = result;\n\n if (done || !value?.length) break fetchLoop;\n\n let foundInYear = false;\n for (const status of value) {\n const createdAt = new Date(status.createdAt);\n if (createdAt > endOfYear) {\n continue;\n } else {\n stillAfterYear = false;\n }\n if (createdAt >= startOfYear) {\n allResults.push(status);\n foundInYear = true;\n }\n }\n\n // Only break if we didn't find any posts in the year in this batch\n if (!foundInYear && !stillAfterYear) break fetchLoop;\n\n await new Promise((resolve) => setTimeout(resolve, 500));\n } catch (e) {\n console.error(e);\n break fetchLoop;\n }\n }\n\n allResults.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));\n\n // Forward verification to check for gaps\n if (allResults.length > 0) {\n try {\n const earliestFetched = allResults[0];\n const earliestId = earliestFetched.id;\n\n // Loop to fetch all posts forward from earliest within the year\n const gapCheckIterator = masto.v1.accounts\n .$select(accountId)\n .statuses.list({\n limit: 40,\n min_id: earliestId,\n exclude_replies: false,\n exclude_reblogs: false,\n })\n .values();\n\n gapFillLoop: while (true) {\n try {\n const result = await gapCheckIterator.next();\n const { value, done } = result;\n\n if (done || !value?.length) break gapFillLoop;\n\n let foundInYear = false;\n for (const status of value) {\n const createdAt = new Date(status.createdAt);\n if (createdAt < startOfYear) {\n continue;\n }\n if (createdAt <= endOfYear) {\n if (!allResults.find((s) => s.id === status.id)) {\n allResults.push(status);\n gapsFilled = true;\n }\n foundInYear = true;\n }\n }\n\n // Only break if we didn't find any posts in the year in this batch\n if (!foundInYear) break gapFillLoop;\n\n await new Promise((resolve) => setTimeout(resolve, 500));\n } catch (e) {\n console.error(e);\n break gapFillLoop;\n }\n }\n\n if (gapsFilled) {\n allResults.sort(\n (a, b) => new Date(a.createdAt) - new Date(b.createdAt),\n );\n }\n } catch (e) {\n console.error('Gap check failed', e);\n }\n }\n\n let totalSize = 0;\n try {\n totalSize = new TextEncoder().encode(JSON.stringify(allResults)).length;\n } catch (e) {\n console.error('Error calculating total size:', e);\n }\n\n const NS = getCurrentAccountNS();\n const dataId = `${NS}-${year}`;\n const timezoneOffset = new Date().getTimezoneOffset();\n\n await db.yearInPosts.set(dataId, {\n id: dataId,\n posts: allResults,\n count: allResults.length,\n year,\n size: totalSize,\n fetchedAt: Date.now(),\n timezoneOffset,\n });\n\n const list = store.account.get(YEAR_IN_POSTS_LIST_KEY) || {};\n list[year] = {\n count: allResults.length,\n size: totalSize,\n fetchedAt: Date.now(),\n timezoneOffset,\n };\n store.account.set(YEAR_IN_POSTS_LIST_KEY, list);\n\n return {\n posts: allResults,\n searchEnabled,\n gapsFilled,\n };\n}\n","import './year-in-posts.css';\n\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport FlexSearch from 'flexsearch';\nimport { forwardRef } from 'preact/compat';\nimport {\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useSearchParams } from 'react-router-dom';\nimport { useThrottledCallback } from 'use-debounce';\n\nimport yearInPostsUrl from '../assets/features/year-in-posts.png';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport MenuConfirm from '../components/menu-confirm';\nimport Menu2 from '../components/menu2';\nimport NavMenu from '../components/nav-menu';\nimport Status from '../components/status';\nimport { api } from '../utils/api';\nimport DateTimeFormat from '../utils/date-time-format';\nimport db from '../utils/db';\nimport getHTMLText from '../utils/getHTMLText';\nimport niceDateTime from '../utils/nice-date-time';\nimport prettyBytes from '../utils/pretty-bytes';\nimport { supportsNativeQuote } from '../utils/quote-utils';\nimport showToast from '../utils/show-toast';\nimport store from '../utils/store';\nimport { getCurrentAccountNS } from '../utils/store-utils';\nimport useTitle from '../utils/useTitle';\nimport {\n fetchYearPosts,\n loadAvailableYears,\n removeYear,\n} from '../utils/year-in-posts';\n\nconst MIN_YEAR = 2005; // https://en.wikipedia.org/wiki/Microblogging#Origin\n\nfunction getDefaultYear() {\n const now = new Date();\n const currentYear = now.getFullYear();\n const currentMonth = now.getMonth();\n const currentDay = now.getDate();\n\n // Buffer 30 days before default showing current year\n if (currentMonth === 0 && currentDay <= 30) {\n return currentYear - 1;\n }\n\n return currentYear;\n}\n\nfunction formatTimezoneOffset(offset) {\n // offset is in minutes, negative for east of UTC\n const sign = offset <= 0 ? '+' : '-';\n const absOffset = Math.abs(offset);\n const hours = Math.floor(absOffset / 60);\n const minutes = absOffset % 60;\n return `UTC${sign}${hours}${minutes > 0 ? `:${String(minutes).padStart(2, '0')}` : ''}`;\n}\n\nfunction getCurrentTimezoneOffset() {\n return new Date().getTimezoneOffset();\n}\n\nconst FILTER_KEYS = {\n all: 'All',\n original: 'Original',\n replies: 'Replies',\n quotes: 'Quotes',\n boosts: 'Boosts',\n media: 'Media',\n};\n\nconst SORT_OPTIONS = [\n { key: 'relevance', condition: 'searchQuery' },\n { key: 'createdAt' },\n { key: 'repliesCount' },\n { key: 'favouritesCount' },\n { key: 'reblogsCount' },\n];\n\nfunction getMonthName(month, locale, format = 'short') {\n const date = new Date(2000, month, 1);\n return DateTimeFormat(locale, { month: format }).format(date);\n}\n\nfunction getYear(year) {\n year = parseInt(year, 10);\n return year >= MIN_YEAR && year <= new Date().getFullYear() ? year : null;\n}\n\nfunction getMonth(month) {\n month = parseInt(month, 10);\n return month >= 0 && month <= 11 ? month : null;\n}\n\nconst SEARCH_RESULT_PAGE_SIZE = 30;\n\nfunction YearInPosts() {\n const { i18n } = useLingui();\n const [searchParams, setSearchParams] = useSearchParams();\n const yearParam = searchParams.get('year');\n const monthParam = searchParams.get('month');\n const [postType, setPostType] = useState('all');\n const [searchQuery, setSearchQuery] = useState('');\n const year = getYear(yearParam);\n const month = getMonth(monthParam);\n\n useTitle(\n searchQuery\n ? `Year in Posts ${year} - Search: ${searchQuery}`\n : year\n ? month !== null\n ? `Year in Posts ${year} - ${getMonthName(month, i18n.locale)}`\n : `Year in Posts ${year}`\n : 'Year in Posts',\n '/yip',\n );\n\n const { instance } = api();\n const [uiState, setUIState] = useState('default');\n const [posts, setPosts] = useState([]);\n const [availableYears, setAvailableYears] = useState([]);\n const [searchEnabled, setSearchEnabled] = useState(true);\n const [showSearchField, setShowSearchField] = useState(!!searchQuery);\n const [searchLimit, setSearchLimit] = useState(SEARCH_RESULT_PAGE_SIZE);\n const [sortBy, setSortBy] = useState(searchQuery ? 'relevance' : 'createdAt');\n const [sortOrder, setSortOrder] = useState('asc');\n const searchFieldRef = useRef(null);\n const scrollableRef = useRef(null);\n const NS = useMemo(() => getCurrentAccountNS(), []);\n\n // Intercept slash key to focus search field on this page\n useHotkeys(\n ['Slash', '/'],\n (e) => {\n if (!showSearchField) {\n setShowSearchField(true);\n setTimeout(() => {\n searchFieldRef.current?.focus();\n }, 100);\n } else {\n // If search field is already shown, just focus it\n searchFieldRef.current?.focus();\n }\n },\n {\n useKey: true,\n preventDefault: true,\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n const isInput = ['INPUT', 'TEXTAREA'].includes(e.target.tagName);\n // Allow '/' even with Shift (e.g. German keyboards)\n if (e.key === '/') return false;\n return (\n hasModal ||\n isInput ||\n e.metaKey ||\n e.ctrlKey ||\n e.altKey ||\n e.shiftKey\n );\n },\n },\n );\n\n const totalPosts = posts.length;\n\n useEffect(() => {\n if (!searchQuery) {\n // Only hide search field if it's not focused\n const isSearchFieldFocused = searchFieldRef.current?.isFocused();\n if (!isSearchFieldFocused) {\n setShowSearchField(false);\n }\n }\n }, [searchQuery, monthParam, postType, sortBy, sortOrder]);\n\n function loadYears() {\n const years = loadAvailableYears();\n setAvailableYears(years);\n }\n\n useEffect(() => {\n if (year) return;\n loadYears();\n }, [year]);\n\n const handleGenerate = async (e) => {\n e.preventDefault();\n const generateYear = getYear(e.target.elements.year.value);\n if (generateYear) {\n try {\n const dataId = `${NS}-${generateYear}`;\n const existingData = await db.yearInPosts.get(dataId);\n\n if (existingData && existingData.year === generateYear) {\n // Year already generated, go straight to year view\n setSearchParams({ year: generateYear });\n } else {\n // Year not generated, show generating UI and fetch data\n setUIState('generating');\n await fetchYearPosts(generateYear);\n setSearchParams({ year: generateYear });\n }\n } catch (error) {\n setUIState('error');\n console.error('Failed to generate year posts:', error);\n showToast('Unable to generate year posts. Please try again.');\n } finally {\n if (uiState === 'generating') {\n setUIState('default');\n }\n }\n } else {\n showToast('Invalid year.');\n }\n };\n\n async function handleRegenerate(year) {\n try {\n setUIState('generating');\n await fetchYearPosts(year);\n setSearchParams({ year });\n } catch (e) {\n setUIState('error');\n console.error('Failed to regenerate year posts:', error);\n showToast('Unable to regenerate year posts. Please try again.');\n } finally {\n if (uiState === 'generating') {\n setUIState('default');\n }\n }\n }\n\n async function handleRemoveYear(yearToRemove) {\n if (!confirm(`Remove year ${yearToRemove} posts?`)) return;\n try {\n await removeYear(yearToRemove);\n setAvailableYears((years) =>\n years.filter((y) => y.year !== yearToRemove),\n );\n } catch (e) {\n console.error(e);\n alert('Failed to remove year data');\n }\n }\n\n const monthHeatmaps = useMemo(() => {\n const heatmaps = {};\n posts.forEach((post) => {\n const date = new Date(post.createdAt);\n const month = date.getMonth();\n const day = date.getDate();\n if (!heatmaps[month]) {\n heatmaps[month] = {};\n }\n if (!heatmaps[month][day]) {\n heatmaps[month][day] = {\n total: 0,\n original: 0,\n reply: 0,\n quote: 0,\n boost: 0,\n };\n }\n\n // Categorize post type\n const dayData = heatmaps[month][day];\n dayData.total++;\n\n if (post.reblog) {\n dayData.boost++;\n } else if (\n supportsNativeQuote() &&\n (post.quote?.id || post.quote?.quotedStatus?.id)\n ) {\n dayData.quote++;\n } else if (post.inReplyToId) {\n dayData.reply++;\n } else {\n dayData.original++;\n }\n });\n\n const result = {};\n Object.keys(heatmaps).forEach((month) => {\n const days = heatmaps[month];\n const maxCount = Math.max(...Object.values(days).map((d) => d.total));\n\n const firstDayOfMonth = new Date(year, parseInt(month), 1);\n const firstDayOfWeek = firstDayOfMonth.getDay();\n\n const calendar = [];\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n calendar.push({\n day: null,\n count: 0,\n ratio: 0,\n original: 0,\n reply: 0,\n quote: 0,\n boost: 0,\n });\n }\n\n for (let day = 1; day <= 31; day++) {\n const dayData = days[day];\n const count = dayData?.total || 0;\n const ratio = count && maxCount > 0 ? count / maxCount : 0;\n calendar.push({\n day,\n count,\n ratio,\n original: dayData?.original || 0,\n reply: dayData?.reply || 0,\n quote: dayData?.quote || 0,\n boost: dayData?.boost || 0,\n });\n }\n\n result[month] = calendar;\n });\n\n return result;\n }, [posts, year]);\n\n const monthMediaGrids = useMemo(() => {\n if (postType !== 'media') return {};\n const grids = {};\n posts.forEach((post) => {\n const date = new Date(post.createdAt);\n const m = date.getMonth();\n const d = date.getDate();\n if (!grids[m]) grids[m] = {};\n if (!grids[m][d]) grids[m][d] = [];\n grids[m][d].push(post);\n });\n\n Object.keys(grids).forEach((month) => {\n const days = grids[month];\n const firstDayOfMonth = new Date(year, parseInt(month), 1);\n const firstDayOfWeek = firstDayOfMonth.getDay();\n\n const calendar = [];\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n calendar.push(null);\n }\n\n for (let day = 1; day <= 31; day++) {\n const dayPosts = days[day] || [];\n let bestPost = null;\n let hasMedia = false;\n if (dayPosts.length > 0) {\n const postsWithMedia = dayPosts.filter((post) => {\n const actualPost = post.reblog || post;\n return (\n !post.reblog &&\n actualPost.mediaAttachments?.some(\n (media) =>\n media.previewUrl ||\n media.url ||\n media.previewRemoteUrl ||\n media.remoteUrl,\n )\n );\n });\n\n if (postsWithMedia.length > 0) {\n bestPost = postsWithMedia.reduce((topPost, post) => {\n const actualPost = post;\n const totalCount =\n (actualPost.favouritesCount || 0) +\n (actualPost.reblogsCount || 0) +\n (actualPost.repliesCount || 0) +\n (actualPost.quotesCount || 0);\n\n const topTotalCount = topPost\n ? (topPost.favouritesCount || 0) +\n (topPost.reblogsCount || 0) +\n (topPost.repliesCount || 0) +\n (topPost.quotesCount || 0)\n : -1;\n\n if (totalCount > topTotalCount) return post;\n if (totalCount === topTotalCount) return topPost || post;\n return topPost;\n }, null);\n hasMedia = true;\n }\n }\n calendar.push(bestPost ? { post: bestPost, hasMedia } : { hasMedia });\n }\n\n grids[month] = calendar;\n });\n\n return grids;\n }, [posts, year, postType]);\n\n const monthsWithPosts = useMemo(() => {\n const monthCounts = {};\n const monthTypes = {};\n posts.forEach((post) => {\n const month = new Date(post.createdAt).getMonth();\n monthCounts[month] = (monthCounts[month] || 0) + 1;\n\n if (!monthTypes[month]) {\n monthTypes[month] = {\n original: 0,\n reply: 0,\n quote: 0,\n boost: 0,\n };\n }\n\n if (post.reblog) {\n monthTypes[month].boost++;\n } else if (\n supportsNativeQuote() &&\n (post.quote?.id || post.quote?.quotedStatus?.id)\n ) {\n monthTypes[month].quote++;\n } else if (post.inReplyToId) {\n monthTypes[month].reply++;\n } else {\n monthTypes[month].original++;\n }\n });\n return Object.entries(monthCounts)\n .map(([month, count]) => {\n const types = monthTypes[month];\n return {\n month: parseInt(month),\n count,\n heatmap: monthHeatmaps[month] || [],\n mediaGrid: monthMediaGrids[month] || [],\n original: types.original,\n reply: types.reply,\n quote: types.quote,\n boost: types.boost,\n };\n })\n .sort((a, b) => a.month - b.month);\n }, [posts, monthHeatmaps, monthMediaGrids]);\n\n const searchIndexRef = useRef(null);\n useEffect(() => {\n if (totalPosts > 0) {\n const index = new FlexSearch.Document({\n preset: 'match',\n document: {\n id: 'id',\n index: ['content', 'spoilerText', 'poll', 'media', 'card'],\n },\n });\n posts.forEach((p) => {\n const status = p.reblog || p;\n const pollText = status.poll?.options?.map((o) => o.title).join(' ');\n const mediaText = status.mediaAttachments\n ?.map((m) => m.description)\n .join(' ');\n const cardText = status.card\n ? `${status.card.title} ${status.card.description} ${status.card.url}`\n : '';\n index.add({\n id: p.id,\n content: getHTMLText(status.content),\n spoilerText: status.spoilerText,\n poll: pollText,\n media: mediaText,\n card: cardText,\n });\n });\n searchIndexRef.current = index;\n }\n }, [posts]);\n\n const searchedPosts = useMemo(() => {\n if (!searchQuery) return posts;\n if (!searchIndexRef.current) return [];\n console.time(`search: '${searchQuery}'`);\n const allResults = searchIndexRef.current.search(searchQuery, {\n limit: totalPosts,\n });\n console.timeEnd(`search: '${searchQuery}'`);\n const orderedIds = allResults.flatMap((r) => r.result);\n const uniqueOrderedIds = [...new Set(orderedIds)];\n\n const postsMap = new Map(posts.map((p) => [p.id, p]));\n const postResults = uniqueOrderedIds\n .map((id) => postsMap.get(id))\n .filter(Boolean);\n return postResults;\n }, [posts, searchQuery]);\n\n useEffect(() => {\n setSearchLimit(SEARCH_RESULT_PAGE_SIZE);\n if (searchQuery) {\n if (!['relevance', 'createdAt'].includes(sortBy)) {\n setSortBy('relevance');\n }\n } else {\n if (sortBy === 'relevance') {\n setSortBy('createdAt');\n }\n }\n }, [searchQuery, sortBy]);\n\n const [filterCounts, monthPosts] = useMemo(() => {\n const monthPosts = searchedPosts.filter((post) => {\n if (searchQuery) return true;\n const postMonth = new Date(post.createdAt).getMonth();\n return month !== null && postMonth === month;\n });\n\n const counts = {\n all: monthPosts.length,\n original: 0,\n replies: 0,\n quotes: 0,\n boosts: 0,\n media: 0,\n };\n\n monthPosts.forEach((post) => {\n if (post.reblog) {\n counts.boosts++;\n } else if (\n supportsNativeQuote() &&\n (post.quote?.id || post.quote?.quotedStatus?.id)\n ) {\n counts.quotes++;\n } else if (post.inReplyToId) {\n counts.replies++;\n } else {\n counts.original++;\n }\n\n const status = post.reblog || post;\n if (!post.reblog && status.mediaAttachments?.length > 0) {\n counts.media++;\n }\n });\n\n return [counts, monthPosts];\n }, [searchedPosts, month, searchQuery]);\n\n const [filteredPosts, hasMore] = useMemo(() => {\n const filtered = monthPosts.filter((post) => {\n if (postType === 'boosts') {\n return !!post.reblog;\n } else if (postType === 'media') {\n const status = post.reblog || post;\n return !post.reblog && status.mediaAttachments?.length > 0;\n } else if (postType === 'quotes') {\n return (\n supportsNativeQuote() &&\n (post.quote?.id || post.quote?.quotedStatus?.id)\n );\n } else if (postType === 'replies') {\n return !!post.inReplyToId;\n } else if (postType === 'original') {\n return (\n !post.reblog &&\n !(\n supportsNativeQuote() &&\n (post.quote?.id || post.quote?.quotedStatus?.id)\n ) &&\n !post.inReplyToId\n );\n }\n\n return true;\n });\n\n // Sort the filtered posts\n let sorted = filtered;\n if (sortBy !== 'relevance') {\n sorted = [...filtered].sort((a, b) => {\n const postA = a.reblog || a;\n const postB = b.reblog || b;\n let valueA, valueB;\n\n if (sortBy === 'createdAt') {\n valueA = new Date(a.createdAt);\n valueB = new Date(b.createdAt);\n } else {\n valueA = postA[sortBy] || 0;\n valueB = postB[sortBy] || 0;\n }\n\n if (sortOrder === 'asc') {\n return valueA > valueB ? 1 : -1;\n } else {\n return valueB > valueA ? 1 : -1;\n }\n });\n }\n\n if (searchQuery) {\n return [sorted.slice(0, searchLimit), sorted.length > searchLimit];\n }\n return [sorted, false];\n }, [monthPosts, postType, searchQuery, searchLimit, sortBy, sortOrder]);\n\n // Auto-switch to 'all' when filtered results are empty but there are results in other categories\n useEffect(() => {\n if (\n searchQuery &&\n postType !== 'all' &&\n filteredPosts.length === 0 &&\n filterCounts.all > 0\n ) {\n setPostType('all');\n }\n }, [searchQuery, postType, filteredPosts.length, filterCounts.all]);\n\n const currentMonthIndex = monthsWithPosts.findIndex((m) => m.month === month);\n const prevMonth =\n currentMonthIndex > 0 ? monthsWithPosts[currentMonthIndex - 1] : null;\n const nextMonth =\n currentMonthIndex < monthsWithPosts.length - 1\n ? monthsWithPosts[currentMonthIndex + 1]\n : null;\n\n useEffect(() => {\n if (!year) {\n setUIState('default');\n setPosts([]);\n return;\n }\n\n (async () => {\n setUIState('loading');\n try {\n const dataId = `${NS}-${year}`;\n console.time(`fetchYearPosts-${year}`);\n const data = await db.yearInPosts.get(dataId);\n console.timeEnd(`fetchYearPosts-${year}`);\n if (data && data.year === year) {\n data.posts.sort(\n (a, b) => new Date(a.createdAt) - new Date(b.createdAt),\n );\n setPosts(data.posts);\n setUIState('results');\n } else {\n setUIState('no-data');\n }\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, [year]);\n\n useEffect(() => {\n if (month !== null && uiState === 'results') {\n const monthFilter = document.querySelector(\n `.calendar-bar .month-filter[data-month=\"${month}\"]`,\n );\n monthFilter?.focus();\n monthFilter?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n }, [month, uiState === 'results']);\n\n return (\n <div\n ref={scrollableRef}\n id=\"year-in-posts-page\"\n class=\"deck-container\"\n tabIndex=\"-1\"\n style={{\n '--month': month || 0,\n }}\n >\n <div class=\"timeline-deck deck\">\n <header\n class={uiState === 'loading' ? 'loading' : ''}\n onClick={(e) => {\n if (!e.target.closest('a, button')) {\n scrollableRef.current?.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }}\n >\n <div class=\"header-grid\">\n <div class=\"header-side\">\n <NavMenu />\n {year && month !== null ? (\n <Link\n to={`/yip?year=${year}`}\n class=\"button plain\"\n onClick={() => {\n setSearchQuery('');\n }}\n >\n <Icon icon=\"grid\" size=\"l\" alt=\"Year in Posts\" />\n </Link>\n ) : year ? (\n <Link\n to=\"/yip\"\n class=\"button plain\"\n onClick={() => {\n setSearchQuery('');\n }}\n >\n <Icon icon=\"month\" size=\"l\" alt=\"Year in Posts\" />\n </Link>\n ) : (\n <Link to=\"/\" class=\"button plain\">\n <Icon icon=\"home\" size=\"l\" alt=\"Home\" />\n </Link>\n )}\n </div>\n {year && (\n <>\n {showSearchField ? (\n <SearchField\n ref={searchFieldRef}\n placeholder={`Search posts in ${year}…`}\n searchQuery={searchQuery}\n onSearch={(val) => {\n setSearchQuery(val);\n setSearchLimit(SEARCH_RESULT_PAGE_SIZE);\n }}\n onEscape={() => {\n if (!searchQuery.trim()) {\n setShowSearchField(false);\n setSearchQuery('');\n }\n }}\n />\n ) : (\n <h1 class=\"header-double-lines\">\n <b>{year}</b>\n {uiState === 'results' && (\n <div>\n {/* <Plural\n value={posts.length}\n one=\"# post\"\n other=\"# posts\"\n /> */}\n {month !== null\n ? `${getMonthName(month)} – ${monthsWithPosts[month].count} posts`\n : `${posts.length} posts`}\n {/* TODO: Use Plural above when finalized */}\n </div>\n )}\n </h1>\n )}\n </>\n )}\n <div class=\"header-side\">\n {year && (\n <>\n <button\n type=\"button\"\n class={`plain ${showSearchField ? 'is-active' : ''}`}\n onClick={() => {\n if (showSearchField) {\n setShowSearchField(false);\n setSearchQuery('');\n } else {\n setShowSearchField(true);\n setTimeout(() => {\n searchFieldRef.current?.focus();\n }, 100);\n }\n }}\n >\n <Icon icon=\"search\" size=\"l\" alt=\"Search\" />\n </button>\n <Menu2\n align=\"end\"\n menuButton={\n <button type=\"button\" class=\"plain\">\n <Icon icon=\"more\" size=\"l\" alt=\"More\" />\n </button>\n }\n >\n <MenuItem\n type=\"checkbox\"\n checked={postType === 'media'}\n onClick={() => {\n setPostType(postType === 'media' ? 'all' : 'media');\n }}\n >\n <Icon icon=\"check-circle\" alt=\"☑️\" />{' '}\n <span class=\"menu-grow\">Media only</span>\n </MenuItem>\n </Menu2>\n </>\n )}\n </div>\n </div>\n </header>\n\n <main>\n {!year && (\n <div class=\"year-in-posts-start\">\n {uiState !== 'generating' ? (\n <>\n <h1>\n Year in Posts <sup>beta</sup>\n </h1>\n <p>A year-at-a-glance view of your posts.</p>\n <details>\n <summary>What is this?</summary>\n <p>\n Year in Posts is a simple, searchable archive of your\n posts, offering a year-at-a-glance view with calendar\n visualizations and straight-forward interface to sort and\n filter through posts.\n </p>\n <img\n src={yearInPostsUrl}\n width=\"1200\"\n height=\"900\"\n alt=\"Preview of Year in Posts UI\"\n />\n <p>\n <button\n type=\"button\"\n onClick={(e) => {\n e.target.closest('details').open = false;\n }}\n >\n Let's explore my posts\n </button>\n </p>\n </details>\n\n <form class=\"year-generate\" onSubmit={handleGenerate}>\n <label>\n <input\n type=\"number\"\n min={MIN_YEAR}\n max={new Date().getFullYear()}\n name=\"year\"\n defaultValue={getDefaultYear()}\n disabled={uiState === 'generating'}\n />\n </label>\n <button type=\"submit\" disabled={uiState === 'generating'}>\n <Icon icon=\"arrow-right\" alt=\"Generate\" size=\"l\" />\n </button>\n </form>\n <div class=\"insignificant\">\n <small>\n <p>\n This downloads your posts (excluding media files) from\n the server and saves them locally. It may take a longer\n time and require more disk space.\n </p>\n <p>\n Once archived, updated or deleted posts are not\n reflected in the archive until regenerated.\n </p>\n </small>\n </div>\n {!searchEnabled && (\n <p class=\"insignificant\">\n <small>\n ⚠️ Your server doesn't support advanced search, this\n will make more requests to the server and take much\n longer time.\n </small>\n </p>\n )}\n </>\n ) : (\n <div class=\"ui-state year-in-posts-start\">\n <Loader abrupt />\n <p class=\"insignificant\">Generating Year in Posts…</p>\n <p class=\"insignificant\">This might take a while.</p>\n </div>\n )}\n\n {availableYears.length > 0 && uiState !== 'generating' && (\n <div class=\"year-selection\">\n <p>Archived Year in Posts:</p>\n <ul>\n {availableYears.map(\n ({ year, count, fetchedAt, size, timezoneOffset }) => {\n const currentOffset = getCurrentTimezoneOffset();\n const tzMismatch =\n timezoneOffset !== undefined &&\n timezoneOffset !== currentOffset;\n\n return (\n <li key={year}>\n <Link\n to={`/yip?year=${year}`}\n class=\"year-card available\"\n >\n <Icon icon=\"month\" /> {year}\n </Link>{' '}\n <small class=\"ib insignificant\">\n {/* <Plural value={count} one=\"# post\" other=\"# posts\" /> */}\n {count} posts{' '}\n {/* TODO: Use Plural above when finalized */}\n </small>{' '}\n {size && (\n <small\n class=\"tag insignificant collapsed\"\n title={`${size.toLocaleString(i18n.locale || undefined)} bytes`}\n >\n ~{prettyBytes(size)}\n </small>\n )}{' '}\n <MenuConfirm\n align=\"end\"\n confirmLabel={\n <span>Regenerate {year} posts?</span>\n }\n onClick={() => {\n handleRegenerate(year);\n }}\n >\n <button\n type=\"button\"\n class=\"light small\"\n disabled={uiState === 'loading'}\n title={fetchedAt}\n >\n <Icon\n icon=\"refresh\"\n size=\"s\"\n class=\"insignificant\"\n />{' '}\n <span class=\"insignificant\">\n {new Date(fetchedAt).toLocaleDateString(\n i18n.locale,\n {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n },\n )}\n </span>{' '}\n {timezoneOffset !== undefined && (\n <small\n class={`tag insignificant collapsed ${tzMismatch ? 'warn' : ''}`}\n title={\n tzMismatch\n ? `Generated in ${formatTimezoneOffset(timezoneOffset)}, current timezone is ${formatTimezoneOffset(currentOffset)}`\n : formatTimezoneOffset(timezoneOffset)\n }\n >\n {tzMismatch && <Icon icon=\"time\" />}\n {formatTimezoneOffset(timezoneOffset)}\n </small>\n )}\n </button>\n </MenuConfirm>\n <button\n type=\"button\"\n class=\"light danger small\"\n onClick={(e) => {\n e.preventDefault();\n handleRemoveYear(year);\n }}\n >\n <Icon icon=\"x\" alt=\"Remove\" />\n </button>\n </li>\n );\n },\n )}\n </ul>\n </div>\n )}\n </div>\n )}\n\n {year && uiState === 'loading' && (\n <div class=\"ui-state year-in-posts-start\">\n <Loader abrupt />\n </div>\n )}\n\n {year && uiState === 'results' && (\n <>\n {!searchQuery && monthsWithPosts.length > 0 && (\n <>\n <CalendarBar\n year={year}\n month={month}\n monthsWithPosts={monthsWithPosts}\n postType={postType}\n />\n {month === null && <CalendarLegend />}\n </>\n )}\n\n {(month !== null || searchQuery) && (\n <div class=\"post-type-filters\">\n {Object.entries(FILTER_KEYS).map(\n ([key, label]) =>\n filterCounts[key] > 0 && (\n <button\n key={key}\n type=\"button\"\n class={`filter-cat plain ${postType === key ? 'is-active' : ''}`}\n onClick={() => setPostType(key)}\n >\n {label} <span class=\"count\">{filterCounts[key]}</span>\n </button>\n ),\n )}\n </div>\n )}\n\n {(month !== null || searchQuery) && filteredPosts.length > 1 && (\n <div class=\"sort-controls\">\n <span class=\"filter-label\">Sort</span>{' '}\n <fieldset class=\"radio-field-group\">\n {SORT_OPTIONS.filter((o) => {\n if (o.key === 'relevance') return !!searchQuery;\n if (o.key === 'createdAt') return true;\n return !searchQuery;\n }).map(({ key }) => (\n <label\n class=\"filter-sort\"\n key={key}\n onClick={(e) => {\n if (sortBy === key && key !== 'relevance') {\n e.preventDefault();\n e.stopPropagation();\n setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');\n }\n }}\n >\n <input\n type=\"radio\"\n name=\"filter-sort-cat\"\n checked={sortBy === key}\n onChange={() => {\n setSortBy(key);\n const order = /(replies|favourites|reblogs)/.test(\n key,\n )\n ? 'desc'\n : 'asc';\n setSortOrder(order);\n }}\n />\n {\n {\n relevance: `Relevance`,\n createdAt: `Date`,\n repliesCount: `Replies`,\n favouritesCount: `Likes`,\n reblogsCount: `Boosts`,\n }[key]\n }\n {sortBy === key &&\n key !== 'relevance' &&\n (sortOrder === 'asc' ? ' ↑' : ' ↓')}\n </label>\n ))}\n </fieldset>\n </div>\n )}\n\n {(month !== null || searchQuery) && (\n <>\n <ul class=\"timeline\">\n {filteredPosts.length === 0 ? (\n <p class=\"ui-state insignificant\">…</p>\n ) : (\n filteredPosts.map((post, index) => {\n const currentDate = new Date(post.createdAt);\n const previousPost = filteredPosts[index - 1];\n const previousDate = previousPost\n ? new Date(previousPost.createdAt)\n : null;\n const showDateHeader =\n sortBy === 'createdAt' &&\n (!previousDate ||\n currentDate.toDateString() !==\n previousDate.toDateString());\n\n return (\n <>\n {showDateHeader && (\n <li class=\"date-header\" key={post.createdAt}>\n <h2>\n <span>\n {niceDateTime(post.createdAt, {\n hideTime: true,\n formatOpts: {\n year: undefined,\n },\n })}\n </span>{' '}\n <small class=\"insignificant bidi-isolate\">\n {niceDateTime(post.createdAt, {\n forceOpts: {\n weekday: 'long',\n },\n })}\n </small>\n </h2>\n </li>\n )}\n <li key={post.id}>\n {totalPosts > 20 ? (\n <IntersectionPostItem\n key={post.id}\n root={scrollableRef.current}\n post={post}\n instance={instance}\n defaultShow={index < 3}\n />\n ) : (\n <Link\n class=\"status-link timeline-item\"\n to={\n post.reblog\n ? `/${instance}/s/${post.reblog.id}`\n : `/${instance}/s/${post.id}`\n }\n >\n <Status\n status={post}\n instance={instance}\n size=\"m\"\n showCommentCount\n showQuoteCount\n />\n </Link>\n )}\n </li>\n </>\n );\n })\n )}\n </ul>\n\n {searchQuery && hasMore && (\n <div class=\"ui-state\">\n <button\n type=\"button\"\n class=\"plain6 block\"\n onClick={() =>\n setSearchLimit((l) => l + SEARCH_RESULT_PAGE_SIZE)\n }\n >\n More…\n </button>\n </div>\n )}\n\n {!searchQuery && (\n <div class=\"year-in-posts-nav\">\n {prevMonth ? (\n <Link\n to={`/yip?year=${year}&month=${prevMonth.month}`}\n class=\"button light\"\n onClick={() => {\n scrollableRef.current?.scrollTo({\n top: 0,\n behavior: 'instant',\n });\n }}\n >\n <Icon icon=\"arrow-left\" />{' '}\n {getMonthName(prevMonth.month, i18n.locale, 'long')}\n </Link>\n ) : (\n <span />\n )}\n {nextMonth && (\n <Link\n to={`/yip?year=${year}&month=${nextMonth.month}`}\n class=\"button light\"\n onClick={() => {\n scrollableRef.current?.scrollTo({\n top: 0,\n behavior: 'instant',\n });\n }}\n >\n {getMonthName(nextMonth.month, i18n.locale, 'long')}{' '}\n <Icon icon=\"arrow-right\" />\n </Link>\n )}\n </div>\n )}\n </>\n )}\n </>\n )}\n </main>\n </div>\n <div class={`tron-grid ${month === null ? 'animated' : ''}`} />\n </div>\n );\n}\n\nconst IntersectionPostItem = ({ root, post, instance, defaultShow }) => {\n const ref = useRef();\n const [show, setShow] = useState(defaultShow);\n\n useEffect(() => {\n if (defaultShow) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n queueMicrotask(() => setShow(true));\n observer.unobserve(ref.current);\n }\n },\n {\n root,\n rootMargin: `${Math.max(320, screen.height * 0.75)}px`,\n },\n );\n if (ref.current) observer.observe(ref.current);\n return () => {\n if (ref.current) observer.unobserve(ref.current);\n };\n }, [defaultShow]);\n\n const statusId = post.reblog?.id || post.id;\n\n return (\n <li\n ref={ref}\n style={{\n height: show ? undefined : '10em',\n }}\n >\n {show ? (\n <Link\n class=\"status-link timeline-item\"\n to={`/${instance}/s/${statusId}`}\n >\n <Status\n status={post}\n instance={instance}\n size=\"m\"\n showCommentCount\n showQuoteCount\n />\n </Link>\n ) : (\n <>&nbsp;</>\n )}\n </li>\n );\n};\n\nfunction CalendarBar({ year, month, monthsWithPosts, postType }) {\n const { i18n } = useLingui();\n return (\n <div\n class={`calendar-bar ${month === null ? 'grid' : 'horizontal'} ${postType === 'media' ? 'media-grid' : ''}`}\n >\n {monthsWithPosts.map(\n ({\n month: m,\n count,\n heatmap,\n mediaGrid,\n original,\n reply,\n quote,\n boost,\n }) => {\n const originalRatio = count > 0 ? original / count : 0;\n const replyRatio = count > 0 ? reply / count : 0;\n const quoteRatio = count > 0 ? quote / count : 0;\n const boostRatio = count > 0 ? boost / count : 0;\n\n return (\n <Link\n to={`/yip?year=${year}&month=${m}${postType !== 'all' ? `&postType=${postType}` : ''}`}\n key={m}\n class={`button plain ${\n month === m ? 'is-active month-filter' : 'month-filter'\n }`}\n style={{\n '--month-original-ratio': originalRatio,\n '--month-reply-ratio': replyRatio,\n '--month-quote-ratio': quoteRatio,\n '--month-boost-ratio': boostRatio,\n }}\n data-month={m}\n >\n <div class=\"month-name\">{getMonthName(m, i18n.locale)}</div>\n {postType === 'media'\n ? mediaGrid.length > 0 && (\n <div class=\"month-media-grid\">\n {mediaGrid.map((item, i) => {\n if (!item)\n return <span key={i} class=\"media-day empty\" />;\n if (!item.hasMedia)\n return <span key={i} class=\"media-day no-media\" />;\n const status = item.post;\n const media = status.mediaAttachments?.[0];\n return (\n <span key={i} class=\"media-day\">\n <img\n src={media.previewUrl || media.url}\n loading=\"lazy\"\n decoding=\"async\"\n onError={(e) => {\n const { src } = e.target;\n if (\n src === media.previewUrl ||\n src === media.url\n ) {\n e.target.src =\n media.previewRemoteUrl || media.remoteUrl;\n } else {\n e.target.remove();\n }\n }}\n alt=\"\"\n />\n </span>\n );\n })}\n </div>\n )\n : heatmap.length > 0 && (\n <div class=\"month-heatmap\">\n {heatmap.map((dayData, i) => {\n const total = dayData.count || 0;\n const originalRatio =\n total > 0 ? dayData.original / total : 0;\n const replyRatio =\n total > 0 ? dayData.reply / total : 0;\n const quoteRatio =\n total > 0 ? dayData.quote / total : 0;\n const boostRatio =\n total > 0 ? dayData.boost / total : 0;\n\n return (\n <span\n key={i}\n class={`heatmap-day ${dayData.day === null ? 'empty' : ''} ${i % 7 === 0 || i % 7 === 6 ? 'weekend' : ''}`}\n data-ratio={dayData.ratio}\n style={{\n '--ratio': dayData.ratio,\n '--original-ratio': originalRatio,\n '--reply-ratio': replyRatio,\n '--quote-ratio': quoteRatio,\n '--boost-ratio': boostRatio,\n }}\n />\n );\n })}\n </div>\n )}\n <div class=\"month-metadata\">\n {/* <Plural value={count} one=\"# post\" other=\"# posts\" /> */}\n {count} posts {/* TODO: Use Plural above when finalized */}\n </div>\n </Link>\n );\n },\n )}\n </div>\n );\n}\n\nfunction CalendarLegend() {\n return (\n <div class=\"calendar-bar-legends\">\n <span class=\"ib\">\n <span class=\"calendar-bar-legend-item calendar-bar-original\" />{' '}\n <Trans>Original</Trans>\n </span>{' '}\n <span class=\"ib\">\n <span class=\"calendar-bar-legend-item calendar-bar-reply\" />{' '}\n <Trans>Replies</Trans>\n </span>{' '}\n {supportsNativeQuote() && (\n <>\n <span class=\"ib\">\n <span class=\"calendar-bar-legend-item calendar-bar-quote\" />{' '}\n <Trans>Quotes</Trans>\n </span>{' '}\n </>\n )}\n <span class=\"ib\">\n <span class=\"calendar-bar-legend-item calendar-bar-boost\" />{' '}\n <Trans>Boosts</Trans>\n </span>\n </div>\n );\n}\n\nconst SearchField = forwardRef(\n ({ searchQuery, onSearch, placeholder, onEscape }, ref) => {\n const searchInputRef = useRef(null);\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n searchInputRef.current?.focus();\n },\n setValue: (val) => {\n searchInputRef.current.value = val;\n },\n isFocused: () => {\n return document.activeElement === searchInputRef.current;\n },\n }));\n\n const throttledSearch = useThrottledCallback(onSearch, 150);\n\n return (\n <form\n class=\"search-field\"\n onSubmit={(e) => {\n e.preventDefault();\n const q = searchInputRef.current.value.trim();\n throttledSearch?.cancel();\n throttledSearch(q);\n }}\n >\n <input\n ref={searchInputRef}\n type=\"search\"\n name=\"q\"\n class=\"block\"\n placeholder={placeholder || 'Search posts…'}\n defaultValue={searchQuery}\n dir=\"auto\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellCheck=\"false\"\n enterKeyHint=\"search\"\n onInput={(e) => {\n const val = e.target.value;\n throttledSearch(val);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Escape' && !e.target.value.trim()) {\n onEscape?.();\n }\n }}\n />\n </form>\n );\n },\n);\n\nexport default YearInPosts;\n"],"file":"year-in-posts-DJv_star.js"}
@@ -0,0 +1,20 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Compose / Phanpy</title>
7
+ <link rel="stylesheet" crossorigin href="../assets/style-B1iLPTPR.css"><link rel="icon" type="image/x-icon" href="../favicon.ico" />
8
+ <meta name="color-scheme" content="light dark" />
9
+ <meta name="google" content="notranslate" />
10
+ <meta name="referrer" content="origin">
11
+ <script type="module" crossorigin src="../assets/compose-CFEx7wb4.js"></script>
12
+ <link rel="modulepreload" crossorigin href="../assets/chunk-aKtaBQYM.js">
13
+ <link rel="modulepreload" crossorigin href="../assets/pwa-viewport-ogKbF51K.js">
14
+
15
+ <link rel="manifest" href="./manifest.webmanifest"></head>
16
+ <body>
17
+ <div id="app-standalone"></div>
18
+ <div id="modal-container"></div>
19
+ </body>
20
+ </html>
Binary file
@@ -0,0 +1,73 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1, viewport-fit=cover"
8
+ />
9
+ <title>Phanpy</title>
10
+ <meta
11
+ name="description"
12
+ content="Minimalistic opinionated Mastodon web client"
13
+ />
14
+ <meta name="color-scheme" content="light dark" />
15
+ <style>
16
+ :root {
17
+ --csstools-color-scheme--light: initial;
18
+ color-scheme: light dark;
19
+ }
20
+ @media (prefers-color-scheme: dark) {
21
+ :root:where(:not(.is-light)) {
22
+ --csstools-color-scheme--light: ;
23
+ }
24
+ }
25
+ :root:where(.is-dark) {
26
+ --csstools-color-scheme--light: ;
27
+ }
28
+ </style>
29
+ <link rel="stylesheet" crossorigin href="./assets/style-B1iLPTPR.css"><link rel="icon" type="image/x-icon" href="./favicon.ico" />
30
+ <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
31
+ <meta name="apple-mobile-web-app-title" content="Phanpy" />
32
+ <meta name="apple-mobile-web-app-capable" content="yes" />
33
+ <meta name="mobile-web-app-capable" content="yes" />
34
+ <meta
35
+ name=""
36
+ data-theme-setting="manual"
37
+ content="#242526"
38
+ data-theme-light-color="#fff"
39
+ data-theme-light-color-temp="#ffff"
40
+ data-theme-dark-color="#242526"
41
+ data-theme-dark-color-temp="#242526ff"
42
+ />
43
+ <meta
44
+ name="theme-color"
45
+ data-theme-setting="auto"
46
+ content="#fff"
47
+ data-content="#fff"
48
+ data-content-temp="#fffa"
49
+ media="(prefers-color-scheme: light)"
50
+ />
51
+ <meta
52
+ name="theme-color"
53
+ data-theme-setting="auto"
54
+ content="#242526"
55
+ data-content="#242526"
56
+ data-content-temp="#242526aa"
57
+ media="(prefers-color-scheme: dark)"
58
+ />
59
+ <meta name="google" content="notranslate" />
60
+ <link rel="me" href="https://hachyderm.io/@phanpy" />
61
+ <meta name="referrer" content="origin">
62
+ <script type="module" crossorigin src="./assets/main-BdqNbG-a.js"></script>
63
+ <link rel="modulepreload" crossorigin href="./assets/chunk-aKtaBQYM.js">
64
+ <link rel="modulepreload" crossorigin href="./assets/pwa-viewport-ogKbF51K.js">
65
+ <link rel="modulepreload" crossorigin href="./assets/ICONS-DIPJeU0C.js">
66
+ <link rel="modulepreload" crossorigin href="./assets/ScheduledAtField-D-Abfo4J.js">
67
+
68
+ <link rel="manifest" href="./manifest.webmanifest"></head>
69
+ <body>
70
+ <div id="app"></div>
71
+ <div id="modal-container"></div>
72
+ </body>
73
+ </html>