104 KB
/home/fdroid/fdroiddata/tmp/com.superproductivity.superproductivity_1606010000.apk vs.
/home/fdroid/fdroiddata/tmp/sigcp_com.superproductivity.superproductivity_1606010000.apk
23.5 KB
zipinfo {}
    
Offset 157, 70 lines modifiedOffset 157, 62 lines modified
157 -rw-r--r--··0.0·unx·····1526·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JWM7PKT.js.map157 -rw-r--r--··0.0·unx·····1526·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JWM7PKT.js.map
158 -rw-r--r--··0.0·unx······615·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js158 -rw-r--r--··0.0·unx······615·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js
159 -rw-r--r--··0.0·unx·····2240·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js.map159 -rw-r--r--··0.0·unx·····2240·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js.map
160 -rw-r--r--··0.0·unx····43132·b-·defN·81-Jan-01·01:01·assets/public/chunk-3Z2FNV42.js160 -rw-r--r--··0.0·unx····43132·b-·defN·81-Jan-01·01:01·assets/public/chunk-3Z2FNV42.js
161 -rw-r--r--··0.0·unx···158060·b-·defN·81-Jan-01·01:01·assets/public/chunk-3Z2FNV42.js.map161 -rw-r--r--··0.0·unx···158060·b-·defN·81-Jan-01·01:01·assets/public/chunk-3Z2FNV42.js.map
162 -rw-r--r--··0.0·unx······291·b-·defN·81-Jan-01·01:01·assets/public/chunk-44W6YCXP.js162 -rw-r--r--··0.0·unx······291·b-·defN·81-Jan-01·01:01·assets/public/chunk-44W6YCXP.js
163 -rw-r--r--··0.0·unx······694·b-·defN·81-Jan-01·01:01·assets/public/chunk-44W6YCXP.js.map163 -rw-r--r--··0.0·unx······694·b-·defN·81-Jan-01·01:01·assets/public/chunk-44W6YCXP.js.map
164 -rw-r--r--··0.0·unx····65318·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ANWUG5O.js 
165 -rw-r--r--··0.0·unx···180014·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ANWUG5O.js.map 
166 -rw-r--r--··0.0·unx····30243·b-·defN·81-Jan-01·01:01·assets/public/chunk-4LZ5GS7Z.js164 -rw-r--r--··0.0·unx····30243·b-·defN·81-Jan-01·01:01·assets/public/chunk-4LZ5GS7Z.js
167 -rw-r--r--··0.0·unx···145576·b-·defN·81-Jan-01·01:01·assets/public/chunk-4LZ5GS7Z.js.map165 -rw-r--r--··0.0·unx···145576·b-·defN·81-Jan-01·01:01·assets/public/chunk-4LZ5GS7Z.js.map
168 -rw-r--r--··0.0·unx······285·b-·defN·81-Jan-01·01:01·assets/public/chunk-4MDX2LQL.js166 -rw-r--r--··0.0·unx······285·b-·defN·81-Jan-01·01:01·assets/public/chunk-4MDX2LQL.js
169 -rw-r--r--··0.0·unx······816·b-·defN·81-Jan-01·01:01·assets/public/chunk-4MDX2LQL.js.map167 -rw-r--r--··0.0·unx······816·b-·defN·81-Jan-01·01:01·assets/public/chunk-4MDX2LQL.js.map
170 -rw-r--r--··0.0·unx·····3622·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RA25WAL.js168 -rw-r--r--··0.0·unx·····3622·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RA25WAL.js
171 -rw-r--r--··0.0·unx····11641·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RA25WAL.js.map169 -rw-r--r--··0.0·unx····11641·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RA25WAL.js.map
172 -rw-r--r--··0.0·unx·····6299·b-·defN·81-Jan-01·01:01·assets/public/chunk-52E4OR7C.js170 -rw-r--r--··0.0·unx·····6299·b-·defN·81-Jan-01·01:01·assets/public/chunk-52E4OR7C.js
173 -rw-r--r--··0.0·unx····24744·b-·defN·81-Jan-01·01:01·assets/public/chunk-52E4OR7C.js.map171 -rw-r--r--··0.0·unx····24744·b-·defN·81-Jan-01·01:01·assets/public/chunk-52E4OR7C.js.map
174 -rw-r--r--··0.0·unx·····1079·b-·defN·81-Jan-01·01:01·assets/public/chunk-53XHIVHI.js172 -rw-r--r--··0.0·unx·····1079·b-·defN·81-Jan-01·01:01·assets/public/chunk-53XHIVHI.js
175 -rw-r--r--··0.0·unx·····4139·b-·defN·81-Jan-01·01:01·assets/public/chunk-53XHIVHI.js.map173 -rw-r--r--··0.0·unx·····4139·b-·defN·81-Jan-01·01:01·assets/public/chunk-53XHIVHI.js.map
176 -rw-r--r--··0.0·unx······867·b-·defN·81-Jan-01·01:01·assets/public/chunk-54O5TGTU.js174 -rw-r--r--··0.0·unx······867·b-·defN·81-Jan-01·01:01·assets/public/chunk-54O5TGTU.js
177 -rw-r--r--··0.0·unx·····1567·b-·defN·81-Jan-01·01:01·assets/public/chunk-54O5TGTU.js.map175 -rw-r--r--··0.0·unx·····1567·b-·defN·81-Jan-01·01:01·assets/public/chunk-54O5TGTU.js.map
178 -rw-r--r--··0.0·unx·····3929·b-·defN·81-Jan-01·01:01·assets/public/chunk-5EW7IJ3A.js176 -rw-r--r--··0.0·unx·····3929·b-·defN·81-Jan-01·01:01·assets/public/chunk-5EW7IJ3A.js
179 -rw-r--r--··0.0·unx·····9310·b-·defN·81-Jan-01·01:01·assets/public/chunk-5EW7IJ3A.js.map177 -rw-r--r--··0.0·unx·····9310·b-·defN·81-Jan-01·01:01·assets/public/chunk-5EW7IJ3A.js.map
 178 -rw-r--r--··0.0·unx····67165·b-·defN·81-Jan-01·01:01·assets/public/chunk-5QSHRBB3.js
 179 -rw-r--r--··0.0·unx···271518·b-·defN·81-Jan-01·01:01·assets/public/chunk-5QSHRBB3.js.map
180 -rw-r--r--··0.0·unx····58459·b-·defN·81-Jan-01·01:01·assets/public/chunk-5WWLWJDY.js180 -rw-r--r--··0.0·unx····58459·b-·defN·81-Jan-01·01:01·assets/public/chunk-5WWLWJDY.js
181 -rw-r--r--··0.0·unx···260396·b-·defN·81-Jan-01·01:01·assets/public/chunk-5WWLWJDY.js.map181 -rw-r--r--··0.0·unx···260396·b-·defN·81-Jan-01·01:01·assets/public/chunk-5WWLWJDY.js.map
182 -rw-r--r--··0.0·unx····89375·b-·defN·81-Jan-01·01:01·assets/public/chunk-62BQDC26.js182 -rw-r--r--··0.0·unx····89375·b-·defN·81-Jan-01·01:01·assets/public/chunk-62BQDC26.js
183 -rw-r--r--··0.0·unx···262577·b-·defN·81-Jan-01·01:01·assets/public/chunk-62BQDC26.js.map183 -rw-r--r--··0.0·unx···262577·b-·defN·81-Jan-01·01:01·assets/public/chunk-62BQDC26.js.map
184 -rw-r--r--··0.0·unx······602·b-·defN·81-Jan-01·01:01·assets/public/chunk-63CPB6EG.js184 -rw-r--r--··0.0·unx······602·b-·defN·81-Jan-01·01:01·assets/public/chunk-63CPB6EG.js
185 -rw-r--r--··0.0·unx·····2080·b-·defN·81-Jan-01·01:01·assets/public/chunk-63CPB6EG.js.map185 -rw-r--r--··0.0·unx·····2080·b-·defN·81-Jan-01·01:01·assets/public/chunk-63CPB6EG.js.map
186 -rw-r--r--··0.0·unx·····5446·b-·defN·81-Jan-01·01:01·assets/public/chunk-66UQFYBZ.js186 -rw-r--r--··0.0·unx·····5446·b-·defN·81-Jan-01·01:01·assets/public/chunk-66UQFYBZ.js
187 -rw-r--r--··0.0·unx·····9891·b-·defN·81-Jan-01·01:01·assets/public/chunk-66UQFYBZ.js.map187 -rw-r--r--··0.0·unx·····9891·b-·defN·81-Jan-01·01:01·assets/public/chunk-66UQFYBZ.js.map
188 -rw-r--r--··0.0·unx···300255·b-·defN·81-Jan-01·01:01·assets/public/chunk-6BTBXX5V.js 
189 -rw-r--r--··0.0·unx···973430·b-·defN·81-Jan-01·01:01·assets/public/chunk-6BTBXX5V.js.map 
190 -rw-r--r--··0.0·unx·····2789·b-·defN·81-Jan-01·01:01·assets/public/chunk-6HMGLSTJ.js188 -rw-r--r--··0.0·unx·····2789·b-·defN·81-Jan-01·01:01·assets/public/chunk-6HMGLSTJ.js
191 -rw-r--r--··0.0·unx····10909·b-·defN·81-Jan-01·01:01·assets/public/chunk-6HMGLSTJ.js.map189 -rw-r--r--··0.0·unx····10909·b-·defN·81-Jan-01·01:01·assets/public/chunk-6HMGLSTJ.js.map
192 -rw-r--r--··0.0·unx·····2562·b-·defN·81-Jan-01·01:01·assets/public/chunk-6ILFT54O.js190 -rw-r--r--··0.0·unx·····2562·b-·defN·81-Jan-01·01:01·assets/public/chunk-6ILFT54O.js
193 -rw-r--r--··0.0·unx····10428·b-·defN·81-Jan-01·01:01·assets/public/chunk-6ILFT54O.js.map191 -rw-r--r--··0.0·unx····10428·b-·defN·81-Jan-01·01:01·assets/public/chunk-6ILFT54O.js.map
194 -rw-r--r--··0.0·unx····29541·b-·defN·81-Jan-01·01:01·assets/public/chunk-6M43B367.js192 -rw-r--r--··0.0·unx····29541·b-·defN·81-Jan-01·01:01·assets/public/chunk-6M43B367.js
195 -rw-r--r--··0.0·unx···115931·b-·defN·81-Jan-01·01:01·assets/public/chunk-6M43B367.js.map193 -rw-r--r--··0.0·unx···115931·b-·defN·81-Jan-01·01:01·assets/public/chunk-6M43B367.js.map
196 -rw-r--r--··0.0·unx·····2588·b-·defN·81-Jan-01·01:01·assets/public/chunk-6OTPDFIS.js194 -rw-r--r--··0.0·unx·····2588·b-·defN·81-Jan-01·01:01·assets/public/chunk-6OTPDFIS.js
197 -rw-r--r--··0.0·unx·····6355·b-·defN·81-Jan-01·01:01·assets/public/chunk-6OTPDFIS.js.map195 -rw-r--r--··0.0·unx·····6355·b-·defN·81-Jan-01·01:01·assets/public/chunk-6OTPDFIS.js.map
198 -rw-r--r--··0.0·unx·····1465·b-·defN·81-Jan-01·01:01·assets/public/chunk-77ZSDKZD.js 
199 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-77ZSDKZD.js.map 
200 -rw-r--r--··0.0·unx·····5278·b-·defN·81-Jan-01·01:01·assets/public/chunk-7AEWECSO.js196 -rw-r--r--··0.0·unx·····5278·b-·defN·81-Jan-01·01:01·assets/public/chunk-7AEWECSO.js
201 -rw-r--r--··0.0·unx····11535·b-·defN·81-Jan-01·01:01·assets/public/chunk-7AEWECSO.js.map197 -rw-r--r--··0.0·unx····11535·b-·defN·81-Jan-01·01:01·assets/public/chunk-7AEWECSO.js.map
202 -rw-r--r--··0.0·unx·····1199·b-·defN·81-Jan-01·01:01·assets/public/chunk-7QJOIGWD.js198 -rw-r--r--··0.0·unx·····1199·b-·defN·81-Jan-01·01:01·assets/public/chunk-7QJOIGWD.js
203 -rw-r--r--··0.0·unx·····3448·b-·defN·81-Jan-01·01:01·assets/public/chunk-7QJOIGWD.js.map199 -rw-r--r--··0.0·unx·····3448·b-·defN·81-Jan-01·01:01·assets/public/chunk-7QJOIGWD.js.map
204 -rw-r--r--··0.0·unx····21838·b-·defN·81-Jan-01·01:01·assets/public/chunk-A7MOHWFK.js200 -rw-r--r--··0.0·unx····21838·b-·defN·81-Jan-01·01:01·assets/public/chunk-A7MOHWFK.js
205 -rw-r--r--··0.0·unx····64287·b-·defN·81-Jan-01·01:01·assets/public/chunk-A7MOHWFK.js.map201 -rw-r--r--··0.0·unx····64287·b-·defN·81-Jan-01·01:01·assets/public/chunk-A7MOHWFK.js.map
206 -rw-r--r--··0.0·unx·····1140·b-·defN·81-Jan-01·01:01·assets/public/chunk-AAAAG6LL.js202 -rw-r--r--··0.0·unx·····1140·b-·defN·81-Jan-01·01:01·assets/public/chunk-AAAAG6LL.js
207 -rw-r--r--··0.0·unx·····2013·b-·defN·81-Jan-01·01:01·assets/public/chunk-AAAAG6LL.js.map203 -rw-r--r--··0.0·unx·····2013·b-·defN·81-Jan-01·01:01·assets/public/chunk-AAAAG6LL.js.map
208 -rw-r--r--··0.0·unx·····4955·b-·defN·81-Jan-01·01:01·assets/public/chunk-ABDFPP75.js204 -rw-r--r--··0.0·unx·····4955·b-·defN·81-Jan-01·01:01·assets/public/chunk-ABDFPP75.js
209 -rw-r--r--··0.0·unx····20334·b-·defN·81-Jan-01·01:01·assets/public/chunk-ABDFPP75.js.map205 -rw-r--r--··0.0·unx····20334·b-·defN·81-Jan-01·01:01·assets/public/chunk-ABDFPP75.js.map
210 -rw-r--r--··0.0·unx·····1547·b-·defN·81-Jan-01·01:01·assets/public/chunk-AHUFPQ34.js 
211 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-AHUFPQ34.js.map 
212 -rw-r--r--··0.0·unx·····9485·b-·defN·81-Jan-01·01:01·assets/public/chunk-ATRC5YAB.js206 -rw-r--r--··0.0·unx·····9485·b-·defN·81-Jan-01·01:01·assets/public/chunk-ATRC5YAB.js
213 -rw-r--r--··0.0·unx····16139·b-·defN·81-Jan-01·01:01·assets/public/chunk-ATRC5YAB.js.map207 -rw-r--r--··0.0·unx····16139·b-·defN·81-Jan-01·01:01·assets/public/chunk-ATRC5YAB.js.map
214 -rw-r--r--··0.0·unx····23993·b-·defN·81-Jan-01·01:01·assets/public/chunk-AW23F5KX.js208 -rw-r--r--··0.0·unx····23993·b-·defN·81-Jan-01·01:01·assets/public/chunk-AW23F5KX.js
215 -rw-r--r--··0.0·unx····41587·b-·defN·81-Jan-01·01:01·assets/public/chunk-AW23F5KX.js.map209 -rw-r--r--··0.0·unx····41587·b-·defN·81-Jan-01·01:01·assets/public/chunk-AW23F5KX.js.map
216 -rw-r--r--··0.0·unx·····7866·b-·defN·81-Jan-01·01:01·assets/public/chunk-BEPRWKFF.js210 -rw-r--r--··0.0·unx·····7866·b-·defN·81-Jan-01·01:01·assets/public/chunk-BEPRWKFF.js
217 -rw-r--r--··0.0·unx····16437·b-·defN·81-Jan-01·01:01·assets/public/chunk-BEPRWKFF.js.map211 -rw-r--r--··0.0·unx····16437·b-·defN·81-Jan-01·01:01·assets/public/chunk-BEPRWKFF.js.map
218 -rw-r--r--··0.0·unx····11621·b-·defN·81-Jan-01·01:01·assets/public/chunk-BM5UM4I2.js 
219 -rw-r--r--··0.0·unx····22060·b-·defN·81-Jan-01·01:01·assets/public/chunk-BM5UM4I2.js.map 
220 -rw-r--r--··0.0·unx·····3417·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMNBNE4Q.js212 -rw-r--r--··0.0·unx·····3417·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMNBNE4Q.js
221 -rw-r--r--··0.0·unx····15954·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMNBNE4Q.js.map213 -rw-r--r--··0.0·unx····15954·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMNBNE4Q.js.map
222 -rw-r--r--··0.0·unx·····4449·b-·defN·81-Jan-01·01:01·assets/public/chunk-BR4DJPMY.js214 -rw-r--r--··0.0·unx·····4449·b-·defN·81-Jan-01·01:01·assets/public/chunk-BR4DJPMY.js
223 -rw-r--r--··0.0·unx·····6897·b-·defN·81-Jan-01·01:01·assets/public/chunk-BR4DJPMY.js.map215 -rw-r--r--··0.0·unx·····6897·b-·defN·81-Jan-01·01:01·assets/public/chunk-BR4DJPMY.js.map
224 -rw-r--r--··0.0·unx······411·b-·defN·81-Jan-01·01:01·assets/public/chunk-CTKG63YM.js216 -rw-r--r--··0.0·unx······411·b-·defN·81-Jan-01·01:01·assets/public/chunk-CTKG63YM.js
225 -rw-r--r--··0.0·unx······938·b-·defN·81-Jan-01·01:01·assets/public/chunk-CTKG63YM.js.map217 -rw-r--r--··0.0·unx······938·b-·defN·81-Jan-01·01:01·assets/public/chunk-CTKG63YM.js.map
226 -rw-r--r--··0.0·unx·····2699·b-·defN·81-Jan-01·01:01·assets/public/chunk-DBKAVYUF.js218 -rw-r--r--··0.0·unx·····2699·b-·defN·81-Jan-01·01:01·assets/public/chunk-DBKAVYUF.js
Offset 229, 20 lines modifiedOffset 221, 20 lines modified
229 -rw-r--r--··0.0·unx····38595·b-·defN·81-Jan-01·01:01·assets/public/chunk-DP7GTZUF.js.map221 -rw-r--r--··0.0·unx····38595·b-·defN·81-Jan-01·01:01·assets/public/chunk-DP7GTZUF.js.map
230 -rw-r--r--··0.0·unx·····9276·b-·defN·81-Jan-01·01:01·assets/public/chunk-DU3YCOM3.js222 -rw-r--r--··0.0·unx·····9276·b-·defN·81-Jan-01·01:01·assets/public/chunk-DU3YCOM3.js
231 -rw-r--r--··0.0·unx····32056·b-·defN·81-Jan-01·01:01·assets/public/chunk-DU3YCOM3.js.map223 -rw-r--r--··0.0·unx····32056·b-·defN·81-Jan-01·01:01·assets/public/chunk-DU3YCOM3.js.map
232 -rw-r--r--··0.0·unx·····3897·b-·defN·81-Jan-01·01:01·assets/public/chunk-DX2IO2N5.js224 -rw-r--r--··0.0·unx·····3897·b-·defN·81-Jan-01·01:01·assets/public/chunk-DX2IO2N5.js
233 -rw-r--r--··0.0·unx····11586·b-·defN·81-Jan-01·01:01·assets/public/chunk-DX2IO2N5.js.map225 -rw-r--r--··0.0·unx····11586·b-·defN·81-Jan-01·01:01·assets/public/chunk-DX2IO2N5.js.map
234 -rw-r--r--··0.0·unx·····1444·b-·defN·81-Jan-01·01:01·assets/public/chunk-DXQO57I2.js226 -rw-r--r--··0.0·unx·····1444·b-·defN·81-Jan-01·01:01·assets/public/chunk-DXQO57I2.js
235 -rw-r--r--··0.0·unx·····4396·b-·defN·81-Jan-01·01:01·assets/public/chunk-DXQO57I2.js.map227 -rw-r--r--··0.0·unx·····4396·b-·defN·81-Jan-01·01:01·assets/public/chunk-DXQO57I2.js.map
 228 -rw-r--r--··0.0·unx····11621·b-·defN·81-Jan-01·01:01·assets/public/chunk-EVT7NY2D.js
 229 -rw-r--r--··0.0·unx····22060·b-·defN·81-Jan-01·01:01·assets/public/chunk-EVT7NY2D.js.map
236 -rw-r--r--··0.0·unx···135134·b-·defN·81-Jan-01·01:01·assets/public/chunk-EX3XCQ6H.js230 -rw-r--r--··0.0·unx···135134·b-·defN·81-Jan-01·01:01·assets/public/chunk-EX3XCQ6H.js
237 -rw-r--r--··0.0·unx···445105·b-·defN·81-Jan-01·01:01·assets/public/chunk-EX3XCQ6H.js.map231 -rw-r--r--··0.0·unx···445105·b-·defN·81-Jan-01·01:01·assets/public/chunk-EX3XCQ6H.js.map
238 -rw-r--r--··0.0·unx···326828·b-·defN·81-Jan-01·01:01·assets/public/chunk-G25OYBCW.js232 -rw-r--r--··0.0·unx···326828·b-·defN·81-Jan-01·01:01·assets/public/chunk-G25OYBCW.js
239 -rw-r--r--··0.0·unx··3252836·b-·defN·81-Jan-01·01:01·assets/public/chunk-G25OYBCW.js.map233 -rw-r--r--··0.0·unx··3252836·b-·defN·81-Jan-01·01:01·assets/public/chunk-G25OYBCW.js.map
240 -rw-r--r--··0.0·unx····84003·b-·defN·81-Jan-01·01:01·assets/public/chunk-GAB5FZMM.js 
241 -rw-r--r--··0.0·unx···210426·b-·defN·81-Jan-01·01:01·assets/public/chunk-GAB5FZMM.js.map 
242 -rw-r--r--··0.0·unx·····7077·b-·defN·81-Jan-01·01:01·assets/public/chunk-GT73NP2G.js234 -rw-r--r--··0.0·unx·····7077·b-·defN·81-Jan-01·01:01·assets/public/chunk-GT73NP2G.js
243 -rw-r--r--··0.0·unx····25011·b-·defN·81-Jan-01·01:01·assets/public/chunk-GT73NP2G.js.map235 -rw-r--r--··0.0·unx····25011·b-·defN·81-Jan-01·01:01·assets/public/chunk-GT73NP2G.js.map
244 -rw-r--r--··0.0·unx·····9348·b-·defN·81-Jan-01·01:01·assets/public/chunk-GZFWFOBC.js236 -rw-r--r--··0.0·unx·····9348·b-·defN·81-Jan-01·01:01·assets/public/chunk-GZFWFOBC.js
245 -rw-r--r--··0.0·unx····21258·b-·defN·81-Jan-01·01:01·assets/public/chunk-GZFWFOBC.js.map237 -rw-r--r--··0.0·unx····21258·b-·defN·81-Jan-01·01:01·assets/public/chunk-GZFWFOBC.js.map
246 -rw-r--r--··0.0·unx····32842·b-·defN·81-Jan-01·01:01·assets/public/chunk-HB5KHHRQ.js238 -rw-r--r--··0.0·unx····32842·b-·defN·81-Jan-01·01:01·assets/public/chunk-HB5KHHRQ.js
247 -rw-r--r--··0.0·unx···100119·b-·defN·81-Jan-01·01:01·assets/public/chunk-HB5KHHRQ.js.map239 -rw-r--r--··0.0·unx···100119·b-·defN·81-Jan-01·01:01·assets/public/chunk-HB5KHHRQ.js.map
248 -rw-r--r--··0.0·unx····20050·b-·defN·81-Jan-01·01:01·assets/public/chunk-HPLGUE6W.js240 -rw-r--r--··0.0·unx····20050·b-·defN·81-Jan-01·01:01·assets/public/chunk-HPLGUE6W.js
Offset 263, 16 lines modifiedOffset 255, 16 lines modified
263 -rw-r--r--··0.0·unx···183686·b-·defN·81-Jan-01·01:01·assets/public/chunk-IGCLYYTY.js.map255 -rw-r--r--··0.0·unx···183686·b-·defN·81-Jan-01·01:01·assets/public/chunk-IGCLYYTY.js.map
264 -rw-r--r--··0.0·unx···120799·b-·defN·81-Jan-01·01:01·assets/public/chunk-IHQL4CLN.js256 -rw-r--r--··0.0·unx···120799·b-·defN·81-Jan-01·01:01·assets/public/chunk-IHQL4CLN.js
265 -rw-r--r--··0.0·unx···457705·b-·defN·81-Jan-01·01:01·assets/public/chunk-IHQL4CLN.js.map257 -rw-r--r--··0.0·unx···457705·b-·defN·81-Jan-01·01:01·assets/public/chunk-IHQL4CLN.js.map
266 -rw-r--r--··0.0·unx·····2235·b-·defN·81-Jan-01·01:01·assets/public/chunk-IJCJ6COC.js258 -rw-r--r--··0.0·unx·····2235·b-·defN·81-Jan-01·01:01·assets/public/chunk-IJCJ6COC.js
267 -rw-r--r--··0.0·unx·····8779·b-·defN·81-Jan-01·01:01·assets/public/chunk-IJCJ6COC.js.map259 -rw-r--r--··0.0·unx·····8779·b-·defN·81-Jan-01·01:01·assets/public/chunk-IJCJ6COC.js.map
268 -rw-r--r--··0.0·unx····41390·b-·defN·81-Jan-01·01:01·assets/public/chunk-IL5OTZXM.js260 -rw-r--r--··0.0·unx····41390·b-·defN·81-Jan-01·01:01·assets/public/chunk-IL5OTZXM.js
269 -rw-r--r--··0.0·unx···345863·b-·defN·81-Jan-01·01:01·assets/public/chunk-IL5OTZXM.js.map261 -rw-r--r--··0.0·unx···345863·b-·defN·81-Jan-01·01:01·assets/public/chunk-IL5OTZXM.js.map
270 -rw-r--r--··0.0·unx·····3103·b-·defN·81-Jan-01·01:01·assets/public/chunk-J754SOWT.js262 -rw-r--r--··0.0·unx···300255·b-·defN·81-Jan-01·01:01·assets/public/chunk-IQQZUO6I.js
271 -rw-r--r--··0.0·unx·····9467·b-·defN·81-Jan-01·01:01·assets/public/chunk-J754SOWT.js.map263 -rw-r--r--··0.0·unx···973430·b-·defN·81-Jan-01·01:01·assets/public/chunk-IQQZUO6I.js.map
272 -rw-r--r--··0.0·unx·····1485·b-·defN·81-Jan-01·01:01·assets/public/chunk-JCC3ZHM6.js264 -rw-r--r--··0.0·unx·····1485·b-·defN·81-Jan-01·01:01·assets/public/chunk-JCC3ZHM6.js
273 -rw-r--r--··0.0·unx·····2733·b-·defN·81-Jan-01·01:01·assets/public/chunk-JCC3ZHM6.js.map265 -rw-r--r--··0.0·unx·····2733·b-·defN·81-Jan-01·01:01·assets/public/chunk-JCC3ZHM6.js.map
274 -rw-r--r--··0.0·unx····18481·b-·defN·81-Jan-01·01:01·assets/public/chunk-JSX6VTWN.js266 -rw-r--r--··0.0·unx····18481·b-·defN·81-Jan-01·01:01·assets/public/chunk-JSX6VTWN.js
275 -rw-r--r--··0.0·unx····81848·b-·defN·81-Jan-01·01:01·assets/public/chunk-JSX6VTWN.js.map267 -rw-r--r--··0.0·unx····81848·b-·defN·81-Jan-01·01:01·assets/public/chunk-JSX6VTWN.js.map
276 -rw-r--r--··0.0·unx····27360·b-·defN·81-Jan-01·01:01·assets/public/chunk-JWEVU4VV.js268 -rw-r--r--··0.0·unx····27360·b-·defN·81-Jan-01·01:01·assets/public/chunk-JWEVU4VV.js
277 -rw-r--r--··0.0·unx····74857·b-·defN·81-Jan-01·01:01·assets/public/chunk-JWEVU4VV.js.map269 -rw-r--r--··0.0·unx····74857·b-·defN·81-Jan-01·01:01·assets/public/chunk-JWEVU4VV.js.map
278 -rw-r--r--··0.0·unx·····4384·b-·defN·81-Jan-01·01:01·assets/public/chunk-K5GRC76V.js270 -rw-r--r--··0.0·unx·····4384·b-·defN·81-Jan-01·01:01·assets/public/chunk-K5GRC76V.js
Offset 287, 42 lines modifiedOffset 279, 44 lines modified
287 -rw-r--r--··0.0·unx····12228·b-·defN·81-Jan-01·01:01·assets/public/chunk-L3HKLZJ5.js.map279 -rw-r--r--··0.0·unx····12228·b-·defN·81-Jan-01·01:01·assets/public/chunk-L3HKLZJ5.js.map
288 -rw-r--r--··0.0·unx····76727·b-·defN·81-Jan-01·01:01·assets/public/chunk-LIWG7NLG.js280 -rw-r--r--··0.0·unx····76727·b-·defN·81-Jan-01·01:01·assets/public/chunk-LIWG7NLG.js
289 -rw-r--r--··0.0·unx···181885·b-·defN·81-Jan-01·01:01·assets/public/chunk-LIWG7NLG.js.map281 -rw-r--r--··0.0·unx···181885·b-·defN·81-Jan-01·01:01·assets/public/chunk-LIWG7NLG.js.map
290 -rw-r--r--··0.0·unx····15422·b-·defN·81-Jan-01·01:01·assets/public/chunk-LLYEAZFH.js282 -rw-r--r--··0.0·unx····15422·b-·defN·81-Jan-01·01:01·assets/public/chunk-LLYEAZFH.js
291 -rw-r--r--··0.0·unx····38046·b-·defN·81-Jan-01·01:01·assets/public/chunk-LLYEAZFH.js.map283 -rw-r--r--··0.0·unx····38046·b-·defN·81-Jan-01·01:01·assets/public/chunk-LLYEAZFH.js.map
292 -rw-r--r--··0.0·unx·····1014·b-·defN·81-Jan-01·01:01·assets/public/chunk-LM73TW6C.js284 -rw-r--r--··0.0·unx·····1014·b-·defN·81-Jan-01·01:01·assets/public/chunk-LM73TW6C.js
293 -rw-r--r--··0.0·unx·····1893·b-·defN·81-Jan-01·01:01·assets/public/chunk-LM73TW6C.js.map285 -rw-r--r--··0.0·unx·····1893·b-·defN·81-Jan-01·01:01·assets/public/chunk-LM73TW6C.js.map
 286 -rw-r--r--··0.0·unx·····1465·b-·defN·81-Jan-01·01:01·assets/public/chunk-LTHMW6C4.js
 287 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-LTHMW6C4.js.map
294 -rw-r--r--··0.0·unx····25613·b-·defN·81-Jan-01·01:01·assets/public/chunk-LWOYY253.js288 -rw-r--r--··0.0·unx····25613·b-·defN·81-Jan-01·01:01·assets/public/chunk-LWOYY253.js
295 -rw-r--r--··0.0·unx····69182·b-·defN·81-Jan-01·01:01·assets/public/chunk-LWOYY253.js.map289 -rw-r--r--··0.0·unx····69182·b-·defN·81-Jan-01·01:01·assets/public/chunk-LWOYY253.js.map
296 -rw-r--r--··0.0·unx···202246·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAQCQPYF.js290 -rw-r--r--··0.0·unx···202246·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAQCQPYF.js
297 -rw-r--r--··0.0·unx···824865·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAQCQPYF.js.map291 -rw-r--r--··0.0·unx···824865·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAQCQPYF.js.map
298 -rw-r--r--··0.0·unx······295·b-·defN·81-Jan-01·01:01·assets/public/chunk-MTAMSYXR.js292 -rw-r--r--··0.0·unx······295·b-·defN·81-Jan-01·01:01·assets/public/chunk-MTAMSYXR.js
Max diff block lines reached; 12727/23993 bytes (53.04%) of diff not shown.
17.0 KB
assets/public/ngsw.json
17.0 KB
Pretty-printed
Similarity: 0.9320355885961513% Differences: {"'assetGroups'": "{0: {'urls': {insert: [(16, '/chunk-5QSHRBB3.js'), (41, '/chunk-EVT7NY2D.js'), " "(58, '/chunk-IQQZUO6I.js'), (70, '/chunk-LTHMW6C4.js'), (84, " "'/chunk-PEQBECIR.js'), (102, '/chunk-UQLLTF4E.js'), (110, " "'/chunk-VH75GC5P.js'), (112, '/chunk-VQZLIIQ7.js'), (120, " "'/chunk-ZBYY2JLW.js'), (124, '/chunk-ZPIMGF6Z.js'), (129, " "'/main-WYUKMRIM.js')], delete: [129, 126, 97, 81, 62, 47, 36, 32, 26, 21, […]
    
Offset 14, 135 lines modifiedOffset 14, 135 lines modified
14 ················"/chunk-2NYJ54WT.js",14 ················"/chunk-2NYJ54WT.js",
15 ················"/chunk-352ZKRK2.js",15 ················"/chunk-352ZKRK2.js",
16 ················"/chunk-3EOVUPIY.js",16 ················"/chunk-3EOVUPIY.js",
17 ················"/chunk-3JWM7PKT.js",17 ················"/chunk-3JWM7PKT.js",
18 ················"/chunk-3UB54IM4.js",18 ················"/chunk-3UB54IM4.js",
19 ················"/chunk-3Z2FNV42.js",19 ················"/chunk-3Z2FNV42.js",
20 ················"/chunk-44W6YCXP.js",20 ················"/chunk-44W6YCXP.js",
21 ················"/chunk-4ANWUG5O.js", 
22 ················"/chunk-4LZ5GS7Z.js",21 ················"/chunk-4LZ5GS7Z.js",
23 ················"/chunk-4MDX2LQL.js",22 ················"/chunk-4MDX2LQL.js",
24 ················"/chunk-4RA25WAL.js",23 ················"/chunk-4RA25WAL.js",
25 ················"/chunk-52E4OR7C.js",24 ················"/chunk-52E4OR7C.js",
26 ················"/chunk-53XHIVHI.js",25 ················"/chunk-53XHIVHI.js",
27 ················"/chunk-54O5TGTU.js",26 ················"/chunk-54O5TGTU.js",
28 ················"/chunk-5EW7IJ3A.js",27 ················"/chunk-5EW7IJ3A.js",
 28 ················"/chunk-5QSHRBB3.js",
29 ················"/chunk-5WWLWJDY.js",29 ················"/chunk-5WWLWJDY.js",
30 ················"/chunk-62BQDC26.js",30 ················"/chunk-62BQDC26.js",
31 ················"/chunk-63CPB6EG.js",31 ················"/chunk-63CPB6EG.js",
32 ················"/chunk-66UQFYBZ.js",32 ················"/chunk-66UQFYBZ.js",
33 ················"/chunk-6BTBXX5V.js", 
34 ················"/chunk-6HMGLSTJ.js",33 ················"/chunk-6HMGLSTJ.js",
35 ················"/chunk-6ILFT54O.js",34 ················"/chunk-6ILFT54O.js",
36 ················"/chunk-6M43B367.js",35 ················"/chunk-6M43B367.js",
37 ················"/chunk-6OTPDFIS.js",36 ················"/chunk-6OTPDFIS.js",
38 ················"/chunk-77ZSDKZD.js", 
39 ················"/chunk-7AEWECSO.js",37 ················"/chunk-7AEWECSO.js",
40 ················"/chunk-7QJOIGWD.js",38 ················"/chunk-7QJOIGWD.js",
41 ················"/chunk-A7MOHWFK.js",39 ················"/chunk-A7MOHWFK.js",
42 ················"/chunk-AAAAG6LL.js",40 ················"/chunk-AAAAG6LL.js",
43 ················"/chunk-ABDFPP75.js",41 ················"/chunk-ABDFPP75.js",
44 ················"/chunk-AHUFPQ34.js", 
45 ················"/chunk-ATRC5YAB.js",42 ················"/chunk-ATRC5YAB.js",
46 ················"/chunk-AW23F5KX.js",43 ················"/chunk-AW23F5KX.js",
47 ················"/chunk-BEPRWKFF.js",44 ················"/chunk-BEPRWKFF.js",
48 ················"/chunk-BM5UM4I2.js", 
49 ················"/chunk-BMNBNE4Q.js",45 ················"/chunk-BMNBNE4Q.js",
50 ················"/chunk-BR4DJPMY.js",46 ················"/chunk-BR4DJPMY.js",
51 ················"/chunk-CTKG63YM.js",47 ················"/chunk-CTKG63YM.js",
52 ················"/chunk-DBKAVYUF.js",48 ················"/chunk-DBKAVYUF.js",
53 ················"/chunk-DP7GTZUF.js",49 ················"/chunk-DP7GTZUF.js",
54 ················"/chunk-DU3YCOM3.js",50 ················"/chunk-DU3YCOM3.js",
55 ················"/chunk-DX2IO2N5.js",51 ················"/chunk-DX2IO2N5.js",
56 ················"/chunk-DXQO57I2.js",52 ················"/chunk-DXQO57I2.js",
 53 ················"/chunk-EVT7NY2D.js",
57 ················"/chunk-EX3XCQ6H.js",54 ················"/chunk-EX3XCQ6H.js",
58 ················"/chunk-G25OYBCW.js",55 ················"/chunk-G25OYBCW.js",
59 ················"/chunk-GAB5FZMM.js", 
60 ················"/chunk-GT73NP2G.js",56 ················"/chunk-GT73NP2G.js",
61 ················"/chunk-GZFWFOBC.js",57 ················"/chunk-GZFWFOBC.js",
62 ················"/chunk-HB5KHHRQ.js",58 ················"/chunk-HB5KHHRQ.js",
63 ················"/chunk-HPLGUE6W.js",59 ················"/chunk-HPLGUE6W.js",
64 ················"/chunk-HR6HBFFX.js",60 ················"/chunk-HR6HBFFX.js",
65 ················"/chunk-HZ5GTVY7.js",61 ················"/chunk-HZ5GTVY7.js",
66 ················"/chunk-I22KLOPA.js",62 ················"/chunk-I22KLOPA.js",
67 ················"/chunk-I2ZIWQWB.js",63 ················"/chunk-I2ZIWQWB.js",
68 ················"/chunk-I55AAMCK.js",64 ················"/chunk-I55AAMCK.js",
69 ················"/chunk-ICEXZO6Q.js",65 ················"/chunk-ICEXZO6Q.js",
70 ················"/chunk-IGCLYYTY.js",66 ················"/chunk-IGCLYYTY.js",
71 ················"/chunk-IHQL4CLN.js",67 ················"/chunk-IHQL4CLN.js",
72 ················"/chunk-IJCJ6COC.js",68 ················"/chunk-IJCJ6COC.js",
73 ················"/chunk-IL5OTZXM.js",69 ················"/chunk-IL5OTZXM.js",
74 ················"/chunk-J754SOWT.js",70 ················"/chunk-IQQZUO6I.js",
75 ················"/chunk-JCC3ZHM6.js",71 ················"/chunk-JCC3ZHM6.js",
76 ················"/chunk-JSX6VTWN.js",72 ················"/chunk-JSX6VTWN.js",
77 ················"/chunk-JWEVU4VV.js",73 ················"/chunk-JWEVU4VV.js",
78 ················"/chunk-K5GRC76V.js",74 ················"/chunk-K5GRC76V.js",
79 ················"/chunk-K5WKWNP7.js",75 ················"/chunk-K5WKWNP7.js",
80 ················"/chunk-KGXGY3N2.js",76 ················"/chunk-KGXGY3N2.js",
81 ················"/chunk-KRVE43WZ.js",77 ················"/chunk-KRVE43WZ.js",
82 ················"/chunk-L3HKLZJ5.js",78 ················"/chunk-L3HKLZJ5.js",
83 ················"/chunk-LIWG7NLG.js",79 ················"/chunk-LIWG7NLG.js",
84 ················"/chunk-LLYEAZFH.js",80 ················"/chunk-LLYEAZFH.js",
85 ················"/chunk-LM73TW6C.js",81 ················"/chunk-LM73TW6C.js",
 82 ················"/chunk-LTHMW6C4.js",
86 ················"/chunk-LWOYY253.js",83 ················"/chunk-LWOYY253.js",
87 ················"/chunk-MAQCQPYF.js",84 ················"/chunk-MAQCQPYF.js",
88 ················"/chunk-MTAMSYXR.js",85 ················"/chunk-MTAMSYXR.js",
89 ················"/chunk-NAC3HR42.js",86 ················"/chunk-NAC3HR42.js",
90 ················"/chunk-NAWYCYT3.js",87 ················"/chunk-NAWYCYT3.js",
91 ················"/chunk-NBHHRDIC.js",88 ················"/chunk-NBHHRDIC.js",
92 ················"/chunk-NNQWYSOU.js",89 ················"/chunk-NNQWYSOU.js",
93 ················"/chunk-NRU3TRWE.js", 
94 ················"/chunk-NW24E2WJ.js",90 ················"/chunk-NW24E2WJ.js",
95 ················"/chunk-O55BJVFS.js",91 ················"/chunk-O55BJVFS.js",
96 ················"/chunk-O73YLTLO.js",92 ················"/chunk-O73YLTLO.js",
97 ················"/chunk-OKE7ST2R.js",93 ················"/chunk-OKE7ST2R.js",
98 ················"/chunk-P374KFOI.js",94 ················"/chunk-P374KFOI.js",
99 ················"/chunk-P5ZILOHA.js",95 ················"/chunk-P5ZILOHA.js",
 96 ················"/chunk-PEQBECIR.js",
100 ················"/chunk-PQR5WPAM.js",97 ················"/chunk-PQR5WPAM.js",
101 ················"/chunk-QBGCTL24.js",98 ················"/chunk-QBGCTL24.js",
102 ················"/chunk-QOJGSMZM.js",99 ················"/chunk-QOJGSMZM.js",
103 ················"/chunk-QXGG4PL2.js",100 ················"/chunk-QXGG4PL2.js",
104 ················"/chunk-RHU3AIGY.js",101 ················"/chunk-RHU3AIGY.js",
105 ················"/chunk-RKZ7SXWB.js",102 ················"/chunk-RKZ7SXWB.js",
106 ················"/chunk-SBPDLBVD.js",103 ················"/chunk-SBPDLBVD.js",
107 ················"/chunk-SJ7MG42N.js",104 ················"/chunk-SJ7MG42N.js",
108 ················"/chunk-SLMGX7CW.js",105 ················"/chunk-SLMGX7CW.js",
109 ················"/chunk-TJDV7M2I.js", 
110 ················"/chunk-TKAMWYJP.js",106 ················"/chunk-TKAMWYJP.js",
111 ················"/chunk-TN6ZV5G7.js",107 ················"/chunk-TN6ZV5G7.js",
112 ················"/chunk-TP2NJOZF.js",108 ················"/chunk-TP2NJOZF.js",
113 ················"/chunk-TRL2N7WU.js",109 ················"/chunk-TRL2N7WU.js",
114 ················"/chunk-TXK67HLH.js",110 ················"/chunk-TXK67HLH.js",
115 ················"/chunk-UFA5CYAZ.js",111 ················"/chunk-UFA5CYAZ.js",
116 ················"/chunk-UHJC7PJM.js",112 ················"/chunk-UHJC7PJM.js",
117 ················"/chunk-UMDDCTK2.js",113 ················"/chunk-UMDDCTK2.js",
 114 ················"/chunk-UQLLTF4E.js",
118 ················"/chunk-URDPZMVD.js",115 ················"/chunk-URDPZMVD.js",
119 ················"/chunk-UTQXOQR6.js",116 ················"/chunk-UTQXOQR6.js",
120 ················"/chunk-UVSMMNVI.js",117 ················"/chunk-UVSMMNVI.js",
121 ················"/chunk-UXI3O75E.js",118 ················"/chunk-UXI3O75E.js",
122 ················"/chunk-V2RAQUZK.js",119 ················"/chunk-V2RAQUZK.js",
123 ················"/chunk-V74RJRMS.js",120 ················"/chunk-V74RJRMS.js",
124 ················"/chunk-VAUX3UM4.js",121 ················"/chunk-VAUX3UM4.js",
 122 ················"/chunk-VH75GC5P.js",
125 ················"/chunk-VKAEHVNS.js",123 ················"/chunk-VKAEHVNS.js",
 124 ················"/chunk-VQZLIIQ7.js",
126 ················"/chunk-VW4V5P53.js",125 ················"/chunk-VW4V5P53.js",
127 ················"/chunk-WA3HPSFI.js",126 ················"/chunk-WA3HPSFI.js",
128 ················"/chunk-WD2BQIDZ.js",127 ················"/chunk-WD2BQIDZ.js",
129 ················"/chunk-XU2E3I7U.js",128 ················"/chunk-XU2E3I7U.js",
130 ················"/chunk-Y3NEBWGS.js",129 ················"/chunk-Y3NEBWGS.js",
131 ················"/chunk-Z5NQ6E6P.js",130 ················"/chunk-Z5NQ6E6P.js",
132 ················"/chunk-Z64B45LV.js",131 ················"/chunk-Z64B45LV.js",
 132 ················"/chunk-ZBYY2JLW.js",
Max diff block lines reached; 11731/16784 bytes (69.89%) of diff not shown.
2.65 KB
assets/public/index.html
    
Offset 7114, 22 lines modifiedOffset 7114, 22 lines modified
0001bc90:·3d20·7072·6f64·7563·7469·7669·7479·5469··=·productivityTi0001bc90:·3d20·7072·6f64·7563·7469·7669·7479·5469··=·productivityTi
0001bca0:·7073·5b72·616e·646f·6d49·6e64·6578·5d5b··ps[randomIndex][0001bca0:·7073·5b72·616e·646f·6d49·6e64·6578·5d5b··ps[randomIndex][
0001bcb0:·315d·3b0a·0a20·2020·2020·2028·6675·6e63··1];..······(func0001bcb0:·315d·3b0a·0a20·2020·2020·2028·6675·6e63··1];..······(func
0001bcc0:·7469·6f6e·2028·2920·7b7d·2928·293b·0a20··tion·()·{})();.·0001bcc0:·7469·6f6e·2028·2920·7b7d·2928·293b·0a20··tion·()·{})();.·
0001bcd0:·2020·203c·2f73·6372·6970·743e·0a20·203c·····</script>.··<0001bcd0:·2020·203c·2f73·6372·6970·743e·0a20·203c·····</script>.··<
0001bce0:·6c69·6e6b·2072·656c·3d22·6d6f·6475·6c65··link·rel="module0001bce0:·6c69·6e6b·2072·656c·3d22·6d6f·6475·6c65··link·rel="module
0001bcf0:·7072·656c·6f61·6422·2068·7265·663d·2263··preload"·href="c0001bcf0:·7072·656c·6f61·6422·2068·7265·663d·2263··preload"·href="c
0001bd00:·6875·6e6b·2d42·4d35·554d·3449·322e·6a73··hunk-BM5UM4I2.js0001bd00:·6875·6e6b·2d45·5654·374e·5932·442e·6a73··hunk-EVT7NY2D.js
0001bd10:·223e·3c6c·696e·6b20·7265·6c3d·226d·6f64··"><link·rel="mod0001bd10:·223e·3c6c·696e·6b20·7265·6c3d·226d·6f64··"><link·rel="mod
0001bd20:·756c·6570·7265·6c6f·6164·2220·6872·6566··ulepreload"·href0001bd20:·756c·6570·7265·6c6f·6164·2220·6872·6566··ulepreload"·href
0001bd30:·3d22·6368·756e·6b2d·5051·5235·5750·414d··="chunk-PQR5WPAM0001bd30:·3d22·6368·756e·6b2d·5051·5235·5750·414d··="chunk-PQR5WPAM
0001bd40:·2e6a·7322·3e3c·6c69·6e6b·2072·656c·3d22··.js"><link·rel="0001bd40:·2e6a·7322·3e3c·6c69·6e6b·2072·656c·3d22··.js"><link·rel="
0001bd50:·6d6f·6475·6c65·7072·656c·6f61·6422·2068··modulepreload"·h0001bd50:·6d6f·6475·6c65·7072·656c·6f61·6422·2068··modulepreload"·h
0001bd60:·7265·663d·2263·6875·6e6b·2d54·4a44·5637··ref="chunk-TJDV70001bd60:·7265·663d·2263·6875·6e6b·2d35·5153·4852··ref="chunk-5QSHR
0001bd70:·4d32·492e·6a73·223e·3c6c·696e·6b20·7265··M2I.js"><link·re0001bd70:·4242·332e·6a73·223e·3c6c·696e·6b20·7265··BB3.js"><link·re
0001bd80:·6c3d·226d·6f64·756c·6570·7265·6c6f·6164··l="modulepreload0001bd80:·6c3d·226d·6f64·756c·6570·7265·6c6f·6164··l="modulepreload
0001bd90:·2220·6872·6566·3d22·6368·756e·6b2d·334a··"·href="chunk-3J0001bd90:·2220·6872·6566·3d22·6368·756e·6b2d·334a··"·href="chunk-3J
0001bda0:·574d·3750·4b54·2e6a·7322·3e3c·6c69·6e6b··WM7PKT.js"><link0001bda0:·574d·3750·4b54·2e6a·7322·3e3c·6c69·6e6b··WM7PKT.js"><link
0001bdb0:·2072·656c·3d22·6d6f·6475·6c65·7072·656c···rel="moduleprel0001bdb0:·2072·656c·3d22·6d6f·6475·6c65·7072·656c···rel="moduleprel
0001bdc0:·6f61·6422·2068·7265·663d·2263·6875·6e6b··oad"·href="chunk0001bdc0:·6f61·6422·2068·7265·663d·2263·6875·6e6b··oad"·href="chunk
0001bdd0:·2d4a·5358·3656·5457·4e2e·6a73·223e·3c6c··-JSX6VTWN.js"><l0001bdd0:·2d4a·5358·3656·5457·4e2e·6a73·223e·3c6c··-JSX6VTWN.js"><l
0001bde0:·696e·6b20·7265·6c3d·226d·6f64·756c·6570··ink·rel="modulep0001bde0:·696e·6b20·7265·6c3d·226d·6f64·756c·6570··ink·rel="modulep
Offset 7148, 11 lines modifiedOffset 7148, 11 lines modified
0001beb0:·7265·6c3d·226d·6f64·756c·6570·7265·6c6f··rel="moduleprelo0001beb0:·7265·6c3d·226d·6f64·756c·6570·7265·6c6f··rel="moduleprelo
0001bec0:·6164·2220·6872·6566·3d22·6368·756e·6b2d··ad"·href="chunk-0001bec0:·6164·2220·6872·6566·3d22·6368·756e·6b2d··ad"·href="chunk-
0001bed0:·3751·4a4f·4947·5744·2e6a·7322·3e3c·7363··7QJOIGWD.js"><sc0001bed0:·3751·4a4f·4947·5744·2e6a·7322·3e3c·7363··7QJOIGWD.js"><sc
0001bee0:·7269·7074·2073·7263·3d22·706f·6c79·6669··ript·src="polyfi0001bee0:·7269·7074·2073·7263·3d22·706f·6c79·6669··ript·src="polyfi
0001bef0:·6c6c·732d·3754·3249·5a59·4433·2e6a·7322··lls-7T2IZYD3.js"0001bef0:·6c6c·732d·3754·3249·5a59·4433·2e6a·7322··lls-7T2IZYD3.js"
0001bf00:·2074·7970·653d·226d·6f64·756c·6522·3e3c···type="module"><0001bf00:·2074·7970·653d·226d·6f64·756c·6522·3e3c···type="module"><
0001bf10:·2f73·6372·6970·743e·3c73·6372·6970·7420··/script><script·0001bf10:·2f73·6372·6970·743e·3c73·6372·6970·7420··/script><script·
0001bf20:·7372·633d·226d·6169·6e2d·4a55·4854·324c··src="main-JUHT2L0001bf20:·7372·633d·226d·6169·6e2d·5759·554b·4d52··src="main-WYUKMR
0001bf30:·504f·2e6a·7322·2074·7970·653d·226d·6f64··PO.js"·type="mod0001bf30:·494d·2e6a·7322·2074·7970·653d·226d·6f64··IM.js"·type="mod
0001bf40:·756c·6522·3e3c·2f73·6372·6970·743e·3c2f··ule"></script></0001bf40:·756c·6522·3e3c·2f73·6372·6970·743e·3c2f··ule"></script></
0001bf50:·626f·6479·3e0a·3c2f·6874·6d6c·3e0a·······body>.</html>.0001bf50:·626f·6479·3e0a·3c2f·6874·6d6c·3e0a·······body>.</html>.
107 B
assets/public/main-JUHT2LPO.js.map vs.
assets/public/main-WYUKMRIM.js.map
Files identical despite different names
5.57 KB
assets/public/main-JUHT2LPO.js vs.
assets/public/main-WYUKMRIM.js
Files 99% similar despite different names
5.47 KB
js-beautify {}
    
Offset 1, 11 lines modifiedOffset 1, 11 lines modified
1 import·{1 import·{
2 ····a·as·Jy,2 ····a·as·Jy,
3 ····b·as·H23 ····b·as·H2
4 }·from·"./chunk-BM5UM4I2.js";4 }·from·"./chunk-EVT7NY2D.js";
5 import·{5 import·{
6 ····a·as·Yc,6 ····a·as·Yc,
7 ····b·as·G2,7 ····b·as·G2,
8 ····c·as·qy,8 ····c·as·qy,
9 ····d·as·K29 ····d·as·K2
10 }·from·"./chunk-PQR5WPAM.js";10 }·from·"./chunk-PQR5WPAM.js";
11 import·{11 import·{
Offset 31, 15 lines modifiedOffset 31, 15 lines modified
31 ····t·as·zy,31 ····t·as·zy,
32 ····u·as·Hy,32 ····u·as·Hy,
33 ····v·as·U2,33 ····v·as·U2,
34 ····w·as·bm,34 ····w·as·bm,
35 ····x·as·Gy,35 ····x·as·Gy,
36 ····y·as·Ky,36 ····y·as·Ky,
37 ····z·as·W237 ····z·as·W2
38 }·from·"./chunk-TJDV7M2I.js";38 }·from·"./chunk-5QSHRBB3.js";
39 import·{39 import·{
40 ····a·as·Fa,40 ····a·as·Fa,
41 ····b·as·Tm41 ····b·as·Tm
42 }·from·"./chunk-3JWM7PKT.js";42 }·from·"./chunk-3JWM7PKT.js";
43 import·{43 import·{
44 ····a·as·eS,44 ····a·as·eS,
45 ····b·as·bA,45 ····b·as·bA,
Offset 105, 19 lines modifiedOffset 105, 19 lines modified
105 ····b·as·UD,105 ····b·as·UD,
106 ····c·as·Nb,106 ····c·as·Nb,
107 ····d·as·d2,107 ····d·as·d2,
108 ····e·as·Bb,108 ····e·as·Bb,
109 ····f·as·m2,109 ····f·as·m2,
110 ····g·as·Ll,110 ····g·as·Ll,
111 ····h·as·xf111 ····h·as·xf
112 }·from·"./chunk-J754SOWT.js";112 }·from·"./chunk-VH75GC5P.js";
113 import·{113 import·{
114 ····f·as·Er,114 ····f·as·Er,
115 ····g·as·Gc115 ····g·as·Gc
116 }·from·"./chunk-NRU3TRWE.js";116 }·from·"./chunk-VQZLIIQ7.js";
117 import·{117 import·{
118 ····a·as·wp,118 ····a·as·wp,
119 ····b·as·Ip,119 ····b·as·Ip,
120 ····c·as·hS120 ····c·as·hS
121 }·from·"./chunk-3EOVUPIY.js";121 }·from·"./chunk-3EOVUPIY.js";
122 import·{122 import·{
123 ····a·as·Tp,123 ····a·as·Tp,
Offset 135, 15 lines modifiedOffset 135, 15 lines modified
135 ····b·as·Tl135 ····b·as·Tl
136 }·from·"./chunk-IJCJ6COC.js";136 }·from·"./chunk-IJCJ6COC.js";
137 import·{137 import·{
138 ····a·as·mo,138 ····a·as·mo,
139 ····b·as·_2,139 ····b·as·_2,
140 ····k·as·Ir,140 ····k·as·Ir,
141 ····l·as·Hc141 ····l·as·Hc
142 }·from·"./chunk-ZWF7G3DQ.js";142 }·from·"./chunk-ZBYY2JLW.js";
143 import·{143 import·{
144 ····A·as·bf,144 ····A·as·bf,
145 ····B·as·xb,145 ····B·as·xb,
146 ····C·as·i2,146 ····C·as·i2,
147 ····D·as·yf,147 ····D·as·yf,
148 ····E·as·n2,148 ····E·as·n2,
149 ····I·as·Wc,149 ····I·as·Wc,
Offset 174, 15 lines modifiedOffset 174, 15 lines modified
174 ····p·as·Ms,174 ····p·as·Ms,
175 ····q·as·e2,175 ····q·as·e2,
176 ····v·as·Qe,176 ····v·as·Qe,
177 ····w·as·Sf,177 ····w·as·Sf,
178 ····x·as·im,178 ····x·as·im,
179 ····y·as·vb,179 ····y·as·vb,
180 ····z·as·Tb180 ····z·as·Tb
181 }·from·"./chunk-6BTBXX5V.js";181 }·from·"./chunk-IQQZUO6I.js";
182 import·{182 import·{
183 ····a·as·Dl,183 ····a·as·Dl,
184 ····b·as·em,184 ····b·as·em,
185 ····c·as·jc185 ····c·as·jc
186 }·from·"./chunk-AW23F5KX.js";186 }·from·"./chunk-AW23F5KX.js";
187 import·"./chunk-TRL2N7WU.js";187 import·"./chunk-TRL2N7WU.js";
188 import·{188 import·{
Offset 13291, 15 lines modifiedOffset 13291, 15 lines modified
13291 });13291 });
13292 var·Gw,·Kw·=·A(()·=>·{13292 var·Gw,·Kw·=·A(()·=>·{
13293 ····"use·strict";13293 ····"use·strict";
13294 ····zw();13294 ····zw();
13295 ····Hw();13295 ····Hw();
13296 ····Gw·=·[{13296 ····Gw·=·[{
13297 ········path:·"config",13297 ········path:·"config",
13298 ········loadComponent:·()·=>·import("./chunk-4ANWUG5O.js").then(i·=>·i.ConfigPageComponent),13298 ········loadComponent:·()·=>·import("./chunk-ZPIMGF6Z.js").then(i·=>·i.ConfigPageComponent),
13299 ········data:·{13299 ········data:·{
13300 ············page:·"config"13300 ············page:·"config"
13301 ········},13301 ········},
13302 ········canActivate:·[ai]13302 ········canActivate:·[ai]
13303 ····},·{13303 ····},·{
13304 ········path:·"search",13304 ········path:·"search",
13305 ········loadComponent:·()·=>·import("./chunk-ATRC5YAB.js").then(i·=>·i.SearchPageComponent),13305 ········loadComponent:·()·=>·import("./chunk-ATRC5YAB.js").then(i·=>·i.SearchPageComponent),
Offset 13361, 22 lines modifiedOffset 13361, 22 lines modified
13361 ········loadComponent:·()·=>·import("./chunk-TXK67HLH.js").then(i·=>·i.QuickHistoryComponent),13361 ········loadComponent:·()·=>·import("./chunk-TXK67HLH.js").then(i·=>·i.QuickHistoryComponent),
13362 ········data:·{13362 ········data:·{
13363 ············page:·"quick-history"13363 ············page:·"quick-history"
13364 ········},13364 ········},
13365 ········canActivate:·[Va,·ai]13365 ········canActivate:·[Va,·ai]
13366 ····},·{13366 ····},·{
13367 ········path:·"tag/:id/daily-summary",13367 ········path:·"tag/:id/daily-summary",
13368 ········loadComponent:·()·=>·import("./chunk-GAB5FZMM.js").then(i·=>·i.DailySummaryComponent),13368 ········loadComponent:·()·=>·import("./chunk-UQLLTF4E.js").then(i·=>·i.DailySummaryComponent),
13369 ········data:·{13369 ········data:·{
13370 ············page:·"daily-summary"13370 ············page:·"daily-summary"
13371 ········},13371 ········},
13372 ········canActivate:·[Va,·ai]13372 ········canActivate:·[Va,·ai]
13373 ····},·{13373 ····},·{
13374 ········path:·"tag/:id/daily-summary/:dayStr",13374 ········path:·"tag/:id/daily-summary/:dayStr",
13375 ········loadComponent:·()·=>·import("./chunk-GAB5FZMM.js").then(i·=>·i.DailySummaryComponent),13375 ········loadComponent:·()·=>·import("./chunk-UQLLTF4E.js").then(i·=>·i.DailySummaryComponent),
13376 ········data:·{13376 ········data:·{
13377 ············page:·"daily-summary"13377 ············page:·"daily-summary"
13378 ········},13378 ········},
13379 ········canActivate:·[Va,·ai]13379 ········canActivate:·[Va,·ai]
13380 ····},·{13380 ····},·{
13381 ········path:·"tag/:id/metrics",13381 ········path:·"tag/:id/metrics",
13382 ········loadComponent:·()·=>·import("./chunk-JWEVU4VV.js").then(i·=>·i.MetricPageComponent),13382 ········loadComponent:·()·=>·import("./chunk-JWEVU4VV.js").then(i·=>·i.MetricPageComponent),
Offset 13417, 41 lines modifiedOffset 13417, 41 lines modified
13417 ········loadComponent:·()·=>·import("./chunk-JWEVU4VV.js").then(i·=>·i.MetricPageComponent),13417 ········loadComponent:·()·=>·import("./chunk-JWEVU4VV.js").then(i·=>·i.MetricPageComponent),
13418 ········data:·{13418 ········data:·{
13419 ············page:·"metrics"13419 ············page:·"metrics"
13420 ········},13420 ········},
13421 ········canActivate:·[ja,·ai]13421 ········canActivate:·[ja,·ai]
13422 ····},·{13422 ····},·{
13423 ········path:·"project/:id/daily-summary",13423 ········path:·"project/:id/daily-summary",
13424 ········loadComponent:·()·=>·import("./chunk-GAB5FZMM.js").then(i·=>·i.DailySummaryComponent),13424 ········loadComponent:·()·=>·import("./chunk-UQLLTF4E.js").then(i·=>·i.DailySummaryComponent),
Max diff block lines reached; 2046/5575 bytes (36.70%) of diff not shown.
109 B
assets/public/chunk-ZWF7G3DQ.js.map vs.
assets/public/chunk-ZBYY2JLW.js.map
Files identical despite different names
1.39 KB
assets/public/chunk-ZWF7G3DQ.js vs.
assets/public/chunk-ZBYY2JLW.js
Files 99% similar despite different names
1.29 KB
js-beautify {}
    
Offset 1, 11 lines modifiedOffset 1, 11 lines modified
1 import·{1 import·{
2 ····S·as·Ar,2 ····S·as·Ar,
3 ····T·as·_t3 ····T·as·_t
4 }·from·"./chunk-6BTBXX5V.js";4 }·from·"./chunk-IQQZUO6I.js";
5 import·{5 import·{
6 ····g·as·Sr,6 ····g·as·Sr,
7 ····h·as·gt7 ····h·as·gt
8 }·from·"./chunk-K5GRC76V.js";8 }·from·"./chunk-K5GRC76V.js";
9 import·{9 import·{
10 ····a·as·Ye,10 ····a·as·Ye,
11 ····b·as·Je,11 ····b·as·Je,
Offset 2975, 15 lines modifiedOffset 2975, 15 lines modified
2975 ····················}2975 ····················}
2976 ················})2976 ················})
2977 ············}2977 ············}
2978 ············sendMessageToPlugin(r,·s)·{2978 ············sendMessageToPlugin(r,·s)·{
2979 ················return·T(this,·null,·function*()·{2979 ················return·T(this,·null,·function*()·{
2980 ····················let·{2980 ····················let·{
2981 ························PluginRunner:·l2981 ························PluginRunner:·l
2982 ····················}·=·yield·import("./chunk-77ZSDKZD.js");2982 ····················}·=·yield·import("./chunk-LTHMW6C4.js");
2983 ····················return·this._injector.get(l).sendMessageToPlugin(r,·s)2983 ····················return·this._injector.get(l).sendMessageToPlugin(r,·s)
2984 ················})2984 ················})
2985 ············}2985 ············}
2986 ············_initWindowFocusTracking()·{2986 ············_initWindowFocusTracking()·{
2987 ················window.addEventListener("focus",·()·=>·{2987 ················window.addEventListener("focus",·()·=>·{
2988 ····················this._isWindowFocused·=·!0,·this._notifyFocusHandlers(!0)2988 ····················this._isWindowFocused·=·!0,·this._notifyFocusHandlers(!0)
2989 ················}),·window.addEventListener("blur",·()·=>·{2989 ················}),·window.addEventListener("blur",·()·=>·{
Offset 3809, 8 lines modifiedOffset 3809, 8 lines modified
3809 ········}3809 ········}
3810 ········return·m3810 ········return·m
3811 ····})()3811 ····})()
3812 });3812 });
3813 export·{3813 export·{
3814 ····ne·as·a,·ie·as·b,·Pr·as·c,·wr·as·d,·Z·as·e,·_e·as·f,·br·as·g,·Rr·as·h,·ee·as·i,·ge·as·j,·Br·as·k,·xr·as·l,·Ya·as·m,·Ja·as·n,·za·as·o,·Nr·as·p,·$r·as·q,·jr·as·r,·us·as·s,·kt·as·t3814 ····ne·as·a,·ie·as·b,·Pr·as·c,·wr·as·d,·Z·as·e,·_e·as·f,·br·as·g,·Rr·as·h,·ee·as·i,·ge·as·j,·Br·as·k,·xr·as·l,·Ya·as·m,·Ja·as·n,·za·as·o,·Nr·as·p,·$r·as·q,·jr·as·r,·us·as·s,·kt·as·t
3815 };3815 };
3816 //#·sourceMappingURL=chunk-ZWF7G3DQ.js.map3816 //#·sourceMappingURL=chunk-ZBYY2JLW.js.map
109 B
assets/public/chunk-TJDV7M2I.js.map vs.
assets/public/chunk-5QSHRBB3.js.map
Files identical despite different names
829 B
assets/public/chunk-TJDV7M2I.js vs.
assets/public/chunk-5QSHRBB3.js
Files 99% similar despite different names
726 B
js-beautify {}
    
Offset 16, 15 lines modifiedOffset 16, 15 lines modified
16 import·{16 import·{
17 ····a·as·Xe,17 ····a·as·Xe,
18 ····b·as·ri18 ····b·as·ri
19 }·from·"./chunk-IJCJ6COC.js";19 }·from·"./chunk-IJCJ6COC.js";
20 import·{20 import·{
21 ····e·as·ze,21 ····e·as·ze,
22 ····i·as·Ut22 ····i·as·Ut
23 }·from·"./chunk-6BTBXX5V.js";23 }·from·"./chunk-IQQZUO6I.js";
24 import·{24 import·{
25 ····h·as·Ci,25 ····h·as·Ci,
26 ····j·as·ao26 ····j·as·ao
27 }·from·"./chunk-P374KFOI.js";27 }·from·"./chunk-P374KFOI.js";
28 import·{28 import·{
29 ····a·as·fi,29 ····a·as·fi,
30 ····b·as·ro30 ····b·as·ro
Offset 2635, 8 lines modifiedOffset 2635, 8 lines modified
2635 ········}2635 ········}
2636 ········return·o2636 ········return·o
2637 ····})()2637 ····})()
2638 });2638 });
2639 export·{2639 export·{
2640 ····nn·as·a,·uo·as·b,·bi·as·c,·Si·as·d,·Da·as·e,·va·as·f,·ka·as·g,·ba·as·h,·Sa·as·i,·Ra·as·j,·xa·as·k,·Ma·as·l,·Ta·as·m,·Ea·as·n,·Oa·as·o,·Zo·as·p,·cn·as·q,·mo·as·r,·xi·as·s,·Mi·as·t,·Ti·as·u,·Ei·as·v,·Kn·as·w,·Ro·as·x,·Lr·as·y,·Ao·as·z2640 ····nn·as·a,·uo·as·b,·bi·as·c,·Si·as·d,·Da·as·e,·va·as·f,·ka·as·g,·ba·as·h,·Sa·as·i,·Ra·as·j,·xa·as·k,·Ma·as·l,·Ta·as·m,·Ea·as·n,·Oa·as·o,·Zo·as·p,·cn·as·q,·mo·as·r,·xi·as·s,·Mi·as·t,·Ti·as·u,·Ei·as·v,·Kn·as·w,·Ro·as·x,·Lr·as·y,·Ao·as·z
2641 };2641 };
2642 //#·sourceMappingURL=chunk-TJDV7M2I.js.map2642 //#·sourceMappingURL=chunk-5QSHRBB3.js.map
109 B
assets/public/chunk-NRU3TRWE.js.map vs.
assets/public/chunk-VQZLIIQ7.js.map
Files identical despite different names
775 B
assets/public/chunk-NRU3TRWE.js vs.
assets/public/chunk-VQZLIIQ7.js
Files 99% similar despite different names
672 B
js-beautify {}
    
Offset 5, 21 lines modifiedOffset 5, 21 lines modified
5 ····f·as·et,5 ····f·as·et,
6 ····i·as·Ae,6 ····i·as·Ae,
7 ····j·as·tt,7 ····j·as·tt,
8 ····q·as·$e,8 ····q·as·$e,
9 ····r·as·it,9 ····r·as·it,
10 ····s·as·Te,10 ····s·as·Te,
11 ····t·as·nt11 ····t·as·nt
12 }·from·"./chunk-ZWF7G3DQ.js";12 }·from·"./chunk-ZBYY2JLW.js";
13 import·{13 import·{
14 ····I·as·ye,14 ····I·as·ye,
15 ····J·as·Ye,15 ····J·as·Ye,
16 ····l·as·Ce,16 ····l·as·Ce,
17 ····m·as·Je17 ····m·as·Je
18 }·from·"./chunk-6BTBXX5V.js";18 }·from·"./chunk-IQQZUO6I.js";
19 import·{19 import·{
20 ····a·as·F,20 ····a·as·F,
21 ····j·as·Ze,21 ····j·as·Ze,
22 ····xf·as·ue,22 ····xf·as·ue,
23 ····yf·as·Ke23 ····yf·as·Ke
24 }·from·"./chunk-NBHHRDIC.js";24 }·from·"./chunk-NBHHRDIC.js";
25 import·{25 import·{
Offset 1129, 8 lines modifiedOffset 1129, 8 lines modified
1129 ········}1129 ········}
1130 ········return·d1130 ········return·d
1131 ····})()1131 ····})()
1132 });1132 });
1133 export·{1133 export·{
1134 ····Le·as·a,·Oe·as·b,·Z·as·c,·Y·as·d,·Ue·as·e,·ri·as·f,·st·as·g1134 ····Le·as·a,·Oe·as·b,·Z·as·c,·Y·as·d,·Ue·as·e,·ri·as·f,·st·as·g
1135 };1135 };
1136 //#·sourceMappingURL=chunk-NRU3TRWE.js.map1136 //#·sourceMappingURL=chunk-VQZLIIQ7.js.map
109 B
assets/public/chunk-J754SOWT.js.map vs.
assets/public/chunk-VH75GC5P.js.map
Files identical despite different names
859 B
assets/public/chunk-J754SOWT.js vs.
assets/public/chunk-VH75GC5P.js
Files 98% similar despite different names
756 B
js-beautify {}
    
Offset 1, 15 lines modifiedOffset 1, 15 lines modified
1 import·{1 import·{
2 ····f·as·F,2 ····f·as·F,
3 ····g·as·U3 ····g·as·U
4 }·from·"./chunk-NRU3TRWE.js";4 }·from·"./chunk-VQZLIIQ7.js";
5 import·{5 import·{
6 ····a·as·O,6 ····a·as·O,
7 ····b·as·q7 ····b·as·q
8 }·from·"./chunk-6BTBXX5V.js";8 }·from·"./chunk-IQQZUO6I.js";
9 import·{9 import·{
10 ····Aa·as·m,10 ····Aa·as·m,
11 ····Ac·as·h,11 ····Ac·as·h,
12 ····Ad·as·T,12 ····Ad·as·T,
13 ····Db·as·I,13 ····Db·as·I,
14 ····Ec·as·b,14 ····Ec·as·b,
15 ····Fc·as·z,15 ····Fc·as·z,
Offset 157, 8 lines modifiedOffset 157, 8 lines modified
157 ········let·t·=·new·SpeechSynthesisUtterance;157 ········let·t·=·new·SpeechSynthesisUtterance;
158 ········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)158 ········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)
159 ····}159 ····}
160 });160 });
161 export·{161 export·{
162 ····te·as·a,·W·as·b,·se·as·c,·X·as·d,·ve·as·e,·Y·as·f,·me·as·g,·Q·as·h162 ····te·as·a,·W·as·b,·se·as·c,·X·as·d,·ve·as·e,·Y·as·f,·me·as·g,·Q·as·h
163 };163 };
164 //#·sourceMappingURL=chunk-J754SOWT.js.map164 //#·sourceMappingURL=chunk-VH75GC5P.js.map
109 B
assets/public/chunk-GAB5FZMM.js.map vs.
assets/public/chunk-UQLLTF4E.js.map
Files identical despite different names
944 B
assets/public/chunk-GAB5FZMM.js vs.
assets/public/chunk-UQLLTF4E.js
Files 99% similar despite different names
841 B
js-beautify {}
    
Offset 32, 15 lines modifiedOffset 32, 15 lines modified
32 ····p·as·ko,32 ····p·as·ko,
33 ····q·as·on,33 ····q·as·on,
34 ····r·as·Mo,34 ····r·as·Mo,
35 ····w·as·gn,35 ····w·as·gn,
36 ····x·as·Fo,36 ····x·as·Fo,
37 ····y·as·Cn,37 ····y·as·Cn,
38 ····z·as·Ro38 ····z·as·Ro
39 }·from·"./chunk-TJDV7M2I.js";39 }·from·"./chunk-5QSHRBB3.js";
40 import·{40 import·{
41 ····a·as·_n,41 ····a·as·_n,
42 ····b·as·wo42 ····b·as·wo
43 }·from·"./chunk-3JWM7PKT.js";43 }·from·"./chunk-3JWM7PKT.js";
44 import·{44 import·{
45 ····c·as·yi,45 ····c·as·yi,
46 ····d·as·hi,46 ····d·as·hi,
Offset 68, 15 lines modifiedOffset 68, 15 lines modified
68 import·{68 import·{
69 ····a·as·le,69 ····a·as·le,
70 ····b·as·xi70 ····b·as·xi
71 }·from·"./chunk-IJCJ6COC.js";71 }·from·"./chunk-IJCJ6COC.js";
72 import·{72 import·{
73 ····S·as·Ki,73 ····S·as·Ki,
74 ····T·as·xo74 ····T·as·xo
75 }·from·"./chunk-6BTBXX5V.js";75 }·from·"./chunk-IQQZUO6I.js";
76 import·"./chunk-AW23F5KX.js";76 import·"./chunk-AW23F5KX.js";
77 import·{77 import·{
78 ····a·as·Vi,78 ····a·as·Vi,
79 ····b·as·Ni,79 ····b·as·Ni,
80 ····d·as·So80 ····d·as·So
81 }·from·"./chunk-TRL2N7WU.js";81 }·from·"./chunk-TRL2N7WU.js";
82 import·"./chunk-HR6HBFFX.js";82 import·"./chunk-HR6HBFFX.js";
Offset 2666, 8 lines modifiedOffset 2666, 8 lines modified
2666 ········return·i2666 ········return·i
2667 ····})()2667 ····})()
2668 });2668 });
2669 vr();2669 vr();
2670 export·{2670 export·{
2671 ····id·as·DailySummaryComponent2671 ····id·as·DailySummaryComponent
2672 };2672 };
2673 //#·sourceMappingURL=chunk-GAB5FZMM.js.map2673 //#·sourceMappingURL=chunk-UQLLTF4E.js.map
109 B
assets/public/chunk-BM5UM4I2.js.map vs.
assets/public/chunk-EVT7NY2D.js.map
Files identical despite different names
727 B
assets/public/chunk-BM5UM4I2.js vs.
assets/public/chunk-EVT7NY2D.js
Files 99% similar despite different names
624 B
js-beautify {}
    
Offset 1, 21 lines modifiedOffset 1, 21 lines modified
1 import·{1 import·{
2 ····f·as·ie,2 ····f·as·ie,
3 ····g·as·Ie3 ····g·as·Ie
4 }·from·"./chunk-NRU3TRWE.js";4 }·from·"./chunk-VQZLIIQ7.js";
5 import·{5 import·{
6 ····k·as·Y,6 ····k·as·Y,
7 ····l·as·ve,7 ····l·as·ve,
8 ····m·as·Z,8 ····m·as·Z,
9 ····n·as·ee,9 ····n·as·ee,
10 ····o·as·te,10 ····o·as·te,
11 ····p·as·Me,11 ····p·as·Me,
12 ····q·as·ne,12 ····q·as·ne,
13 ····r·as·we13 ····r·as·we
14 }·from·"./chunk-ZWF7G3DQ.js";14 }·from·"./chunk-ZBYY2JLW.js";
15 import·{15 import·{
16 ····a·as·re,16 ····a·as·re,
17 ····b·as·oe,17 ····b·as·oe,
18 ····c·as·ae,18 ····c·as·ae,
19 ····f·as·le,19 ····f·as·le,
20 ····g·as·Oe20 ····g·as·Oe
21 }·from·"./chunk-GT73NP2G.js";21 }·from·"./chunk-GT73NP2G.js";
Offset 328, 8 lines modifiedOffset 328, 8 lines modified
328 ········}328 ········}
329 ········return·t329 ········return·t
330 ····})()330 ····})()
331 });331 });
332 export·{332 export·{
333 ····rt·as·a,·Re·as·b333 ····rt·as·a,·Re·as·b
334 };334 };
335 //#·sourceMappingURL=chunk-BM5UM4I2.js.map335 //#·sourceMappingURL=chunk-EVT7NY2D.js.map
889 B
assets/public/chunk-AHUFPQ34.js vs.
assets/public/chunk-PEQBECIR.js
Files 94% similar despite different names
786 B
js-beautify {}
    
Offset 1, 14 lines modifiedOffset 1, 14 lines modified
1 import·{1 import·{
2 ····a,2 ····a,
3 ····b3 ····b
4 }·from·"./chunk-BM5UM4I2.js";4 }·from·"./chunk-EVT7NY2D.js";
5 import·"./chunk-NRU3TRWE.js"; 
6 import·"./chunk-ZWF7G3DQ.js";5 import·"./chunk-VQZLIIQ7.js";
7 import·"./chunk-6BTBXX5V.js";6 import·"./chunk-ZBYY2JLW.js";
 7 import·"./chunk-IQQZUO6I.js";
8 import·"./chunk-AW23F5KX.js";8 import·"./chunk-AW23F5KX.js";
9 import·"./chunk-TRL2N7WU.js";9 import·"./chunk-TRL2N7WU.js";
10 import·"./chunk-K5GRC76V.js";10 import·"./chunk-K5GRC76V.js";
11 import·"./chunk-HR6HBFFX.js";11 import·"./chunk-HR6HBFFX.js";
12 import·"./chunk-352ZKRK2.js";12 import·"./chunk-352ZKRK2.js";
13 import·"./chunk-GT73NP2G.js";13 import·"./chunk-GT73NP2G.js";
14 import·"./chunk-ABDFPP75.js";14 import·"./chunk-ABDFPP75.js";
Offset 53, 8 lines modifiedOffset 53, 8 lines modified
53 import·"./chunk-MAQCQPYF.js";53 import·"./chunk-MAQCQPYF.js";
54 import·"./chunk-2KEZIUSW.js";54 import·"./chunk-2KEZIUSW.js";
55 import·"./chunk-2NYJ54WT.js";55 import·"./chunk-2NYJ54WT.js";
56 b();56 b();
57 export·{57 export·{
58 ····a·as·PluginIndexComponent58 ····a·as·PluginIndexComponent
59 };59 };
60 //#·sourceMappingURL=chunk-AHUFPQ34.js.map60 //#·sourceMappingURL=chunk-PEQBECIR.js.map
767 B
assets/public/chunk-77ZSDKZD.js vs.
assets/public/chunk-LTHMW6C4.js
Files 91% similar despite different names
664 B
js-beautify {}
    
Offset 1, 12 lines modifiedOffset 1, 12 lines modified
1 import·{1 import·{
2 ····s·as·a,2 ····s·as·a,
3 ····t·as·b3 ····t·as·b
4 }·from·"./chunk-ZWF7G3DQ.js";4 }·from·"./chunk-ZBYY2JLW.js";
5 import·"./chunk-6BTBXX5V.js";5 import·"./chunk-IQQZUO6I.js";
6 import·"./chunk-AW23F5KX.js";6 import·"./chunk-AW23F5KX.js";
7 import·"./chunk-TRL2N7WU.js";7 import·"./chunk-TRL2N7WU.js";
8 import·"./chunk-K5GRC76V.js";8 import·"./chunk-K5GRC76V.js";
9 import·"./chunk-HR6HBFFX.js";9 import·"./chunk-HR6HBFFX.js";
10 import·"./chunk-352ZKRK2.js";10 import·"./chunk-352ZKRK2.js";
11 import·"./chunk-ABDFPP75.js";11 import·"./chunk-ABDFPP75.js";
12 import·"./chunk-LIWG7NLG.js";12 import·"./chunk-LIWG7NLG.js";
Offset 50, 8 lines modifiedOffset 50, 8 lines modified
50 import·"./chunk-MAQCQPYF.js";50 import·"./chunk-MAQCQPYF.js";
51 import·"./chunk-2KEZIUSW.js";51 import·"./chunk-2KEZIUSW.js";
52 import·"./chunk-2NYJ54WT.js";52 import·"./chunk-2NYJ54WT.js";
53 b();53 b();
54 export·{54 export·{
55 ····a·as·PluginRunner55 ····a·as·PluginRunner
56 };56 };
57 //#·sourceMappingURL=chunk-77ZSDKZD.js.map57 //#·sourceMappingURL=chunk-LTHMW6C4.js.map
45.3 KB
assets/public/chunk-6BTBXX5V.js.map vs.
assets/public/chunk-IQQZUO6I.js.map
Files 99% similar despite different names
45.2 KB
Pretty-printed
Similarity: 0.9982993197278912% Differences: {"'sourcesContent'": "{insert: [(65, '// This file is auto-generated by tools/load-env.js\\n// Do " 'not modify directly - edit .env file instead\\n// Generated at: ' '2025-12-24T09:06:44.422Z\\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 […]
    
Offset 4829, 15 lines modifiedOffset 4829, 15 lines modified
4829 ········"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",4829 ········"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",
4830 ········"import·{\n··ChangeDetectionStrategy,\n··Component,\n··computed,\n··DestroyRef,\n··ElementRef,\n··inject,\n··input,\n··output,\n··signal,\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·{·TaskCopy·}·from·'../../tasks/task.model';\nimport·{·TagComponent·}·from·'../tag/tag.component';\nimport·{·TranslatePipe·}·from·'@ngx-translate/core';\nimport·{·TODAY_TAG·}·from·'../tag.const';\nimport·{·takeUntilDestroyed·}·from·'@angular/core/rxjs-interop';\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··private·readonly·_destroyRef·=·inject(DestroyRef);\n\n··task·=·input<TaskCopy>();\n··isShowMyDayTag·=·input<boolean>(false);\n··tagIds·=·input.required<string[]>();\n··excludedTagIds·=·input<string[]>();\n··tagUpdate·=·output<string[]>();\n\n··escapePress·=·output<void>();\n\n··inputCtrl:·UntypedFormControl·=·new·UntypedFormControl();\n··separatorKeysCodes:·number[]·=·DEFAULT_SEPARATOR_KEY_CODES;\n\n··readonly·inputEl·=·viewChild<ElementRef<HTMLInputElement>>('inputElRef');\n··readonly·matAutocomplete·=·viewChild<MatAutocomplete>('autoElRef');\n\n··inputVal·=·signal<string>('');\n··tagSuggestions·=·computed(()·=>\n····this.isShowMyDayTag()\n······?·this._tagService.tagsSortedForUI()\n······:·this._tagService.tagsNoMyDayAndNoListSorted(),\n··);\n\n··constructor()·{\n····this.inputCtrl.valueChanges\n······.pipe(takeUntilDestroyed(this._destroyRef))\n······.subscribe((value:·string·|·null)·=>·{\n········this.inputVal.set(value·??·'');\n······});\n··}\n\n··allExcludedTagIds·=·computed<string[]>(()·=>·[\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<Suggestion[]>(()·=>·{\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",4830 ········"import·{\n··ChangeDetectionStrategy,\n··Component,\n··computed,\n··DestroyRef,\n··ElementRef,\n··inject,\n··input,\n··output,\n··signal,\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·{·TaskCopy·}·from·'../../tasks/task.model';\nimport·{·TagComponent·}·from·'../tag/tag.component';\nimport·{·TranslatePipe·}·from·'@ngx-translate/core';\nimport·{·TODAY_TAG·}·from·'../tag.const';\nimport·{·takeUntilDestroyed·}·from·'@angular/core/rxjs-interop';\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··private·readonly·_destroyRef·=·inject(DestroyRef);\n\n··task·=·input<TaskCopy>();\n··isShowMyDayTag·=·input<boolean>(false);\n··tagIds·=·input.required<string[]>();\n··excludedTagIds·=·input<string[]>();\n··tagUpdate·=·output<string[]>();\n\n··escapePress·=·output<void>();\n\n··inputCtrl:·UntypedFormControl·=·new·UntypedFormControl();\n··separatorKeysCodes:·number[]·=·DEFAULT_SEPARATOR_KEY_CODES;\n\n··readonly·inputEl·=·viewChild<ElementRef<HTMLInputElement>>('inputElRef');\n··readonly·matAutocomplete·=·viewChild<MatAutocomplete>('autoElRef');\n\n··inputVal·=·signal<string>('');\n··tagSuggestions·=·computed(()·=>\n····this.isShowMyDayTag()\n······?·this._tagService.tagsSortedForUI()\n······:·this._tagService.tagsNoMyDayAndNoListSorted(),\n··);\n\n··constructor()·{\n····this.inputCtrl.valueChanges\n······.pipe(takeUntilDestroyed(this._destroyRef))\n······.subscribe((value:·string·|·null)·=>·{\n········this.inputVal.set(value·??·'');\n······});\n··}\n\n··allExcludedTagIds·=·computed<string[]>(()·=>·[\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<Suggestion[]>(()·=>·{\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",
4831 ········"<mat-chip-grid·#chipListElRef>\n··@for·(modelItem·of·tagItems();·track·modelItem.id)·{\n····<mat-chip-row\n······(removed)=\"remove(modelItem.id)\"\n······[removable]=\"true\"\n····>\n······<tag·[tag]=\"modelItem\"></tag>\n\n······<mat-icon\n········[title]=\"T.G.REMOVE·|·translate\"\n········matChipRemove\n········>cancel\n······</mat-icon>\n····</mat-chip-row>\n··}\n··<input\n····#inputElRef\n····(matChipInputTokenEnd)=\"add($event)\"\n····[formControl]=\"inputCtrl\"\n····[matAutocomplete]=\"autoElRef\"\n····[matChipInputAddOnBlur]=\"true\"\n····[matChipInputFor]=\"chipListElRef\"\n····[matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n····(keydown)=\"onKeydown($event)\"\n····[placeholder]=\"'+·Add·Tag'\"\n··/>\n</mat-chip-grid>\n<mat-autocomplete\n··#autoElRef=\"matAutocomplete\"\n··(optionSelected)=\"selected($event)\"\n>\n··@for·(suggestion·of·filteredSuggestions();·track·suggestion.id)·{\n····<mat-option·[value]=\"suggestion.id\">\n······<tag·[tag]=\"suggestion\"></tag>\n····</mat-option>\n··}\n</mat-autocomplete>\n",4831 ········"<mat-chip-grid·#chipListElRef>\n··@for·(modelItem·of·tagItems();·track·modelItem.id)·{\n····<mat-chip-row\n······(removed)=\"remove(modelItem.id)\"\n······[removable]=\"true\"\n····>\n······<tag·[tag]=\"modelItem\"></tag>\n\n······<mat-icon\n········[title]=\"T.G.REMOVE·|·translate\"\n········matChipRemove\n········>cancel\n······</mat-icon>\n····</mat-chip-row>\n··}\n··<input\n····#inputElRef\n····(matChipInputTokenEnd)=\"add($event)\"\n····[formControl]=\"inputCtrl\"\n····[matAutocomplete]=\"autoElRef\"\n····[matChipInputAddOnBlur]=\"true\"\n····[matChipInputFor]=\"chipListElRef\"\n····[matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n····(keydown)=\"onKeydown($event)\"\n····[placeholder]=\"'+·Add·Tag'\"\n··/>\n</mat-chip-grid>\n<mat-autocomplete\n··#autoElRef=\"matAutocomplete\"\n··(optionSelected)=\"selected($event)\"\n>\n··@for·(suggestion·of·filteredSuggestions();·track·suggestion.id)·{\n····<mat-option·[value]=\"suggestion.id\">\n······<tag·[tag]=\"suggestion\"></tag>\n····</mat-option>\n··}\n</mat-autocomplete>\n",
4832 ········"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<FormlyFieldConfig>·{\n··T:·typeof·T·=·T;\n}\n",4832 ········"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<FormlyFieldConfig>·{\n··T:·typeof·T·=·T;\n}\n",
4833 ········"<tag-edit\n··[isShowMyDayTag]=\"true\"\n··[tagIds]=\"value\"\n··[excludedTagIds]=\"field.templateOptions?.excludedTagIds\"\n··(tagUpdate)=\"formControl.setValue($event)\"\n></tag-edit>\n\n<!--<pre><code>{{value|json}}</code></pre>-->\n<!--<pre><code>{{field|json}}</code></pre>-->\n",4833 ········"<tag-edit\n··[isShowMyDayTag]=\"true\"\n··[tagIds]=\"value\"\n··[excludedTagIds]=\"field.templateOptions?.excludedTagIds\"\n··(tagUpdate)=\"formControl.setValue($event)\"\n></tag-edit>\n\n<!--<pre><code>{{value|json}}</code></pre>-->\n<!--<pre><code>{{field|json}}</code></pre>-->\n",
4834 ········"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<FormlyFieldConfig>·{\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",4834 ········"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<FormlyFieldConfig>·{\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",
4835 ········"@if·(value)·{\n··<div·class=\"value\">{{·value·}}</div>\n}\n<button\n··mat-flat-button\n··(click)=\"onClick()\"\n>\n··{{·(to.text·|·translate)·||·'Click·Me'·}}\n</button>\n",4835 ········"@if·(value)·{\n··<div·class=\"value\">{{·value·}}</div>\n}\n<button\n··mat-flat-button\n··(click)=\"onClick()\"\n>\n··{{·(to.text·|·translate)·||·'Click·Me'·}}\n</button>\n",
4836 ········"//·This·file·is·auto-generated·by·tools/load-env.js\n//·Do·not·modify·directly·-·edit·.env·file·instead\n//·Generated·at:·2025-12-15T11:33:41.030Z\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",4836 ········"//·This·file·is·auto-generated·by·tools/load-env.js\n//·Do·not·modify·directly·-·edit·.env·file·instead\n//·Generated·at:·2025-12-24T09:06:44.422Z\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",
4837 ········"/**\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",4837 ········"/**\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",
4838 ········"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<UnsplashSearchResponse>·{\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<UnsplashSearchResponse>(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<any>·{\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",4838 ········"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<UnsplashSearchResponse>·{\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<UnsplashSearchResponse>(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<any>·{\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",
4839 ········"export·const·IS_MAC·=·navigator.platform.toUpperCase().indexOf('MAC')·>=·0;\n",4839 ········"export·const·IS_MAC·=·navigator.platform.toUpperCase().indexOf('MAC')·>=·0;\n",
4840 ········"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·=·/*#__PURE__*/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",4840 ········"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·=·/*#__PURE__*/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",
4841 ········"export·const·IS_FIREFOX·=·navigator.userAgent.toLowerCase().indexOf('firefox')·>·-1;\n",4841 ········"export·const·IS_FIREFOX·=·navigator.userAgent.toLowerCase().indexOf('firefox')·>·-1;\n",
4842 ········"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>(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",4842 ········"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>(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",
4843 ········"import·{\n··effect,\n··EnvironmentInjector,\n··inject,\n··Injectable,\n··runInInjectionContext,\n··signal,\n··untracked,\n}·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>(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·readonly·_registeredPluginIcons·=·new·Set<string>();\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··private·_environmentInjector·=·inject(EnvironmentInjector);\n··private·_hasInitialized·=·false;\n\n··darkMode·=·signal<DarkModeCfg>(\n····(localStorage.getItem(LS.DARK_MODE)·as·DarkModeCfg)·||·'system',\n··);\n\n··private·_isDarkThemeObs$:·Observable<boolean>·=·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<string·|·null·|·undefined>·=·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····if·(this._hasInitialized)·{\n······return;\n····}\n····this._hasInitialized·=·true;\n\n····runInInjectionContext(this._environmentInjector,·()·=>·{\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········const·darkMode·=·this.darkMode();\n········localStorage.setItem(LS.DARK_MODE,·darkMode);\n······});\n\n······//·Set·up·reactive·custom·theme·updates\n······this._setupCustomThemeEffect();\n····});\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······['linear',·'assets/icons/linear.svg'],\n······//·trello·icon\n······['trello',·'assets/icons/trello.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<void[]>·{\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··registerSvgIcon(iconName:·string,·url:·string):·void·{\n····//·Plugin·icon·is·already·registered,·skip\n····if·(this._registeredPluginIcons.has(iconName))·return;\n····this._matIconRegistry.addSvgIcon(\n······iconName,\n······this._domSanitizer.bypassSecurityTrustResourceUrl(url),\n····);\n····this._registeredPluginIcons.add(iconName);\n··}\n\n··registerSvgIconFromContent(iconName:·string,·svgContent:·string):·void·{\n····//·Plugin·icon·is·already·registered,·skip\n····if·(this._registeredPluginIcons.has(iconName))·return;\n····this._matIconRegistry.addSvgIconLiteral(\n······iconName,\n······this._domSanitizer.bypassSecurityTrustHtml(svgContent),\n····);\n····this._registeredPluginIcons.add(iconName);\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····//·Update·Electron·title·bar·overlay·when·dark·mode·changes\n····if·(IS_ELECTRON·&&·!IS_MAC)·{\n······effect(()·=>·{\n········const·isDark·=·this.isDarkTheme();\n········//·Use·untracked·to·prevent·reading·misc·from·creating·a·dependency\n········const·misc·=·untracked(()·=>·this._globalConfigService.misc());\n········//·Only·update·if·custom·window·title·bar·is·enabled\n········if·(misc?.isUseCustomWindowTitleBar·!==·false)·{\n··········window.ea.updateTitleBarDarkMode(isDark);\n········}\n······});\n····}\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····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······if·(misc?.isUseCustomWindowTitleBar·!==·false)·{\n········this.document.body.classList.add(BodyClass.isObsidianStyleHeader);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isObsidianStyleHeader);\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",4843 ········"import·{\n··effect,\n··EnvironmentInjector,\n··inject,\n··Injectable,\n··runInInjectionContext,\n··signal,\n··untracked,\n}·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>(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·readonly·_registeredPluginIcons·=·new·Set<string>();\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··private·_environmentInjector·=·inject(EnvironmentInjector);\n··private·_hasInitialized·=·false;\n\n··darkMode·=·signal<DarkModeCfg>(\n····(localStorage.getItem(LS.DARK_MODE)·as·DarkModeCfg)·||·'system',\n··);\n\n··private·_isDarkThemeObs$:·Observable<boolean>·=·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<string·|·null·|·undefined>·=·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····if·(this._hasInitialized)·{\n······return;\n····}\n····this._hasInitialized·=·true;\n\n····runInInjectionContext(this._environmentInjector,·()·=>·{\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········const·darkMode·=·this.darkMode();\n········localStorage.setItem(LS.DARK_MODE,·darkMode);\n······});\n\n······//·Set·up·reactive·custom·theme·updates\n······this._setupCustomThemeEffect();\n····});\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······['linear',·'assets/icons/linear.svg'],\n······//·trello·icon\n······['trello',·'assets/icons/trello.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<void[]>·{\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··registerSvgIcon(iconName:·string,·url:·string):·void·{\n····//·Plugin·icon·is·already·registered,·skip\n····if·(this._registeredPluginIcons.has(iconName))·return;\n····this._matIconRegistry.addSvgIcon(\n······iconName,\n······this._domSanitizer.bypassSecurityTrustResourceUrl(url),\n····);\n····this._registeredPluginIcons.add(iconName);\n··}\n\n··registerSvgIconFromContent(iconName:·string,·svgContent:·string):·void·{\n····//·Plugin·icon·is·already·registered,·skip\n····if·(this._registeredPluginIcons.has(iconName))·return;\n····this._matIconRegistry.addSvgIconLiteral(\n······iconName,\n······this._domSanitizer.bypassSecurityTrustHtml(svgContent),\n····);\n····this._registeredPluginIcons.add(iconName);\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····//·Update·Electron·title·bar·overlay·when·dark·mode·changes\n····if·(IS_ELECTRON·&&·!IS_MAC)·{\n······effect(()·=>·{\n········const·isDark·=·this.isDarkTheme();\n········//·Use·untracked·to·prevent·reading·misc·from·creating·a·dependency\n········const·misc·=·untracked(()·=>·this._globalConfigService.misc());\n········//·Only·update·if·custom·window·title·bar·is·enabled\n········if·(misc?.isUseCustomWindowTitleBar·!==·false)·{\n··········window.ea.updateTitleBarDarkMode(isDark);\n········}\n······});\n····}\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····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······if·(misc?.isUseCustomWindowTitleBar·!==·false)·{\n········this.document.body.classList.add(BodyClass.isObsidianStyleHeader);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isObsidianStyleHeader);\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",
719 B
assets/public/chunk-6BTBXX5V.js vs.
assets/public/chunk-IQQZUO6I.js
Files 99% similar despite different names
616 B
js-beautify {}
    
Offset 10293, 8 lines modifiedOffset 10293, 8 lines modified
10293 ········}10293 ········}
10294 ········return·r10294 ········return·r
10295 ····})()10295 ····})()
10296 });10296 });
10297 export·{10297 export·{
10298 ····fe·as·a,·Ns·as·b,·bt·as·c,·em·as·d,·Bh·as·e,·$h·as·f,·lm·as·g,·Js·as·h,·el·as·i,·nl·as·j,·ol·as·k,·At·as·l,·tr·as·m,·ao·as·n,·ad·as·o,·ut·as·p,·al·as·q,·On·as·r,·sl·as·s,·tc·as·t,·ic·as·u,·K0·as·v,·hc·as·w,·Ic·as·x,·eo·as·y,·Ec·as·z,·to·as·A,·Ac·as·B,·Oc·as·C,·Gf·as·D,·xl·as·E,·Hc·as·F,·qc·as·G,·Yc·as·H,·Gc·as·I,·Qc·as·J,·Xc·as·K,·Zc·as·L,·rd·as·M,·nd·as·N,·on·as·O,·oo·as·P,·fd·as·Q,·_d·as·R,·gd·as·S,·bd·as·T10298 ····fe·as·a,·Ns·as·b,·bt·as·c,·em·as·d,·Bh·as·e,·$h·as·f,·lm·as·g,·Js·as·h,·el·as·i,·nl·as·j,·ol·as·k,·At·as·l,·tr·as·m,·ao·as·n,·ad·as·o,·ut·as·p,·al·as·q,·On·as·r,·sl·as·s,·tc·as·t,·ic·as·u,·K0·as·v,·hc·as·w,·Ic·as·x,·eo·as·y,·Ec·as·z,·to·as·A,·Ac·as·B,·Oc·as·C,·Gf·as·D,·xl·as·E,·Hc·as·F,·qc·as·G,·Yc·as·H,·Gc·as·I,·Qc·as·J,·Xc·as·K,·Zc·as·L,·rd·as·M,·nd·as·N,·on·as·O,·oo·as·P,·fd·as·Q,·_d·as·R,·gd·as·S,·bd·as·T
10299 };10299 };
10300 //#·sourceMappingURL=chunk-6BTBXX5V.js.map10300 //#·sourceMappingURL=chunk-IQQZUO6I.js.map
109 B
assets/public/chunk-4ANWUG5O.js.map vs.
assets/public/chunk-ZPIMGF6Z.js.map
Files identical despite different names
1.36 KB
assets/public/chunk-4ANWUG5O.js vs.
assets/public/chunk-ZPIMGF6Z.js
Files 99% similar despite different names
1.26 KB
js-beautify {}
    
Offset 11, 24 lines modifiedOffset 11, 24 lines modified
11 ····b·as·_n,11 ····b·as·_n,
12 ····c·as·Fe,12 ····c·as·Fe,
13 ····d·as·zt,13 ····d·as·zt,
14 ····e·as·jt,14 ····e·as·jt,
15 ····f·as·vn,15 ····f·as·vn,
16 ····g·as·di,16 ····g·as·di,
17 ····h·as·Hn17 ····h·as·Hn
18 }·from·"./chunk-J754SOWT.js";18 }·from·"./chunk-VH75GC5P.js";
19 import·{19 import·{
20 ····a·as·Qt,20 ····a·as·Qt,
21 ····b·as·Rn,21 ····b·as·Rn,
22 ····c·as·ei,22 ····c·as·ei,
23 ····d·as·Dn,23 ····d·as·Dn,
24 ····e·as·Ln,24 ····e·as·Ln,
25 ····f·as·ti,25 ····f·as·ti,
26 ····g·as·Un26 ····g·as·Un
27 }·from·"./chunk-NRU3TRWE.js";27 }·from·"./chunk-VQZLIIQ7.js";
28 import·{28 import·{
29 ····a·as·Ft,29 ····a·as·Ft,
30 ····b·as·xt,30 ····b·as·xt,
31 ····c·as·On,31 ····c·as·On,
32 ····d·as·ni,32 ····d·as·ni,
33 ····e·as·Kn33 ····e·as·Kn
34 }·from·"./chunk-3EOVUPIY.js";34 }·from·"./chunk-3EOVUPIY.js";
Offset 42, 15 lines modifiedOffset 42, 15 lines modified
42 import·{42 import·{
43 ····e·as·qt,43 ····e·as·qt,
44 ····f·as·Nn,44 ····f·as·Nn,
45 ····g·as·Zt,45 ····g·as·Zt,
46 ····h·as·kn,46 ····h·as·kn,
47 ····k·as·Jt,47 ····k·as·Jt,
48 ····l·as·Gn48 ····l·as·Gn
49 }·from·"./chunk-ZWF7G3DQ.js";49 }·from·"./chunk-ZBYY2JLW.js";
50 import·{50 import·{
51 ····A·as·yn,51 ····A·as·yn,
52 ····F·as·Yt,52 ····F·as·Yt,
53 ····G·as·Vt,53 ····G·as·Vt,
54 ····H·as·Ht,54 ····H·as·Ht,
55 ····I·as·Wt,55 ····I·as·Wt,
56 ····J·as·xn,56 ····J·as·xn,
Offset 62, 15 lines modifiedOffset 62, 15 lines modified
62 ····k·as·Sn,62 ····k·as·Sn,
63 ····r·as·ve,63 ····r·as·ve,
64 ····s·as·bn,64 ····s·as·bn,
65 ····t·as·Rt,65 ····t·as·Rt,
66 ····u·as·In,66 ····u·as·In,
67 ····x·as·Lt,67 ····x·as·Lt,
68 ····y·as·Ut68 ····y·as·Ut
69 }·from·"./chunk-6BTBXX5V.js";69 }·from·"./chunk-IQQZUO6I.js";
70 import·{70 import·{
71 ····a·as·Ae,71 ····a·as·Ae,
72 ····c·as·Dt72 ····c·as·Dt
73 }·from·"./chunk-AW23F5KX.js";73 }·from·"./chunk-AW23F5KX.js";
74 import·"./chunk-TRL2N7WU.js";74 import·"./chunk-TRL2N7WU.js";
75 import·"./chunk-K5GRC76V.js";75 import·"./chunk-K5GRC76V.js";
76 import·"./chunk-HR6HBFFX.js";76 import·"./chunk-HR6HBFFX.js";
Offset 2633, 8 lines modifiedOffset 2633, 8 lines modified
2633 ········return·i2633 ········return·i
2634 ····})()2634 ····})()
2635 });2635 });
2636 xo();2636 xo();
2637 export·{2637 export·{
2638 ····Qr·as·ConfigPageComponent2638 ····Qr·as·ConfigPageComponent
2639 };2639 };
2640 //#·sourceMappingURL=chunk-4ANWUG5O.js.map2640 //#·sourceMappingURL=chunk-ZPIMGF6Z.js.map