--- /home/fdroid/fdroiddata/tmp/com.superproductivity.superproductivity_1501010000.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.superproductivity.superproductivity_1501010000.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: , actual: <02ae7d823959af5d5c2c76711c6247cfb7f47ad82480e820685a36542ca79d02> │ @@ -1,17 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): false │ -Verified using v2 scheme (APK Signature Scheme v2): true │ -Verified using v3 scheme (APK Signature Scheme v3): true │ -Verified using v3.1 scheme (APK Signature Scheme v3.1): false │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 46d787e692974459a5ca2f72d9fcb252c252cf7396e88acd7908e9916b602064 │ -Signer #1 certificate SHA-1 digest: c328d4f31ee5efdb6d2ea24d92e5c6ba78180983 │ -Signer #1 certificate MD5 digest: 2f65fc421da83837f11320b6b5dda3d8 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 2c05cf7e0750bbaf5b159f4e5045d66cfe47ebb4504e4f0c0087b66b79d2adfa │ -Signer #1 public key SHA-1 digest: 37238e921ab88bbf47b21bedf1a7d75b174e0493 │ -Signer #1 public key MD5 digest: 5526635eb0e249ac68f0034a8edf2b4a ├── zipinfo {} │ @@ -124,16 +124,14 @@ │ -rw-r--r-- 0.0 unx 4326 b- defN 81-Jan-01 01:01 assets/public/board-panel.component-3AYM7HBA.css.map │ -rw-r--r-- 0.0 unx 1872 b- defN 81-Jan-01 01:01 assets/public/board.component-KXWOAK2G.css.map │ -rw-r--r-- 0.0 unx 1496 b- defN 81-Jan-01 01:01 assets/public/boards.component-2ZZ5RQTI.css.map │ -rw-r--r-- 0.0 unx 2269 b- defN 81-Jan-01 01:01 assets/public/bottom-panel-container.component-5BBCKWHA.css.map │ -rw-r--r-- 0.0 unx 1153 b- defN 81-Jan-01 01:01 assets/public/breathing-dot.component-M5JR2SJT.css.map │ -rw-r--r-- 0.0 unx 1563 b- defN 81-Jan-01 01:01 assets/public/caldav-issue-content.component-B6G43ZND.css.map │ -rw-r--r-- 0.0 unx 756 b- defN 81-Jan-01 01:01 assets/public/chip-list-input.component-GQQYZYBD.css.map │ --rw-r--r-- 0.0 unx 59917 b- defN 81-Jan-01 01:01 assets/public/chunk-27D2DRS3.js │ --rw-r--r-- 0.0 unx 171640 b- defN 81-Jan-01 01:01 assets/public/chunk-27D2DRS3.js.map │ -rw-r--r-- 0.0 unx 33021 b- defN 81-Jan-01 01:01 assets/public/chunk-2GIAVY35.js │ -rw-r--r-- 0.0 unx 112433 b- defN 81-Jan-01 01:01 assets/public/chunk-2GIAVY35.js.map │ -rw-r--r-- 0.0 unx 2044 b- defN 81-Jan-01 01:01 assets/public/chunk-2NYJ54WT.js │ -rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-2NYJ54WT.js.map │ -rw-r--r-- 0.0 unx 7075 b- defN 81-Jan-01 01:01 assets/public/chunk-2OEJRPK3.js │ -rw-r--r-- 0.0 unx 25025 b- defN 81-Jan-01 01:01 assets/public/chunk-2OEJRPK3.js.map │ -rw-r--r-- 0.0 unx 411 b- defN 81-Jan-01 01:01 assets/public/chunk-2OYIJX2S.js │ @@ -150,14 +148,16 @@ │ -rw-r--r-- 0.0 unx 82049 b- defN 81-Jan-01 01:01 assets/public/chunk-4ZFFPFHJ.js.map │ -rw-r--r-- 0.0 unx 84673 b- defN 81-Jan-01 01:01 assets/public/chunk-5DRTMTBB.js │ -rw-r--r-- 0.0 unx 222126 b- defN 81-Jan-01 01:01 assets/public/chunk-5DRTMTBB.js.map │ -rw-r--r-- 0.0 unx 55071 b- defN 81-Jan-01 01:01 assets/public/chunk-5IEKUB7D.js │ -rw-r--r-- 0.0 unx 403411 b- defN 81-Jan-01 01:01 assets/public/chunk-5IEKUB7D.js.map │ -rw-r--r-- 0.0 unx 123997 b- defN 81-Jan-01 01:01 assets/public/chunk-5QXN3OD5.js │ -rw-r--r-- 0.0 unx 299300 b- defN 81-Jan-01 01:01 assets/public/chunk-5QXN3OD5.js.map │ +-rw-r--r-- 0.0 unx 121387 b- defN 81-Jan-01 01:01 assets/public/chunk-64H3ZUUD.js │ +-rw-r--r-- 0.0 unx 183450 b- defN 81-Jan-01 01:01 assets/public/chunk-64H3ZUUD.js.map │ -rw-r--r-- 0.0 unx 9376 b- defN 81-Jan-01 01:01 assets/public/chunk-6AKGWMOP.js │ -rw-r--r-- 0.0 unx 21304 b- defN 81-Jan-01 01:01 assets/public/chunk-6AKGWMOP.js.map │ -rw-r--r-- 0.0 unx 42689 b- defN 81-Jan-01 01:01 assets/public/chunk-6BTIFZYI.js │ -rw-r--r-- 0.0 unx 170408 b- defN 81-Jan-01 01:01 assets/public/chunk-6BTIFZYI.js.map │ -rw-r--r-- 0.0 unx 212254 b- defN 81-Jan-01 01:01 assets/public/chunk-6OY54QRV.js │ -rw-r--r-- 0.0 unx 663107 b- defN 81-Jan-01 01:01 assets/public/chunk-6OY54QRV.js.map │ -rw-r--r-- 0.0 unx 10511 b- defN 81-Jan-01 01:01 assets/public/chunk-75XR27FK.js │ @@ -174,54 +174,52 @@ │ -rw-r--r-- 0.0 unx 8032 b- defN 81-Jan-01 01:01 assets/public/chunk-AALRYEUQ.js.map │ -rw-r--r-- 0.0 unx 3962 b- defN 81-Jan-01 01:01 assets/public/chunk-AD66EG65.js │ -rw-r--r-- 0.0 unx 13802 b- defN 81-Jan-01 01:01 assets/public/chunk-AD66EG65.js.map │ -rw-r--r-- 0.0 unx 3324 b- defN 81-Jan-01 01:01 assets/public/chunk-ARMIR5IC.js │ -rw-r--r-- 0.0 unx 22451 b- defN 81-Jan-01 01:01 assets/public/chunk-ARMIR5IC.js.map │ -rw-r--r-- 0.0 unx 1956 b- defN 81-Jan-01 01:01 assets/public/chunk-B6OPJV2D.js │ -rw-r--r-- 0.0 unx 7789 b- defN 81-Jan-01 01:01 assets/public/chunk-B6OPJV2D.js.map │ --rw-r--r-- 0.0 unx 63633 b- defN 81-Jan-01 01:01 assets/public/chunk-BEVQWPHU.js │ --rw-r--r-- 0.0 unx 160634 b- defN 81-Jan-01 01:01 assets/public/chunk-BEVQWPHU.js.map │ -rw-r--r-- 0.0 unx 997 b- defN 81-Jan-01 01:01 assets/public/chunk-BOROUNNF.js │ -rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-BOROUNNF.js.map │ -rw-r--r-- 0.0 unx 51600 b- defN 81-Jan-01 01:01 assets/public/chunk-BRCOXYKD.js │ -rw-r--r-- 0.0 unx 186219 b- defN 81-Jan-01 01:01 assets/public/chunk-BRCOXYKD.js.map │ -rw-r--r-- 0.0 unx 22325 b- defN 81-Jan-01 01:01 assets/public/chunk-BYOR3C2V.js │ -rw-r--r-- 0.0 unx 54165 b- defN 81-Jan-01 01:01 assets/public/chunk-BYOR3C2V.js.map │ -rw-r--r-- 0.0 unx 5189 b- defN 81-Jan-01 01:01 assets/public/chunk-C36XVA3W.js │ -rw-r--r-- 0.0 unx 9498 b- defN 81-Jan-01 01:01 assets/public/chunk-C36XVA3W.js.map │ -rw-r--r-- 0.0 unx 76947 b- defN 81-Jan-01 01:01 assets/public/chunk-CPHBVUHP.js │ -rw-r--r-- 0.0 unx 182973 b- defN 81-Jan-01 01:01 assets/public/chunk-CPHBVUHP.js.map │ -rw-r--r-- 0.0 unx 20711 b- defN 81-Jan-01 01:01 assets/public/chunk-DLUQCTC2.js │ -rw-r--r-- 0.0 unx 61007 b- defN 81-Jan-01 01:01 assets/public/chunk-DLUQCTC2.js.map │ +-rw-r--r-- 0.0 unx 1099 b- defN 81-Jan-01 01:01 assets/public/chunk-E65JJWOD.js │ +-rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-E65JJWOD.js.map │ -rw-r--r-- 0.0 unx 1214 b- defN 81-Jan-01 01:01 assets/public/chunk-EUKOLG7L.js │ -rw-r--r-- 0.0 unx 3481 b- defN 81-Jan-01 01:01 assets/public/chunk-EUKOLG7L.js.map │ -rw-r--r-- 0.0 unx 2086 b- defN 81-Jan-01 01:01 assets/public/chunk-FFYPVFF4.js │ -rw-r--r-- 0.0 unx 6640 b- defN 81-Jan-01 01:01 assets/public/chunk-FFYPVFF4.js.map │ -rw-r--r-- 0.0 unx 19057 b- defN 81-Jan-01 01:01 assets/public/chunk-FIUFEHRP.js │ -rw-r--r-- 0.0 unx 53323 b- defN 81-Jan-01 01:01 assets/public/chunk-FIUFEHRP.js.map │ -rw-r--r-- 0.0 unx 2830 b- defN 81-Jan-01 01:01 assets/public/chunk-GKCTQKCR.js │ -rw-r--r-- 0.0 unx 4560 b- defN 81-Jan-01 01:01 assets/public/chunk-GKCTQKCR.js.map │ --rw-r--r-- 0.0 unx 65808 b- defN 81-Jan-01 01:01 assets/public/chunk-GL7WXZWS.js │ --rw-r--r-- 0.0 unx 261273 b- defN 81-Jan-01 01:01 assets/public/chunk-GL7WXZWS.js.map │ -rw-r--r-- 0.0 unx 43128 b- defN 81-Jan-01 01:01 assets/public/chunk-HB735YNJ.js │ -rw-r--r-- 0.0 unx 158051 b- defN 81-Jan-01 01:01 assets/public/chunk-HB735YNJ.js.map │ --rw-r--r-- 0.0 unx 121387 b- defN 81-Jan-01 01:01 assets/public/chunk-HC6EOBDD.js │ --rw-r--r-- 0.0 unx 183450 b- defN 81-Jan-01 01:01 assets/public/chunk-HC6EOBDD.js.map │ -rw-r--r-- 0.0 unx 6602 b- defN 81-Jan-01 01:01 assets/public/chunk-IGPEI44H.js │ -rw-r--r-- 0.0 unx 27239 b- defN 81-Jan-01 01:01 assets/public/chunk-IGPEI44H.js.map │ -rw-r--r-- 0.0 unx 676 b- defN 81-Jan-01 01:01 assets/public/chunk-ISS7OXYA.js │ -rw-r--r-- 0.0 unx 2139 b- defN 81-Jan-01 01:01 assets/public/chunk-ISS7OXYA.js.map │ -rw-r--r-- 0.0 unx 1560 b- defN 81-Jan-01 01:01 assets/public/chunk-J37TXHMM.js │ -rw-r--r-- 0.0 unx 4533 b- defN 81-Jan-01 01:01 assets/public/chunk-J37TXHMM.js.map │ -rw-r--r-- 0.0 unx 2469 b- defN 81-Jan-01 01:01 assets/public/chunk-JL6Q6JOI.js │ -rw-r--r-- 0.0 unx 6496 b- defN 81-Jan-01 01:01 assets/public/chunk-JL6Q6JOI.js.map │ -rw-r--r-- 0.0 unx 1314 b- defN 81-Jan-01 01:01 assets/public/chunk-JOXJFDKW.js │ -rw-r--r-- 0.0 unx 8779 b- defN 81-Jan-01 01:01 assets/public/chunk-JOXJFDKW.js.map │ -rw-r--r-- 0.0 unx 2337 b- defN 81-Jan-01 01:01 assets/public/chunk-K24A542E.js │ -rw-r--r-- 0.0 unx 4992 b- defN 81-Jan-01 01:01 assets/public/chunk-K24A542E.js.map │ +-rw-r--r-- 0.0 unx 1017 b- defN 81-Jan-01 01:01 assets/public/chunk-KDMLLTUB.js │ +-rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-KDMLLTUB.js.map │ -rw-r--r-- 0.0 unx 2173 b- defN 81-Jan-01 01:01 assets/public/chunk-KUGLCKDI.js │ -rw-r--r-- 0.0 unx 8779 b- defN 81-Jan-01 01:01 assets/public/chunk-KUGLCKDI.js.map │ -rw-r--r-- 0.0 unx 2872 b- defN 81-Jan-01 01:01 assets/public/chunk-L36IWOVZ.js │ -rw-r--r-- 0.0 unx 12162 b- defN 81-Jan-01 01:01 assets/public/chunk-L36IWOVZ.js.map │ -rw-r--r-- 0.0 unx 1162 b- defN 81-Jan-01 01:01 assets/public/chunk-LBXTL52Y.js │ -rw-r--r-- 0.0 unx 2945 b- defN 81-Jan-01 01:01 assets/public/chunk-LBXTL52Y.js.map │ -rw-r--r-- 0.0 unx 49252 b- defN 81-Jan-01 01:01 assets/public/chunk-LIWNEC7F.js │ @@ -234,72 +232,72 @@ │ -rw-r--r-- 0.0 unx 959 b- defN 81-Jan-01 01:01 assets/public/chunk-MASHVMAF.js.map │ -rw-r--r-- 0.0 unx 120352 b- defN 81-Jan-01 01:01 assets/public/chunk-MDC62647.js │ -rw-r--r-- 0.0 unx 455554 b- defN 81-Jan-01 01:01 assets/public/chunk-MDC62647.js.map │ -rw-r--r-- 0.0 unx 479 b- defN 81-Jan-01 01:01 assets/public/chunk-MKQ5S2AR.js │ -rw-r--r-- 0.0 unx 4619 b- defN 81-Jan-01 01:01 assets/public/chunk-MKQ5S2AR.js.map │ -rw-r--r-- 0.0 unx 8532 b- defN 81-Jan-01 01:01 assets/public/chunk-MP3B4UKL.js │ -rw-r--r-- 0.0 unx 14186 b- defN 81-Jan-01 01:01 assets/public/chunk-MP3B4UKL.js.map │ --rw-r--r-- 0.0 unx 1017 b- defN 81-Jan-01 01:01 assets/public/chunk-N3N572BY.js │ --rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-N3N572BY.js.map │ +-rw-r--r-- 0.0 unx 63633 b- defN 81-Jan-01 01:01 assets/public/chunk-NTCTKQ7J.js │ +-rw-r--r-- 0.0 unx 160634 b- defN 81-Jan-01 01:01 assets/public/chunk-NTCTKQ7J.js.map │ -rw-r--r-- 0.0 unx 16007 b- defN 81-Jan-01 01:01 assets/public/chunk-O6CTCBQG.js │ -rw-r--r-- 0.0 unx 30930 b- defN 81-Jan-01 01:01 assets/public/chunk-O6CTCBQG.js.map │ -rw-r--r-- 0.0 unx 3929 b- defN 81-Jan-01 01:01 assets/public/chunk-OVAWK6DV.js │ -rw-r--r-- 0.0 unx 9310 b- defN 81-Jan-01 01:01 assets/public/chunk-OVAWK6DV.js.map │ -rw-r--r-- 0.0 unx 202242 b- defN 81-Jan-01 01:01 assets/public/chunk-OXDOKNTF.js │ -rw-r--r-- 0.0 unx 824865 b- defN 81-Jan-01 01:01 assets/public/chunk-OXDOKNTF.js.map │ --rw-r--r-- 0.0 unx 1099 b- defN 81-Jan-01 01:01 assets/public/chunk-P2ROAFQZ.js │ --rw-r--r-- 0.0 unx 93 b- defN 81-Jan-01 01:01 assets/public/chunk-P2ROAFQZ.js.map │ -rw-r--r-- 0.0 unx 3415 b- defN 81-Jan-01 01:01 assets/public/chunk-PDJZ5MMV.js │ -rw-r--r-- 0.0 unx 16186 b- defN 81-Jan-01 01:01 assets/public/chunk-PDJZ5MMV.js.map │ -rw-r--r-- 0.0 unx 8263 b- defN 81-Jan-01 01:01 assets/public/chunk-PEJGMLLQ.js │ -rw-r--r-- 0.0 unx 32372 b- defN 81-Jan-01 01:01 assets/public/chunk-PEJGMLLQ.js.map │ --rw-r--r-- 0.0 unx 306708 b- defN 81-Jan-01 01:01 assets/public/chunk-PQGFZC5T.js │ --rw-r--r-- 0.0 unx 976425 b- defN 81-Jan-01 01:01 assets/public/chunk-PQGFZC5T.js.map │ -rw-r--r-- 0.0 unx 18901 b- defN 81-Jan-01 01:01 assets/public/chunk-PTIRGE5P.js │ -rw-r--r-- 0.0 unx 72134 b- defN 81-Jan-01 01:01 assets/public/chunk-PTIRGE5P.js.map │ -rw-r--r-- 0.0 unx 9966 b- defN 81-Jan-01 01:01 assets/public/chunk-PTPW64DK.js │ -rw-r--r-- 0.0 unx 27757 b- defN 81-Jan-01 01:01 assets/public/chunk-PTPW64DK.js.map │ -rw-r--r-- 0.0 unx 24217 b- defN 81-Jan-01 01:01 assets/public/chunk-PU7IHBD3.js │ -rw-r--r-- 0.0 unx 97875 b- defN 81-Jan-01 01:01 assets/public/chunk-PU7IHBD3.js.map │ -rw-r--r-- 0.0 unx 602 b- defN 81-Jan-01 01:01 assets/public/chunk-PVQRHZUS.js │ -rw-r--r-- 0.0 unx 2080 b- defN 81-Jan-01 01:01 assets/public/chunk-PVQRHZUS.js.map │ -rw-r--r-- 0.0 unx 5627 b- defN 81-Jan-01 01:01 assets/public/chunk-QEAPM2TB.js │ -rw-r--r-- 0.0 unx 20575 b- defN 81-Jan-01 01:01 assets/public/chunk-QEAPM2TB.js.map │ --rw-r--r-- 0.0 unx 3098 b- defN 81-Jan-01 01:01 assets/public/chunk-QJR3D76V.js │ --rw-r--r-- 0.0 unx 9576 b- defN 81-Jan-01 01:01 assets/public/chunk-QJR3D76V.js.map │ -rw-r--r-- 0.0 unx 23637 b- defN 81-Jan-01 01:01 assets/public/chunk-QLLW75HD.js │ -rw-r--r-- 0.0 unx 41275 b- defN 81-Jan-01 01:01 assets/public/chunk-QLLW75HD.js.map │ -rw-r--r-- 0.0 unx 4162 b- defN 81-Jan-01 01:01 assets/public/chunk-QTPH6ICR.js │ -rw-r--r-- 0.0 unx 10923 b- defN 81-Jan-01 01:01 assets/public/chunk-QTPH6ICR.js.map │ +-rw-r--r-- 0.0 unx 306708 b- defN 81-Jan-01 01:01 assets/public/chunk-QWNDFGVA.js │ +-rw-r--r-- 0.0 unx 976425 b- defN 81-Jan-01 01:01 assets/public/chunk-QWNDFGVA.js.map │ -rw-r--r-- 0.0 unx 46053 b- defN 81-Jan-01 01:01 assets/public/chunk-RHU3AIGY.js │ -rw-r--r-- 0.0 unx 232748 b- defN 81-Jan-01 01:01 assets/public/chunk-RHU3AIGY.js.map │ +-rw-r--r-- 0.0 unx 59917 b- defN 81-Jan-01 01:01 assets/public/chunk-RSMDBQ3S.js │ +-rw-r--r-- 0.0 unx 171640 b- defN 81-Jan-01 01:01 assets/public/chunk-RSMDBQ3S.js.map │ -rw-r--r-- 0.0 unx 288390 b- defN 81-Jan-01 01:01 assets/public/chunk-RSWQLHJS.js │ -rw-r--r-- 0.0 unx 1088819 b- defN 81-Jan-01 01:01 assets/public/chunk-RSWQLHJS.js.map │ -rw-r--r-- 0.0 unx 20617 b- defN 81-Jan-01 01:01 assets/public/chunk-S2VMIPG4.js │ -rw-r--r-- 0.0 unx 35313 b- defN 81-Jan-01 01:01 assets/public/chunk-S2VMIPG4.js.map │ +-rw-r--r-- 0.0 unx 3098 b- defN 81-Jan-01 01:01 assets/public/chunk-SELKJFL3.js │ +-rw-r--r-- 0.0 unx 9576 b- defN 81-Jan-01 01:01 assets/public/chunk-SELKJFL3.js.map │ -rw-r--r-- 0.0 unx 31579 b- defN 81-Jan-01 01:01 assets/public/chunk-SIHDDD4X.js │ -rw-r--r-- 0.0 unx 84113 b- defN 81-Jan-01 01:01 assets/public/chunk-SIHDDD4X.js.map │ +-rw-r--r-- 0.0 unx 30026 b- defN 81-Jan-01 01:01 assets/public/chunk-SNGTFZOM.js │ +-rw-r--r-- 0.0 unx 109138 b- defN 81-Jan-01 01:01 assets/public/chunk-SNGTFZOM.js.map │ -rw-r--r-- 0.0 unx 4213 b- defN 81-Jan-01 01:01 assets/public/chunk-SNOMK7L7.js │ -rw-r--r-- 0.0 unx 16703 b- defN 81-Jan-01 01:01 assets/public/chunk-SNOMK7L7.js.map │ -rw-r--r-- 0.0 unx 2001 b- defN 81-Jan-01 01:01 assets/public/chunk-TQO5KI2E.js │ -rw-r--r-- 0.0 unx 3277 b- defN 81-Jan-01 01:01 assets/public/chunk-TQO5KI2E.js.map │ -rw-r--r-- 0.0 unx 32087 b- defN 81-Jan-01 01:01 assets/public/chunk-U233VVFY.js │ -rw-r--r-- 0.0 unx 143700 b- defN 81-Jan-01 01:01 assets/public/chunk-U233VVFY.js.map │ -rw-r--r-- 0.0 unx 51362 b- defN 81-Jan-01 01:01 assets/public/chunk-U4MSYCAI.js │ -rw-r--r-- 0.0 unx 259545 b- defN 81-Jan-01 01:01 assets/public/chunk-U4MSYCAI.js.map │ --rw-r--r-- 0.0 unx 11454 b- defN 81-Jan-01 01:01 assets/public/chunk-U6VOYBU7.js │ --rw-r--r-- 0.0 unx 22568 b- defN 81-Jan-01 01:01 assets/public/chunk-U6VOYBU7.js.map │ +-rw-r--r-- 0.0 unx 65808 b- defN 81-Jan-01 01:01 assets/public/chunk-U7D5UGKX.js │ +-rw-r--r-- 0.0 unx 261273 b- defN 81-Jan-01 01:01 assets/public/chunk-U7D5UGKX.js.map │ -rw-r--r-- 0.0 unx 2524 b- defN 81-Jan-01 01:01 assets/public/chunk-U7WA2TBM.js │ -rw-r--r-- 0.0 unx 10258 b- defN 81-Jan-01 01:01 assets/public/chunk-U7WA2TBM.js.map │ -rw-r--r-- 0.0 unx 2434 b- defN 81-Jan-01 01:01 assets/public/chunk-UGRNF2BN.js │ -rw-r--r-- 0.0 unx 3017 b- defN 81-Jan-01 01:01 assets/public/chunk-UGRNF2BN.js.map │ -rw-r--r-- 0.0 unx 131635 b- defN 81-Jan-01 01:01 assets/public/chunk-USUJACSP.js │ -rw-r--r-- 0.0 unx 435919 b- defN 81-Jan-01 01:01 assets/public/chunk-USUJACSP.js.map │ --rw-r--r-- 0.0 unx 30026 b- defN 81-Jan-01 01:01 assets/public/chunk-V2IOF2CR.js │ --rw-r--r-- 0.0 unx 109138 b- defN 81-Jan-01 01:01 assets/public/chunk-V2IOF2CR.js.map │ -rw-r--r-- 0.0 unx 903 b- defN 81-Jan-01 01:01 assets/public/chunk-VALZJMB4.js │ -rw-r--r-- 0.0 unx 1735 b- defN 81-Jan-01 01:01 assets/public/chunk-VALZJMB4.js.map │ -rw-r--r-- 0.0 unx 3648 b- defN 81-Jan-01 01:01 assets/public/chunk-VMAIUF6C.js │ -rw-r--r-- 0.0 unx 11641 b- defN 81-Jan-01 01:01 assets/public/chunk-VMAIUF6C.js.map │ -rw-r--r-- 0.0 unx 3538 b- defN 81-Jan-01 01:01 assets/public/chunk-VTKUDKZO.js │ -rw-r--r-- 0.0 unx 10230 b- defN 81-Jan-01 01:01 assets/public/chunk-VTKUDKZO.js.map │ -rw-r--r-- 0.0 unx 729 b- defN 81-Jan-01 01:01 assets/public/chunk-VV4K2E6H.js │ @@ -324,14 +322,16 @@ │ -rw-r--r-- 0.0 unx 18636 b- defN 81-Jan-01 01:01 assets/public/chunk-Y4CBKMDD.js.map │ -rw-r--r-- 0.0 unx 4447 b- defN 81-Jan-01 01:01 assets/public/chunk-Y6ZW4Y7G.js │ -rw-r--r-- 0.0 unx 6897 b- defN 81-Jan-01 01:01 assets/public/chunk-Y6ZW4Y7G.js.map │ -rw-r--r-- 0.0 unx 867 b- defN 81-Jan-01 01:01 assets/public/chunk-YHQK3ECO.js │ -rw-r--r-- 0.0 unx 1567 b- defN 81-Jan-01 01:01 assets/public/chunk-YHQK3ECO.js.map │ -rw-r--r-- 0.0 unx 4604 b- defN 81-Jan-01 01:01 assets/public/chunk-YRVC3PEN.js │ -rw-r--r-- 0.0 unx 8705 b- defN 81-Jan-01 01:01 assets/public/chunk-YRVC3PEN.js.map │ +-rw-r--r-- 0.0 unx 11454 b- defN 81-Jan-01 01:01 assets/public/chunk-YWESG3FE.js │ +-rw-r--r-- 0.0 unx 22568 b- defN 81-Jan-01 01:01 assets/public/chunk-YWESG3FE.js.map │ -rw-r--r-- 0.0 unx 3030 b- defN 81-Jan-01 01:01 assets/public/chunk-Z2TE7HXE.js │ -rw-r--r-- 0.0 unx 10699 b- defN 81-Jan-01 01:01 assets/public/chunk-Z2TE7HXE.js.map │ -rw-r--r-- 0.0 unx 4348 b- defN 81-Jan-01 01:01 assets/public/chunk-Z3G7FTEB.js │ -rw-r--r-- 0.0 unx 12382 b- defN 81-Jan-01 01:01 assets/public/chunk-Z3G7FTEB.js.map │ -rw-r--r-- 0.0 unx 1138803 b- defN 81-Jan-01 01:01 assets/public/chunk-ZNOXYKEG.js │ -rw-r--r-- 0.0 unx 5000903 b- defN 81-Jan-01 01:01 assets/public/chunk-ZNOXYKEG.js.map │ -rw-r--r-- 0.0 unx 2751 b- defN 81-Jan-01 01:01 assets/public/chunk-ZSRRUOXN.js │ @@ -417,16 +417,16 @@ │ -rw-r--r-- 0.0 unx 1777 b- defN 81-Jan-01 01:01 assets/public/issue-provider-setup-overview.component-R4UMPHXJ.css.map │ -rw-r--r-- 0.0 unx 1899 b- defN 81-Jan-01 01:01 assets/public/issue-provider-tab.component-IAK65AKV.css.map │ -rw-r--r-- 0.0 unx 325 b- defN 81-Jan-01 01:01 assets/public/jira-additional-cfg.component-42ZCNEAB.css.map │ -rw-r--r-- 0.0 unx 2327 b- defN 81-Jan-01 01:01 assets/public/jira-issue-content.component-UYCKI7MC.css.map │ -rw-r--r-- 0.0 unx 393 b- defN 81-Jan-01 01:01 assets/public/jira-link.component-AKJUVRHV.css.map │ -rw-r--r-- 0.0 unx 891 b- defN 81-Jan-01 01:01 assets/public/lazy-chart.component-S7BZ22QP.css.map │ -rw-r--r-- 0.0 unx 8600 b- defN 81-Jan-01 01:01 assets/public/magic-side-nav.component-Q3B2DWVW.css.map │ --rw-r--r-- 0.0 unx 793165 b- defN 81-Jan-01 01:01 assets/public/main-I5FCRQ3B.js │ --rw-r--r-- 0.0 unx 2753332 b- defN 81-Jan-01 01:01 assets/public/main-I5FCRQ3B.js.map │ +-rw-r--r-- 0.0 unx 793165 b- defN 81-Jan-01 01:01 assets/public/main-NHY4LGM6.js │ +-rw-r--r-- 0.0 unx 2753332 b- defN 81-Jan-01 01:01 assets/public/main-NHY4LGM6.js.map │ -rw-r--r-- 0.0 unx 14717 b- defN 81-Jan-01 01:01 assets/public/main-header.component-ZS7XFA3O.css.map │ -rw-r--r-- 0.0 unx 926 b- defN 81-Jan-01 01:01 assets/public/manifest.json │ -rw-r--r-- 0.0 unx 356840 b- defN 81-Jan-01 01:01 assets/public/media/MaterialIcons-Regular-5HNTTCIU.ttf │ -rw-r--r-- 0.0 unx 11076 b- defN 81-Jan-01 01:01 assets/public/media/open-sans-cyrillic-300-normal-NXEWA4HB.woff2 │ -rw-r--r-- 0.0 unx 9056 b- defN 81-Jan-01 01:01 assets/public/media/open-sans-cyrillic-300-normal-UZNP3MNX.woff │ -rw-r--r-- 0.0 unx 10724 b- defN 81-Jan-01 01:01 assets/public/media/open-sans-cyrillic-400-italic-74FQI23K.woff │ -rw-r--r-- 0.0 unx 12596 b- defN 81-Jan-01 01:01 assets/public/media/open-sans-cyrillic-400-italic-SOA5CBZH.woff2 ├── assets/public/ngsw.json │ ├── Pretty-printed │ │┄ Similarity: 0.9311510676526491% │ │┄ Differences: {"'assetGroups'": "{0: {'urls': {insert: [(12, '/chunk-64H3ZUUD.js'), (31, '/chunk-E65JJWOD.js'), " │ │┄ "(43, '/chunk-KDMLLTUB.js'), (54, '/chunk-NTCTKQ7J.js'), (67, " │ │┄ "'/chunk-QWNDFGVA.js'), (69, '/chunk-RSMDBQ3S.js'), (72, '/chunk-SELKJFL3.js'), " │ │┄ "(74, '/chunk-SNGTFZOM.js'), (79, '/chunk-U7D5UGKX.js'), (99, " │ │┄ "'/chunk-YWESG3FE.js'), (106, '/main-NHY4LGM6.js')], delete: [106, 83, 79, 68, " │ │┄ '62, 59, 55, 38, 36, 25, 0]}}}' […] │ │ @@ -5,98 +5,97 @@ │ │ "ignoreVary": true │ │ }, │ │ "installMode": "prefetch", │ │ "name": "app", │ │ "patterns": [], │ │ "updateMode": "prefetch", │ │ "urls": [ │ │ - "/chunk-27D2DRS3.js", │ │ "/chunk-2GIAVY35.js", │ │ "/chunk-2NYJ54WT.js", │ │ "/chunk-2OEJRPK3.js", │ │ "/chunk-2OYIJX2S.js", │ │ "/chunk-36KSA45I.js", │ │ "/chunk-3E43H4SH.js", │ │ "/chunk-3UB54IM4.js", │ │ "/chunk-4WKVJOAH.js", │ │ "/chunk-4ZFFPFHJ.js", │ │ "/chunk-5DRTMTBB.js", │ │ "/chunk-5IEKUB7D.js", │ │ "/chunk-5QXN3OD5.js", │ │ + "/chunk-64H3ZUUD.js", │ │ "/chunk-6AKGWMOP.js", │ │ "/chunk-6BTIFZYI.js", │ │ "/chunk-6OY54QRV.js", │ │ "/chunk-75XR27FK.js", │ │ "/chunk-7FDDBCUC.js", │ │ "/chunk-7FJHE55G.js", │ │ "/chunk-A5MBRGPF.js", │ │ "/chunk-A6QD6H33.js", │ │ "/chunk-AALRYEUQ.js", │ │ "/chunk-AD66EG65.js", │ │ "/chunk-ARMIR5IC.js", │ │ "/chunk-B6OPJV2D.js", │ │ - "/chunk-BEVQWPHU.js", │ │ "/chunk-BOROUNNF.js", │ │ "/chunk-BRCOXYKD.js", │ │ "/chunk-BYOR3C2V.js", │ │ "/chunk-C36XVA3W.js", │ │ "/chunk-CPHBVUHP.js", │ │ "/chunk-DLUQCTC2.js", │ │ + "/chunk-E65JJWOD.js", │ │ "/chunk-EUKOLG7L.js", │ │ "/chunk-FFYPVFF4.js", │ │ "/chunk-FIUFEHRP.js", │ │ "/chunk-GKCTQKCR.js", │ │ - "/chunk-GL7WXZWS.js", │ │ "/chunk-HB735YNJ.js", │ │ - "/chunk-HC6EOBDD.js", │ │ "/chunk-IGPEI44H.js", │ │ "/chunk-ISS7OXYA.js", │ │ "/chunk-J37TXHMM.js", │ │ "/chunk-JL6Q6JOI.js", │ │ "/chunk-JOXJFDKW.js", │ │ "/chunk-K24A542E.js", │ │ + "/chunk-KDMLLTUB.js", │ │ "/chunk-KUGLCKDI.js", │ │ "/chunk-L36IWOVZ.js", │ │ "/chunk-LBXTL52Y.js", │ │ "/chunk-LIWNEC7F.js", │ │ "/chunk-LQIZKP27.js", │ │ "/chunk-M5HVLJI2.js", │ │ "/chunk-MASHVMAF.js", │ │ "/chunk-MDC62647.js", │ │ "/chunk-MKQ5S2AR.js", │ │ "/chunk-MP3B4UKL.js", │ │ - "/chunk-N3N572BY.js", │ │ + "/chunk-NTCTKQ7J.js", │ │ "/chunk-O6CTCBQG.js", │ │ "/chunk-OVAWK6DV.js", │ │ "/chunk-OXDOKNTF.js", │ │ - "/chunk-P2ROAFQZ.js", │ │ "/chunk-PDJZ5MMV.js", │ │ "/chunk-PEJGMLLQ.js", │ │ - "/chunk-PQGFZC5T.js", │ │ "/chunk-PTIRGE5P.js", │ │ "/chunk-PTPW64DK.js", │ │ "/chunk-PU7IHBD3.js", │ │ "/chunk-PVQRHZUS.js", │ │ "/chunk-QEAPM2TB.js", │ │ - "/chunk-QJR3D76V.js", │ │ "/chunk-QLLW75HD.js", │ │ "/chunk-QTPH6ICR.js", │ │ + "/chunk-QWNDFGVA.js", │ │ "/chunk-RHU3AIGY.js", │ │ + "/chunk-RSMDBQ3S.js", │ │ "/chunk-RSWQLHJS.js", │ │ "/chunk-S2VMIPG4.js", │ │ + "/chunk-SELKJFL3.js", │ │ "/chunk-SIHDDD4X.js", │ │ + "/chunk-SNGTFZOM.js", │ │ "/chunk-SNOMK7L7.js", │ │ "/chunk-TQO5KI2E.js", │ │ "/chunk-U233VVFY.js", │ │ "/chunk-U4MSYCAI.js", │ │ - "/chunk-U6VOYBU7.js", │ │ + "/chunk-U7D5UGKX.js", │ │ "/chunk-U7WA2TBM.js", │ │ "/chunk-UGRNF2BN.js", │ │ "/chunk-USUJACSP.js", │ │ - "/chunk-V2IOF2CR.js", │ │ "/chunk-VALZJMB4.js", │ │ "/chunk-VMAIUF6C.js", │ │ "/chunk-VTKUDKZO.js", │ │ "/chunk-VV4K2E6H.js", │ │ "/chunk-W3EHXDVY.js", │ │ "/chunk-WLF3NYHN.js", │ │ "/chunk-X5ELN6XQ.js", │ │ @@ -105,21 +104,22 @@ │ │ "/chunk-XU2E3I7U.js", │ │ "/chunk-XZ3A45KS.js", │ │ "/chunk-XZNG5AP7.js", │ │ "/chunk-Y4CBKMDD.js", │ │ "/chunk-Y6ZW4Y7G.js", │ │ "/chunk-YHQK3ECO.js", │ │ "/chunk-YRVC3PEN.js", │ │ + "/chunk-YWESG3FE.js", │ │ "/chunk-Z2TE7HXE.js", │ │ "/chunk-Z3G7FTEB.js", │ │ "/chunk-ZNOXYKEG.js", │ │ "/chunk-ZSRRUOXN.js", │ │ "/favicon.ico", │ │ "/index.html", │ │ - "/main-I5FCRQ3B.js", │ │ + "/main-NHY4LGM6.js", │ │ "/manifest.json", │ │ "/polyfills-D4CWKFPZ.js", │ │ "/styles-XO6QZNOR.css", │ │ "/worker-IGYSNMZW.js" │ │ ] │ │ }, │ │ { │ │ @@ -388,98 +388,97 @@ │ │ "/assets/themes/dracula.css": "29829adf70b4c7c73de6d277b7d44111a8a73366", │ │ "/assets/themes/everforest.css": "e2a80c774b69fb6698c6d897e090e09bd9827c2b", │ │ "/assets/themes/glass.css": "f9c3a9e136ee3d270a933405c4b7c52c04b366d3", │ │ "/assets/themes/nord-polar-night.css": "3b790e539cd4e6a2bc1409bb5486c747d1ddf940", │ │ "/assets/themes/nord-snow-storm.css": "0586ddf104fb8944b2b1b05526566e9d312085db", │ │ "/assets/themes/rainbow.css": "ee65200ba809b4830928bd123544c43e5bab1dfc", │ │ "/assets/unicorn.png": "0326afe4a8f85faa5c3a01fd38efeafeb58094a2", │ │ - "/chunk-27D2DRS3.js": "fac6a8c045d7adc0f2ba58b55e114e90c7296f0e", │ │ "/chunk-2GIAVY35.js": "a8610022bc97db8fafa469f60320a0eec9355669", │ │ "/chunk-2NYJ54WT.js": "6b2058100c2940dca4d746dd3f5d18ab6c115902", │ │ "/chunk-2OEJRPK3.js": "99c440819c075729ab6e54a9855df2f858d7246d", │ │ "/chunk-2OYIJX2S.js": "39186fdf2bd40e9d06289c22a1e83087dc645419", │ │ "/chunk-36KSA45I.js": "6fb7ddc9d644949bc98764fedfd085f9a5602deb", │ │ "/chunk-3E43H4SH.js": "33caa87bbac6b8a44c021550f0bba30292886b0d", │ │ "/chunk-3UB54IM4.js": "6dd0205087c3166a305b1af5ec8ad771cd5ce0e3", │ │ "/chunk-4WKVJOAH.js": "755c38ce168a294972eb8d09e0b4d2ee35e45efa", │ │ "/chunk-4ZFFPFHJ.js": "58e32d6ceb30e5248581f5b5b070b39f389a1cad", │ │ "/chunk-5DRTMTBB.js": "616bee8fd94c26bd78559d66b81a21af8a6f20c6", │ │ "/chunk-5IEKUB7D.js": "77ce6aba55c8552d09bc85e8b9cfb7f08b563695", │ │ "/chunk-5QXN3OD5.js": "678a3c983bd836c7389a4d24630a2d727ab335cc", │ │ + "/chunk-64H3ZUUD.js": "a2229388a9f6a52f84527d72fbce1bd4030f18b6", │ │ "/chunk-6AKGWMOP.js": "a889def364dedd87333bbb9a86b11aee4069f73a", │ │ "/chunk-6BTIFZYI.js": "0eebb64c82095079d7c83716e4dfffe3a3d92cbe", │ │ "/chunk-6OY54QRV.js": "f8e037482ebd4ca84fe797115f91438dd4b43ddc", │ │ "/chunk-75XR27FK.js": "6780c09a503aa515289ae1a084a1242abb3b5e8d", │ │ "/chunk-7FDDBCUC.js": "ffcac331ea5083eb3189ac45baf7d5f982ffdc38", │ │ "/chunk-7FJHE55G.js": "b7ff908bce13352e6448da97e94b72d8ae702899", │ │ "/chunk-A5MBRGPF.js": "1370eaa81f6ec887d8231e675fe4147619b78acd", │ │ "/chunk-A6QD6H33.js": "ec517b8d910ffcac343b58e04d3dbc538e2fd731", │ │ "/chunk-AALRYEUQ.js": "8606a07a43f2533b5bd69dbf35220e6078b67a78", │ │ "/chunk-AD66EG65.js": "cb92a0e106f00db86ed414d15664a4df17eeb3dd", │ │ "/chunk-ARMIR5IC.js": "30265b03a903ba6ef398e4a6c855c9f78129692d", │ │ "/chunk-B6OPJV2D.js": "5811fed95e51269c2f4ef10cb2421a6990e8d40b", │ │ - "/chunk-BEVQWPHU.js": "ce2174a11563ca3a79c4c4e668adf08ff84886de", │ │ "/chunk-BOROUNNF.js": "459f904bd4a5c44bc789798d548ad8a666e2f15c", │ │ "/chunk-BRCOXYKD.js": "4e5883a1592436f36361a1e0c630327dbe11d4ee", │ │ "/chunk-BYOR3C2V.js": "f29dd714af9f8d5a0b3928e5ddfdcfac7a97cde6", │ │ "/chunk-C36XVA3W.js": "2f4222e8a65c791e8bcd2fc4a3662de4c3768cb6", │ │ "/chunk-CPHBVUHP.js": "ca95335a5a210e95c52b6404403b9a44eafa1d8c", │ │ "/chunk-DLUQCTC2.js": "323ed8406e1058aaede191871ac691e53707ca0f", │ │ + "/chunk-E65JJWOD.js": "14fee9eb1a734f5802fd662b278bc3f9151cfe5c", │ │ "/chunk-EUKOLG7L.js": "465d9dce4da4af581ece16a5925d24e9c867c6e2", │ │ "/chunk-FFYPVFF4.js": "aa886dc1d32c64129c4b5dd5473cc0b3f72327f6", │ │ "/chunk-FIUFEHRP.js": "000c8dd53bdaaab182b24095c0d663bd8f5fa12c", │ │ "/chunk-GKCTQKCR.js": "1707dcc1e9b73abb44784c62b54f28803097df97", │ │ - "/chunk-GL7WXZWS.js": "19be79ed80c2e4b046f38875bbd96706a6f48cc9", │ │ "/chunk-HB735YNJ.js": "b0e2e38e517b7e49d2542eee6e6ae0e4e8f31559", │ │ - "/chunk-HC6EOBDD.js": "3aec3ccc34f7a76f84ea19044fbb856e907970e0", │ │ "/chunk-IGPEI44H.js": "4717701ebc4d639f746c117943e9db3a0a45ca25", │ │ "/chunk-ISS7OXYA.js": "12445d1bd8ffed3dcbf70c9b6dc3bf550913a3a0", │ │ "/chunk-J37TXHMM.js": "d1cf1893f6a02e256605ea0eb649b186d6db17e7", │ │ "/chunk-JL6Q6JOI.js": "11b5567a92c70d66ade5aff5b18806ff08c47304", │ │ "/chunk-JOXJFDKW.js": "62112cbced31bee3f5cfd54d01cdb471ca2735da", │ │ "/chunk-K24A542E.js": "8b7db54040233afc67934f39f9b8454fbba26f35", │ │ + "/chunk-KDMLLTUB.js": "41c314035828ac3ba246cc3b2e498d6719f23bad", │ │ "/chunk-KUGLCKDI.js": "30237cafa216977f6a5f9172afbcf425f2d39cc2", │ │ "/chunk-L36IWOVZ.js": "9dbf14e05fc9d3d5650ee68db9eb1804319ae40b", │ │ "/chunk-LBXTL52Y.js": "901f9329f8e79b87a65471aa4dadfbac1eb3f40a", │ │ "/chunk-LIWNEC7F.js": "2c4f1945fcf99645b60331b03bc1c94bf2947491", │ │ "/chunk-LQIZKP27.js": "9988019cc3b3fc1fd79cf4e7ad80a0fc70f7bc58", │ │ "/chunk-M5HVLJI2.js": "bcc096a1bc20ee81a85150c078cdb498d7cee8a8", │ │ "/chunk-MASHVMAF.js": "c3e060e28a228fc25d8d7a1a90983cfc33f80afa", │ │ "/chunk-MDC62647.js": "75e0a592845724c51bf2ed80b537f65a9e974c7c", │ │ "/chunk-MKQ5S2AR.js": "9368b54b4f102d5c8000a30747eda3da95a162a5", │ │ "/chunk-MP3B4UKL.js": "d5c6eda9ad497862562688e8dbef102aad57c38b", │ │ - "/chunk-N3N572BY.js": "cde03bf13843d239a0281527704f58a26c85a08f", │ │ + "/chunk-NTCTKQ7J.js": "50521368e0182fd111893a0a7ed1f6aa2ebd2dc2", │ │ "/chunk-O6CTCBQG.js": "45857824481eee1ff151c34783bfd387244fbfeb", │ │ "/chunk-OVAWK6DV.js": "4361aa6648b214c9f6cc6a5bc622280f547db7f0", │ │ "/chunk-OXDOKNTF.js": "501996a33f7f3e92729fcabc7c0b3cad82f22134", │ │ - "/chunk-P2ROAFQZ.js": "89d4eba9e9e2ecad264ef37aa3af097772f2c286", │ │ "/chunk-PDJZ5MMV.js": "fd4579d6536a0c21c69cdb6af7269528b5d92b32", │ │ "/chunk-PEJGMLLQ.js": "fe6775dde0b3e793079d9c7be74b708dd45a79ea", │ │ - "/chunk-PQGFZC5T.js": "919a7657caeb830a0dd38d1f21bc335b01e9edcf", │ │ "/chunk-PTIRGE5P.js": "c4f035ca92fb6478b111548e78c23d92871fc548", │ │ "/chunk-PTPW64DK.js": "00845a4136d4e1e86db8243ea9c10427ebf36b27", │ │ "/chunk-PU7IHBD3.js": "bf13580a367814b90b5520b6b0044ebb96e68601", │ │ "/chunk-PVQRHZUS.js": "0097636a7c1f497dbf93c87e1ebee52610614b49", │ │ "/chunk-QEAPM2TB.js": "4044d5f270d78760ff9c66d2666e920731946cd3", │ │ - "/chunk-QJR3D76V.js": "375ae3705124f0a3524de9c9928fb2f94d5e9d6d", │ │ "/chunk-QLLW75HD.js": "47753d493a124b3c45f4bb1201c70f3391cfd605", │ │ "/chunk-QTPH6ICR.js": "3daad127b6c54163f2a9c84b1939e2c806eda67e", │ │ + "/chunk-QWNDFGVA.js": "eb0d1bd759d8de68b5ea46d87df324ac013a1d4f", │ │ "/chunk-RHU3AIGY.js": "70f3005532610e087402505fa642745a0759fb44", │ │ + "/chunk-RSMDBQ3S.js": "e0f3c41471d1805cc8bf6e850bb4e136df669e81", │ │ "/chunk-RSWQLHJS.js": "27a67252217492fcc1bb68e66616d7bfa1137ddd", │ │ "/chunk-S2VMIPG4.js": "6421af5c4f2d42fc56ba3099c94c7b8ec77cc0a2", │ │ + "/chunk-SELKJFL3.js": "e07dbe5bf9ed1c9d85a4430a1e59822b3dcf0e16", │ │ "/chunk-SIHDDD4X.js": "c99ed3b11f8373d3778c60fb4277af85c3be11d3", │ │ + "/chunk-SNGTFZOM.js": "614c24a32cba1d532c4292433a2c7ba9b71ba3c2", │ │ "/chunk-SNOMK7L7.js": "a090aab2265c5f3460d414bc07ba4bb2eb8cb20c", │ │ "/chunk-TQO5KI2E.js": "98a84da672c417e7926299b675d0622f6bb8e6d1", │ │ "/chunk-U233VVFY.js": "51f1f8a1d3f2ed2951838a10456ad42172522001", │ │ "/chunk-U4MSYCAI.js": "083ba4488f18392410d4d7946bf74057f5131b5d", │ │ - "/chunk-U6VOYBU7.js": "4199183f4dad6e4143266a5c0c5c6503c91e8296", │ │ + "/chunk-U7D5UGKX.js": "fd0bd06738229a62f289c6bb288280676e979508", │ │ "/chunk-U7WA2TBM.js": "acc4a8a5264d3cf555bd684e772b73f820c9a567", │ │ "/chunk-UGRNF2BN.js": "e8e7fb57ecf7c093393deee4fdc90580c0f1d181", │ │ "/chunk-USUJACSP.js": "4447b8f99026ac9253eecb9c20d40bb3ad9f49b5", │ │ - "/chunk-V2IOF2CR.js": "19e28c47f5e18f2a1e3a081e5730eedafa8c8fe3", │ │ "/chunk-VALZJMB4.js": "3178219d2e9a366851c6f9c278783f9c5628bdc6", │ │ "/chunk-VMAIUF6C.js": "8ccf88fb8e99f5456ccb164571c4ed4d838dd6e6", │ │ "/chunk-VTKUDKZO.js": "164630cdda9b61be41ceec65da27d17aa4d184b0", │ │ "/chunk-VV4K2E6H.js": "fdba8154388fe21edf2f17fa781e6668d14b22de", │ │ "/chunk-W3EHXDVY.js": "23e1348651bae932954b8eb0918f95913e86d7bd", │ │ "/chunk-WLF3NYHN.js": "d302ca5ed0a222476ba572134c37447a4faa9e4f", │ │ "/chunk-X5ELN6XQ.js": "401f89f22aa424e5ebb4a759ffdf591522723877", │ │ @@ -488,21 +487,22 @@ │ │ "/chunk-XU2E3I7U.js": "42be333379abd934534b707aa2e0824a038af868", │ │ "/chunk-XZ3A45KS.js": "ba7121dd261ba1a9cf737ce21e95f9e684dd076f", │ │ "/chunk-XZNG5AP7.js": "e94b9a92d0b98df8d2d60a5b1810868b6509df6c", │ │ "/chunk-Y4CBKMDD.js": "eee3f08ba0e2d57ec6d44e67a258981437bc112e", │ │ "/chunk-Y6ZW4Y7G.js": "7f6d7d65ced803dccf12a35f03ad8fbfecde0025", │ │ "/chunk-YHQK3ECO.js": "729070ea269333940e4cc5cfa3edecec272e0a9a", │ │ "/chunk-YRVC3PEN.js": "cad593a34e67efb15ad0e4fed1afe474ccc43bf4", │ │ + "/chunk-YWESG3FE.js": "8c86682455ac72b96aaac42ca964fa14f8472f0f", │ │ "/chunk-Z2TE7HXE.js": "dfb50d4ec03b1116642ee8d7ba00500d89ff4edf", │ │ "/chunk-Z3G7FTEB.js": "d815e44e59d8a97ba18052cf87398b86ed38f6bb", │ │ "/chunk-ZNOXYKEG.js": "f5141d6cfb61659a9a838ce932beaa681cc6eb87", │ │ "/chunk-ZSRRUOXN.js": "c68b05fdd8a0a19e4b08fc881cd19ad9c3f4598e", │ │ "/favicon.ico": "041b337586bb0e48da6f4fdfc846ef3594373009", │ │ - "/index.html": "1f962cae9944f2d3111d07bf3dd5f032e9556959", │ │ - "/main-I5FCRQ3B.js": "d14deb1ddff278114d27dc9ab90021034dbc6167", │ │ + "/index.html": "0b6b9f37cf4bffaa4984f376d86c94d9985dd472", │ │ + "/main-NHY4LGM6.js": "9dec55af3be6d876385232997ee2cd24e8eaafdc", │ │ "/manifest.json": "94d39d23fcd194a0c89eb3bcd838730cec7cabee", │ │ "/polyfills-D4CWKFPZ.js": "be63e19dcbf7539a31849701283857d1ebe28b56", │ │ "/styles-XO6QZNOR.css": "c7311ec535fc2edd493e468bc200b05c921f8b9c", │ │ "/worker-IGYSNMZW.js": "083fd2c7281b3a020662f49f267ec4319a25e960" │ │ }, │ │ "index": "/index.html", │ │ "navigationRequestStrategy": "performance", │ │ @@ -520,9 +520,9 @@ │ │ "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$" │ │ }, │ │ { │ │ "positive": false, │ │ "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$" │ │ } │ │ ], │ │ - "timestamp": 1760204280213 │ │ + "timestamp": 1760756849493 │ │ } ├── assets/public/index.html │ @@ -7007,46 +7007,46 @@ │ 0001b5e0: 7445 6c65 6d65 6e74 4279 4964 2827 7465 tElementById('te │ 0001b5f0: 7874 2729 2e69 6e6e 6572 5465 7874 203d xt').innerText = │ 0001b600: 2070 726f 6475 6374 6976 6974 7954 6970 productivityTip │ 0001b610: 735b 7261 6e64 6f6d 496e 6465 785d 5b31 s[randomIndex][1 │ 0001b620: 5d3b 0a20 2020 203c 2f73 6372 6970 743e ];. │ 0001b630: 0a20 203c 6c69 6e6b 2072 656c 3d22 6d6f . < │ 0001b700: 6c69 6e6b 2072 656c 3d22 6d6f 6475 6c65 link rel="module │ 0001b710: 7072 656c 6f61 6422 2068 7265 663d 2263 preload" href="c │ 0001b720: 6875 6e6b 2d45 554b 4f4c 4737 4c2e 6a73 hunk-EUKOLG7L.js │ 0001b730: 223e 3c6c 696e 6b20 7265 6c3d 226d 6f64 ">.. │ --- assets/public/main-I5FCRQ3B.js.map ├── +++ assets/public/main-NHY4LGM6.js.map │┄ Files identical despite different names │ --- assets/public/main-I5FCRQ3B.js ├── +++ assets/public/main-NHY4LGM6.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -23,15 +23,15 @@ │ │ t as XD, │ │ u as Ic, │ │ v as Gb, │ │ w as Kb, │ │ x as QD, │ │ y as Jp, │ │ z as Yb │ │ -} from "./chunk-GL7WXZWS.js"; │ │ +} from "./chunk-U7D5UGKX.js"; │ │ import { │ │ a as vo, │ │ b as sl │ │ } from "./chunk-XZ3A45KS.js"; │ │ import { │ │ a as KT, │ │ e as YT, │ │ @@ -78,15 +78,15 @@ │ │ import { │ │ b as qb, │ │ c as eA │ │ } from "./chunk-EUKOLG7L.js"; │ │ import { │ │ a as Xb, │ │ b as tA │ │ -} from "./chunk-U6VOYBU7.js"; │ │ +} from "./chunk-YWESG3FE.js"; │ │ import { │ │ a as wc, │ │ b as iA, │ │ c as Qb, │ │ d as nA │ │ } from "./chunk-FIUFEHRP.js"; │ │ import { │ │ @@ -94,28 +94,28 @@ │ │ b as cO, │ │ c as WS, │ │ d as kD, │ │ e as GS, │ │ f as ID, │ │ g as Yp, │ │ h as Bb │ │ -} from "./chunk-QJR3D76V.js"; │ │ +} from "./chunk-SELKJFL3.js"; │ │ import { │ │ a as ap, │ │ b as sp, │ │ c as kT │ │ } from "./chunk-BYOR3C2V.js"; │ │ import { │ │ a as ip, │ │ b as dT │ │ } from "./chunk-3UB54IM4.js"; │ │ import { │ │ f as _a, │ │ g as Vp │ │ -} from "./chunk-V2IOF2CR.js"; │ │ +} from "./chunk-SNGTFZOM.js"; │ │ import { │ │ a as zS, │ │ b as MD │ │ } from "./chunk-FFYPVFF4.js"; │ │ import { │ │ a as $b, │ │ b as YD │ │ @@ -335,15 +335,15 @@ │ │ h as ko │ │ } from "./chunk-W3EHXDVY.js"; │ │ import { │ │ a as Yn, │ │ b as OD, │ │ k as Cr, │ │ l as Mc │ │ -} from "./chunk-HC6EOBDD.js"; │ │ +} from "./chunk-64H3ZUUD.js"; │ │ import { │ │ A as Oh, │ │ B as LS, │ │ C as gD, │ │ D as Dh, │ │ E as CD, │ │ I as Ah, │ │ @@ -370,15 +370,15 @@ │ │ l as kS, │ │ m as hD, │ │ n as es, │ │ o as _D, │ │ x as Bp, │ │ y as OS, │ │ z as DS │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import { │ │ a as lr, │ │ b as hc, │ │ c as Ih, │ │ d as Tc, │ │ e as Sc, │ │ f as wh, │ │ @@ -13095,15 +13095,15 @@ │ │ var tI, iI = O(() => { │ │ "use strict"; │ │ QM(); │ │ Do(); │ │ eI(); │ │ tI = [{ │ │ path: "config", │ │ - loadComponent: () => import("./chunk-27D2DRS3.js").then(i => i.ConfigPageComponent), │ │ + loadComponent: () => import("./chunk-RSMDBQ3S.js").then(i => i.ConfigPageComponent), │ │ data: { │ │ page: "config" │ │ }, │ │ canActivate: [Zt] │ │ }, { │ │ path: "search", │ │ loadComponent: () => import("./chunk-XZNG5AP7.js").then(i => i.SearchPageComponent), │ │ @@ -13165,22 +13165,22 @@ │ │ loadComponent: () => import("./chunk-Y4CBKMDD.js").then(i => i.QuickHistoryComponent), │ │ data: { │ │ page: "quick-history" │ │ }, │ │ canActivate: [ya, Zt] │ │ }, { │ │ path: "tag/:id/daily-summary", │ │ - loadComponent: () => import("./chunk-BEVQWPHU.js").then(i => i.DailySummaryComponent), │ │ + loadComponent: () => import("./chunk-NTCTKQ7J.js").then(i => i.DailySummaryComponent), │ │ data: { │ │ page: "daily-summary" │ │ }, │ │ canActivate: [ya, Zt] │ │ }, { │ │ path: "tag/:id/daily-summary/:dayStr", │ │ - loadComponent: () => import("./chunk-BEVQWPHU.js").then(i => i.DailySummaryComponent), │ │ + loadComponent: () => import("./chunk-NTCTKQ7J.js").then(i => i.DailySummaryComponent), │ │ data: { │ │ page: "daily-summary" │ │ }, │ │ canActivate: [ya, Zt] │ │ }, { │ │ path: "tag/:id/metrics", │ │ loadComponent: () => import("./chunk-PTPW64DK.js").then(i => i.MetricPageComponent), │ │ @@ -13221,41 +13221,41 @@ │ │ loadComponent: () => import("./chunk-PTPW64DK.js").then(i => i.MetricPageComponent), │ │ data: { │ │ page: "metrics" │ │ }, │ │ canActivate: [ka, Zt] │ │ }, { │ │ path: "project/:id/daily-summary", │ │ - loadComponent: () => import("./chunk-BEVQWPHU.js").then(i => i.DailySummaryComponent), │ │ + loadComponent: () => import("./chunk-NTCTKQ7J.js").then(i => i.DailySummaryComponent), │ │ data: { │ │ page: "daily-summary" │ │ }, │ │ canActivate: [ka, Zt] │ │ }, { │ │ path: "project/:id/daily-summary/:dayStr", │ │ - loadComponent: () => import("./chunk-BEVQWPHU.js").then(i => i.DailySummaryComponent), │ │ + loadComponent: () => import("./chunk-NTCTKQ7J.js").then(i => i.DailySummaryComponent), │ │ data: { │ │ page: "daily-summary" │ │ }, │ │ canActivate: [ka, Zt] │ │ }, { │ │ path: "active/:subPageType", │ │ canActivate: [Bm, Zt], │ │ - loadComponent: () => import("./chunk-27D2DRS3.js").then(i => i.ConfigPageComponent) │ │ + loadComponent: () => import("./chunk-RSMDBQ3S.js").then(i => i.ConfigPageComponent) │ │ }, { │ │ path: "active/:subPageType/:param", │ │ canActivate: [Bm, Zt], │ │ - loadComponent: () => import("./chunk-27D2DRS3.js").then(i => i.ConfigPageComponent) │ │ + loadComponent: () => import("./chunk-RSMDBQ3S.js").then(i => i.ConfigPageComponent) │ │ }, { │ │ path: "active", │ │ canActivate: [Bm, Zt], │ │ - loadComponent: () => import("./chunk-27D2DRS3.js").then(i => i.ConfigPageComponent) │ │ + loadComponent: () => import("./chunk-RSMDBQ3S.js").then(i => i.ConfigPageComponent) │ │ }, { │ │ path: "plugins/:pluginId/index", │ │ - loadComponent: () => import("./chunk-P2ROAFQZ.js").then(i => i.PluginIndexComponent), │ │ + loadComponent: () => import("./chunk-E65JJWOD.js").then(i => i.PluginIndexComponent), │ │ data: { │ │ page: "plugin-index" │ │ }, │ │ canActivate: [Zt] │ │ }, { │ │ path: "**", │ │ redirectTo: `tag/${rt.id}/tasks` │ │ @@ -29446,8 +29446,8 @@ │ │ re.log("Time window for completing sync started"), yield n0(2e4), re.log("Time window for completing sync ended. Closing app!"), ug.finish({ │ │ taskId: e │ │ }) │ │ })) │ │ }))) │ │ }); │ │ export default xU(); │ │ -//# sourceMappingURL=main-I5FCRQ3B.js.map │ │ +//# sourceMappingURL=main-NHY4LGM6.js.map │ --- assets/public/chunk-V2IOF2CR.js.map ├── +++ assets/public/chunk-SNGTFZOM.js.map │┄ Files identical despite different names │ --- assets/public/chunk-V2IOF2CR.js ├── +++ assets/public/chunk-SNGTFZOM.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -5,21 +5,21 @@ │ │ f as Qe, │ │ i as Ne, │ │ j as et, │ │ q as Ae, │ │ r as tt, │ │ s as $e, │ │ t as it │ │ -} from "./chunk-HC6EOBDD.js"; │ │ +} from "./chunk-64H3ZUUD.js"; │ │ import { │ │ I as Ce, │ │ J as Je, │ │ j as Ie, │ │ k as Xe │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import { │ │ e as fe, │ │ f as me, │ │ g as Pe, │ │ i as _e, │ │ j as Se, │ │ k as Ee, │ │ @@ -1114,8 +1114,8 @@ │ │ } │ │ return d │ │ })() │ │ }); │ │ export { │ │ Te as a, Le as b, Z as c, Y as d, Oe as e, oi as f, nt as g │ │ }; │ │ -//# sourceMappingURL=chunk-V2IOF2CR.js.map │ │ +//# sourceMappingURL=chunk-SNGTFZOM.js.map │ --- assets/public/chunk-U6VOYBU7.js.map ├── +++ assets/public/chunk-YWESG3FE.js.map │┄ Files identical despite different names │ --- assets/public/chunk-U6VOYBU7.js ├── +++ assets/public/chunk-YWESG3FE.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -1,11 +1,11 @@ │ │ import { │ │ f as ie, │ │ g as we │ │ -} from "./chunk-V2IOF2CR.js"; │ │ +} from "./chunk-SNGTFZOM.js"; │ │ import { │ │ a as re, │ │ b as oe, │ │ c as ae, │ │ f as le, │ │ g as Oe │ │ } from "./chunk-2OEJRPK3.js"; │ │ @@ -14,15 +14,15 @@ │ │ l as ve, │ │ m as Z, │ │ n as ee, │ │ o as te, │ │ p as Ie, │ │ q as ne, │ │ r as Me │ │ -} from "./chunk-HC6EOBDD.js"; │ │ +} from "./chunk-64H3ZUUD.js"; │ │ import { │ │ a as Y, │ │ c as xe │ │ } from "./chunk-6AKGWMOP.js"; │ │ import { │ │ c as W, │ │ d as N, │ │ @@ -319,8 +319,8 @@ │ │ } │ │ return t │ │ })() │ │ }); │ │ export { │ │ rt as a, De as b │ │ }; │ │ -//# sourceMappingURL=chunk-U6VOYBU7.js.map │ │ +//# sourceMappingURL=chunk-YWESG3FE.js.map │ --- assets/public/chunk-QJR3D76V.js.map ├── +++ assets/public/chunk-SELKJFL3.js.map │┄ Files identical despite different names │ --- assets/public/chunk-QJR3D76V.js ├── +++ assets/public/chunk-SELKJFL3.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -1,15 +1,15 @@ │ │ import { │ │ f as V, │ │ g as X │ │ -} from "./chunk-V2IOF2CR.js"; │ │ +} from "./chunk-SNGTFZOM.js"; │ │ import { │ │ a as L, │ │ b as $ │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import { │ │ b as F, │ │ d as W │ │ } from "./chunk-5IEKUB7D.js"; │ │ import { │ │ Ab as _, │ │ Fb as y, │ │ @@ -158,8 +158,8 @@ │ │ let t = new SpeechSynthesisUtterance; │ │ t.text = e, t.voice = l.getVoices().find(i => n.includes(i.name)) || l.getVoices().find(i => i.default) || null, console.log(o), t.volume = o / 100, l.speak(t) │ │ } │ │ }); │ │ export { │ │ oe as a, J as b, re as c, K as d, Ie as e, ee as f, ve as g, Z as h │ │ }; │ │ -//# sourceMappingURL=chunk-QJR3D76V.js.map │ │ +//# sourceMappingURL=chunk-SELKJFL3.js.map │ --- assets/public/chunk-PQGFZC5T.js.map ├── +++ assets/public/chunk-QWNDFGVA.js.map │┄ Files 99% similar despite different names │ ├── Pretty-printed │ │┄ Similarity: 0.9982078853046595% │ │┄ Differences: {"'sourcesContent'": "{insert: [(62, '// This file is auto-generated by tools/load-env.js\\n// Do " │ │┄ 'not modify directly - edit .env file instead\\n// Generated at: ' │ │┄ '2025-10-18T03:05:04.044Z\\n\\n/**\\n * Environment variables loaded from ' │ │┄ '.env file\\n * Access these constants instead of process.env in your Angular ' │ │┄ 'app\\n */\\nexport const ENV = {\\n\\n} as const;\\n\\n// Type-safe helper ' │ │┄ 'to en […] │ │ @@ -4593,15 +4593,15 @@ │ │ "import * as i0 from '@angular/core';\nimport { ChangeDetectionStrategy, Component, NgModule } from '@angular/core';\nimport { FieldType, FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';\nimport * as i1 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@angular/material/slider';\nimport { MatSliderModule } from '@angular/material/slider';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule, MatRippleModule } from '@angular/material/core';\nlet FormlyFieldSlider = /*#__PURE__*/(() => {\n class FormlyFieldSlider extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n hideFieldUnderline: true,\n floatLabel: 'always',\n displayWith: value => `${value}`\n }\n };\n }\n static {\n this.\u0275fac = /* @__PURE__ */(() => {\n let \u0275FormlyFieldSlider_BaseFactory;\n return function FormlyFieldSlider_Factory(__ngFactoryType__) {\n return (\u0275FormlyFieldSlider_BaseFactory || (\u0275FormlyFieldSlider_BaseFactory = i0.\u0275\u0275getInheritedFactory(FormlyFieldSlider)))(__ngFactoryType__ || FormlyFieldSlider);\n };\n })();\n }\n static {\n this.\u0275cmp = /* @__PURE__ */i0.\u0275\u0275defineComponent({\n type: FormlyFieldSlider,\n selectors: [[\"formly-field-mat-slider\"]],\n standalone: false,\n features: [i0.\u0275\u0275InheritDefinitionFeature],\n decls: 2,\n vars: 15,\n consts: [[3, \"input\", \"change\", \"id\", \"formlyAttributes\", \"tabIndex\", \"color\", \"displayWith\", \"max\", \"min\", \"step\", \"discrete\", \"showTickMarks\"], [\"matSliderThumb\", \"\", 3, \"formControl\", \"formlyAttributes\"]],\n template: function FormlyFieldSlider_Template(rf, ctx) {\n if (rf & 1) {\n i0.\u0275\u0275elementStart(0, \"mat-slider\", 0);\n i0.\u0275\u0275listener(\"input\", function FormlyFieldSlider_Template_mat_slider_input_0_listener($event) {\n return ctx.props.input && ctx.props.input(ctx.field, $event);\n })(\"change\", function FormlyFieldSlider_Template_mat_slider_change_0_listener($event) {\n return ctx.props.change && ctx.props.change(ctx.field, $event);\n });\n i0.\u0275\u0275element(1, \"input\", 1);\n i0.\u0275\u0275elementEnd();\n }\n if (rf & 2) {\n i0.\u0275\u0275styleProp(\"width\", \"100%\");\n i0.\u0275\u0275property(\"id\", ctx.id)(\"formlyAttributes\", ctx.field)(\"tabIndex\", ctx.props.tabindex)(\"color\", ctx.props.color)(\"displayWith\", ctx.props.displayWith)(\"max\", ctx.props.max)(\"min\", ctx.props.min)(\"step\", ctx.props.step)(\"discrete\", ctx.props.discrete)(\"showTickMarks\", ctx.props.showTickMarks)(\"step\", ctx.props.step);\n i0.\u0275\u0275advance();\n i0.\u0275\u0275property(\"formControl\", ctx.formControl)(\"formlyAttributes\", ctx.field);\n }\n },\n dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlDirective, i2.MatSlider, i2.MatSliderThumb, i3.LegacyFormlyAttributes],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return FormlyFieldSlider;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction withFormlyFieldSlider() {\n return {\n types: [{\n name: 'slider',\n component: FormlyFieldSlider,\n wrappers: ['form-field']\n }]\n };\n}\nlet FormlyMatSliderModule = /*#__PURE__*/(() => {\n class FormlyMatSliderModule {\n static {\n this.\u0275fac = function FormlyMatSliderModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FormlyMatSliderModule)();\n };\n }\n static {\n this.\u0275mod = /* @__PURE__ */i0.\u0275\u0275defineNgModule({\n type: FormlyMatSliderModule\n });\n }\n static {\n this.\u0275inj = /* @__PURE__ */i0.\u0275\u0275defineInjector({\n imports: [CommonModule, MatCommonModule, MatRippleModule, ReactiveFormsModule, MatSliderModule, FormlyMatFormFieldModule, FormlyModule.forChild(withFormlyFieldSlider())]\n });\n }\n }\n return FormlyMatSliderModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyFieldSlider, FormlyMatSliderModule, withFormlyFieldSlider };\n", │ │ "import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport {\n MatAutocomplete,\n MatAutocompleteSelectedEvent,\n MatAutocompleteTrigger,\n MatOption,\n} from '@angular/material/autocomplete';\nimport {\n MatChipGrid,\n MatChipInput,\n MatChipInputEvent,\n MatChipRemove,\n MatChipRow,\n} from '@angular/material/chips';\nimport { MatIcon } from '@angular/material/icon';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { T } from '../../../t.const';\nimport { TagService } from '../tag.service';\nimport { TaskService } from '../../tasks/task.service';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { TaskCopy } from '../../tasks/task.model';\nimport { TagComponent } from '../tag/tag.component';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { switchMap } from 'rxjs/operators';\nimport { TODAY_TAG } from '../tag.const';\n\ninterface Suggestion {\n id: string;\n title: string;\n\n [key: string]: any;\n}\n\nconst DEFAULT_SEPARATOR_KEY_CODES: number[] = [ENTER, COMMA];\n\n@Component({\n selector: 'tag-edit',\n standalone: true,\n imports: [\n MatAutocomplete,\n MatAutocompleteTrigger,\n MatChipGrid,\n MatChipInput,\n MatChipRow,\n MatIcon,\n MatChipRemove,\n TagComponent,\n ReactiveFormsModule,\n MatOption,\n TranslatePipe,\n ],\n templateUrl: './tag-edit.component.html',\n styleUrl: './tag-edit.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TagEditComponent {\n T: typeof T = T;\n\n private _tagService = inject(TagService);\n private _taskService = inject(TaskService);\n\n task = input();\n isShowMyDayTag = input(false);\n tagIds = input.required();\n excludedTagIds = input();\n tagUpdate = output();\n\n escapePress = output();\n\n inputCtrl: UntypedFormControl = new UntypedFormControl();\n separatorKeysCodes: number[] = DEFAULT_SEPARATOR_KEY_CODES;\n\n readonly inputEl = viewChild>('inputElRef');\n readonly matAutocomplete = viewChild('autoElRef');\n\n inputVal = toSignal(this.inputCtrl.valueChanges);\n tagSuggestions = toSignal(\n toObservable(this.isShowMyDayTag).pipe(\n switchMap((isShowMyDay) =>\n isShowMyDay ? this._tagService.tags$ : this._tagService.tagsNoMyDayAndNoList$,\n ),\n ),\n { initialValue: [] },\n );\n\n allExcludedTagIds = computed(() => [\n ...this.tagIds(),\n ...(this.excludedTagIds() || []),\n TODAY_TAG.id,\n ]);\n filteredSuggestions = computed(() => {\n const val = this.inputVal();\n const allExcludedTagIds = this.allExcludedTagIds();\n\n if (!val) {\n return this.tagSuggestions().filter(\n (suggestion) => !allExcludedTagIds.includes(suggestion.id),\n );\n }\n const filterValue = val.toLowerCase();\n\n return this.tagSuggestions().filter(\n (suggestion) =>\n suggestion.title.toLowerCase().indexOf(filterValue) === 0 &&\n !allExcludedTagIds.includes(suggestion.id),\n );\n });\n\n tagItems = computed(() => {\n const suggestions = this.tagSuggestions();\n return suggestions.length\n ? (this.tagIds()\n .map((id) => suggestions.find((suggestion) => suggestion.id === id))\n .filter((v) => v) as Suggestion[])\n : [];\n });\n\n add(event: MatChipInputEvent): void {\n const matAutocomplete = this.matAutocomplete();\n if (!matAutocomplete) {\n throw new Error('Auto complete undefined');\n }\n\n if (!matAutocomplete.isOpen) {\n const inp = event.input;\n const value = event.value;\n\n // Add our fruit\n if ((value || '').trim()) {\n this._addByTitle(value.trim());\n }\n\n inp.value = '';\n\n this.inputCtrl.setValue(null);\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (event.code === 'Escape') {\n this.escapePress.emit();\n }\n }\n\n focusInput(): void {\n const inputEl = this.inputEl();\n if (inputEl) {\n inputEl.nativeElement.focus();\n }\n }\n\n remove(id: string): void {\n this._updateModel(this.tagIds().filter((tid) => tid !== id));\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n this._add(event.option.value);\n const inputEl = this.inputEl();\n if (inputEl) {\n inputEl.nativeElement.value = '';\n }\n this.inputCtrl.setValue(null);\n }\n\n private _updateModel(v: string[]): void {\n this.tagUpdate.emit(v);\n const task = this.task();\n if (task) {\n this._taskService.updateTags(task, v);\n }\n }\n\n private _getExistingSuggestionByTitle(v: string): Suggestion | undefined {\n return this.tagSuggestions().find((suggestion) => suggestion.title === v);\n }\n\n private _add(id: string): void {\n // prevent double items\n if (!this.tagIds().includes(id)) {\n this._updateModel([...this.tagIds(), id]);\n }\n }\n\n private _addByTitle(v: string): void {\n const existing = this._getExistingSuggestionByTitle(v);\n if (existing) {\n if (!this.allExcludedTagIds().includes(existing.id)) {\n this._add(existing.id);\n }\n } else {\n this._createNewTag(v);\n }\n }\n\n private _createNewTag(title: string): void {\n const cleanTitle = (t: string): string => {\n return t.replace('#', '');\n };\n\n const id = this._tagService.addTag({ title: cleanTitle(title) });\n this._add(id);\n }\n\n protected readonly onkeydown = onkeydown;\n}\n", │ │ "\n @for (modelItem of tagItems(); track modelItem.id) {\n \n \n\n cancel\n \n \n }\n \n\n\n @for (suggestion of filteredSuggestions(); track suggestion.id) {\n {{ suggestion.title }}\n }\n\n", │ │ "import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/material';\nimport { FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\nimport { T } from 'src/app/t.const';\nimport { TagEditComponent } from '../../features/tag/tag-edit/tag-edit.component';\n\n@Component({\n selector: 'formly-tag-selection',\n standalone: true,\n imports: [FormsModule, FormlyModule, ReactiveFormsModule, TagEditComponent],\n templateUrl: './formly-tag-selection.component.html',\n styleUrl: './formly-tag-selection.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyTagSelectionComponent extends FieldType {\n T: typeof T = T;\n}\n", │ │ "\n\n\n\n", │ │ "import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\nimport { MatButton } from '@angular/material/button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Log } from '../../core/log';\n\n@Component({\n selector: 'formly-btn',\n templateUrl: './formly-btn.component.html',\n styleUrl: './formly-btn.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormlyModule, MatButton, TranslatePipe],\n})\nexport class FormlyBtnComponent extends FieldType {\n onClick(): void {\n if (this.to.onClick) {\n const r = this.to.onClick(this.field, this.form, this.model);\n if (r && 'then' in r) {\n r.then((v) => {\n Log.log('update', v, this);\n this.formControl.setValue(v);\n this.form.markAsDirty();\n });\n } else {\n this.formControl.setValue(r);\n }\n }\n }\n}\n", │ │ "@if (value) {\n
{{ value }}
\n}\n\n {{ (to.text | translate) || 'Click Me' }}\n\n", │ │ - "// This file is auto-generated by tools/load-env.js\n// Do not modify directly - edit .env file instead\n// Generated at: 2025-10-11T17:34:35.872Z\n\n/**\n * Environment variables loaded from .env file\n * Access these constants instead of process.env in your Angular app\n */\nexport const ENV = {\n\n} as const;\n\n// Type-safe helper to ensure all expected env vars are defined\nexport type EnvVars = typeof ENV;\n", │ │ + "// This file is auto-generated by tools/load-env.js\n// Do not modify directly - edit .env file instead\n// Generated at: 2025-10-18T03:05:04.044Z\n\n/**\n * Environment variables loaded from .env file\n * Access these constants instead of process.env in your Angular app\n */\nexport const ENV = {\n\n} as const;\n\n// Type-safe helper to ensure all expected env vars are defined\nexport type EnvVars = typeof ENV;\n", │ │ "/**\n * Pure functions for accessing environment variables.\n * These can be used anywhere in the codebase, including outside Angular context.\n */\n\n// Import the generated environment constants\n// This file is auto-generated from .env by tools/load-env.js\nimport { ENV } from '../config/env.generated';\n\n/**\n * Get an environment variable value.\n * Returns undefined if the variable is not set.\n */\nexport const getEnv = (key: keyof typeof ENV): string | undefined => {\n return ENV[key] || undefined;\n};\n\n/**\n * Get an optional environment variable that may not be in the required list.\n * Use this for environment variables that are truly optional and may not be defined\n * in the REQUIRED_ENV_KEYS list in load-env.js.\n * Returns undefined if the variable is not set.\n */\nexport const getEnvOptional = (key: string): string | undefined => {\n return (ENV as any)[key] || undefined;\n};\n\n/**\n * Get an environment variable as a number.\n * Returns undefined if the value is not a valid number.\n */\nexport const getEnvNumber = (key: keyof typeof ENV): number | undefined => {\n const value = getEnv(key);\n if (value === undefined) return undefined;\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n};\n\n/**\n * Get all environment variables as an object.\n * Useful for debugging or passing multiple values.\n */\nexport const getAllEnv = (): typeof ENV => ENV;\n", │ │ "import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { getEnvOptional } from '../../util/env';\n\nexport interface UnsplashPhoto {\n id: string;\n urls: {\n raw: string;\n full: string;\n regular: string;\n small: string;\n thumb: string;\n };\n links?: {\n self?: string;\n html?: string;\n download?: string;\n download_location?: string;\n };\n description: string | null;\n alt_description: string | null;\n user: {\n name: string;\n links?: {\n html?: string;\n };\n };\n}\n\nexport interface UnsplashSearchResponse {\n results: UnsplashPhoto[];\n total: number;\n total_pages: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UnsplashService {\n private _http = inject(HttpClient);\n\n private readonly API_URL = 'https://api.unsplash.com';\n // Register your app at https://unsplash.com/developers?utm_source=super-productivity&utm_medium=referral&utm_campaign=api-credit for a free Access Key (50 req/hour)\n // The Access Key is used with \"Client-ID\" prefix in the Authorization header\n private readonly ACCESS_KEY = getEnvOptional('UNSPLASH_KEY');\n\n isAvailable(): boolean {\n return !!this.ACCESS_KEY;\n }\n\n searchPhotos(query: string, page = 1): Observable {\n if (!query || query.trim() === '') {\n return of({ results: [], total: 0, total_pages: 0 });\n }\n\n if (!this.ACCESS_KEY) {\n console.warn(\n 'No Unsplash Access Key configured. Register at https://unsplash.com/developers?utm_source=super-productivity&utm_medium=referral&utm_campaign=api-credit',\n );\n return of({ results: [], total: 0, total_pages: 0 });\n }\n\n const params = {\n query: query.trim(),\n page: page.toString(),\n per_page: '20',\n orientation: 'landscape',\n };\n\n const url = `${this.API_URL}/search/photos`;\n const headers = {\n Authorization: `Client-ID ${this.ACCESS_KEY}`,\n };\n\n return this._http\n .get(url, {\n params,\n headers,\n })\n .pipe(\n catchError((error) => {\n console.error('Unsplash API error:', error);\n return of({ results: [], total: 0, total_pages: 0 });\n }),\n );\n }\n\n getPhotoUrl(\n photo: UnsplashPhoto,\n size: 'thumb' | 'small' | 'regular' = 'regular',\n ): string {\n return photo.urls[size];\n }\n\n /**\n * Get optimized image URL for backgrounds\n * @param photo - The Unsplash photo object\n * @param width - Desired width (default 2560 for high res displays)\n * @param quality - Image quality 1-100 (default 85)\n */\n getBackgroundImageUrl(photo: UnsplashPhoto, width = 2560, quality = 85): string {\n return `${photo.urls.raw}&w=${width}&q=${quality}&auto=format`;\n }\n\n /**\n * Add UTM parameters to Unsplash attribution links as required\n * @param url - The original Unsplash URL\n */\n addUtmParams(url: string): string {\n if (!url) return url;\n\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}utm_source=super-productivity&utm_medium=referral&utm_campaign=api-credit`;\n }\n\n /**\n * Trigger download tracking as required by Unsplash API guidelines\n * This must be called when a user selects a photo for use\n * @param photo - The selected photo\n */\n trackPhotoDownload(photo: UnsplashPhoto): Observable {\n if (!photo.links?.download_location) {\n console.warn('No download_location available for photo', photo.id);\n return of(null);\n }\n\n if (!this.ACCESS_KEY) {\n console.warn('No Unsplash Access Key configured');\n return of(null);\n }\n\n const headers = {\n Authorization: `Client-ID ${this.ACCESS_KEY}`,\n };\n\n // Call the download endpoint to track usage\n return this._http.get(photo.links.download_location, { headers }).pipe(\n catchError((error) => {\n console.error('Failed to track photo download:', error);\n // Don't fail the selection if tracking fails\n return of(null);\n }),\n );\n }\n}\n", │ │ "export const IS_MAC = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n", │ │ "import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, EventEmitter, Directive, Optional, Inject, Input, Output } from '@angular/core';\nimport { registerables, Chart, defaults } from 'chart.js';\nimport { merge } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nconst NG_CHARTS_CONFIGURATION = new InjectionToken('Configuration for ngCharts');\n/**\n * Provide all the default registerable as defined by Chart.js\n */\nfunction withDefaultRegisterables(...registerables$1) {\n return {\n registerables: [...registerables, ...registerables$1]\n };\n}\n/**\n * Provide configuration for ngCharts. In most cases, you have to pass it some registerables. So either\n * `withDefaultRegisterables()`, or a custom list of registerables tailored to your needs to reduce bundle size.\n */\nfunction provideCharts(...configurations) {\n const config = merge({}, ...configurations);\n return {\n provide: NG_CHARTS_CONFIGURATION,\n useValue: config\n };\n}\nlet ThemeService = /*#__PURE__*/(() => {\n class ThemeService {\n constructor() {\n this.colorschemesOptions = new BehaviorSubject(undefined);\n }\n setColorschemesOptions(options) {\n this.pColorschemesOptions = options;\n this.colorschemesOptions.next(options);\n }\n getColorschemesOptions() {\n return this.pColorschemesOptions;\n }\n static {\n this.\u0275fac = function ThemeService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ThemeService)();\n };\n }\n static {\n this.\u0275prov = /* @__PURE__ */i0.\u0275\u0275defineInjectable({\n token: ThemeService,\n factory: ThemeService.\u0275fac,\n providedIn: 'root'\n });\n }\n }\n return ThemeService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BaseChartDirective = /*#__PURE__*/(() => {\n class BaseChartDirective {\n constructor(element, zone, themeService, config) {\n this.zone = zone;\n this.themeService = themeService;\n this.type = 'bar';\n this.plugins = [];\n this.chartClick = new EventEmitter();\n this.chartHover = new EventEmitter();\n this.subs = [];\n this.themeOverrides = {};\n if (config?.registerables) {\n Chart.register(...config.registerables);\n }\n if (config?.defaults) {\n defaults.set(config.defaults);\n }\n this.ctx = element.nativeElement.getContext('2d');\n this.subs.push(this.themeService.colorschemesOptions.pipe(distinctUntilChanged()).subscribe(r => this.themeChanged(r)));\n }\n ngOnChanges(changes) {\n const requireRender = ['type'];\n const propertyNames = Object.getOwnPropertyNames(changes);\n if (propertyNames.some(key => requireRender.includes(key)) || propertyNames.every(key => changes[key].isFirstChange())) {\n this.render();\n } else {\n const config = this.getChartConfiguration();\n // Using assign to avoid changing the original object reference\n if (this.chart) {\n Object.assign(this.chart.config.data, config.data);\n if (this.chart.config.plugins) {\n Object.assign(this.chart.config.plugins, config.plugins);\n }\n if (this.chart.config.options) {\n Object.assign(this.chart.config.options, config.options);\n }\n }\n this.update();\n }\n }\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this.chart = void 0;\n }\n this.subs.forEach(s => s.unsubscribe());\n }\n render() {\n if (this.chart) {\n this.chart.destroy();\n }\n return this.zone.runOutsideAngular(() => this.chart = new Chart(this.ctx, this.getChartConfiguration()));\n }\n update(mode) {\n if (this.chart) {\n this.zone.runOutsideAngular(() => this.chart?.update(mode));\n }\n }\n hideDataset(index, hidden) {\n if (this.chart) {\n this.chart.getDatasetMeta(index).hidden = hidden;\n this.update();\n }\n }\n isDatasetHidden(index) {\n return this.chart?.getDatasetMeta(index)?.hidden;\n }\n toBase64Image() {\n return this.chart?.toBase64Image();\n }\n themeChanged(options) {\n this.themeOverrides = options;\n if (this.chart) {\n if (this.chart.config.options) {\n Object.assign(this.chart.config.options, this.getChartOptions());\n }\n this.update();\n }\n }\n getChartOptions() {\n return merge({\n onHover: (event, active) => {\n if (!this.chartHover.observed && !this.chartHover.observers?.length) {\n return;\n }\n this.zone.run(() => this.chartHover.emit({\n event,\n active\n }));\n },\n onClick: (event, active) => {\n if (!this.chartClick.observed && !this.chartClick.observers?.length) {\n return;\n }\n this.zone.run(() => this.chartClick.emit({\n event,\n active\n }));\n }\n }, this.themeOverrides, this.options, {\n plugins: {\n legend: {\n display: this.legend\n }\n }\n });\n }\n getChartConfiguration() {\n return {\n type: this.type,\n data: this.getChartData(),\n options: this.getChartOptions(),\n plugins: this.plugins\n };\n }\n getChartData() {\n return this.data ? this.data : {\n labels: this.labels || [],\n datasets: this.datasets || []\n };\n }\n static {\n this.\u0275fac = function BaseChartDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BaseChartDirective)(i0.\u0275\u0275directiveInject(i0.ElementRef), i0.\u0275\u0275directiveInject(i0.NgZone), i0.\u0275\u0275directiveInject(ThemeService), i0.\u0275\u0275directiveInject(NG_CHARTS_CONFIGURATION, 8));\n };\n }\n static {\n this.\u0275dir = /* @__PURE__ */i0.\u0275\u0275defineDirective({\n type: BaseChartDirective,\n selectors: [[\"canvas\", \"baseChart\", \"\"]],\n inputs: {\n type: \"type\",\n legend: \"legend\",\n data: \"data\",\n options: \"options\",\n plugins: \"plugins\",\n labels: \"labels\",\n datasets: \"datasets\"\n },\n outputs: {\n chartClick: \"chartClick\",\n chartHover: \"chartHover\"\n },\n exportAs: [\"base-chart\"],\n features: [i0.\u0275\u0275NgOnChangesFeature]\n });\n }\n }\n return BaseChartDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ng2-charts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseChartDirective, NG_CHARTS_CONFIGURATION, ThemeService, provideCharts, withDefaultRegisterables };\n", │ │ "export const IS_FIREFOX = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n", │ │ "import { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Log } from '../log';\n\nexport interface CustomTheme {\n id: string;\n name: string;\n url: string;\n requiredMode?: 'dark' | 'light' | 'system';\n}\n\nexport const AVAILABLE_CUSTOM_THEMES: CustomTheme[] = [\n {\n id: 'default',\n name: 'Default',\n url: '',\n requiredMode: 'system',\n },\n {\n id: 'arc',\n name: 'Arc',\n url: 'assets/themes/arc.css',\n requiredMode: 'dark',\n },\n {\n id: 'dark-base',\n name: 'Dark Base',\n url: 'assets/themes/dark-base.css',\n requiredMode: 'dark',\n },\n {\n id: 'dracula',\n name: 'Dracula',\n url: 'assets/themes/dracula.css',\n requiredMode: 'dark',\n },\n {\n id: 'everforest',\n name: 'Everforest',\n url: 'assets/themes/everforest.css',\n requiredMode: 'system',\n },\n {\n id: 'rainbow',\n name: 'Rainbow',\n url: 'assets/themes/rainbow.css',\n requiredMode: 'system',\n },\n {\n id: 'glass',\n name: 'Glass',\n url: 'assets/themes/glass.css',\n requiredMode: 'dark',\n },\n {\n id: 'nord-polar-night',\n name: 'Nord Polar Night',\n url: 'assets/themes/nord-polar-night.css',\n requiredMode: 'dark',\n },\n {\n id: 'nord-snow-storm',\n name: 'Nord Snow Storm',\n url: 'assets/themes/nord-snow-storm.css',\n requiredMode: 'light',\n },\n];\n\n@Injectable({ providedIn: 'root' })\nexport class CustomThemeService {\n private document = inject(DOCUMENT);\n private currentThemeLinkElement: HTMLLinkElement | null = null;\n\n loadTheme(themeId: string): void {\n const theme = AVAILABLE_CUSTOM_THEMES.find((t) => t.id === themeId);\n\n if (!theme) {\n Log.err(`Theme with id ${themeId} not found`);\n return;\n }\n\n // Remove existing theme\n this.unloadCurrentTheme();\n\n // If default theme, no need to load external CSS\n if (theme.id === 'default' || !theme.url) {\n return;\n }\n\n // Create new link element for theme\n const linkElement = this.document.createElement('link');\n linkElement.rel = 'stylesheet';\n linkElement.href = theme.url;\n linkElement.id = 'custom-theme-stylesheet';\n\n // Add to head\n this.document.head.appendChild(linkElement);\n this.currentThemeLinkElement = linkElement;\n }\n\n unloadCurrentTheme(): void {\n if (this.currentThemeLinkElement) {\n this.currentThemeLinkElement.remove();\n this.currentThemeLinkElement = null;\n }\n\n // Also remove any existing custom theme stylesheets\n const existingThemeLink = this.document.getElementById('custom-theme-stylesheet');\n if (existingThemeLink) {\n existingThemeLink.remove();\n }\n }\n\n getAvailableThemes(): CustomTheme[] {\n return AVAILABLE_CUSTOM_THEMES;\n }\n}\n", │ │ "import { effect, inject, Injectable, signal } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { BodyClass, IS_ELECTRON } from '../../app.constants';\nimport { IS_MAC } from '../../util/is-mac';\nimport { distinctUntilChanged, map, startWith, switchMap, take } from 'rxjs/operators';\nimport { IS_TOUCH_ONLY } from '../../util/is-touch-only';\nimport { MaterialCssVarsService } from 'angular-material-css-vars';\nimport { DOCUMENT } from '@angular/common';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ChromeExtensionInterfaceService } from '../chrome-extension-interface/chrome-extension-interface.service';\nimport { ThemeService as NgChartThemeService } from 'ng2-charts';\nimport { GlobalConfigService } from '../../features/config/global-config.service';\nimport { WorkContextThemeCfg } from '../../features/work-context/work-context.model';\nimport { WorkContextService } from '../../features/work-context/work-context.service';\nimport { combineLatest, fromEvent, Observable, of } from 'rxjs';\nimport { IS_FIREFOX } from '../../util/is-firefox';\nimport { ImexViewService } from '../../imex/imex-meta/imex-view.service';\nimport { IS_MOUSE_PRIMARY, IS_TOUCH_PRIMARY } from '../../util/is-mouse-primary';\nimport { ChartConfiguration } from 'chart.js';\nimport { IS_ANDROID_WEB_VIEW } from '../../util/is-android-web-view';\nimport { androidInterface } from '../../features/android/android-interface';\nimport { HttpClient } from '@angular/common/http';\nimport { LS } from '../persistence/storage-keys.const';\nimport { CustomThemeService } from './custom-theme.service';\nimport { Log } from '../log';\nimport { LayoutService } from '../../core-ui/layout/layout.service';\n\nexport type DarkModeCfg = 'dark' | 'light' | 'system';\n\n@Injectable({ providedIn: 'root' })\nexport class GlobalThemeService {\n private document = inject(DOCUMENT);\n private _layoutService = inject(LayoutService);\n private _materialCssVarsService = inject(MaterialCssVarsService);\n private _workContextService = inject(WorkContextService);\n private _globalConfigService = inject(GlobalConfigService);\n private _matIconRegistry = inject(MatIconRegistry);\n private _domSanitizer = inject(DomSanitizer);\n private _chartThemeService = inject(NgChartThemeService);\n private _chromeExtensionInterfaceService = inject(ChromeExtensionInterfaceService);\n private _imexMetaService = inject(ImexViewService);\n private _http = inject(HttpClient);\n private _customThemeService = inject(CustomThemeService);\n\n darkMode = signal(\n (localStorage.getItem(LS.DARK_MODE) as DarkModeCfg) || 'system',\n );\n\n private _isDarkThemeObs$: Observable = toObservable(this.darkMode).pipe(\n switchMap((darkMode) => {\n switch (darkMode) {\n case 'dark':\n return of(true);\n case 'light':\n return of(false);\n default:\n const darkModePreference = window.matchMedia('(prefers-color-scheme: dark)');\n return fromEvent(darkModePreference, 'change').pipe(\n map((e: any) => e.matches),\n startWith(darkModePreference.matches),\n );\n }\n }),\n distinctUntilChanged(),\n );\n\n isDarkTheme = toSignal(this._isDarkThemeObs$, { initialValue: false });\n\n private _backgroundImgObs$: Observable = combineLatest([\n this._workContextService.currentTheme$,\n this._isDarkThemeObs$,\n ]).pipe(\n map(([theme, isDarkMode]) =>\n isDarkMode ? theme.backgroundImageDark : theme.backgroundImageLight,\n ),\n distinctUntilChanged(),\n );\n\n backgroundImg = toSignal(this._backgroundImgObs$);\n\n init(): void {\n // This is here to make web page reloads on non-work-context pages at least usable\n this._setBackgroundTint(true);\n this._initIcons();\n this._initHandlersForInitialBodyClasses();\n this._initThemeWatchers();\n\n // Set up dark mode persistence effect\n effect(\n () => {\n const darkMode = this.darkMode();\n localStorage.setItem(LS.DARK_MODE, darkMode);\n },\n { allowSignalWrites: false },\n );\n\n // Set up reactive custom theme updates\n this._setupCustomThemeEffect();\n }\n\n private _setDarkTheme(isDarkTheme: boolean): void {\n this._materialCssVarsService.setDarkTheme(isDarkTheme);\n this._setChartTheme(isDarkTheme);\n // this._materialCssVarsService.setDarkTheme(true);\n // this._materialCssVarsService.setDarkTheme(false);\n }\n\n private _setColorTheme(theme: WorkContextThemeCfg): void {\n this._materialCssVarsService.setAutoContrastEnabled(!!theme.isAutoContrast);\n this._setBackgroundTint(!!theme.isDisableBackgroundTint);\n\n // NOTE: setting undefined values does not seem to be a problem so we use !\n if (!theme.isAutoContrast) {\n this._materialCssVarsService.setContrastColorThresholdPrimary(theme.huePrimary!);\n this._materialCssVarsService.setContrastColorThresholdAccent(theme.hueAccent!);\n this._materialCssVarsService.setContrastColorThresholdWarn(theme.hueWarn!);\n }\n\n this._materialCssVarsService.setPrimaryColor(theme.primary!);\n this._materialCssVarsService.setAccentColor(theme.accent!);\n this._materialCssVarsService.setWarnColor(theme.warn!);\n }\n\n private _setBackgroundTint(isDisableBackgroundTint: boolean): void {\n // Simplify: toggle only the disable flag; CSS handles the rest\n this.document.body.classList.toggle(\n BodyClass.isDisableBackgroundTint,\n !!isDisableBackgroundTint,\n );\n }\n\n private _initIcons(): void {\n const icons: [string, string][] = [\n ['sp', 'assets/icons/sp.svg'],\n ['play', 'assets/icons/play.svg'],\n ['github', 'assets/icons/github.svg'],\n ['gitlab', 'assets/icons/gitlab.svg'],\n ['jira', 'assets/icons/jira.svg'],\n ['caldav', 'assets/icons/caldav.svg'],\n ['open_project', 'assets/icons/open-project.svg'],\n ['drag_handle', 'assets/icons/drag-handle.svg'],\n ['remove_today', 'assets/icons/remove-today-48px.svg'],\n ['estimate_remaining', 'assets/icons/estimate-remaining.svg'],\n ['working_today', 'assets/icons/working-today.svg'],\n ['repeat', 'assets/icons/repeat.svg'],\n ['gitea', 'assets/icons/gitea.svg'],\n ['redmine', 'assets/icons/redmine.svg'],\n ['calendar', 'assets/icons/calendar.svg'],\n ['early_on', 'assets/icons/early-on.svg'],\n ['tomorrow', 'assets/icons/tomorrow.svg'],\n ['next_week', 'assets/icons/next-week.svg'],\n ['keep', 'assets/icons/keep.svg'],\n ['keep_filled', 'assets/icons/keep-filled.svg'],\n ];\n\n // todo test if can be removed with airplane mode and wifi without internet\n icons.forEach(([name, path]) => {\n this._matIconRegistry.addSvgIcon(\n name,\n this._domSanitizer.bypassSecurityTrustResourceUrl(path),\n );\n });\n\n this.preloadIcons(icons);\n }\n\n preloadIcons(icons: [string, string][]): Promise {\n // Map each icon name to a promise that fetches and registers the icon.\n const iconPromises = icons.map(([iconName, url]) => {\n // Construct the URL for the SVG file.\n // Adjust the path if your SVGs are located elsewhere.\n return this._http\n .get(url, { responseType: 'text' })\n .toPromise()\n .then((svg) => {\n // Register the fetched SVG as an inline icon.\n this._matIconRegistry.addSvgIconLiteral(\n iconName,\n this._domSanitizer.bypassSecurityTrustHtml(svg),\n );\n })\n .catch((error) => {\n Log.err(`Error loading icon: ${iconName} from ${url}`, error);\n });\n });\n\n // Return a promise that resolves when all icons have been processed.\n return Promise.all(iconPromises);\n }\n\n private _initThemeWatchers(): void {\n // init theme watchers\n this._workContextService.currentTheme$.subscribe((theme: WorkContextThemeCfg) =>\n this._setColorTheme(theme),\n );\n this._isDarkThemeObs$.subscribe((isDarkTheme) => this._setDarkTheme(isDarkTheme));\n }\n\n private _initHandlersForInitialBodyClasses(): void {\n this.document.body.classList.add(BodyClass.isNoAdvancedFeatures);\n\n if (!IS_FIREFOX) {\n this.document.body.classList.add(BodyClass.isNoFirefox);\n }\n\n if (IS_MAC) {\n this.document.body.classList.add(BodyClass.isMac);\n } else {\n this.document.body.classList.add(BodyClass.isNoMac);\n }\n\n if (IS_ELECTRON) {\n this.document.body.classList.add(BodyClass.isElectron);\n this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n } else {\n this.document.body.classList.add(BodyClass.isWeb);\n this._chromeExtensionInterfaceService.onReady$.pipe(take(1)).subscribe(() => {\n this.document.body.classList.add(BodyClass.isExtension);\n this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n });\n }\n\n if (IS_ANDROID_WEB_VIEW) {\n androidInterface.isKeyboardShown$.subscribe((isShown) => {\n Log.log('isShown', isShown);\n\n this.document.body.classList.remove(BodyClass.isAndroidKeyboardHidden);\n this.document.body.classList.remove(BodyClass.isAndroidKeyboardShown);\n this.document.body.classList.add(\n isShown ? BodyClass.isAndroidKeyboardShown : BodyClass.isAndroidKeyboardHidden,\n );\n });\n }\n\n // Use effect to reactively update animation class\n effect(() => {\n const misc = this._globalConfigService.misc();\n if (misc?.isDisableAnimations) {\n this.document.body.classList.add(BodyClass.isDisableAnimations);\n } else {\n this.document.body.classList.remove(BodyClass.isDisableAnimations);\n }\n });\n\n // Add/remove hasBgImage class to body when background image changes\n effect(() => {\n if (this.backgroundImg()) {\n this.document.body.classList.add(BodyClass.hasBgImage);\n } else {\n this.document.body.classList.remove(BodyClass.hasBgImage);\n }\n });\n\n // Add/remove has-mobile-bottom-nav class to body for snack bar positioning\n effect(() => {\n if (this._layoutService.isShowMobileBottomNav) {\n this.document.body.classList.add(BodyClass.hasMobileBottomNav);\n } else {\n this.document.body.classList.remove(BodyClass.hasMobileBottomNav);\n }\n });\n\n this._imexMetaService.isDataImportInProgress$.subscribe((isInProgress) => {\n // timer(1000, 5000)\n // .pipe(map((val) => val % 2 === 0))\n // .subscribe((isInProgress) => {\n if (isInProgress) {\n this.document.body.classList.add(BodyClass.isDataImportInProgress);\n } else {\n this.document.body.classList.remove(BodyClass.isDataImportInProgress);\n }\n });\n\n if (IS_TOUCH_ONLY) {\n this.document.body.classList.add(BodyClass.isTouchOnly);\n } else {\n this.document.body.classList.add(BodyClass.isNoTouchOnly);\n }\n\n if (IS_MOUSE_PRIMARY) {\n this.document.body.classList.add(BodyClass.isMousePrimary);\n } else if (IS_TOUCH_PRIMARY) {\n this.document.body.classList.add(BodyClass.isTouchPrimary);\n }\n }\n\n private _setChartTheme(isDarkTheme: boolean): void {\n const overrides: ChartConfiguration['options'] = isDarkTheme\n ? {\n // legend: {\n // labels: { fontColor: 'white' },\n // },\n scales: {\n x: {\n ticks: {\n color: 'white',\n },\n grid: {\n color: 'rgba(255,255,255,0.1)',\n },\n },\n\n y: {\n ticks: {\n color: 'white',\n },\n grid: {\n color: 'rgba(255,255,255,0.1)',\n },\n },\n },\n }\n : {\n scales: {},\n };\n this._chartThemeService.setColorschemesOptions(overrides);\n }\n\n private _setupCustomThemeEffect(): void {\n // Track previous theme to avoid unnecessary reloads\n let previousThemeId: string | null = null;\n\n // Set up effect to reactively update custom theme when config changes\n effect(() => {\n const misc = this._globalConfigService.misc();\n const themeId = misc?.customTheme || 'default';\n\n // Only load theme if it has changed\n if (themeId !== previousThemeId) {\n this._customThemeService.loadTheme(themeId);\n previousThemeId = themeId;\n }\n });\n }\n}\n", │ --- assets/public/chunk-PQGFZC5T.js ├── +++ assets/public/chunk-QWNDFGVA.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -10207,8 +10207,8 @@ │ │ } │ │ return r │ │ })() │ │ }); │ │ export { │ │ be as a, Ts as b, Ct as c, Bm as d, Ah as e, Rh as f, Gm as g, zs as h, js as i, Pt as j, dr as k, lo as l, Wc as m, _t as n, qs as o, Vn as p, Hs as q, Zp as r, Ll as s, eu as t, Bl as u, $l as v, zl as w, pc as x, no as y, uc as z, oo as A, gc as B, bc as C, x_ as D, sl as E, Rc as F, Oc as G, Pc as H, Nc as I, Lc as J, Bc as K, Uc as L, jc as M, qc as N, sn as O, so as P, td as Q, id as R, rd as S, nd as T │ │ }; │ │ -//# sourceMappingURL=chunk-PQGFZC5T.js.map │ │ +//# sourceMappingURL=chunk-QWNDFGVA.js.map │ --- assets/public/chunk-P2ROAFQZ.js ├── +++ assets/public/chunk-E65JJWOD.js │┄ Files 83% similar despite different names │ ├── js-beautify {} │ │ @@ -1,15 +1,15 @@ │ │ import { │ │ a, │ │ b │ │ -} from "./chunk-U6VOYBU7.js"; │ │ -import "./chunk-V2IOF2CR.js"; │ │ +} from "./chunk-YWESG3FE.js"; │ │ +import "./chunk-SNGTFZOM.js"; │ │ import "./chunk-2OEJRPK3.js"; │ │ -import "./chunk-HC6EOBDD.js"; │ │ -import "./chunk-PQGFZC5T.js"; │ │ +import "./chunk-64H3ZUUD.js"; │ │ +import "./chunk-QWNDFGVA.js"; │ │ import "./chunk-AD66EG65.js"; │ │ import "./chunk-SNOMK7L7.js"; │ │ import "./chunk-CPHBVUHP.js"; │ │ import "./chunk-JL6Q6JOI.js"; │ │ import "./chunk-VMAIUF6C.js"; │ │ import "./chunk-MDC62647.js"; │ │ import "./chunk-JOXJFDKW.js"; │ │ @@ -37,8 +37,8 @@ │ │ import "./chunk-OXDOKNTF.js"; │ │ import "./chunk-PEJGMLLQ.js"; │ │ import "./chunk-2NYJ54WT.js"; │ │ b(); │ │ export { │ │ a as PluginIndexComponent │ │ }; │ │ -//# sourceMappingURL=chunk-P2ROAFQZ.js.map │ │ +//# sourceMappingURL=chunk-E65JJWOD.js.map │ --- assets/public/chunk-N3N572BY.js ├── +++ assets/public/chunk-KDMLLTUB.js │┄ Files 96% similar despite different names │ ├── js-beautify {} │ │ @@ -1,12 +1,12 @@ │ │ import { │ │ s as a, │ │ t as b │ │ -} from "./chunk-HC6EOBDD.js"; │ │ -import "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-64H3ZUUD.js"; │ │ +import "./chunk-QWNDFGVA.js"; │ │ import "./chunk-AD66EG65.js"; │ │ import "./chunk-SNOMK7L7.js"; │ │ import "./chunk-CPHBVUHP.js"; │ │ import "./chunk-JL6Q6JOI.js"; │ │ import "./chunk-VMAIUF6C.js"; │ │ import "./chunk-MDC62647.js"; │ │ import "./chunk-JOXJFDKW.js"; │ │ @@ -34,8 +34,8 @@ │ │ import "./chunk-OXDOKNTF.js"; │ │ import "./chunk-PEJGMLLQ.js"; │ │ import "./chunk-2NYJ54WT.js"; │ │ b(); │ │ export { │ │ a as PluginRunner │ │ }; │ │ -//# sourceMappingURL=chunk-N3N572BY.js.map │ │ +//# sourceMappingURL=chunk-KDMLLTUB.js.map │ --- assets/public/chunk-HC6EOBDD.js.map ├── +++ assets/public/chunk-64H3ZUUD.js.map │┄ Files identical despite different names │ --- assets/public/chunk-HC6EOBDD.js ├── +++ assets/public/chunk-64H3ZUUD.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -1,11 +1,11 @@ │ │ import { │ │ S as Ar, │ │ T as ct │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import { │ │ c as gr, │ │ d as fr, │ │ g as mr, │ │ h as hr, │ │ i as Tr, │ │ j as ut, │ │ @@ -2843,15 +2843,15 @@ │ │ } │ │ }) │ │ } │ │ sendMessageToPlugin(t, o) { │ │ return S(this, null, function*() { │ │ let { │ │ PluginRunner: l │ │ - } = yield import("./chunk-N3N572BY.js"); │ │ + } = yield import("./chunk-KDMLLTUB.js"); │ │ return this._injector.get(l).sendMessageToPlugin(t, o) │ │ }) │ │ } │ │ _initWindowFocusTracking() { │ │ window.addEventListener("focus", () => { │ │ this._isWindowFocused = !0, this._notifyFocusHandlers(!0) │ │ }), window.addEventListener("blur", () => { │ │ @@ -3498,8 +3498,8 @@ │ │ } │ │ return y │ │ })() │ │ }); │ │ export { │ │ de as a, oe as b, Pr as c, wr as d, Z as e, ue as f, Cr as g, br as h, ee as i, _e as j, Or as k, Ur as l, Ja as m, Va as n, Ya as o, xr as p, Nr as q, jr as r, ls as s, kt as t │ │ }; │ │ -//# sourceMappingURL=chunk-HC6EOBDD.js.map │ │ +//# sourceMappingURL=chunk-64H3ZUUD.js.map │ --- assets/public/chunk-GL7WXZWS.js.map ├── +++ assets/public/chunk-U7D5UGKX.js.map │┄ Files identical despite different names │ --- assets/public/chunk-GL7WXZWS.js ├── +++ assets/public/chunk-U7D5UGKX.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -14,15 +14,15 @@ │ │ import { │ │ f as _i, │ │ h as $i │ │ } from "./chunk-W3EHXDVY.js"; │ │ import { │ │ e as fe, │ │ i as at │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import { │ │ N as gi, │ │ O as Ki │ │ } from "./chunk-MDC62647.js"; │ │ import { │ │ a as mi, │ │ b as Xi │ │ @@ -2523,8 +2523,8 @@ │ │ } │ │ return o │ │ })() │ │ }); │ │ export { │ │ Yo as a, Ji as b, Ci as c, yi as d, sa as e, la as f, ca as g, da as h, ua as i, ma as j, ha as k, fa as l, pa as m, ga as n, _a as o, jo as p, Zo as q, eo as r, Ye as s, ht as t, tr as u, _o as v, vi as w, ki as x, Vn as y, fo as z, kr as A, xo as B │ │ }; │ │ -//# sourceMappingURL=chunk-GL7WXZWS.js.map │ │ +//# sourceMappingURL=chunk-U7D5UGKX.js.map │ --- assets/public/chunk-BEVQWPHU.js.map ├── +++ assets/public/chunk-NTCTKQ7J.js.map │┄ Files identical despite different names │ --- assets/public/chunk-BEVQWPHU.js ├── +++ assets/public/chunk-NTCTKQ7J.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -45,15 +45,15 @@ │ │ p as vo, │ │ q as Zi, │ │ r as So, │ │ u as _n, │ │ v as Io, │ │ y as un, │ │ z as Fo │ │ -} from "./chunk-GL7WXZWS.js"; │ │ +} from "./chunk-U7D5UGKX.js"; │ │ import { │ │ a as Pi, │ │ b as po │ │ } from "./chunk-XZ3A45KS.js"; │ │ import { │ │ c as wi, │ │ d as Oi, │ │ @@ -108,15 +108,15 @@ │ │ import { │ │ S as ji, │ │ T as To, │ │ r as Ai, │ │ s as yo, │ │ t as Bi, │ │ u as go │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import "./chunk-SNOMK7L7.js"; │ │ import "./chunk-CPHBVUHP.js"; │ │ import "./chunk-JL6Q6JOI.js"; │ │ import { │ │ e as bi, │ │ f as so │ │ } from "./chunk-VMAIUF6C.js"; │ │ @@ -2219,8 +2219,8 @@ │ │ return e │ │ })() │ │ }); │ │ tr(); │ │ export { │ │ Yl as DailySummaryComponent │ │ }; │ │ -//# sourceMappingURL=chunk-BEVQWPHU.js.map │ │ +//# sourceMappingURL=chunk-NTCTKQ7J.js.map │ --- assets/public/chunk-27D2DRS3.js.map ├── +++ assets/public/chunk-RSMDBQ3S.js.map │┄ Files identical despite different names │ --- assets/public/chunk-27D2DRS3.js ├── +++ assets/public/chunk-RSMDBQ3S.js │┄ Files 99% similar despite different names │ ├── js-beautify {} │ │ @@ -11,15 +11,15 @@ │ │ b as rn, │ │ c as Se, │ │ d as Vt, │ │ e as Ht, │ │ f as bn, │ │ g as ai, │ │ h as Dn │ │ -} from "./chunk-QJR3D76V.js"; │ │ +} from "./chunk-SELKJFL3.js"; │ │ import { │ │ a as ft, │ │ b as It, │ │ c as gn │ │ } from "./chunk-BYOR3C2V.js"; │ │ import { │ │ a as X, │ │ @@ -29,15 +29,15 @@ │ │ a as qt, │ │ b as Nn, │ │ c as zt, │ │ d as Rn, │ │ e as Pn, │ │ f as jt, │ │ g as kn │ │ -} from "./chunk-V2IOF2CR.js"; │ │ +} from "./chunk-SNGTFZOM.js"; │ │ import { │ │ a as Qt, │ │ b as ei, │ │ c as ti, │ │ d as ii, │ │ e as ni, │ │ f as oi, │ │ @@ -50,15 +50,15 @@ │ │ import { │ │ e as Wt, │ │ f as yn, │ │ g as Xt, │ │ h as Fn, │ │ k as $t, │ │ l as Mn │ │ -} from "./chunk-HC6EOBDD.js"; │ │ +} from "./chunk-64H3ZUUD.js"; │ │ import { │ │ A as Sn, │ │ F as Lt, │ │ G as Ut, │ │ H as Bt, │ │ I as Kt, │ │ J as In, │ │ @@ -68,15 +68,15 @@ │ │ T as An, │ │ p as Ae, │ │ q as Cn, │ │ v as Rt, │ │ w as On, │ │ x as kt, │ │ y as xt │ │ -} from "./chunk-PQGFZC5T.js"; │ │ +} from "./chunk-QWNDFGVA.js"; │ │ import "./chunk-AD66EG65.js"; │ │ import "./chunk-SNOMK7L7.js"; │ │ import { │ │ b as vt, │ │ e as Gt, │ │ j as Tn │ │ } from "./chunk-CPHBVUHP.js"; │ │ @@ -2578,8 +2578,8 @@ │ │ return i │ │ })() │ │ }); │ │ go(); │ │ export { │ │ Rl as ConfigPageComponent │ │ }; │ │ -//# sourceMappingURL=chunk-27D2DRS3.js.map │ │ +//# sourceMappingURL=chunk-RSMDBQ3S.js.map