98.9 KB
/home/fdroid/fdroiddata/tmp/com.superproductivity.superproductivity_1601000000.apk vs.
/home/fdroid/fdroiddata/tmp/sigcp_com.superproductivity.superproductivity_1601000000.apk
20.7 KB
zipinfo {}
    
Offset 139, 46 lines modifiedOffset 139, 42 lines modified
139 -rw-r--r--··0.0·unx····32056·b-·defN·81-Jan-01·01:01·assets/public/chunk-3E43H4SH.js.map139 -rw-r--r--··0.0·unx····32056·b-·defN·81-Jan-01·01:01·assets/public/chunk-3E43H4SH.js.map
140 -rw-r--r--··0.0·unx····11730·b-·defN·81-Jan-01·01:01·assets/public/chunk-3H2FJG22.js140 -rw-r--r--··0.0·unx····11730·b-·defN·81-Jan-01·01:01·assets/public/chunk-3H2FJG22.js
141 -rw-r--r--··0.0·unx····18636·b-·defN·81-Jan-01·01:01·assets/public/chunk-3H2FJG22.js.map141 -rw-r--r--··0.0·unx····18636·b-·defN·81-Jan-01·01:01·assets/public/chunk-3H2FJG22.js.map
142 -rw-r--r--··0.0·unx···289602·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JNAQVCX.js142 -rw-r--r--··0.0·unx···289602·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JNAQVCX.js
143 -rw-r--r--··0.0·unx··1092647·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JNAQVCX.js.map143 -rw-r--r--··0.0·unx··1092647·b-·defN·81-Jan-01·01:01·assets/public/chunk-3JNAQVCX.js.map
144 -rw-r--r--··0.0·unx······615·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js144 -rw-r--r--··0.0·unx······615·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js
145 -rw-r--r--··0.0·unx·····2240·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js.map145 -rw-r--r--··0.0·unx·····2240·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UB54IM4.js.map
146 -rw-r--r--··0.0·unx····66923·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UN2ZJEW.js 
147 -rw-r--r--··0.0·unx···263769·b-·defN·81-Jan-01·01:01·assets/public/chunk-3UN2ZJEW.js.map 
148 -rw-r--r--··0.0·unx···320096·b-·defN·81-Jan-01·01:01·assets/public/chunk-3YGNIIAP.js146 -rw-r--r--··0.0·unx···320096·b-·defN·81-Jan-01·01:01·assets/public/chunk-3YGNIIAP.js
149 -rw-r--r--··0.0·unx··3107378·b-·defN·81-Jan-01·01:01·assets/public/chunk-3YGNIIAP.js.map147 -rw-r--r--··0.0·unx··3107378·b-·defN·81-Jan-01·01:01·assets/public/chunk-3YGNIIAP.js.map
 148 -rw-r--r--··0.0·unx·····3128·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RLJGC7Y.js
 149 -rw-r--r--··0.0·unx·····9576·b-·defN·81-Jan-01·01:01·assets/public/chunk-4RLJGC7Y.js.map
150 -rw-r--r--··0.0·unx·····4853·b-·defN·81-Jan-01·01:01·assets/public/chunk-4WKVJOAH.js150 -rw-r--r--··0.0·unx·····4853·b-·defN·81-Jan-01·01:01·assets/public/chunk-4WKVJOAH.js
151 -rw-r--r--··0.0·unx····56024·b-·defN·81-Jan-01·01:01·assets/public/chunk-4WKVJOAH.js.map151 -rw-r--r--··0.0·unx····56024·b-·defN·81-Jan-01·01:01·assets/public/chunk-4WKVJOAH.js.map
152 -rw-r--r--··0.0·unx······729·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ZJF7VAV.js152 -rw-r--r--··0.0·unx······729·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ZJF7VAV.js
153 -rw-r--r--··0.0·unx·····2317·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ZJF7VAV.js.map153 -rw-r--r--··0.0·unx·····2317·b-·defN·81-Jan-01·01:01·assets/public/chunk-4ZJF7VAV.js.map
154 -rw-r--r--··0.0·unx·····1201·b-·defN·81-Jan-01·01:01·assets/public/chunk-5FY5BJAX.js154 -rw-r--r--··0.0·unx·····1201·b-·defN·81-Jan-01·01:01·assets/public/chunk-5FY5BJAX.js
155 -rw-r--r--··0.0·unx·····3448·b-·defN·81-Jan-01·01:01·assets/public/chunk-5FY5BJAX.js.map155 -rw-r--r--··0.0·unx·····3448·b-·defN·81-Jan-01·01:01·assets/public/chunk-5FY5BJAX.js.map
156 -rw-r--r--··0.0·unx·····2832·b-·defN·81-Jan-01·01:01·assets/public/chunk-5GGCGH4Z.js156 -rw-r--r--··0.0·unx·····2832·b-·defN·81-Jan-01·01:01·assets/public/chunk-5GGCGH4Z.js
157 -rw-r--r--··0.0·unx·····4560·b-·defN·81-Jan-01·01:01·assets/public/chunk-5GGCGH4Z.js.map157 -rw-r--r--··0.0·unx·····4560·b-·defN·81-Jan-01·01:01·assets/public/chunk-5GGCGH4Z.js.map
158 -rw-r--r--··0.0·unx····11550·b-·defN·81-Jan-01·01:01·assets/public/chunk-5Q2SPJG4.js158 -rw-r--r--··0.0·unx····11550·b-·defN·81-Jan-01·01:01·assets/public/chunk-5Q2SPJG4.js
159 -rw-r--r--··0.0·unx····46053·b-·defN·81-Jan-01·01:01·assets/public/chunk-5Q2SPJG4.js.map159 -rw-r--r--··0.0·unx····46053·b-·defN·81-Jan-01·01:01·assets/public/chunk-5Q2SPJG4.js.map
160 -rw-r--r--··0.0·unx·····1239·b-·defN·81-Jan-01·01:01·assets/public/chunk-5QMEDHY4.js 
161 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-5QMEDHY4.js.map 
162 -rw-r--r--··0.0·unx·····1476·b-·defN·81-Jan-01·01:01·assets/public/chunk-5YKVP3TE.js160 -rw-r--r--··0.0·unx·····1476·b-·defN·81-Jan-01·01:01·assets/public/chunk-5YKVP3TE.js
163 -rw-r--r--··0.0·unx·····4788·b-·defN·81-Jan-01·01:01·assets/public/chunk-5YKVP3TE.js.map161 -rw-r--r--··0.0·unx·····4788·b-·defN·81-Jan-01·01:01·assets/public/chunk-5YKVP3TE.js.map
164 -rw-r--r--··0.0·unx····51630·b-·defN·81-Jan-01·01:01·assets/public/chunk-6IO6G5NZ.js162 -rw-r--r--··0.0·unx····51630·b-·defN·81-Jan-01·01:01·assets/public/chunk-6IO6G5NZ.js
165 -rw-r--r--··0.0·unx···186219·b-·defN·81-Jan-01·01:01·assets/public/chunk-6IO6G5NZ.js.map163 -rw-r--r--··0.0·unx···186219·b-·defN·81-Jan-01·01:01·assets/public/chunk-6IO6G5NZ.js.map
166 -rw-r--r--··0.0·unx·····8065·b-·defN·81-Jan-01·01:01·assets/public/chunk-6MWZ5TDN.js164 -rw-r--r--··0.0·unx·····8065·b-·defN·81-Jan-01·01:01·assets/public/chunk-6MWZ5TDN.js
167 -rw-r--r--··0.0·unx····28045·b-·defN·81-Jan-01·01:01·assets/public/chunk-6MWZ5TDN.js.map165 -rw-r--r--··0.0·unx····28045·b-·defN·81-Jan-01·01:01·assets/public/chunk-6MWZ5TDN.js.map
168 -rw-r--r--··0.0·unx······602·b-·defN·81-Jan-01·01:01·assets/public/chunk-6Q234R2T.js166 -rw-r--r--··0.0·unx······602·b-·defN·81-Jan-01·01:01·assets/public/chunk-6Q234R2T.js
169 -rw-r--r--··0.0·unx·····2080·b-·defN·81-Jan-01·01:01·assets/public/chunk-6Q234R2T.js.map167 -rw-r--r--··0.0·unx·····2080·b-·defN·81-Jan-01·01:01·assets/public/chunk-6Q234R2T.js.map
170 -rw-r--r--··0.0·unx····64006·b-·defN·81-Jan-01·01:01·assets/public/chunk-6T5VISW6.js168 -rw-r--r--··0.0·unx····64006·b-·defN·81-Jan-01·01:01·assets/public/chunk-6T5VISW6.js
171 -rw-r--r--··0.0·unx···320342·b-·defN·81-Jan-01·01:01·assets/public/chunk-6T5VISW6.js.map169 -rw-r--r--··0.0·unx···320342·b-·defN·81-Jan-01·01:01·assets/public/chunk-6T5VISW6.js.map
172 -rw-r--r--··0.0·unx·····9378·b-·defN·81-Jan-01·01:01·assets/public/chunk-6XQACCEC.js170 -rw-r--r--··0.0·unx·····9378·b-·defN·81-Jan-01·01:01·assets/public/chunk-6XQACCEC.js
173 -rw-r--r--··0.0·unx····21304·b-·defN·81-Jan-01·01:01·assets/public/chunk-6XQACCEC.js.map171 -rw-r--r--··0.0·unx····21304·b-·defN·81-Jan-01·01:01·assets/public/chunk-6XQACCEC.js.map
174 -rw-r--r--··0.0·unx·····2204·b-·defN·81-Jan-01·01:01·assets/public/chunk-75YLN6G6.js172 -rw-r--r--··0.0·unx·····2204·b-·defN·81-Jan-01·01:01·assets/public/chunk-75YLN6G6.js
175 -rw-r--r--··0.0·unx·····8779·b-·defN·81-Jan-01·01:01·assets/public/chunk-75YLN6G6.js.map173 -rw-r--r--··0.0·unx·····8779·b-·defN·81-Jan-01·01:01·assets/public/chunk-75YLN6G6.js.map
176 -rw-r--r--··0.0·unx····60151·b-·defN·81-Jan-01·01:01·assets/public/chunk-7E7XZV7L.js 
177 -rw-r--r--··0.0·unx···171870·b-·defN·81-Jan-01·01:01·assets/public/chunk-7E7XZV7L.js.map 
178 -rw-r--r--··0.0·unx····23638·b-·defN·81-Jan-01·01:01·assets/public/chunk-7LFRM354.js174 -rw-r--r--··0.0·unx····23638·b-·defN·81-Jan-01·01:01·assets/public/chunk-7LFRM354.js
179 -rw-r--r--··0.0·unx····41275·b-·defN·81-Jan-01·01:01·assets/public/chunk-7LFRM354.js.map175 -rw-r--r--··0.0·unx····41275·b-·defN·81-Jan-01·01:01·assets/public/chunk-7LFRM354.js.map
180 -rw-r--r--··0.0·unx·····4447·b-·defN·81-Jan-01·01:01·assets/public/chunk-7TTGPFQ5.js176 -rw-r--r--··0.0·unx·····4447·b-·defN·81-Jan-01·01:01·assets/public/chunk-7TTGPFQ5.js
181 -rw-r--r--··0.0·unx·····6897·b-·defN·81-Jan-01·01:01·assets/public/chunk-7TTGPFQ5.js.map177 -rw-r--r--··0.0·unx·····6897·b-·defN·81-Jan-01·01:01·assets/public/chunk-7TTGPFQ5.js.map
182 -rw-r--r--··0.0·unx····10796·b-·defN·81-Jan-01·01:01·assets/public/chunk-A5MBRGPF.js178 -rw-r--r--··0.0·unx····10796·b-·defN·81-Jan-01·01:01·assets/public/chunk-A5MBRGPF.js
183 -rw-r--r--··0.0·unx····41610·b-·defN·81-Jan-01·01:01·assets/public/chunk-A5MBRGPF.js.map179 -rw-r--r--··0.0·unx····41610·b-·defN·81-Jan-01·01:01·assets/public/chunk-A5MBRGPF.js.map
184 -rw-r--r--··0.0·unx······335·b-·defN·81-Jan-01·01:01·assets/public/chunk-A6QD6H33.js180 -rw-r--r--··0.0·unx······335·b-·defN·81-Jan-01·01:01·assets/public/chunk-A6QD6H33.js
Offset 187, 14 lines modifiedOffset 183, 18 lines modified
187 -rw-r--r--··0.0·unx····69151·b-·defN·81-Jan-01·01:01·assets/public/chunk-AS3S2TBN.js.map183 -rw-r--r--··0.0·unx····69151·b-·defN·81-Jan-01·01:01·assets/public/chunk-AS3S2TBN.js.map
188 -rw-r--r--··0.0·unx····72868·b-·defN·81-Jan-01·01:01·assets/public/chunk-AZM2QNV4.js184 -rw-r--r--··0.0·unx····72868·b-·defN·81-Jan-01·01:01·assets/public/chunk-AZM2QNV4.js
189 -rw-r--r--··0.0·unx···190910·b-·defN·81-Jan-01·01:01·assets/public/chunk-AZM2QNV4.js.map185 -rw-r--r--··0.0·unx···190910·b-·defN·81-Jan-01·01:01·assets/public/chunk-AZM2QNV4.js.map
190 -rw-r--r--··0.0·unx····18421·b-·defN·81-Jan-01·01:01·assets/public/chunk-B6XN2BK4.js186 -rw-r--r--··0.0·unx····18421·b-·defN·81-Jan-01·01:01·assets/public/chunk-B6XN2BK4.js
191 -rw-r--r--··0.0·unx····70107·b-·defN·81-Jan-01·01:01·assets/public/chunk-B6XN2BK4.js.map187 -rw-r--r--··0.0·unx····70107·b-·defN·81-Jan-01·01:01·assets/public/chunk-B6XN2BK4.js.map
192 -rw-r--r--··0.0·unx·····2372·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMHAY4F7.js188 -rw-r--r--··0.0·unx·····2372·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMHAY4F7.js
193 -rw-r--r--··0.0·unx·····4992·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMHAY4F7.js.map189 -rw-r--r--··0.0·unx·····4992·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMHAY4F7.js.map
 190 -rw-r--r--··0.0·unx····66923·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMOQZ47J.js
 191 -rw-r--r--··0.0·unx···263769·b-·defN·81-Jan-01·01:01·assets/public/chunk-BMOQZ47J.js.map
 192 -rw-r--r--··0.0·unx····11487·b-·defN·81-Jan-01·01:01·assets/public/chunk-BN6Q5XR6.js
 193 -rw-r--r--··0.0·unx····22568·b-·defN·81-Jan-01·01:01·assets/public/chunk-BN6Q5XR6.js.map
194 -rw-r--r--··0.0·unx······997·b-·defN·81-Jan-01·01:01·assets/public/chunk-BOROUNNF.js194 -rw-r--r--··0.0·unx······997·b-·defN·81-Jan-01·01:01·assets/public/chunk-BOROUNNF.js
195 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-BOROUNNF.js.map195 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-BOROUNNF.js.map
196 -rw-r--r--··0.0·unx······426·b-·defN·81-Jan-01·01:01·assets/public/chunk-CEBZA2UK.js196 -rw-r--r--··0.0·unx······426·b-·defN·81-Jan-01·01:01·assets/public/chunk-CEBZA2UK.js
197 -rw-r--r--··0.0·unx······949·b-·defN·81-Jan-01·01:01·assets/public/chunk-CEBZA2UK.js.map197 -rw-r--r--··0.0·unx······949·b-·defN·81-Jan-01·01:01·assets/public/chunk-CEBZA2UK.js.map
198 -rw-r--r--··0.0·unx·····2757·b-·defN·81-Jan-01·01:01·assets/public/chunk-CHZIB6D3.js198 -rw-r--r--··0.0·unx·····2757·b-·defN·81-Jan-01·01:01·assets/public/chunk-CHZIB6D3.js
199 -rw-r--r--··0.0·unx····10909·b-·defN·81-Jan-01·01:01·assets/public/chunk-CHZIB6D3.js.map199 -rw-r--r--··0.0·unx····10909·b-·defN·81-Jan-01·01:01·assets/public/chunk-CHZIB6D3.js.map
200 -rw-r--r--··0.0·unx···139991·b-·defN·81-Jan-01·01:01·assets/public/chunk-COMUK3PO.js200 -rw-r--r--··0.0·unx···139991·b-·defN·81-Jan-01·01:01·assets/public/chunk-COMUK3PO.js
Offset 205, 20 lines modifiedOffset 205, 16 lines modified
205 -rw-r--r--··0.0·unx····84790·b-·defN·81-Jan-01·01:01·assets/public/chunk-DEIXUMEX.js.map205 -rw-r--r--··0.0·unx····84790·b-·defN·81-Jan-01·01:01·assets/public/chunk-DEIXUMEX.js.map
206 -rw-r--r--··0.0·unx····24246·b-·defN·81-Jan-01·01:01·assets/public/chunk-EIOJRFED.js206 -rw-r--r--··0.0·unx····24246·b-·defN·81-Jan-01·01:01·assets/public/chunk-EIOJRFED.js
207 -rw-r--r--··0.0·unx····97875·b-·defN·81-Jan-01·01:01·assets/public/chunk-EIOJRFED.js.map207 -rw-r--r--··0.0·unx····97875·b-·defN·81-Jan-01·01:01·assets/public/chunk-EIOJRFED.js.map
208 -rw-r--r--··0.0·unx·····8870·b-·defN·81-Jan-01·01:01·assets/public/chunk-EKZCH65S.js208 -rw-r--r--··0.0·unx·····8870·b-·defN·81-Jan-01·01:01·assets/public/chunk-EKZCH65S.js
209 -rw-r--r--··0.0·unx····44826·b-·defN·81-Jan-01·01:01·assets/public/chunk-EKZCH65S.js.map209 -rw-r--r--··0.0·unx····44826·b-·defN·81-Jan-01·01:01·assets/public/chunk-EKZCH65S.js.map
210 -rw-r--r--··0.0·unx·····2589·b-·defN·81-Jan-01·01:01·assets/public/chunk-EQ4JYBLN.js210 -rw-r--r--··0.0·unx·····2589·b-·defN·81-Jan-01·01:01·assets/public/chunk-EQ4JYBLN.js
211 -rw-r--r--··0.0·unx·····6355·b-·defN·81-Jan-01·01:01·assets/public/chunk-EQ4JYBLN.js.map211 -rw-r--r--··0.0·unx·····6355·b-·defN·81-Jan-01·01:01·assets/public/chunk-EQ4JYBLN.js.map
212 -rw-r--r--··0.0·unx···308589·b-·defN·81-Jan-01·01:01·assets/public/chunk-ESEBWQAA.js 
213 -rw-r--r--··0.0·unx···986258·b-·defN·81-Jan-01·01:01·assets/public/chunk-ESEBWQAA.js.map 
214 -rw-r--r--··0.0·unx·····7075·b-·defN·81-Jan-01·01:01·assets/public/chunk-FDVZKVGI.js212 -rw-r--r--··0.0·unx·····7075·b-·defN·81-Jan-01·01:01·assets/public/chunk-FDVZKVGI.js
215 -rw-r--r--··0.0·unx····25025·b-·defN·81-Jan-01·01:01·assets/public/chunk-FDVZKVGI.js.map213 -rw-r--r--··0.0·unx····25025·b-·defN·81-Jan-01·01:01·assets/public/chunk-FDVZKVGI.js.map
216 -rw-r--r--··0.0·unx···121414·b-·defN·81-Jan-01·01:01·assets/public/chunk-FPT5Z6JU.js 
217 -rw-r--r--··0.0·unx···183450·b-·defN·81-Jan-01·01:01·assets/public/chunk-FPT5Z6JU.js.map 
218 -rw-r--r--··0.0·unx····15302·b-·defN·81-Jan-01·01:01·assets/public/chunk-FQ7WHKEJ.js214 -rw-r--r--··0.0·unx····15302·b-·defN·81-Jan-01·01:01·assets/public/chunk-FQ7WHKEJ.js
219 -rw-r--r--··0.0·unx····38211·b-·defN·81-Jan-01·01:01·assets/public/chunk-FQ7WHKEJ.js.map215 -rw-r--r--··0.0·unx····38211·b-·defN·81-Jan-01·01:01·assets/public/chunk-FQ7WHKEJ.js.map
220 -rw-r--r--··0.0·unx····21584·b-·defN·81-Jan-01·01:01·assets/public/chunk-FXWGNVSN.js216 -rw-r--r--··0.0·unx····21584·b-·defN·81-Jan-01·01:01·assets/public/chunk-FXWGNVSN.js
221 -rw-r--r--··0.0·unx····63836·b-·defN·81-Jan-01·01:01·assets/public/chunk-FXWGNVSN.js.map217 -rw-r--r--··0.0·unx····63836·b-·defN·81-Jan-01·01:01·assets/public/chunk-FXWGNVSN.js.map
222 -rw-r--r--··0.0·unx····76950·b-·defN·81-Jan-01·01:01·assets/public/chunk-G3HJ2GL3.js218 -rw-r--r--··0.0·unx····76950·b-·defN·81-Jan-01·01:01·assets/public/chunk-G3HJ2GL3.js
223 -rw-r--r--··0.0·unx···182973·b-·defN·81-Jan-01·01:01·assets/public/chunk-G3HJ2GL3.js.map219 -rw-r--r--··0.0·unx···182973·b-·defN·81-Jan-01·01:01·assets/public/chunk-G3HJ2GL3.js.map
224 -rw-r--r--··0.0·unx····58453·b-·defN·81-Jan-01·01:01·assets/public/chunk-GFYDE73T.js220 -rw-r--r--··0.0·unx····58453·b-·defN·81-Jan-01·01:01·assets/public/chunk-GFYDE73T.js
Offset 227, 36 lines modifiedOffset 223, 34 lines modified
227 -rw-r--r--··0.0·unx·····7789·b-·defN·81-Jan-01·01:01·assets/public/chunk-GQ3B3APM.js.map223 -rw-r--r--··0.0·unx·····7789·b-·defN·81-Jan-01·01:01·assets/public/chunk-GQ3B3APM.js.map
228 -rw-r--r--··0.0·unx······511·b-·defN·81-Jan-01·01:01·assets/public/chunk-GR6WLWW6.js224 -rw-r--r--··0.0·unx······511·b-·defN·81-Jan-01·01:01·assets/public/chunk-GR6WLWW6.js
229 -rw-r--r--··0.0·unx·····1526·b-·defN·81-Jan-01·01:01·assets/public/chunk-GR6WLWW6.js.map225 -rw-r--r--··0.0·unx·····1526·b-·defN·81-Jan-01·01:01·assets/public/chunk-GR6WLWW6.js.map
230 -rw-r--r--··0.0·unx·····2469·b-·defN·81-Jan-01·01:01·assets/public/chunk-GTBEH26W.js226 -rw-r--r--··0.0·unx·····2469·b-·defN·81-Jan-01·01:01·assets/public/chunk-GTBEH26W.js
231 -rw-r--r--··0.0·unx·····6496·b-·defN·81-Jan-01·01:01·assets/public/chunk-GTBEH26W.js.map227 -rw-r--r--··0.0·unx·····6496·b-·defN·81-Jan-01·01:01·assets/public/chunk-GTBEH26W.js.map
232 -rw-r--r--··0.0·unx····16047·b-·defN·81-Jan-01·01:01·assets/public/chunk-GXVY7KCK.js228 -rw-r--r--··0.0·unx····16047·b-·defN·81-Jan-01·01:01·assets/public/chunk-GXVY7KCK.js
233 -rw-r--r--··0.0·unx····30930·b-·defN·81-Jan-01·01:01·assets/public/chunk-GXVY7KCK.js.map229 -rw-r--r--··0.0·unx····30930·b-·defN·81-Jan-01·01:01·assets/public/chunk-GXVY7KCK.js.map
234 -rw-r--r--··0.0·unx····30088·b-·defN·81-Jan-01·01:01·assets/public/chunk-H53RCMH4.js 
235 -rw-r--r--··0.0·unx···109138·b-·defN·81-Jan-01·01:01·assets/public/chunk-H53RCMH4.js.map 
236 -rw-r--r--··0.0·unx·····4045·b-·defN·81-Jan-01·01:01·assets/public/chunk-HHRVCHRC.js230 -rw-r--r--··0.0·unx·····4045·b-·defN·81-Jan-01·01:01·assets/public/chunk-HHRVCHRC.js
237 -rw-r--r--··0.0·unx····10549·b-·defN·81-Jan-01·01:01·assets/public/chunk-HHRVCHRC.js.map231 -rw-r--r--··0.0·unx····10549·b-·defN·81-Jan-01·01:01·assets/public/chunk-HHRVCHRC.js.map
238 -rw-r--r--··0.0·unx····20772·b-·defN·81-Jan-01·01:01·assets/public/chunk-HK5C6VCX.js232 -rw-r--r--··0.0·unx····20772·b-·defN·81-Jan-01·01:01·assets/public/chunk-HK5C6VCX.js
239 -rw-r--r--··0.0·unx····35313·b-·defN·81-Jan-01·01:01·assets/public/chunk-HK5C6VCX.js.map233 -rw-r--r--··0.0·unx····35313·b-·defN·81-Jan-01·01:01·assets/public/chunk-HK5C6VCX.js.map
240 -rw-r--r--··0.0·unx····29922·b-·defN·81-Jan-01·01:01·assets/public/chunk-IC3NSLMU.js234 -rw-r--r--··0.0·unx····29922·b-·defN·81-Jan-01·01:01·assets/public/chunk-IC3NSLMU.js
241 -rw-r--r--··0.0·unx····82098·b-·defN·81-Jan-01·01:01·assets/public/chunk-IC3NSLMU.js.map235 -rw-r--r--··0.0·unx····82098·b-·defN·81-Jan-01·01:01·assets/public/chunk-IC3NSLMU.js.map
242 -rw-r--r--··0.0·unx·····3591·b-·defN·81-Jan-01·01:01·assets/public/chunk-IEH6VBVE.js236 -rw-r--r--··0.0·unx·····3591·b-·defN·81-Jan-01·01:01·assets/public/chunk-IEH6VBVE.js
243 -rw-r--r--··0.0·unx····10962·b-·defN·81-Jan-01·01:01·assets/public/chunk-IEH6VBVE.js.map237 -rw-r--r--··0.0·unx····10962·b-·defN·81-Jan-01·01:01·assets/public/chunk-IEH6VBVE.js.map
244 -rw-r--r--··0.0·unx······676·b-·defN·81-Jan-01·01:01·assets/public/chunk-ISS7OXYA.js238 -rw-r--r--··0.0·unx······676·b-·defN·81-Jan-01·01:01·assets/public/chunk-ISS7OXYA.js
245 -rw-r--r--··0.0·unx·····2139·b-·defN·81-Jan-01·01:01·assets/public/chunk-ISS7OXYA.js.map239 -rw-r--r--··0.0·unx·····2139·b-·defN·81-Jan-01·01:01·assets/public/chunk-ISS7OXYA.js.map
246 -rw-r--r--··0.0·unx····42728·b-·defN·81-Jan-01·01:01·assets/public/chunk-J6NQAXQS.js240 -rw-r--r--··0.0·unx····42728·b-·defN·81-Jan-01·01:01·assets/public/chunk-J6NQAXQS.js
247 -rw-r--r--··0.0·unx···170408·b-·defN·81-Jan-01·01:01·assets/public/chunk-J6NQAXQS.js.map241 -rw-r--r--··0.0·unx···170408·b-·defN·81-Jan-01·01:01·assets/public/chunk-J6NQAXQS.js.map
 242 -rw-r--r--··0.0·unx···121414·b-·defN·81-Jan-01·01:01·assets/public/chunk-JFDPASXB.js
 243 -rw-r--r--··0.0·unx···183450·b-·defN·81-Jan-01·01:01·assets/public/chunk-JFDPASXB.js.map
248 -rw-r--r--··0.0·unx·····1560·b-·defN·81-Jan-01·01:01·assets/public/chunk-JPCQKKKF.js244 -rw-r--r--··0.0·unx·····1560·b-·defN·81-Jan-01·01:01·assets/public/chunk-JPCQKKKF.js
249 -rw-r--r--··0.0·unx·····4533·b-·defN·81-Jan-01·01:01·assets/public/chunk-JPCQKKKF.js.map245 -rw-r--r--··0.0·unx·····4533·b-·defN·81-Jan-01·01:01·assets/public/chunk-JPCQKKKF.js.map
250 -rw-r--r--··0.0·unx·····1195·b-·defN·81-Jan-01·01:01·assets/public/chunk-K4YYFBL5.js246 -rw-r--r--··0.0·unx·····1195·b-·defN·81-Jan-01·01:01·assets/public/chunk-K4YYFBL5.js
251 -rw-r--r--··0.0·unx·····2945·b-·defN·81-Jan-01·01:01·assets/public/chunk-K4YYFBL5.js.map247 -rw-r--r--··0.0·unx·····2945·b-·defN·81-Jan-01·01:01·assets/public/chunk-K4YYFBL5.js.map
252 -rw-r--r--··0.0·unx·····1157·b-·defN·81-Jan-01·01:01·assets/public/chunk-K7NMWD4N.js248 -rw-r--r--··0.0·unx····60151·b-·defN·81-Jan-01·01:01·assets/public/chunk-L3GF7I2Z.js
253 -rw-r--r--··0.0·unx·······93·b-·defN·81-Jan-01·01:01·assets/public/chunk-K7NMWD4N.js.map 
254 -rw-r--r--··0.0·unx····65206·b-·defN·81-Jan-01·01:01·assets/public/chunk-KCXVAHDW.js 
255 -rw-r--r--··0.0·unx···164867·b-·defN·81-Jan-01·01:01·assets/public/chunk-KCXVAHDW.js.map249 -rw-r--r--··0.0·unx···171870·b-·defN·81-Jan-01·01:01·assets/public/chunk-L3GF7I2Z.js.map
256 -rw-r--r--··0.0·unx·····3295·b-·defN·81-Jan-01·01:01·assets/public/chunk-L4MCALUY.js250 -rw-r--r--··0.0·unx·····3295·b-·defN·81-Jan-01·01:01·assets/public/chunk-L4MCALUY.js
257 -rw-r--r--··0.0·unx····13598·b-·defN·81-Jan-01·01:01·assets/public/chunk-L4MCALUY.js.map251 -rw-r--r--··0.0·unx····13598·b-·defN·81-Jan-01·01:01·assets/public/chunk-L4MCALUY.js.map
258 -rw-r--r--··0.0·unx·····2003·b-·defN·81-Jan-01·01:01·assets/public/chunk-LASEIKFS.js252 -rw-r--r--··0.0·unx·····2003·b-·defN·81-Jan-01·01:01·assets/public/chunk-LASEIKFS.js
259 -rw-r--r--··0.0·unx·····3277·b-·defN·81-Jan-01·01:01·assets/public/chunk-LASEIKFS.js.map253 -rw-r--r--··0.0·unx·····3277·b-·defN·81-Jan-01·01:01·assets/public/chunk-LASEIKFS.js.map
260 -rw-r--r--··0.0·unx····20083·b-·defN·81-Jan-01·01:01·assets/public/chunk-LOPNAQUA.js254 -rw-r--r--··0.0·unx····20083·b-·defN·81-Jan-01·01:01·assets/public/chunk-LOPNAQUA.js
261 -rw-r--r--··0.0·unx····30423·b-·defN·81-Jan-01·01:01·assets/public/chunk-LOPNAQUA.js.map255 -rw-r--r--··0.0·unx····30423·b-·defN·81-Jan-01·01:01·assets/public/chunk-LOPNAQUA.js.map
262 -rw-r--r--··0.0·unx·····3415·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAMSXR4J.js256 -rw-r--r--··0.0·unx·····3415·b-·defN·81-Jan-01·01:01·assets/public/chunk-MAMSXR4J.js
Max diff block lines reached; 10009/21207 bytes (47.20%) of diff not shown.
15.7 KB
assets/public/ngsw.json
15.6 KB
Pretty-printed
Similarity: 0.9314202724358974% Differences: {"'assetGroups'": "{0: {'urls': {insert: [(7, '/chunk-4RLJGC7Y.js'), (28, '/chunk-BMOQZ47J.js'), " "(29, '/chunk-BN6Q5XR6.js'), (54, '/chunk-JFDPASXB.js'), (57, " "'/chunk-L3GF7I2Z.js'), (66, '/chunk-NVQIQL7A.js'), (75, '/chunk-PP3XGOFY.js'), " "(86, '/chunk-RK7AP4LR.js'), (97, '/chunk-VOQG7765.js'), (101, " "'/chunk-WKAXUHLX.js'), (114, '/main-QGPZ4TJP.js')], delete: [114, 91, 74, 60, " '59, 50, 41, 39, 21, 13, 6]}}}' […]
    
Offset 11, 123 lines modifiedOffset 11, 123 lines modified
11 ············"urls":·[11 ············"urls":·[
12 ················"/chunk-2NYJ54WT.js",12 ················"/chunk-2NYJ54WT.js",
13 ················"/chunk-2PLQ4CGJ.js",13 ················"/chunk-2PLQ4CGJ.js",
14 ················"/chunk-3E43H4SH.js",14 ················"/chunk-3E43H4SH.js",
15 ················"/chunk-3H2FJG22.js",15 ················"/chunk-3H2FJG22.js",
16 ················"/chunk-3JNAQVCX.js",16 ················"/chunk-3JNAQVCX.js",
17 ················"/chunk-3UB54IM4.js",17 ················"/chunk-3UB54IM4.js",
18 ················"/chunk-3UN2ZJEW.js", 
19 ················"/chunk-3YGNIIAP.js",18 ················"/chunk-3YGNIIAP.js",
 19 ················"/chunk-4RLJGC7Y.js",
20 ················"/chunk-4WKVJOAH.js",20 ················"/chunk-4WKVJOAH.js",
21 ················"/chunk-4ZJF7VAV.js",21 ················"/chunk-4ZJF7VAV.js",
22 ················"/chunk-5FY5BJAX.js",22 ················"/chunk-5FY5BJAX.js",
23 ················"/chunk-5GGCGH4Z.js",23 ················"/chunk-5GGCGH4Z.js",
24 ················"/chunk-5Q2SPJG4.js",24 ················"/chunk-5Q2SPJG4.js",
25 ················"/chunk-5QMEDHY4.js", 
26 ················"/chunk-5YKVP3TE.js",25 ················"/chunk-5YKVP3TE.js",
27 ················"/chunk-6IO6G5NZ.js",26 ················"/chunk-6IO6G5NZ.js",
28 ················"/chunk-6MWZ5TDN.js",27 ················"/chunk-6MWZ5TDN.js",
29 ················"/chunk-6Q234R2T.js",28 ················"/chunk-6Q234R2T.js",
30 ················"/chunk-6T5VISW6.js",29 ················"/chunk-6T5VISW6.js",
31 ················"/chunk-6XQACCEC.js",30 ················"/chunk-6XQACCEC.js",
32 ················"/chunk-75YLN6G6.js",31 ················"/chunk-75YLN6G6.js",
33 ················"/chunk-7E7XZV7L.js", 
34 ················"/chunk-7LFRM354.js",32 ················"/chunk-7LFRM354.js",
35 ················"/chunk-7TTGPFQ5.js",33 ················"/chunk-7TTGPFQ5.js",
36 ················"/chunk-A5MBRGPF.js",34 ················"/chunk-A5MBRGPF.js",
37 ················"/chunk-A6QD6H33.js",35 ················"/chunk-A6QD6H33.js",
38 ················"/chunk-AS3S2TBN.js",36 ················"/chunk-AS3S2TBN.js",
39 ················"/chunk-AZM2QNV4.js",37 ················"/chunk-AZM2QNV4.js",
40 ················"/chunk-B6XN2BK4.js",38 ················"/chunk-B6XN2BK4.js",
41 ················"/chunk-BMHAY4F7.js",39 ················"/chunk-BMHAY4F7.js",
 40 ················"/chunk-BMOQZ47J.js",
 41 ················"/chunk-BN6Q5XR6.js",
42 ················"/chunk-BOROUNNF.js",42 ················"/chunk-BOROUNNF.js",
43 ················"/chunk-CEBZA2UK.js",43 ················"/chunk-CEBZA2UK.js",
44 ················"/chunk-CHZIB6D3.js",44 ················"/chunk-CHZIB6D3.js",
45 ················"/chunk-COMUK3PO.js",45 ················"/chunk-COMUK3PO.js",
46 ················"/chunk-CYSQ52VO.js",46 ················"/chunk-CYSQ52VO.js",
47 ················"/chunk-DEIXUMEX.js",47 ················"/chunk-DEIXUMEX.js",
48 ················"/chunk-EIOJRFED.js",48 ················"/chunk-EIOJRFED.js",
49 ················"/chunk-EKZCH65S.js",49 ················"/chunk-EKZCH65S.js",
50 ················"/chunk-EQ4JYBLN.js",50 ················"/chunk-EQ4JYBLN.js",
51 ················"/chunk-ESEBWQAA.js", 
52 ················"/chunk-FDVZKVGI.js",51 ················"/chunk-FDVZKVGI.js",
53 ················"/chunk-FPT5Z6JU.js", 
54 ················"/chunk-FQ7WHKEJ.js",52 ················"/chunk-FQ7WHKEJ.js",
55 ················"/chunk-FXWGNVSN.js",53 ················"/chunk-FXWGNVSN.js",
56 ················"/chunk-G3HJ2GL3.js",54 ················"/chunk-G3HJ2GL3.js",
57 ················"/chunk-GFYDE73T.js",55 ················"/chunk-GFYDE73T.js",
58 ················"/chunk-GQ3B3APM.js",56 ················"/chunk-GQ3B3APM.js",
59 ················"/chunk-GR6WLWW6.js",57 ················"/chunk-GR6WLWW6.js",
60 ················"/chunk-GTBEH26W.js",58 ················"/chunk-GTBEH26W.js",
61 ················"/chunk-GXVY7KCK.js",59 ················"/chunk-GXVY7KCK.js",
62 ················"/chunk-H53RCMH4.js", 
63 ················"/chunk-HHRVCHRC.js",60 ················"/chunk-HHRVCHRC.js",
64 ················"/chunk-HK5C6VCX.js",61 ················"/chunk-HK5C6VCX.js",
65 ················"/chunk-IC3NSLMU.js",62 ················"/chunk-IC3NSLMU.js",
66 ················"/chunk-IEH6VBVE.js",63 ················"/chunk-IEH6VBVE.js",
67 ················"/chunk-ISS7OXYA.js",64 ················"/chunk-ISS7OXYA.js",
68 ················"/chunk-J6NQAXQS.js",65 ················"/chunk-J6NQAXQS.js",
 66 ················"/chunk-JFDPASXB.js",
69 ················"/chunk-JPCQKKKF.js",67 ················"/chunk-JPCQKKKF.js",
70 ················"/chunk-K4YYFBL5.js",68 ················"/chunk-K4YYFBL5.js",
71 ················"/chunk-K7NMWD4N.js",69 ················"/chunk-L3GF7I2Z.js",
72 ················"/chunk-KCXVAHDW.js", 
73 ················"/chunk-L4MCALUY.js",70 ················"/chunk-L4MCALUY.js",
74 ················"/chunk-LASEIKFS.js",71 ················"/chunk-LASEIKFS.js",
75 ················"/chunk-LOPNAQUA.js",72 ················"/chunk-LOPNAQUA.js",
76 ················"/chunk-MAMSXR4J.js",73 ················"/chunk-MAMSXR4J.js",
77 ················"/chunk-MASHVMAF.js",74 ················"/chunk-MASHVMAF.js",
78 ················"/chunk-ME6P3K44.js",75 ················"/chunk-ME6P3K44.js",
79 ················"/chunk-MKQ5S2AR.js",76 ················"/chunk-MKQ5S2AR.js",
80 ················"/chunk-N2NWBZ3C.js",77 ················"/chunk-N2NWBZ3C.js",
 78 ················"/chunk-NVQIQL7A.js",
81 ················"/chunk-NWTLDK7P.js",79 ················"/chunk-NWTLDK7P.js",
82 ················"/chunk-OCWFHHQL.js",80 ················"/chunk-OCWFHHQL.js",
83 ················"/chunk-OOOTUPN3.js",81 ················"/chunk-OOOTUPN3.js",
84 ················"/chunk-OVAWK6DV.js",82 ················"/chunk-OVAWK6DV.js",
85 ················"/chunk-OXDOKNTF.js",83 ················"/chunk-OXDOKNTF.js",
86 ················"/chunk-OZT432CE.js", 
87 ················"/chunk-PEJGMLLQ.js",84 ················"/chunk-PEJGMLLQ.js",
88 ················"/chunk-PJXD7IVF.js",85 ················"/chunk-PJXD7IVF.js",
89 ················"/chunk-PNLDAEIU.js",86 ················"/chunk-PNLDAEIU.js",
 87 ················"/chunk-PP3XGOFY.js",
90 ················"/chunk-Q56B2KJS.js",88 ················"/chunk-Q56B2KJS.js",
91 ················"/chunk-Q5BN5VPC.js",89 ················"/chunk-Q5BN5VPC.js",
92 ················"/chunk-QC3JWOUK.js",90 ················"/chunk-QC3JWOUK.js",
93 ················"/chunk-QX6K6DBU.js",91 ················"/chunk-QX6K6DBU.js",
94 ················"/chunk-QXTD3TOT.js",92 ················"/chunk-QXTD3TOT.js",
95 ················"/chunk-RAGNH4OF.js",93 ················"/chunk-RAGNH4OF.js",
96 ················"/chunk-RC2FJQR5.js",94 ················"/chunk-RC2FJQR5.js",
97 ················"/chunk-RG7L3PKS.js",95 ················"/chunk-RG7L3PKS.js",
98 ················"/chunk-RHU3AIGY.js",96 ················"/chunk-RHU3AIGY.js",
99 ················"/chunk-RIUWQQE2.js",97 ················"/chunk-RIUWQQE2.js",
 98 ················"/chunk-RK7AP4LR.js",
100 ················"/chunk-RR36S4JZ.js",99 ················"/chunk-RR36S4JZ.js",
101 ················"/chunk-RSJU6TEG.js",100 ················"/chunk-RSJU6TEG.js",
102 ················"/chunk-TF4ZGOZ4.js",101 ················"/chunk-TF4ZGOZ4.js",
103 ················"/chunk-TLVKTX5S.js", 
104 ················"/chunk-TU2ETAFZ.js",102 ················"/chunk-TU2ETAFZ.js",
105 ················"/chunk-U233VVFY.js",103 ················"/chunk-U233VVFY.js",
106 ················"/chunk-UNSYVKTP.js",104 ················"/chunk-UNSYVKTP.js",
107 ················"/chunk-USV4YXDW.js",105 ················"/chunk-USV4YXDW.js",
108 ················"/chunk-UVYK2G5X.js",106 ················"/chunk-UVYK2G5X.js",
109 ················"/chunk-VALZJMB4.js",107 ················"/chunk-VALZJMB4.js",
110 ················"/chunk-VLI2QFPH.js",108 ················"/chunk-VLI2QFPH.js",
 109 ················"/chunk-VOQG7765.js",
111 ················"/chunk-W2DLB2HC.js",110 ················"/chunk-W2DLB2HC.js",
112 ················"/chunk-W3EHXDVY.js",111 ················"/chunk-W3EHXDVY.js",
113 ················"/chunk-WG4QBSGF.js",112 ················"/chunk-WG4QBSGF.js",
 113 ················"/chunk-WKAXUHLX.js",
114 ················"/chunk-X3R6V6IB.js",114 ················"/chunk-X3R6V6IB.js",
115 ················"/chunk-X6UXMYRE.js",115 ················"/chunk-X6UXMYRE.js",
116 ················"/chunk-XG4UROP3.js",116 ················"/chunk-XG4UROP3.js",
117 ················"/chunk-XU2E3I7U.js",117 ················"/chunk-XU2E3I7U.js",
118 ················"/chunk-YOFN2FEJ.js",118 ················"/chunk-YOFN2FEJ.js",
119 ················"/chunk-YRVYLTSS.js",119 ················"/chunk-YRVYLTSS.js",
120 ················"/chunk-ZA2NVDXB.js",120 ················"/chunk-ZA2NVDXB.js",
121 ················"/chunk-ZBQGB7XI.js",121 ················"/chunk-ZBQGB7XI.js",
122 ················"/chunk-ZGW3Y4C4.js",122 ················"/chunk-ZGW3Y4C4.js",
123 ················"/chunk-ZLVLY2OX.js",123 ················"/chunk-ZLVLY2OX.js",
124 ················"/favicon.ico",124 ················"/favicon.ico",
125 ················"/index.html",125 ················"/index.html",
126 ················"/main-VRZ5LKGF.js",126 ················"/main-QGPZ4TJP.js",
127 ················"/manifest.json",127 ················"/manifest.json",
128 ················"/polyfills-D4CWKFPZ.js",128 ················"/polyfills-D4CWKFPZ.js",
Max diff block lines reached; 10338/15401 bytes (67.13%) of diff not shown.
3.05 KB
assets/public/index.html
    
Offset 7024, 16 lines modifiedOffset 7024, 16 lines modified
0001b6f0:·6970·735b·7261·6e64·6f6d·496e·6465·785d··ips[randomIndex]0001b6f0:·6970·735b·7261·6e64·6f6d·496e·6465·785d··ips[randomIndex]
0001b700:·5b31·5d3b·0a20·2020·203c·2f73·6372·6970··[1];.····</scrip0001b700:·5b31·5d3b·0a20·2020·203c·2f73·6372·6970··[1];.····</scrip
0001b710:·743e·0a20·203c·6c69·6e6b·2072·656c·3d22··t>.··<link·rel="0001b710:·743e·0a20·203c·6c69·6e6b·2072·656c·3d22··t>.··<link·rel="
0001b720:·6d6f·6475·6c65·7072·656c·6f61·6422·2068··modulepreload"·h0001b720:·6d6f·6475·6c65·7072·656c·6f61·6422·2068··modulepreload"·h
0001b730:·7265·663d·2263·6875·6e6b·2d52·4332·464a··ref="chunk-RC2FJ0001b730:·7265·663d·2263·6875·6e6b·2d52·4332·464a··ref="chunk-RC2FJ
0001b740:·5152·352e·6a73·223e·3c6c·696e·6b20·7265··QR5.js"><link·re0001b740:·5152·352e·6a73·223e·3c6c·696e·6b20·7265··QR5.js"><link·re
0001b750:·6c3d·226d·6f64·756c·6570·7265·6c6f·6164··l="modulepreload0001b750:·6c3d·226d·6f64·756c·6570·7265·6c6f·6164··l="modulepreload
0001b760:·2220·6872·6566·3d22·6368·756e·6b2d·3355··"·href="chunk-3U0001b760:·2220·6872·6566·3d22·6368·756e·6b2d·424d··"·href="chunk-BM
0001b770:·4e32·5a4a·4557·2e6a·7322·3e3c·6c69·6e6b··N2ZJEW.js"><link0001b770:·4f51·5a34·374a·2e6a·7322·3e3c·6c69·6e6b··OQZ47J.js"><link
0001b780:·2072·656c·3d22·6d6f·6475·6c65·7072·656c···rel="moduleprel0001b780:·2072·656c·3d22·6d6f·6475·6c65·7072·656c···rel="moduleprel
0001b790:·6f61·6422·2068·7265·663d·2263·6875·6e6b··oad"·href="chunk0001b790:·6f61·6422·2068·7265·663d·2263·6875·6e6b··oad"·href="chunk
0001b7a0:·2d47·5236·574c·5757·362e·6a73·223e·3c6c··-GR6WLWW6.js"><l0001b7a0:·2d47·5236·574c·5757·362e·6a73·223e·3c6c··-GR6WLWW6.js"><l
0001b7b0:·696e·6b20·7265·6c3d·226d·6f64·756c·6570··ink·rel="modulep0001b7b0:·696e·6b20·7265·6c3d·226d·6f64·756c·6570··ink·rel="modulep
0001b7c0:·7265·6c6f·6164·2220·6872·6566·3d22·6368··reload"·href="ch0001b7c0:·7265·6c6f·6164·2220·6872·6566·3d22·6368··reload"·href="ch
0001b7d0:·756e·6b2d·3551·3253·504a·4734·2e6a·7322··unk-5Q2SPJG4.js"0001b7d0:·756e·6b2d·3551·3253·504a·4734·2e6a·7322··unk-5Q2SPJG4.js"
0001b7e0:·3e3c·6c69·6e6b·2072·656c·3d22·6d6f·6475··><link·rel="modu0001b7e0:·3e3c·6c69·6e6b·2072·656c·3d22·6d6f·6475··><link·rel="modu
Offset 7044, 23 lines modifiedOffset 7044, 23 lines modified
0001b830:·6566·3d22·6368·756e·6b2d·5253·4a55·3654··ef="chunk-RSJU6T0001b830:·6566·3d22·6368·756e·6b2d·5253·4a55·3654··ef="chunk-RSJU6T
0001b840:·4547·2e6a·7322·3e3c·6c69·6e6b·2072·656c··EG.js"><link·rel0001b840:·4547·2e6a·7322·3e3c·6c69·6e6b·2072·656c··EG.js"><link·rel
0001b850:·3d22·6d6f·6475·6c65·7072·656c·6f61·6422··="modulepreload"0001b850:·3d22·6d6f·6475·6c65·7072·656c·6f61·6422··="modulepreload"
0001b860:·2068·7265·663d·2263·6875·6e6b·2d35·4659···href="chunk-5FY0001b860:·2068·7265·663d·2263·6875·6e6b·2d35·4659···href="chunk-5FY
0001b870:·3542·4a41·582e·6a73·223e·3c6c·696e·6b20··5BJAX.js"><link·0001b870:·3542·4a41·582e·6a73·223e·3c6c·696e·6b20··5BJAX.js"><link·
0001b880:·7265·6c3d·226d·6f64·756c·6570·7265·6c6f··rel="moduleprelo0001b880:·7265·6c3d·226d·6f64·756c·6570·7265·6c6f··rel="moduleprelo
0001b890:·6164·2220·6872·6566·3d22·6368·756e·6b2d··ad"·href="chunk-0001b890:·6164·2220·6872·6566·3d22·6368·756e·6b2d··ad"·href="chunk-
0001b8a0:·4f5a·5434·3332·4345·2e6a·7322·3e3c·6c69··OZT432CE.js"><li0001b8a0:·424e·3651·3558·5236·2e6a·7322·3e3c·6c69··BN6Q5XR6.js"><li
0001b8b0:·6e6b·2072·656c·3d22·6d6f·6475·6c65·7072··nk·rel="modulepr0001b8b0:·6e6b·2072·656c·3d22·6d6f·6475·6c65·7072··nk·rel="modulepr
0001b8c0:·656c·6f61·6422·2068·7265·663d·2263·6875··eload"·href="chu0001b8c0:·656c·6f61·6422·2068·7265·663d·2263·6875··eload"·href="chu
0001b8d0:·6e6b·2d54·4c56·4b54·5835·532e·6a73·223e··nk-TLVKTX5S.js">0001b8d0:·6e6b·2d34·524c·4a47·4337·592e·6a73·223e··nk-4RLJGC7Y.js">
0001b8e0:·3c6c·696e·6b20·7265·6c3d·226d·6f64·756c··<link·rel="modul0001b8e0:·3c6c·696e·6b20·7265·6c3d·226d·6f64·756c··<link·rel="modul
0001b8f0:·6570·7265·6c6f·6164·2220·6872·6566·3d22··epreload"·href="0001b8f0:·6570·7265·6c6f·6164·2220·6872·6566·3d22··epreload"·href="
0001b900:·6368·756e·6b2d·564c·4932·5146·5048·2e6a··chunk-VLI2QFPH.j0001b900:·6368·756e·6b2d·564c·4932·5146·5048·2e6a··chunk-VLI2QFPH.j
0001b910:·7322·3e3c·7363·7269·7074·2073·7263·3d22··s"><script·src="0001b910:·7322·3e3c·7363·7269·7074·2073·7263·3d22··s"><script·src="
0001b920:·706f·6c79·6669·6c6c·732d·4434·4357·4b46··polyfills-D4CWKF0001b920:·706f·6c79·6669·6c6c·732d·4434·4357·4b46··polyfills-D4CWKF
0001b930:·505a·2e6a·7322·2074·7970·653d·226d·6f64··PZ.js"·type="mod0001b930:·505a·2e6a·7322·2074·7970·653d·226d·6f64··PZ.js"·type="mod
0001b940:·756c·6522·3e3c·2f73·6372·6970·743e·3c73··ule"></script><s0001b940:·756c·6522·3e3c·2f73·6372·6970·743e·3c73··ule"></script><s
0001b950:·6372·6970·7420·7372·633d·226d·6169·6e2d··cript·src="main-0001b950:·6372·6970·7420·7372·633d·226d·6169·6e2d··cript·src="main-
0001b960:·5652·5a35·4c4b·4746·2e6a·7322·2074·7970··VRZ5LKGF.js"·typ0001b960:·5147·505a·3454·4a50·2e6a·7322·2074·7970··QGPZ4TJP.js"·typ
0001b970:·653d·226d·6f64·756c·6522·3e3c·2f73·6372··e="module"></scr0001b970:·653d·226d·6f64·756c·6522·3e3c·2f73·6372··e="module"></scr
0001b980:·6970·743e·3c2f·626f·6479·3e0a·3c2f·6874··ipt></body>.</ht0001b980:·6970·743e·3c2f·626f·6479·3e0a·3c2f·6874··ipt></body>.</ht
0001b990:·6d6c·3e0a································ml>.0001b990:·6d6c·3e0a································ml>.
107 B
assets/public/main-VRZ5LKGF.js.map vs.
assets/public/main-QGPZ4TJP.js.map
Files identical despite different names
5.6 KB
assets/public/main-VRZ5LKGF.js vs.
assets/public/main-QGPZ4TJP.js
Files 99% similar despite different names
5.5 KB
js-beautify {}
    
Offset 29, 15 lines modifiedOffset 29, 15 lines modified
29 ····t·as·OA,29 ····t·as·OA,
30 ····u·as·wc,30 ····u·as·wc,
31 ····v·as·py,31 ····v·as·py,
32 ····w·as·my,32 ····w·as·my,
33 ····x·as·DA,33 ····x·as·DA,
34 ····y·as·Qp,34 ····y·as·Qp,
35 ····z·as·uy35 ····z·as·uy
36 }·from·"./chunk-3UN2ZJEW.js";36 }·from·"./chunk-BMOQZ47J.js";
37 import·{37 import·{
38 ····a·as·$n,38 ····a·as·$n,
39 ····b·as·ls39 ····b·as·ls
40 }·from·"./chunk-GR6WLWW6.js";40 }·from·"./chunk-GR6WLWW6.js";
41 import·{41 import·{
42 ····a·as·bT,42 ····a·as·bT,
43 ····d·as·yT,43 ····d·as·yT,
Offset 92, 38 lines modifiedOffset 92, 38 lines modified
92 import·{92 import·{
93 ····b·as·_y,93 ····b·as·_y,
94 ····c·as·FA94 ····c·as·FA
95 }·from·"./chunk-5FY5BJAX.js";95 }·from·"./chunk-5FY5BJAX.js";
96 import·{96 import·{
97 ····a·as·gy,97 ····a·as·gy,
98 ····b·as·NA98 ····b·as·NA
99 }·from·"./chunk-OZT432CE.js";99 }·from·"./chunk-BN6Q5XR6.js";
100 import·{100 import·{
101 ····a·as·s0,101 ····a·as·s0,
102 ····b·as·LO,102 ····b·as·LO,
103 ····c·as·eb,103 ····c·as·eb,
104 ····d·as·ZD,104 ····d·as·ZD,
105 ····e·as·nb,105 ····e·as·nb,
106 ····f·as·iA,106 ····f·as·iA,
107 ····g·as·Xp,107 ····g·as·Xp,
108 ····h·as·Xb108 ····h·as·Xb
109 }·from·"./chunk-TLVKTX5S.js";109 }·from·"./chunk-4RLJGC7Y.js";
110 import·{110 import·{
111 ····a·as·LT,111 ····a·as·LT,
112 ····b·as·BT,112 ····b·as·BT,
113 ····c·as·gD113 ····c·as·gD
114 }·from·"./chunk-VLI2QFPH.js";114 }·from·"./chunk-VLI2QFPH.js";
115 import·{115 import·{
116 ····a·as·np,116 ····a·as·np,
117 ····b·as·vT117 ····b·as·vT
118 }·from·"./chunk-3UB54IM4.js";118 }·from·"./chunk-3UB54IM4.js";
119 import·{119 import·{
120 ····f·as·ba,120 ····f·as·ba,
121 ····g·as·Vp121 ····g·as·Vp
122 }·from·"./chunk-H53RCMH4.js";122 }·from·"./chunk-WKAXUHLX.js";
123 import·{123 import·{
124 ····a·as·ib,124 ····a·as·ib,
125 ····b·as·tA,125 ····b·as·tA,
126 ····c·as·Qb,126 ····c·as·Qb,
127 ····d·as·Zb,127 ····d·as·Zb,
128 ····e·as·ey128 ····e·as·ey
129 }·from·"./chunk-IEH6VBVE.js";129 }·from·"./chunk-IEH6VBVE.js";
Offset 361, 15 lines modifiedOffset 361, 15 lines modified
361 ····h·as·Po361 ····h·as·Po
362 }·from·"./chunk-W3EHXDVY.js";362 }·from·"./chunk-W3EHXDVY.js";
363 import·{363 import·{
364 ····a·as·to,364 ····a·as·to,
365 ····b·as·aA,365 ····b·as·aA,
366 ····k·as·br,366 ····k·as·br,
367 ····l·as·Mc367 ····l·as·Mc
368 }·from·"./chunk-FPT5Z6JU.js";368 }·from·"./chunk-JFDPASXB.js";
369 import·{369 import·{
370 ····A·as·US,370 ····A·as·US,
371 ····B·as·WS,371 ····B·as·WS,
372 ····C·as·$h,372 ····C·as·$h,
373 ····D·as·YS,373 ····D·as·YS,
374 ····E·as·GD,374 ····E·as·GD,
375 ····F·as·Vh,375 ····F·as·Vh,
Offset 398, 15 lines modifiedOffset 398, 15 lines modified
398 ····l·as·NS,398 ····l·as·NS,
399 ····m·as·WD,399 ····m·as·WD,
400 ····n·as·cs,400 ····n·as·cs,
401 ····o·as·zD,401 ····o·as·zD,
402 ····x·as·qe,402 ····x·as·qe,
403 ····y·as·Bh,403 ····y·as·Bh,
404 ····z·as·Bp404 ····z·as·Bp
405 }·from·"./chunk-ESEBWQAA.js";405 }·from·"./chunk-VOQG7765.js";
406 import·{406 import·{
407 ····a·as·pr,407 ····a·as·pr,
408 ····b·as·hc,408 ····b·as·hc,
409 ····c·as·Rh,409 ····c·as·Rh,
410 ····d·as·Tc,410 ····d·as·Tc,
411 ····e·as·Sc,411 ····e·as·Sc,
412 ····f·as·Fh,412 ····f·as·Fh,
Offset 13232, 15 lines modifiedOffset 13232, 15 lines modified
13232 var·Tw,·Sw·=·O(()·=>·{13232 var·Tw,·Sw·=·O(()·=>·{
13233 ····"use·strict";13233 ····"use·strict";
13234 ····gw();13234 ····gw();
13235 ····ho();13235 ····ho();
13236 ····vw();13236 ····vw();
13237 ····Tw·=·[{13237 ····Tw·=·[{
13238 ········path:·"config",13238 ········path:·"config",
13239 ········loadComponent:·()·=>·import("./chunk-7E7XZV7L.js").then(i·=>·i.ConfigPageComponent),13239 ········loadComponent:·()·=>·import("./chunk-L3GF7I2Z.js").then(i·=>·i.ConfigPageComponent),
13240 ········data:·{13240 ········data:·{
13241 ············page:·"config"13241 ············page:·"config"
13242 ········},13242 ········},
13243 ········canActivate:·[ei]13243 ········canActivate:·[ei]
13244 ····},·{13244 ····},·{
13245 ········path:·"search",13245 ········path:·"search",
13246 ········loadComponent:·()·=>·import("./chunk-Q5BN5VPC.js").then(i·=>·i.SearchPageComponent),13246 ········loadComponent:·()·=>·import("./chunk-Q5BN5VPC.js").then(i·=>·i.SearchPageComponent),
Offset 13302, 22 lines modifiedOffset 13302, 22 lines modified
13302 ········loadComponent:·()·=>·import("./chunk-3H2FJG22.js").then(i·=>·i.QuickHistoryComponent),13302 ········loadComponent:·()·=>·import("./chunk-3H2FJG22.js").then(i·=>·i.QuickHistoryComponent),
13303 ········data:·{13303 ········data:·{
13304 ············page:·"quick-history"13304 ············page:·"quick-history"
13305 ········},13305 ········},
13306 ········canActivate:·[Ea,·ei]13306 ········canActivate:·[Ea,·ei]
13307 ····},·{13307 ····},·{
13308 ········path:·"tag/:id/daily-summary",13308 ········path:·"tag/:id/daily-summary",
13309 ········loadComponent:·()·=>·import("./chunk-KCXVAHDW.js").then(i·=>·i.DailySummaryComponent),13309 ········loadComponent:·()·=>·import("./chunk-RK7AP4LR.js").then(i·=>·i.DailySummaryComponent),
13310 ········data:·{13310 ········data:·{
13311 ············page:·"daily-summary"13311 ············page:·"daily-summary"
13312 ········},13312 ········},
13313 ········canActivate:·[Ea,·ei]13313 ········canActivate:·[Ea,·ei]
13314 ····},·{13314 ····},·{
13315 ········path:·"tag/:id/daily-summary/:dayStr",13315 ········path:·"tag/:id/daily-summary/:dayStr",
13316 ········loadComponent:·()·=>·import("./chunk-KCXVAHDW.js").then(i·=>·i.DailySummaryComponent),13316 ········loadComponent:·()·=>·import("./chunk-RK7AP4LR.js").then(i·=>·i.DailySummaryComponent),
13317 ········data:·{13317 ········data:·{
13318 ············page:·"daily-summary"13318 ············page:·"daily-summary"
13319 ········},13319 ········},
13320 ········canActivate:·[Ea,·ei]13320 ········canActivate:·[Ea,·ei]
13321 ····},·{13321 ····},·{
13322 ········path:·"tag/:id/metrics",13322 ········path:·"tag/:id/metrics",
13323 ········loadComponent:·()·=>·import("./chunk-UVYK2G5X.js").then(i·=>·i.MetricPageComponent),13323 ········loadComponent:·()·=>·import("./chunk-UVYK2G5X.js").then(i·=>·i.MetricPageComponent),
Offset 13358, 41 lines modifiedOffset 13358, 41 lines modified
13358 ········loadComponent:·()·=>·import("./chunk-UVYK2G5X.js").then(i·=>·i.MetricPageComponent),13358 ········loadComponent:·()·=>·import("./chunk-UVYK2G5X.js").then(i·=>·i.MetricPageComponent),
Max diff block lines reached; 2316/5607 bytes (41.31%) of diff not shown.
109 B
assets/public/chunk-TLVKTX5S.js.map vs.
assets/public/chunk-4RLJGC7Y.js.map
Files identical despite different names
871 B
assets/public/chunk-TLVKTX5S.js vs.
assets/public/chunk-4RLJGC7Y.js
Files 94% similar despite different names
768 B
js-beautify {}
    
Offset 1, 15 lines modifiedOffset 1, 15 lines modified
1 import·{1 import·{
2 ····f·as·V,2 ····f·as·V,
3 ····g·as·X3 ····g·as·X
4 }·from·"./chunk-H53RCMH4.js";4 }·from·"./chunk-WKAXUHLX.js";
5 import·{5 import·{
6 ····a·as·L,6 ····a·as·L,
7 ····b·as·$7 ····b·as·$
8 }·from·"./chunk-ESEBWQAA.js";8 }·from·"./chunk-VOQG7765.js";
9 import·{9 import·{
10 ····a·as·E,10 ····a·as·E,
11 ····b·as·q,11 ····b·as·q,
12 ····r·as·H,12 ····r·as·H,
13 ····w·as·A,13 ····w·as·A,
14 ····x·as·O14 ····x·as·O
15 }·from·"./chunk-TU2ETAFZ.js";15 }·from·"./chunk-TU2ETAFZ.js";
Offset 160, 8 lines modifiedOffset 160, 8 lines modified
160 ········let·t·=·new·SpeechSynthesisUtterance;160 ········let·t·=·new·SpeechSynthesisUtterance;
161 ········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)161 ········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)
162 ····}162 ····}
163 });163 });
164 export·{164 export·{
165 ····oe·as·a,·J·as·b,·re·as·c,·K·as·d,·Ie·as·e,·ee·as·f,·ve·as·g,·Z·as·h165 ····oe·as·a,·J·as·b,·re·as·c,·K·as·d,·Ie·as·e,·ee·as·f,·ve·as·g,·Z·as·h
166 };166 };
167 //#·sourceMappingURL=chunk-TLVKTX5S.js.map167 //#·sourceMappingURL=chunk-4RLJGC7Y.js.map
109 B
assets/public/chunk-OZT432CE.js.map vs.
assets/public/chunk-BN6Q5XR6.js.map
Files identical despite different names
827 B
assets/public/chunk-OZT432CE.js vs.
assets/public/chunk-BN6Q5XR6.js
Files 99% similar despite different names
724 B
js-beautify {}
    
Offset 1, 11 lines modifiedOffset 1, 11 lines modified
1 import·{1 import·{
2 ····f·as·ie,2 ····f·as·ie,
3 ····g·as·we3 ····g·as·we
4 }·from·"./chunk-H53RCMH4.js";4 }·from·"./chunk-WKAXUHLX.js";
5 import·{5 import·{
6 ····a·as·re,6 ····a·as·re,
7 ····b·as·oe,7 ····b·as·oe,
8 ····c·as·ae,8 ····c·as·ae,
9 ····f·as·le,9 ····f·as·le,
10 ····g·as·Oe10 ····g·as·Oe
11 }·from·"./chunk-FDVZKVGI.js";11 }·from·"./chunk-FDVZKVGI.js";
Offset 14, 15 lines modifiedOffset 14, 15 lines modified
14 ····l·as·ve,14 ····l·as·ve,
15 ····m·as·Z,15 ····m·as·Z,
16 ····n·as·ee,16 ····n·as·ee,
17 ····o·as·te,17 ····o·as·te,
18 ····p·as·Ie,18 ····p·as·Ie,
19 ····q·as·ne,19 ····q·as·ne,
20 ····r·as·Me20 ····r·as·Me
21 }·from·"./chunk-FPT5Z6JU.js";21 }·from·"./chunk-JFDPASXB.js";
22 import·{22 import·{
23 ····a·as·Y,23 ····a·as·Y,
24 ····c·as·xe24 ····c·as·xe
25 }·from·"./chunk-6XQACCEC.js";25 }·from·"./chunk-6XQACCEC.js";
26 import·{26 import·{
27 ····c·as·W,27 ····c·as·W,
28 ····d·as·N,28 ····d·as·N,
Offset 321, 8 lines modifiedOffset 321, 8 lines modified
321 ········}321 ········}
322 ········return·t322 ········return·t
323 ····})()323 ····})()
324 });324 });
325 export·{325 export·{
326 ····rt·as·a,·De·as·b326 ····rt·as·a,·De·as·b
327 };327 };
328 //#·sourceMappingURL=chunk-OZT432CE.js.map328 //#·sourceMappingURL=chunk-BN6Q5XR6.js.map
109 B
assets/public/chunk-KCXVAHDW.js.map vs.
assets/public/chunk-RK7AP4LR.js.map
Files identical despite different names
951 B
assets/public/chunk-KCXVAHDW.js vs.
assets/public/chunk-RK7AP4LR.js
Files 99% similar despite different names
848 B
js-beautify {}
    
Offset 40, 15 lines modifiedOffset 40, 15 lines modified
40 ····p·as·xo,40 ····p·as·xo,
41 ····q·as·nn,41 ····q·as·nn,
42 ····r·as·ko,42 ····r·as·ko,
43 ····u·as·Cn,43 ····u·as·Cn,
44 ····v·as·Fo,44 ····v·as·Fo,
45 ····y·as·yn,45 ····y·as·yn,
46 ····z·as·$o46 ····z·as·$o
47 }·from·"./chunk-3UN2ZJEW.js";47 }·from·"./chunk-BMOQZ47J.js";
48 import·{48 import·{
49 ····a·as·$i,49 ····a·as·$i,
50 ····b·as·uo50 ····b·as·uo
51 }·from·"./chunk-GR6WLWW6.js";51 }·from·"./chunk-GR6WLWW6.js";
52 import·{52 import·{
53 ····b·as·di,53 ····b·as·di,
54 ····c·as·_i,54 ····c·as·_i,
Offset 106, 15 lines modifiedOffset 106, 15 lines modified
106 import·{106 import·{
107 ····U·as·Yi,107 ····U·as·Yi,
108 ····V·as·To,108 ····V·as·To,
109 ····r·as·Vi,109 ····r·as·Vi,
110 ····s·as·ho,110 ····s·as·ho,
111 ····t·as·Wi,111 ····t·as·Wi,
112 ····u·as·So112 ····u·as·So
113 }·from·"./chunk-ESEBWQAA.js";113 }·from·"./chunk-VOQG7765.js";
114 import·"./chunk-USV4YXDW.js";114 import·"./chunk-USV4YXDW.js";
115 import·"./chunk-G3HJ2GL3.js";115 import·"./chunk-G3HJ2GL3.js";
116 import·"./chunk-GTBEH26W.js";116 import·"./chunk-GTBEH26W.js";
117 import·{117 import·{
118 ····e·as·Pi,118 ····e·as·Pi,
119 ····f·as·co119 ····f·as·co
120 }·from·"./chunk-TF4ZGOZ4.js";120 }·from·"./chunk-TF4ZGOZ4.js";
Offset 2259, 8 lines modifiedOffset 2259, 8 lines modified
2259 ········return·e2259 ········return·e
2260 ····})()2260 ····})()
2261 });2261 });
2262 nr();2262 nr();
2263 export·{2263 export·{
2264 ····Xl·as·DailySummaryComponent2264 ····Xl·as·DailySummaryComponent
2265 };2265 };
2266 //#·sourceMappingURL=chunk-KCXVAHDW.js.map2266 //#·sourceMappingURL=chunk-RK7AP4LR.js.map
970 B
assets/public/chunk-K7NMWD4N.js vs.
assets/public/chunk-NVQIQL7A.js
Files 94% similar despite different names
867 B
js-beautify {}
    
Offset 1, 12 lines modifiedOffset 1, 15 lines modified
1 import·{1 import·{
2 ····s·as·a, 
3 ····t·as·b2 ····a,
 3 ····b
4 }·from·"./chunk-FPT5Z6JU.js";4 }·from·"./chunk-BN6Q5XR6.js";
5 import·"./chunk-ESEBWQAA.js";5 import·"./chunk-WKAXUHLX.js";
 6 import·"./chunk-FDVZKVGI.js";
 7 import·"./chunk-JFDPASXB.js";
 8 import·"./chunk-VOQG7765.js";
6 import·"./chunk-PNLDAEIU.js";9 import·"./chunk-PNLDAEIU.js";
7 import·"./chunk-USV4YXDW.js";10 import·"./chunk-USV4YXDW.js";
8 import·"./chunk-G3HJ2GL3.js";11 import·"./chunk-G3HJ2GL3.js";
9 import·"./chunk-GTBEH26W.js";12 import·"./chunk-GTBEH26W.js";
10 import·"./chunk-TF4ZGOZ4.js";13 import·"./chunk-TF4ZGOZ4.js";
11 import·"./chunk-OCWFHHQL.js";14 import·"./chunk-OCWFHHQL.js";
12 import·"./chunk-WG4QBSGF.js";15 import·"./chunk-WG4QBSGF.js";
Offset 37, 10 lines modifiedOffset 40, 10 lines modified
37 import·"./chunk-3YGNIIAP.js";40 import·"./chunk-3YGNIIAP.js";
38 import·"./chunk-MKQ5S2AR.js";41 import·"./chunk-MKQ5S2AR.js";
39 import·"./chunk-OXDOKNTF.js";42 import·"./chunk-OXDOKNTF.js";
40 import·"./chunk-PEJGMLLQ.js";43 import·"./chunk-PEJGMLLQ.js";
41 import·"./chunk-2NYJ54WT.js";44 import·"./chunk-2NYJ54WT.js";
42 b();45 b();
43 export·{46 export·{
44 ····a·as·PluginRunner47 ····a·as·PluginIndexComponent
45 };48 };
46 //#·sourceMappingURL=chunk-K7NMWD4N.js.map49 //#·sourceMappingURL=chunk-NVQIQL7A.js.map
109 B
assets/public/chunk-H53RCMH4.js.map vs.
assets/public/chunk-WKAXUHLX.js.map
Files identical despite different names
762 B
assets/public/chunk-H53RCMH4.js vs.
assets/public/chunk-WKAXUHLX.js
Files 99% similar despite different names
659 B
js-beautify {}
    
Offset 5, 21 lines modifiedOffset 5, 21 lines modified
5 ····f·as·Qe,5 ····f·as·Qe,
6 ····i·as·Ne,6 ····i·as·Ne,
7 ····j·as·et,7 ····j·as·et,
8 ····q·as·Ae,8 ····q·as·Ae,
9 ····r·as·tt,9 ····r·as·tt,
10 ····s·as·$e,10 ····s·as·$e,
11 ····t·as·it11 ····t·as·it
12 }·from·"./chunk-FPT5Z6JU.js";12 }·from·"./chunk-JFDPASXB.js";
13 import·{13 import·{
14 ····K·as·Ce,14 ····K·as·Ce,
15 ····L·as·Je,15 ····L·as·Je,
16 ····j·as·Ie,16 ····j·as·Ie,
17 ····k·as·Xe17 ····k·as·Xe
18 }·from·"./chunk-ESEBWQAA.js";18 }·from·"./chunk-VOQG7765.js";
19 import·{19 import·{
20 ····e·as·fe,20 ····e·as·fe,
21 ····f·as·me,21 ····f·as·me,
22 ····g·as·Pe,22 ····g·as·Pe,
23 ····i·as·_e,23 ····i·as·_e,
24 ····j·as·Se,24 ····j·as·Se,
25 ····k·as·Ee,25 ····k·as·Ee,
Offset 1118, 8 lines modifiedOffset 1118, 8 lines modified
1118 ········}1118 ········}
1119 ········return·d1119 ········return·d
1120 ····})()1120 ····})()
1121 });1121 });
1122 export·{1122 export·{
1123 ····Te·as·a,·Le·as·b,·Z·as·c,·Y·as·d,·Oe·as·e,·oi·as·f,·nt·as·g1123 ····Te·as·a,·Le·as·b,·Z·as·c,·Y·as·d,·Oe·as·e,·oi·as·f,·nt·as·g
1124 };1124 };
1125 //#·sourceMappingURL=chunk-H53RCMH4.js.map1125 //#·sourceMappingURL=chunk-WKAXUHLX.js.map
109 B
assets/public/chunk-FPT5Z6JU.js.map vs.
assets/public/chunk-JFDPASXB.js.map
Files identical despite different names
1.38 KB
assets/public/chunk-FPT5Z6JU.js vs.
assets/public/chunk-JFDPASXB.js
Files 99% similar despite different names
1.28 KB
js-beautify {}
    
Offset 1, 11 lines modifiedOffset 1, 11 lines modified
1 import·{1 import·{
2 ····U·as·Ar,2 ····U·as·Ar,
3 ····V·as·ct3 ····V·as·ct
4 }·from·"./chunk-ESEBWQAA.js";4 }·from·"./chunk-VOQG7765.js";
5 import·{5 import·{
6 ····c·as·gr,6 ····c·as·gr,
7 ····d·as·fr,7 ····d·as·fr,
8 ····g·as·mr,8 ····g·as·mr,
9 ····h·as·hr,9 ····h·as·hr,
10 ····i·as·Tr,10 ····i·as·Tr,
11 ····j·as·ut,11 ····j·as·ut,
Offset 2845, 15 lines modifiedOffset 2845, 15 lines modified
2845 ····················}2845 ····················}
2846 ················})2846 ················})
2847 ············}2847 ············}
2848 ············sendMessageToPlugin(t,·o)·{2848 ············sendMessageToPlugin(t,·o)·{
2849 ················return·S(this,·null,·function*()·{2849 ················return·S(this,·null,·function*()·{
2850 ····················let·{2850 ····················let·{
2851 ························PluginRunner:·l2851 ························PluginRunner:·l
2852 ····················}·=·yield·import("./chunk-K7NMWD4N.js");2852 ····················}·=·yield·import("./chunk-PP3XGOFY.js");
2853 ····················return·this._injector.get(l).sendMessageToPlugin(t,·o)2853 ····················return·this._injector.get(l).sendMessageToPlugin(t,·o)
2854 ················})2854 ················})
2855 ············}2855 ············}
2856 ············_initWindowFocusTracking()·{2856 ············_initWindowFocusTracking()·{
2857 ················window.addEventListener("focus",·()·=>·{2857 ················window.addEventListener("focus",·()·=>·{
2858 ····················this._isWindowFocused·=·!0,·this._notifyFocusHandlers(!0)2858 ····················this._isWindowFocused·=·!0,·this._notifyFocusHandlers(!0)
2859 ················}),·window.addEventListener("blur",·()·=>·{2859 ················}),·window.addEventListener("blur",·()·=>·{
Offset 3500, 8 lines modifiedOffset 3500, 8 lines modified
3500 ········}3500 ········}
3501 ········return·y3501 ········return·y
3502 ····})()3502 ····})()
3503 });3503 });
3504 export·{3504 export·{
3505 ····de·as·a,·oe·as·b,·Pr·as·c,·wr·as·d,·Z·as·e,·ue·as·f,·Cr·as·g,·br·as·h,·ee·as·i,·_e·as·j,·Or·as·k,·Ur·as·l,·Ja·as·m,·Va·as·n,·Ya·as·o,·xr·as·p,·Nr·as·q,·jr·as·r,·ls·as·s,·kt·as·t3505 ····de·as·a,·oe·as·b,·Pr·as·c,·wr·as·d,·Z·as·e,·ue·as·f,·Cr·as·g,·br·as·h,·ee·as·i,·_e·as·j,·Or·as·k,·Ur·as·l,·Ja·as·m,·Va·as·n,·Ya·as·o,·xr·as·p,·Nr·as·q,·jr·as·r,·ls·as·s,·kt·as·t
3506 };3506 };
3507 //#·sourceMappingURL=chunk-FPT5Z6JU.js.map3507 //#·sourceMappingURL=chunk-JFDPASXB.js.map
43.3 KB
assets/public/chunk-ESEBWQAA.js.map vs.
assets/public/chunk-VOQG7765.js.map
Files 99% similar despite different names
43.2 KB
Pretty-printed
Similarity: 0.9982638888888888% Differences: {"'sourcesContent'": "{insert: [(63, '// This file is auto-generated by tools/load-env.js\\n// Do " 'not modify directly - edit .env file instead\\n// Generated at: ' '2025-10-27T23:42:45.520Z\\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 4701, 15 lines modifiedOffset 4701, 15 lines modified
4701 ········"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",4701 ········"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",
4702 ········"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",4702 ········"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",
4703 ········"<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",4703 ········"<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",
4704 ········"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",4704 ········"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",
4705 ········"<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",4705 ········"<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",
4706 ········"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",4706 ········"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",
4707 ········"@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",4707 ········"@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",
4708 ········"//·This·file·is·auto-generated·by·tools/load-env.js\n//·Do·not·modify·directly·-·edit·.env·file·instead\n//·Generated·at:·2025-10-26T02:13:58.541Z\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",4708 ········"//·This·file·is·auto-generated·by·tools/load-env.js\n//·Do·not·modify·directly·-·edit·.env·file·instead\n//·Generated·at:·2025-10-27T23:42:45.520Z\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",
4709 ········"/**\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",4709 ········"/**\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",
4710 ········"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",4710 ········"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",
4711 ········"export·const·IS_MAC·=·navigator.platform.toUpperCase().indexOf('MAC')·>=·0;\n",4711 ········"export·const·IS_MAC·=·navigator.platform.toUpperCase().indexOf('MAC')·>=·0;\n",
4712 ········"import·*·as·i0·from·'@angular/core';\nimport·{·InjectionToken,·Injectable,·EventEmitter,·Directive,·Optional,·Inject,·Input,·Output·}·from·'@angular/core';\nimport·{·registerables,·Chart,·defaults·}·from·'chart.js';\nimport·{·merge·}·from·'lodash-es';\nimport·{·BehaviorSubject·}·from·'rxjs';\nimport·{·distinctUntilChanged·}·from·'rxjs/operators';\nconst·NG_CHARTS_CONFIGURATION·=·new·InjectionToken('Configuration·for·ngCharts');\n/**\n·*·Provide·all·the·default·registerable·as·defined·by·Chart.js\n·*/\nfunction·withDefaultRegisterables(...registerables$1)·{\n··return·{\n····registerables:·[...registerables,·...registerables$1]\n··};\n}\n/**\n·*·Provide·configuration·for·ngCharts.·In·most·cases,·you·have·to·pass·it·some·registerables.·So·either\n·*·`withDefaultRegisterables()`,·or·a·custom·list·of·registerables·tailored·to·your·needs·to·reduce·bundle·size.\n·*/\nfunction·provideCharts(...configurations)·{\n··const·config·=·merge({},·...configurations);\n··return·{\n····provide:·NG_CHARTS_CONFIGURATION,\n····useValue:·config\n··};\n}\nlet·ThemeService·=·/*#__PURE__*/(()·=>·{\n··class·ThemeService·{\n····constructor()·{\n······this.colorschemesOptions·=·new·BehaviorSubject(undefined);\n····}\n····setColorschemesOptions(options)·{\n······this.pColorschemesOptions·=·options;\n······this.colorschemesOptions.next(options);\n····}\n····getColorschemesOptions()·{\n······return·this.pColorschemesOptions;\n····}\n····static·{\n······this.\u0275fac·=·function·ThemeService_Factory(__ngFactoryType__)·{\n········return·new·(__ngFactoryType__·||·ThemeService)();\n······};\n····}\n····static·{\n······this.\u0275prov·=·/*·@__PURE__·*/i0.\u0275\u0275defineInjectable({\n········token:·ThemeService,\n········factory:·ThemeService.\u0275fac,\n········providedIn:·'root'\n······});\n····}\n··}\n··return·ThemeService;\n})();\n(()·=>·{\n··(typeof·ngDevMode·===·\"undefined\"·||·ngDevMode)·&&·void·0;\n})();\nlet·BaseChartDirective·=·/*#__PURE__*/(()·=>·{\n··class·BaseChartDirective·{\n····constructor(element,·zone,·themeService,·config)·{\n······this.zone·=·zone;\n······this.themeService·=·themeService;\n······this.type·=·'bar';\n······this.plugins·=·[];\n······this.chartClick·=·new·EventEmitter();\n······this.chartHover·=·new·EventEmitter();\n······this.subs·=·[];\n······this.themeOverrides·=·{};\n······if·(config?.registerables)·{\n········Chart.register(...config.registerables);\n······}\n······if·(config?.defaults)·{\n········defaults.set(config.defaults);\n······}\n······this.ctx·=·element.nativeElement.getContext('2d');\n······this.subs.push(this.themeService.colorschemesOptions.pipe(distinctUntilChanged()).subscribe(r·=>·this.themeChanged(r)));\n····}\n····ngOnChanges(changes)·{\n······const·requireRender·=·['type'];\n······const·propertyNames·=·Object.getOwnPropertyNames(changes);\n······if·(propertyNames.some(key·=>·requireRender.includes(key))·||·propertyNames.every(key·=>·changes[key].isFirstChange()))·{\n········this.render();\n······}·else·{\n········const·config·=·this.getChartConfiguration();\n········//·Using·assign·to·avoid·changing·the·original·object·reference\n········if·(this.chart)·{\n··········Object.assign(this.chart.config.data,·config.data);\n··········if·(this.chart.config.plugins)·{\n············Object.assign(this.chart.config.plugins,·config.plugins);\n··········}\n··········if·(this.chart.config.options)·{\n············Object.assign(this.chart.config.options,·config.options);\n··········}\n········}\n········this.update();\n······}\n····}\n····ngOnDestroy()·{\n······if·(this.chart)·{\n········this.chart.destroy();\n········this.chart·=·void·0;\n······}\n······this.subs.forEach(s·=>·s.unsubscribe());\n····}\n····render()·{\n······if·(this.chart)·{\n········this.chart.destroy();\n······}\n······return·this.zone.runOutsideAngular(()·=>·this.chart·=·new·Chart(this.ctx,·this.getChartConfiguration()));\n····}\n····update(mode)·{\n······if·(this.chart)·{\n········this.zone.runOutsideAngular(()·=>·this.chart?.update(mode));\n······}\n····}\n····hideDataset(index,·hidden)·{\n······if·(this.chart)·{\n········this.chart.getDatasetMeta(index).hidden·=·hidden;\n········this.update();\n······}\n····}\n····isDatasetHidden(index)·{\n······return·this.chart?.getDatasetMeta(index)?.hidden;\n····}\n····toBase64Image()·{\n······return·this.chart?.toBase64Image();\n····}\n····themeChanged(options)·{\n······this.themeOverrides·=·options;\n······if·(this.chart)·{\n········if·(this.chart.config.options)·{\n··········Object.assign(this.chart.config.options,·this.getChartOptions());\n········}\n········this.update();\n······}\n····}\n····getChartOptions()·{\n······return·merge({\n········onHover:·(event,·active)·=>·{\n··········if·(!this.chartHover.observed·&&·!this.chartHover.observers?.length)·{\n············return;\n··········}\n··········this.zone.run(()·=>·this.chartHover.emit({\n············event,\n············active\n··········}));\n········},\n········onClick:·(event,·active)·=>·{\n··········if·(!this.chartClick.observed·&&·!this.chartClick.observers?.length)·{\n············return;\n··········}\n··········this.zone.run(()·=>·this.chartClick.emit({\n············event,\n············active\n··········}));\n········}\n······},·this.themeOverrides,·this.options,·{\n········plugins:·{\n··········legend:·{\n············display:·this.legend\n··········}\n········}\n······});\n····}\n····getChartConfiguration()·{\n······return·{\n········type:·this.type,\n········data:·this.getChartData(),\n········options:·this.getChartOptions(),\n········plugins:·this.plugins\n······};\n····}\n····getChartData()·{\n······return·this.data·?·this.data·:·{\n········labels:·this.labels·||·[],\n········datasets:·this.datasets·||·[]\n······};\n····}\n····static·{\n······this.\u0275fac·=·function·BaseChartDirective_Factory(__ngFactoryType__)·{\n········return·new·(__ngFactoryType__·||·BaseChartDirective)(i0.\u0275\u0275directiveInject(i0.ElementRef),·i0.\u0275\u0275directiveInject(i0.NgZone),·i0.\u0275\u0275directiveInject(ThemeService),·i0.\u0275\u0275directiveInject(NG_CHARTS_CONFIGURATION,·8));\n······};\n····}\n····static·{\n······this.\u0275dir·=·/*·@__PURE__·*/i0.\u0275\u0275defineDirective({\n········type:·BaseChartDirective,\n········selectors:·[[\"canvas\",·\"baseChart\",·\"\"]],\n········inputs:·{\n··········type:·\"type\",\n··········legend:·\"legend\",\n··········data:·\"data\",\n··········options:·\"options\",\n··········plugins:·\"plugins\",\n··········labels:·\"labels\",\n··········datasets:·\"datasets\"\n········},\n········outputs:·{\n··········chartClick:·\"chartClick\",\n··········chartHover:·\"chartHover\"\n········},\n········exportAs:·[\"base-chart\"],\n········features:·[i0.\u0275\u0275NgOnChangesFeature]\n······});\n····}\n··}\n··return·BaseChartDirective;\n})();\n(()·=>·{\n··(typeof·ngDevMode·===·\"undefined\"·||·ngDevMode)·&&·void·0;\n})();\n\n/*\n·*·Public·API·Surface·of·ng2-charts\n·*/\n\n/**\n·*·Generated·bundle·index.·Do·not·edit.\n·*/\n\nexport·{·BaseChartDirective,·NG_CHARTS_CONFIGURATION,·ThemeService,·provideCharts,·withDefaultRegisterables·};\n",4712 ········"import·*·as·i0·from·'@angular/core';\nimport·{·InjectionToken,·Injectable,·EventEmitter,·Directive,·Optional,·Inject,·Input,·Output·}·from·'@angular/core';\nimport·{·registerables,·Chart,·defaults·}·from·'chart.js';\nimport·{·merge·}·from·'lodash-es';\nimport·{·BehaviorSubject·}·from·'rxjs';\nimport·{·distinctUntilChanged·}·from·'rxjs/operators';\nconst·NG_CHARTS_CONFIGURATION·=·new·InjectionToken('Configuration·for·ngCharts');\n/**\n·*·Provide·all·the·default·registerable·as·defined·by·Chart.js\n·*/\nfunction·withDefaultRegisterables(...registerables$1)·{\n··return·{\n····registerables:·[...registerables,·...registerables$1]\n··};\n}\n/**\n·*·Provide·configuration·for·ngCharts.·In·most·cases,·you·have·to·pass·it·some·registerables.·So·either\n·*·`withDefaultRegisterables()`,·or·a·custom·list·of·registerables·tailored·to·your·needs·to·reduce·bundle·size.\n·*/\nfunction·provideCharts(...configurations)·{\n··const·config·=·merge({},·...configurations);\n··return·{\n····provide:·NG_CHARTS_CONFIGURATION,\n····useValue:·config\n··};\n}\nlet·ThemeService·=·/*#__PURE__*/(()·=>·{\n··class·ThemeService·{\n····constructor()·{\n······this.colorschemesOptions·=·new·BehaviorSubject(undefined);\n····}\n····setColorschemesOptions(options)·{\n······this.pColorschemesOptions·=·options;\n······this.colorschemesOptions.next(options);\n····}\n····getColorschemesOptions()·{\n······return·this.pColorschemesOptions;\n····}\n····static·{\n······this.\u0275fac·=·function·ThemeService_Factory(__ngFactoryType__)·{\n········return·new·(__ngFactoryType__·||·ThemeService)();\n······};\n····}\n····static·{\n······this.\u0275prov·=·/*·@__PURE__·*/i0.\u0275\u0275defineInjectable({\n········token:·ThemeService,\n········factory:·ThemeService.\u0275fac,\n········providedIn:·'root'\n······});\n····}\n··}\n··return·ThemeService;\n})();\n(()·=>·{\n··(typeof·ngDevMode·===·\"undefined\"·||·ngDevMode)·&&·void·0;\n})();\nlet·BaseChartDirective·=·/*#__PURE__*/(()·=>·{\n··class·BaseChartDirective·{\n····constructor(element,·zone,·themeService,·config)·{\n······this.zone·=·zone;\n······this.themeService·=·themeService;\n······this.type·=·'bar';\n······this.plugins·=·[];\n······this.chartClick·=·new·EventEmitter();\n······this.chartHover·=·new·EventEmitter();\n······this.subs·=·[];\n······this.themeOverrides·=·{};\n······if·(config?.registerables)·{\n········Chart.register(...config.registerables);\n······}\n······if·(config?.defaults)·{\n········defaults.set(config.defaults);\n······}\n······this.ctx·=·element.nativeElement.getContext('2d');\n······this.subs.push(this.themeService.colorschemesOptions.pipe(distinctUntilChanged()).subscribe(r·=>·this.themeChanged(r)));\n····}\n····ngOnChanges(changes)·{\n······const·requireRender·=·['type'];\n······const·propertyNames·=·Object.getOwnPropertyNames(changes);\n······if·(propertyNames.some(key·=>·requireRender.includes(key))·||·propertyNames.every(key·=>·changes[key].isFirstChange()))·{\n········this.render();\n······}·else·{\n········const·config·=·this.getChartConfiguration();\n········//·Using·assign·to·avoid·changing·the·original·object·reference\n········if·(this.chart)·{\n··········Object.assign(this.chart.config.data,·config.data);\n··········if·(this.chart.config.plugins)·{\n············Object.assign(this.chart.config.plugins,·config.plugins);\n··········}\n··········if·(this.chart.config.options)·{\n············Object.assign(this.chart.config.options,·config.options);\n··········}\n········}\n········this.update();\n······}\n····}\n····ngOnDestroy()·{\n······if·(this.chart)·{\n········this.chart.destroy();\n········this.chart·=·void·0;\n······}\n······this.subs.forEach(s·=>·s.unsubscribe());\n····}\n····render()·{\n······if·(this.chart)·{\n········this.chart.destroy();\n······}\n······return·this.zone.runOutsideAngular(()·=>·this.chart·=·new·Chart(this.ctx,·this.getChartConfiguration()));\n····}\n····update(mode)·{\n······if·(this.chart)·{\n········this.zone.runOutsideAngular(()·=>·this.chart?.update(mode));\n······}\n····}\n····hideDataset(index,·hidden)·{\n······if·(this.chart)·{\n········this.chart.getDatasetMeta(index).hidden·=·hidden;\n········this.update();\n······}\n····}\n····isDatasetHidden(index)·{\n······return·this.chart?.getDatasetMeta(index)?.hidden;\n····}\n····toBase64Image()·{\n······return·this.chart?.toBase64Image();\n····}\n····themeChanged(options)·{\n······this.themeOverrides·=·options;\n······if·(this.chart)·{\n········if·(this.chart.config.options)·{\n··········Object.assign(this.chart.config.options,·this.getChartOptions());\n········}\n········this.update();\n······}\n····}\n····getChartOptions()·{\n······return·merge({\n········onHover:·(event,·active)·=>·{\n··········if·(!this.chartHover.observed·&&·!this.chartHover.observers?.length)·{\n············return;\n··········}\n··········this.zone.run(()·=>·this.chartHover.emit({\n············event,\n············active\n··········}));\n········},\n········onClick:·(event,·active)·=>·{\n··········if·(!this.chartClick.observed·&&·!this.chartClick.observers?.length)·{\n············return;\n··········}\n··········this.zone.run(()·=>·this.chartClick.emit({\n············event,\n············active\n··········}));\n········}\n······},·this.themeOverrides,·this.options,·{\n········plugins:·{\n··········legend:·{\n············display:·this.legend\n··········}\n········}\n······});\n····}\n····getChartConfiguration()·{\n······return·{\n········type:·this.type,\n········data:·this.getChartData(),\n········options:·this.getChartOptions(),\n········plugins:·this.plugins\n······};\n····}\n····getChartData()·{\n······return·this.data·?·this.data·:·{\n········labels:·this.labels·||·[],\n········datasets:·this.datasets·||·[]\n······};\n····}\n····static·{\n······this.\u0275fac·=·function·BaseChartDirective_Factory(__ngFactoryType__)·{\n········return·new·(__ngFactoryType__·||·BaseChartDirective)(i0.\u0275\u0275directiveInject(i0.ElementRef),·i0.\u0275\u0275directiveInject(i0.NgZone),·i0.\u0275\u0275directiveInject(ThemeService),·i0.\u0275\u0275directiveInject(NG_CHARTS_CONFIGURATION,·8));\n······};\n····}\n····static·{\n······this.\u0275dir·=·/*·@__PURE__·*/i0.\u0275\u0275defineDirective({\n········type:·BaseChartDirective,\n········selectors:·[[\"canvas\",·\"baseChart\",·\"\"]],\n········inputs:·{\n··········type:·\"type\",\n··········legend:·\"legend\",\n··········data:·\"data\",\n··········options:·\"options\",\n··········plugins:·\"plugins\",\n··········labels:·\"labels\",\n··········datasets:·\"datasets\"\n········},\n········outputs:·{\n··········chartClick:·\"chartClick\",\n··········chartHover:·\"chartHover\"\n········},\n········exportAs:·[\"base-chart\"],\n········features:·[i0.\u0275\u0275NgOnChangesFeature]\n······});\n····}\n··}\n··return·BaseChartDirective;\n})();\n(()·=>·{\n··(typeof·ngDevMode·===·\"undefined\"·||·ngDevMode)·&&·void·0;\n})();\n\n/*\n·*·Public·API·Surface·of·ng2-charts\n·*/\n\n/**\n·*·Generated·bundle·index.·Do·not·edit.\n·*/\n\nexport·{·BaseChartDirective,·NG_CHARTS_CONFIGURATION,·ThemeService,·provideCharts,·withDefaultRegisterables·};\n",
4713 ········"export·const·IS_FIREFOX·=·navigator.userAgent.toLowerCase().indexOf('firefox')·>·-1;\n",4713 ········"export·const·IS_FIREFOX·=·navigator.userAgent.toLowerCase().indexOf('firefox')·>·-1;\n",
4714 ········"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",4714 ········"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",
4715 ········"import·{·effect,·inject,·Injectable,·signal·}·from·'@angular/core';\nimport·{·toObservable,·toSignal·}·from·'@angular/core/rxjs-interop';\nimport·{·BodyClass,·IS_ELECTRON·}·from·'../../app.constants';\nimport·{·IS_MAC·}·from·'../../util/is-mac';\nimport·{·distinctUntilChanged,·map,·startWith,·switchMap,·take·}·from·'rxjs/operators';\nimport·{·IS_TOUCH_ONLY·}·from·'../../util/is-touch-only';\nimport·{·MaterialCssVarsService·}·from·'angular-material-css-vars';\nimport·{·DOCUMENT·}·from·'@angular/common';\nimport·{·MatIconRegistry·}·from·'@angular/material/icon';\nimport·{·DomSanitizer·}·from·'@angular/platform-browser';\nimport·{·ChromeExtensionInterfaceService·}·from·'../chrome-extension-interface/chrome-extension-interface.service';\nimport·{·ThemeService·as·NgChartThemeService·}·from·'ng2-charts';\nimport·{·GlobalConfigService·}·from·'../../features/config/global-config.service';\nimport·{·WorkContextThemeCfg·}·from·'../../features/work-context/work-context.model';\nimport·{·WorkContextService·}·from·'../../features/work-context/work-context.service';\nimport·{·combineLatest,·fromEvent,·Observable,·of·}·from·'rxjs';\nimport·{·IS_FIREFOX·}·from·'../../util/is-firefox';\nimport·{·ImexViewService·}·from·'../../imex/imex-meta/imex-view.service';\nimport·{·IS_MOUSE_PRIMARY,·IS_TOUCH_PRIMARY·}·from·'../../util/is-mouse-primary';\nimport·{·ChartConfiguration·}·from·'chart.js';\nimport·{·IS_ANDROID_WEB_VIEW·}·from·'../../util/is-android-web-view';\nimport·{·androidInterface·}·from·'../../features/android/android-interface';\nimport·{·HttpClient·}·from·'@angular/common/http';\nimport·{·LS·}·from·'../persistence/storage-keys.const';\nimport·{·CustomThemeService·}·from·'./custom-theme.service';\nimport·{·Log·}·from·'../log';\nimport·{·LayoutService·}·from·'../../core-ui/layout/layout.service';\n\nexport·type·DarkModeCfg·=·'dark'·|·'light'·|·'system';\n\n@Injectable({·providedIn:·'root'·})\nexport·class·GlobalThemeService·{\n··private·document·=·inject<Document>(DOCUMENT);\n··private·_layoutService·=·inject(LayoutService);\n··private·_materialCssVarsService·=·inject(MaterialCssVarsService);\n··private·_workContextService·=·inject(WorkContextService);\n··private·_globalConfigService·=·inject(GlobalConfigService);\n··private·_matIconRegistry·=·inject(MatIconRegistry);\n··private·_domSanitizer·=·inject(DomSanitizer);\n··private·_chartThemeService·=·inject(NgChartThemeService);\n··private·_chromeExtensionInterfaceService·=·inject(ChromeExtensionInterfaceService);\n··private·_imexMetaService·=·inject(ImexViewService);\n··private·_http·=·inject(HttpClient);\n··private·_customThemeService·=·inject(CustomThemeService);\n\n··darkMode·=·signal<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····//·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··private·_setDarkTheme(isDarkTheme:·boolean):·void·{\n····this._materialCssVarsService.setDarkTheme(isDarkTheme);\n····this._setChartTheme(isDarkTheme);\n····//·this._materialCssVarsService.setDarkTheme(true);\n····//·this._materialCssVarsService.setDarkTheme(false);\n··}\n\n··private·_setColorTheme(theme:·WorkContextThemeCfg):·void·{\n····this._materialCssVarsService.setAutoContrastEnabled(!!theme.isAutoContrast);\n····this._setBackgroundTint(!!theme.isDisableBackgroundTint);\n\n····//·NOTE:·setting·undefined·values·does·not·seem·to·be·a·problem·so·we·use·!\n····if·(!theme.isAutoContrast)·{\n······this._materialCssVarsService.setContrastColorThresholdPrimary(theme.huePrimary!);\n······this._materialCssVarsService.setContrastColorThresholdAccent(theme.hueAccent!);\n······this._materialCssVarsService.setContrastColorThresholdWarn(theme.hueWarn!);\n····}\n\n····this._materialCssVarsService.setPrimaryColor(theme.primary!);\n····this._materialCssVarsService.setAccentColor(theme.accent!);\n····this._materialCssVarsService.setWarnColor(theme.warn!);\n··}\n\n··private·_setBackgroundTint(isDisableBackgroundTint:·boolean):·void·{\n····//·Simplify:·toggle·only·the·disable·flag;·CSS·handles·the·rest\n····this.document.body.classList.toggle(\n······BodyClass.isDisableBackgroundTint,\n······!!isDisableBackgroundTint,\n····);\n··}\n\n··private·_initIcons():·void·{\n····const·icons:·[string,·string][]·=·[\n······['sp',·'assets/icons/sp.svg'],\n······['play',·'assets/icons/play.svg'],\n······['github',·'assets/icons/github.svg'],\n······['gitlab',·'assets/icons/gitlab.svg'],\n······['jira',·'assets/icons/jira.svg'],\n······['caldav',·'assets/icons/caldav.svg'],\n······['open_project',·'assets/icons/open-project.svg'],\n······['drag_handle',·'assets/icons/drag-handle.svg'],\n······['remove_today',·'assets/icons/remove-today-48px.svg'],\n······['estimate_remaining',·'assets/icons/estimate-remaining.svg'],\n······['working_today',·'assets/icons/working-today.svg'],\n······['repeat',·'assets/icons/repeat.svg'],\n······['gitea',·'assets/icons/gitea.svg'],\n······['redmine',·'assets/icons/redmine.svg'],\n······['calendar',·'assets/icons/calendar.svg'],\n······['early_on',·'assets/icons/early-on.svg'],\n······['tomorrow',·'assets/icons/tomorrow.svg'],\n······['next_week',·'assets/icons/next-week.svg'],\n······['keep',·'assets/icons/keep.svg'],\n······['keep_filled',·'assets/icons/keep-filled.svg'],\n····];\n\n····//·todo·test·if·can·be·removed·with·airplane·mode·and·wifi·without·internet\n····icons.forEach(([name,·path])·=>·{\n······this._matIconRegistry.addSvgIcon(\n········name,\n········this._domSanitizer.bypassSecurityTrustResourceUrl(path),\n······);\n····});\n\n····this.preloadIcons(icons);\n··}\n\n··preloadIcons(icons:·[string,·string][]):·Promise<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··private·_initThemeWatchers():·void·{\n····//·init·theme·watchers\n····this._workContextService.currentTheme$.subscribe((theme:·WorkContextThemeCfg)·=>\n······this._setColorTheme(theme),\n····);\n····this._isDarkThemeObs$.subscribe((isDarkTheme)·=>·this._setDarkTheme(isDarkTheme));\n··}\n\n··private·_initHandlersForInitialBodyClasses():·void·{\n····this.document.body.classList.add(BodyClass.isNoAdvancedFeatures);\n\n····if·(!IS_FIREFOX)·{\n······this.document.body.classList.add(BodyClass.isNoFirefox);\n····}\n\n····if·(IS_MAC)·{\n······this.document.body.classList.add(BodyClass.isMac);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isNoMac);\n····}\n\n····if·(IS_ELECTRON)·{\n······this.document.body.classList.add(BodyClass.isElectron);\n······this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n······this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isWeb);\n······this._chromeExtensionInterfaceService.onReady$.pipe(take(1)).subscribe(()·=>·{\n········this.document.body.classList.add(BodyClass.isExtension);\n········this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n········this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n······});\n····}\n\n····if·(IS_ANDROID_WEB_VIEW)·{\n······androidInterface.isKeyboardShown$.subscribe((isShown)·=>·{\n········Log.log('isShown',·isShown);\n\n········this.document.body.classList.remove(BodyClass.isAndroidKeyboardHidden);\n········this.document.body.classList.remove(BodyClass.isAndroidKeyboardShown);\n········this.document.body.classList.add(\n··········isShown·?·BodyClass.isAndroidKeyboardShown·:·BodyClass.isAndroidKeyboardHidden,\n········);\n······});\n····}\n\n····//·Use·effect·to·reactively·update·animation·class\n····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······if·(misc?.isDisableAnimations)·{\n········this.document.body.classList.add(BodyClass.isDisableAnimations);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isDisableAnimations);\n······}\n····});\n\n····//·Add/remove·hasBgImage·class·to·body·when·background·image·changes\n····effect(()·=>·{\n······if·(this.backgroundImg())·{\n········this.document.body.classList.add(BodyClass.hasBgImage);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.hasBgImage);\n······}\n····});\n\n····//·Add/remove·has-mobile-bottom-nav·class·to·body·for·snack·bar·positioning\n····effect(()·=>·{\n······if·(this._layoutService.isShowMobileBottomNav)·{\n········this.document.body.classList.add(BodyClass.hasMobileBottomNav);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.hasMobileBottomNav);\n······}\n····});\n\n····this._imexMetaService.isDataImportInProgress$.subscribe((isInProgress)·=>·{\n······//·timer(1000,·5000)\n······//···.pipe(map((val)·=>·val·%·2·===·0))\n······//···.subscribe((isInProgress)·=>·{\n······if·(isInProgress)·{\n········this.document.body.classList.add(BodyClass.isDataImportInProgress);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isDataImportInProgress);\n······}\n····});\n\n····if·(IS_TOUCH_ONLY)·{\n······this.document.body.classList.add(BodyClass.isTouchOnly);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isNoTouchOnly);\n····}\n\n····if·(IS_MOUSE_PRIMARY)·{\n······this.document.body.classList.add(BodyClass.isMousePrimary);\n····}·else·if·(IS_TOUCH_PRIMARY)·{\n······this.document.body.classList.add(BodyClass.isTouchPrimary);\n····}\n··}\n\n··private·_setChartTheme(isDarkTheme:·boolean):·void·{\n····const·overrides:·ChartConfiguration['options']·=·isDarkTheme\n······?·{\n··········//·legend:·{\n··········//···labels:·{·fontColor:·'white'·},\n··········//·},\n··········scales:·{\n············x:·{\n··············ticks:·{\n················color:·'white',\n··············},\n··············grid:·{\n················color:·'rgba(255,255,255,0.1)',\n··············},\n············},\n\n············y:·{\n··············ticks:·{\n················color:·'white',\n··············},\n··············grid:·{\n················color:·'rgba(255,255,255,0.1)',\n··············},\n············},\n··········},\n········}\n······:·{\n··········scales:·{},\n········};\n····this._chartThemeService.setColorschemesOptions(overrides);\n··}\n\n··private·_setupCustomThemeEffect():·void·{\n····//·Track·previous·theme·to·avoid·unnecessary·reloads\n····let·previousThemeId:·string·|·null·=·null;\n\n····//·Set·up·effect·to·reactively·update·custom·theme·when·config·changes\n····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······const·themeId·=·misc?.customTheme·||·'default';\n\n······//·Only·load·theme·if·it·has·changed\n······if·(themeId·!==·previousThemeId)·{\n········this._customThemeService.loadTheme(themeId);\n········previousThemeId·=·themeId;\n······}\n····});\n··}\n}\n",4715 ········"import·{·effect,·inject,·Injectable,·signal·}·from·'@angular/core';\nimport·{·toObservable,·toSignal·}·from·'@angular/core/rxjs-interop';\nimport·{·BodyClass,·IS_ELECTRON·}·from·'../../app.constants';\nimport·{·IS_MAC·}·from·'../../util/is-mac';\nimport·{·distinctUntilChanged,·map,·startWith,·switchMap,·take·}·from·'rxjs/operators';\nimport·{·IS_TOUCH_ONLY·}·from·'../../util/is-touch-only';\nimport·{·MaterialCssVarsService·}·from·'angular-material-css-vars';\nimport·{·DOCUMENT·}·from·'@angular/common';\nimport·{·MatIconRegistry·}·from·'@angular/material/icon';\nimport·{·DomSanitizer·}·from·'@angular/platform-browser';\nimport·{·ChromeExtensionInterfaceService·}·from·'../chrome-extension-interface/chrome-extension-interface.service';\nimport·{·ThemeService·as·NgChartThemeService·}·from·'ng2-charts';\nimport·{·GlobalConfigService·}·from·'../../features/config/global-config.service';\nimport·{·WorkContextThemeCfg·}·from·'../../features/work-context/work-context.model';\nimport·{·WorkContextService·}·from·'../../features/work-context/work-context.service';\nimport·{·combineLatest,·fromEvent,·Observable,·of·}·from·'rxjs';\nimport·{·IS_FIREFOX·}·from·'../../util/is-firefox';\nimport·{·ImexViewService·}·from·'../../imex/imex-meta/imex-view.service';\nimport·{·IS_MOUSE_PRIMARY,·IS_TOUCH_PRIMARY·}·from·'../../util/is-mouse-primary';\nimport·{·ChartConfiguration·}·from·'chart.js';\nimport·{·IS_ANDROID_WEB_VIEW·}·from·'../../util/is-android-web-view';\nimport·{·androidInterface·}·from·'../../features/android/android-interface';\nimport·{·HttpClient·}·from·'@angular/common/http';\nimport·{·LS·}·from·'../persistence/storage-keys.const';\nimport·{·CustomThemeService·}·from·'./custom-theme.service';\nimport·{·Log·}·from·'../log';\nimport·{·LayoutService·}·from·'../../core-ui/layout/layout.service';\n\nexport·type·DarkModeCfg·=·'dark'·|·'light'·|·'system';\n\n@Injectable({·providedIn:·'root'·})\nexport·class·GlobalThemeService·{\n··private·document·=·inject<Document>(DOCUMENT);\n··private·_layoutService·=·inject(LayoutService);\n··private·_materialCssVarsService·=·inject(MaterialCssVarsService);\n··private·_workContextService·=·inject(WorkContextService);\n··private·_globalConfigService·=·inject(GlobalConfigService);\n··private·_matIconRegistry·=·inject(MatIconRegistry);\n··private·_domSanitizer·=·inject(DomSanitizer);\n··private·_chartThemeService·=·inject(NgChartThemeService);\n··private·_chromeExtensionInterfaceService·=·inject(ChromeExtensionInterfaceService);\n··private·_imexMetaService·=·inject(ImexViewService);\n··private·_http·=·inject(HttpClient);\n··private·_customThemeService·=·inject(CustomThemeService);\n\n··darkMode·=·signal<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····//·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··private·_setDarkTheme(isDarkTheme:·boolean):·void·{\n····this._materialCssVarsService.setDarkTheme(isDarkTheme);\n····this._setChartTheme(isDarkTheme);\n····//·this._materialCssVarsService.setDarkTheme(true);\n····//·this._materialCssVarsService.setDarkTheme(false);\n··}\n\n··private·_setColorTheme(theme:·WorkContextThemeCfg):·void·{\n····this._materialCssVarsService.setAutoContrastEnabled(!!theme.isAutoContrast);\n····this._setBackgroundTint(!!theme.isDisableBackgroundTint);\n\n····//·NOTE:·setting·undefined·values·does·not·seem·to·be·a·problem·so·we·use·!\n····if·(!theme.isAutoContrast)·{\n······this._materialCssVarsService.setContrastColorThresholdPrimary(theme.huePrimary!);\n······this._materialCssVarsService.setContrastColorThresholdAccent(theme.hueAccent!);\n······this._materialCssVarsService.setContrastColorThresholdWarn(theme.hueWarn!);\n····}\n\n····this._materialCssVarsService.setPrimaryColor(theme.primary!);\n····this._materialCssVarsService.setAccentColor(theme.accent!);\n····this._materialCssVarsService.setWarnColor(theme.warn!);\n··}\n\n··private·_setBackgroundTint(isDisableBackgroundTint:·boolean):·void·{\n····//·Simplify:·toggle·only·the·disable·flag;·CSS·handles·the·rest\n····this.document.body.classList.toggle(\n······BodyClass.isDisableBackgroundTint,\n······!!isDisableBackgroundTint,\n····);\n··}\n\n··private·_initIcons():·void·{\n····const·icons:·[string,·string][]·=·[\n······['sp',·'assets/icons/sp.svg'],\n······['play',·'assets/icons/play.svg'],\n······['github',·'assets/icons/github.svg'],\n······['gitlab',·'assets/icons/gitlab.svg'],\n······['jira',·'assets/icons/jira.svg'],\n······['caldav',·'assets/icons/caldav.svg'],\n······['open_project',·'assets/icons/open-project.svg'],\n······['drag_handle',·'assets/icons/drag-handle.svg'],\n······['remove_today',·'assets/icons/remove-today-48px.svg'],\n······['estimate_remaining',·'assets/icons/estimate-remaining.svg'],\n······['working_today',·'assets/icons/working-today.svg'],\n······['repeat',·'assets/icons/repeat.svg'],\n······['gitea',·'assets/icons/gitea.svg'],\n······['redmine',·'assets/icons/redmine.svg'],\n······['calendar',·'assets/icons/calendar.svg'],\n······['early_on',·'assets/icons/early-on.svg'],\n······['tomorrow',·'assets/icons/tomorrow.svg'],\n······['next_week',·'assets/icons/next-week.svg'],\n······['keep',·'assets/icons/keep.svg'],\n······['keep_filled',·'assets/icons/keep-filled.svg'],\n····];\n\n····//·todo·test·if·can·be·removed·with·airplane·mode·and·wifi·without·internet\n····icons.forEach(([name,·path])·=>·{\n······this._matIconRegistry.addSvgIcon(\n········name,\n········this._domSanitizer.bypassSecurityTrustResourceUrl(path),\n······);\n····});\n\n····this.preloadIcons(icons);\n··}\n\n··preloadIcons(icons:·[string,·string][]):·Promise<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··private·_initThemeWatchers():·void·{\n····//·init·theme·watchers\n····this._workContextService.currentTheme$.subscribe((theme:·WorkContextThemeCfg)·=>\n······this._setColorTheme(theme),\n····);\n····this._isDarkThemeObs$.subscribe((isDarkTheme)·=>·this._setDarkTheme(isDarkTheme));\n··}\n\n··private·_initHandlersForInitialBodyClasses():·void·{\n····this.document.body.classList.add(BodyClass.isNoAdvancedFeatures);\n\n····if·(!IS_FIREFOX)·{\n······this.document.body.classList.add(BodyClass.isNoFirefox);\n····}\n\n····if·(IS_MAC)·{\n······this.document.body.classList.add(BodyClass.isMac);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isNoMac);\n····}\n\n····if·(IS_ELECTRON)·{\n······this.document.body.classList.add(BodyClass.isElectron);\n······this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n······this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isWeb);\n······this._chromeExtensionInterfaceService.onReady$.pipe(take(1)).subscribe(()·=>·{\n········this.document.body.classList.add(BodyClass.isExtension);\n········this.document.body.classList.add(BodyClass.isAdvancedFeatures);\n········this.document.body.classList.remove(BodyClass.isNoAdvancedFeatures);\n······});\n····}\n\n····if·(IS_ANDROID_WEB_VIEW)·{\n······androidInterface.isKeyboardShown$.subscribe((isShown)·=>·{\n········Log.log('isShown',·isShown);\n\n········this.document.body.classList.remove(BodyClass.isAndroidKeyboardHidden);\n········this.document.body.classList.remove(BodyClass.isAndroidKeyboardShown);\n········this.document.body.classList.add(\n··········isShown·?·BodyClass.isAndroidKeyboardShown·:·BodyClass.isAndroidKeyboardHidden,\n········);\n······});\n····}\n\n····//·Use·effect·to·reactively·update·animation·class\n····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······if·(misc?.isDisableAnimations)·{\n········this.document.body.classList.add(BodyClass.isDisableAnimations);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isDisableAnimations);\n······}\n····});\n\n····//·Add/remove·hasBgImage·class·to·body·when·background·image·changes\n····effect(()·=>·{\n······if·(this.backgroundImg())·{\n········this.document.body.classList.add(BodyClass.hasBgImage);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.hasBgImage);\n······}\n····});\n\n····//·Add/remove·has-mobile-bottom-nav·class·to·body·for·snack·bar·positioning\n····effect(()·=>·{\n······if·(this._layoutService.isShowMobileBottomNav)·{\n········this.document.body.classList.add(BodyClass.hasMobileBottomNav);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.hasMobileBottomNav);\n······}\n····});\n\n····this._imexMetaService.isDataImportInProgress$.subscribe((isInProgress)·=>·{\n······//·timer(1000,·5000)\n······//···.pipe(map((val)·=>·val·%·2·===·0))\n······//···.subscribe((isInProgress)·=>·{\n······if·(isInProgress)·{\n········this.document.body.classList.add(BodyClass.isDataImportInProgress);\n······}·else·{\n········this.document.body.classList.remove(BodyClass.isDataImportInProgress);\n······}\n····});\n\n····if·(IS_TOUCH_ONLY)·{\n······this.document.body.classList.add(BodyClass.isTouchOnly);\n····}·else·{\n······this.document.body.classList.add(BodyClass.isNoTouchOnly);\n····}\n\n····if·(IS_MOUSE_PRIMARY)·{\n······this.document.body.classList.add(BodyClass.isMousePrimary);\n····}·else·if·(IS_TOUCH_PRIMARY)·{\n······this.document.body.classList.add(BodyClass.isTouchPrimary);\n····}\n··}\n\n··private·_setChartTheme(isDarkTheme:·boolean):·void·{\n····const·overrides:·ChartConfiguration['options']·=·isDarkTheme\n······?·{\n··········//·legend:·{\n··········//···labels:·{·fontColor:·'white'·},\n··········//·},\n··········scales:·{\n············x:·{\n··············ticks:·{\n················color:·'white',\n··············},\n··············grid:·{\n················color:·'rgba(255,255,255,0.1)',\n··············},\n············},\n\n············y:·{\n··············ticks:·{\n················color:·'white',\n··············},\n··············grid:·{\n················color:·'rgba(255,255,255,0.1)',\n··············},\n············},\n··········},\n········}\n······:·{\n··········scales:·{},\n········};\n····this._chartThemeService.setColorschemesOptions(overrides);\n··}\n\n··private·_setupCustomThemeEffect():·void·{\n····//·Track·previous·theme·to·avoid·unnecessary·reloads\n····let·previousThemeId:·string·|·null·=·null;\n\n····//·Set·up·effect·to·reactively·update·custom·theme·when·config·changes\n····effect(()·=>·{\n······const·misc·=·this._globalConfigService.misc();\n······const·themeId·=·misc?.customTheme·||·'default';\n\n······//·Only·load·theme·if·it·has·changed\n······if·(themeId·!==·previousThemeId)·{\n········this._customThemeService.loadTheme(themeId);\n········previousThemeId·=·themeId;\n······}\n····});\n··}\n}\n",
737 B
assets/public/chunk-ESEBWQAA.js vs.
assets/public/chunk-VOQG7765.js
Files 99% similar despite different names
634 B
js-beautify {}
    
Offset 10316, 8 lines modifiedOffset 10316, 8 lines modified
10316 ········}10316 ········}
10317 ········return·r10317 ········return·r
10318 ····})()10318 ····})()
10319 });10319 });
10320 export·{10320 export·{
10321 ····ye·as·a,·As·as·b,·xt·as·c,·Ym·as·d,·zh·as·e,·jh·as·f,·ip·as·g,·Qs·as·h,·Xs·as·i,·Lt·as·j,·mr·as·k,·uo·as·l,·ed·as·m,·_t·as·n,·Ks·as·o,·Un·as·p,·Zs·as·q,·su·as·r,·ql·as·s,·cu·as·t,·Wl·as·u,·Yl·as·v,·Ql·as·w,·tb·as·x,·sc·as·y,·kc·as·z,·so·as·A,·vc·as·B,·lo·as·C,·Tc·as·D,·Sc·as·E,·R_·as·F,·hl·as·G,·Bc·as·H,·Uc·as·I,·$c·as·J,·zc·as·K,·jc·as·L,·Hc·as·M,·Wc·as·N,·Kc·as·O,·Zc·as·P,·ln·as·Q,·po·as·R,·cd·as·S,·dd·as·T,·md·as·U,·pd·as·V10321 ····ye·as·a,·As·as·b,·xt·as·c,·Ym·as·d,·zh·as·e,·jh·as·f,·ip·as·g,·Qs·as·h,·Xs·as·i,·Lt·as·j,·mr·as·k,·uo·as·l,·ed·as·m,·_t·as·n,·Ks·as·o,·Un·as·p,·Zs·as·q,·su·as·r,·ql·as·s,·cu·as·t,·Wl·as·u,·Yl·as·v,·Ql·as·w,·tb·as·x,·sc·as·y,·kc·as·z,·so·as·A,·vc·as·B,·lo·as·C,·Tc·as·D,·Sc·as·E,·R_·as·F,·hl·as·G,·Bc·as·H,·Uc·as·I,·$c·as·J,·zc·as·K,·jc·as·L,·Hc·as·M,·Wc·as·N,·Kc·as·O,·Zc·as·P,·ln·as·Q,·po·as·R,·cd·as·S,·dd·as·T,·md·as·U,·pd·as·V
10322 };10322 };
10323 //#·sourceMappingURL=chunk-ESEBWQAA.js.map10323 //#·sourceMappingURL=chunk-VOQG7765.js.map
109 B
assets/public/chunk-7E7XZV7L.js.map vs.
assets/public/chunk-L3GF7I2Z.js.map
Files identical despite different names
1.44 KB
assets/public/chunk-7E7XZV7L.js vs.
assets/public/chunk-L3GF7I2Z.js
Files 99% similar despite different names
1.34 KB
js-beautify {}
    
Offset 11, 15 lines modifiedOffset 11, 15 lines modified
11 ····b·as·rn,11 ····b·as·rn,
12 ····c·as·Se,12 ····c·as·Se,
13 ····d·as·Vt,13 ····d·as·Vt,
14 ····e·as·Ht,14 ····e·as·Ht,
15 ····f·as·bn,15 ····f·as·bn,
16 ····g·as·ai,16 ····g·as·ai,
17 ····h·as·Dn17 ····h·as·Dn
18 }·from·"./chunk-TLVKTX5S.js";18 }·from·"./chunk-4RLJGC7Y.js";
19 import·{19 import·{
20 ····a·as·ft,20 ····a·as·ft,
21 ····b·as·It,21 ····b·as·It,
22 ····c·as·gn22 ····c·as·gn
23 }·from·"./chunk-VLI2QFPH.js";23 }·from·"./chunk-VLI2QFPH.js";
24 import·{24 import·{
25 ····a·as·X,25 ····a·as·X,
Offset 29, 15 lines modifiedOffset 29, 15 lines modified
29 ····a·as·qt,29 ····a·as·qt,
30 ····b·as·Nn,30 ····b·as·Nn,
31 ····c·as·zt,31 ····c·as·zt,
32 ····d·as·Rn,32 ····d·as·Rn,
33 ····e·as·Pn,33 ····e·as·Pn,
34 ····f·as·jt,34 ····f·as·jt,
35 ····g·as·kn35 ····g·as·kn
36 }·from·"./chunk-H53RCMH4.js";36 }·from·"./chunk-WKAXUHLX.js";
37 import·{37 import·{
38 ····a·as·Qt,38 ····a·as·Qt,
39 ····b·as·ei,39 ····b·as·ei,
40 ····c·as·ti,40 ····c·as·ti,
41 ····d·as·ii,41 ····d·as·ii,
42 ····e·as·ni,42 ····e·as·ni,
43 ····f·as·oi,43 ····f·as·oi,
Offset 50, 15 lines modifiedOffset 50, 15 lines modified
50 import·{50 import·{
51 ····e·as·Wt,51 ····e·as·Wt,
52 ····f·as·yn,52 ····f·as·yn,
53 ····g·as·Xt,53 ····g·as·Xt,
54 ····h·as·Fn,54 ····h·as·Fn,
55 ····k·as·$t,55 ····k·as·$t,
56 ····l·as·Mn56 ····l·as·Mn
57 }·from·"./chunk-FPT5Z6JU.js";57 }·from·"./chunk-JFDPASXB.js";
58 import·{58 import·{
59 ····A·as·xt,59 ····A·as·xt,
60 ····C·as·Sn,60 ····C·as·Sn,
61 ····H·as·Lt,61 ····H·as·Lt,
62 ····I·as·Ut,62 ····I·as·Ut,
63 ····J·as·Bt,63 ····J·as·Bt,
64 ····K·as·Kt,64 ····K·as·Kt,
Offset 68, 15 lines modifiedOffset 68, 15 lines modified
68 ····U·as·Yt,68 ····U·as·Yt,
69 ····V·as·An,69 ····V·as·An,
70 ····p·as·Ae,70 ····p·as·Ae,
71 ····q·as·Cn,71 ····q·as·Cn,
72 ····v·as·Rt,72 ····v·as·Rt,
73 ····w·as·On,73 ····w·as·On,
74 ····z·as·kt74 ····z·as·kt
75 }·from·"./chunk-ESEBWQAA.js";75 }·from·"./chunk-VOQG7765.js";
76 import·"./chunk-PNLDAEIU.js";76 import·"./chunk-PNLDAEIU.js";
77 import·"./chunk-USV4YXDW.js";77 import·"./chunk-USV4YXDW.js";
78 import·{78 import·{
79 ····b·as·vt,79 ····b·as·vt,
80 ····e·as·Gt,80 ····e·as·Gt,
81 ····j·as·Tn81 ····j·as·Tn
82 }·from·"./chunk-G3HJ2GL3.js";82 }·from·"./chunk-G3HJ2GL3.js";
Offset 2593, 8 lines modifiedOffset 2593, 8 lines modified
2593 ········return·i2593 ········return·i
2594 ····})()2594 ····})()
2595 });2595 });
2596 go();2596 go();
2597 export·{2597 export·{
2598 ····Rl·as·ConfigPageComponent2598 ····Rl·as·ConfigPageComponent
2599 };2599 };
2600 //#·sourceMappingURL=chunk-7E7XZV7L.js.map2600 //#·sourceMappingURL=chunk-L3GF7I2Z.js.map
970 B
assets/public/chunk-5QMEDHY4.js vs.
assets/public/chunk-PP3XGOFY.js
Files 90% similar despite different names
867 B
js-beautify {}
    
Offset 1, 15 lines modifiedOffset 1, 12 lines modified
1 import·{1 import·{
 2 ····s·as·a,
 3 ····t·as·b
 4 }·from·"./chunk-JFDPASXB.js";
2 ····a, 
3 ····b 
4 }·from·"./chunk-OZT432CE.js"; 
5 import·"./chunk-H53RCMH4.js"; 
6 import·"./chunk-FDVZKVGI.js";5 import·"./chunk-VOQG7765.js";
7 import·"./chunk-FPT5Z6JU.js"; 
8 import·"./chunk-ESEBWQAA.js"; 
9 import·"./chunk-PNLDAEIU.js";6 import·"./chunk-PNLDAEIU.js";
10 import·"./chunk-USV4YXDW.js";7 import·"./chunk-USV4YXDW.js";
11 import·"./chunk-G3HJ2GL3.js";8 import·"./chunk-G3HJ2GL3.js";
12 import·"./chunk-GTBEH26W.js";9 import·"./chunk-GTBEH26W.js";
13 import·"./chunk-TF4ZGOZ4.js";10 import·"./chunk-TF4ZGOZ4.js";
14 import·"./chunk-OCWFHHQL.js";11 import·"./chunk-OCWFHHQL.js";
15 import·"./chunk-WG4QBSGF.js";12 import·"./chunk-WG4QBSGF.js";
Offset 40, 10 lines modifiedOffset 37, 10 lines modified
40 import·"./chunk-3YGNIIAP.js";37 import·"./chunk-3YGNIIAP.js";
41 import·"./chunk-MKQ5S2AR.js";38 import·"./chunk-MKQ5S2AR.js";
42 import·"./chunk-OXDOKNTF.js";39 import·"./chunk-OXDOKNTF.js";
43 import·"./chunk-PEJGMLLQ.js";40 import·"./chunk-PEJGMLLQ.js";
44 import·"./chunk-2NYJ54WT.js";41 import·"./chunk-2NYJ54WT.js";
45 b();42 b();
46 export·{43 export·{
47 ····a·as·PluginIndexComponent44 ····a·as·PluginRunner
48 };45 };
49 //#·sourceMappingURL=chunk-5QMEDHY4.js.map46 //#·sourceMappingURL=chunk-PP3XGOFY.js.map
109 B
assets/public/chunk-3UN2ZJEW.js.map vs.
assets/public/chunk-BMOQZ47J.js.map
Files identical despite different names
847 B
assets/public/chunk-3UN2ZJEW.js vs.
assets/public/chunk-BMOQZ47J.js
Files 99% similar despite different names
744 B
js-beautify {}
    
Offset 14, 15 lines modifiedOffset 14, 15 lines modified
14 import·{14 import·{
15 ····f·as·gi,15 ····f·as·gi,
16 ····h·as·Ki16 ····h·as·Ki
17 }·from·"./chunk-W3EHXDVY.js";17 }·from·"./chunk-W3EHXDVY.js";
18 import·{18 import·{
19 ····e·as·ge,19 ····e·as·ge,
20 ····i·as·at20 ····i·as·at
21 }·from·"./chunk-ESEBWQAA.js";21 }·from·"./chunk-VOQG7765.js";
22 import·{22 import·{
23 ····N·as·pi,23 ····N·as·pi,
24 ····O·as·Xi24 ····O·as·Xi
25 }·from·"./chunk-OCWFHHQL.js";25 }·from·"./chunk-OCWFHHQL.js";
26 import·{26 import·{
27 ····a·as·ui,27 ····a·as·ui,
28 ····b·as·qi28 ····b·as·qi
Offset 2569, 8 lines modifiedOffset 2569, 8 lines modified
2569 ········}2569 ········}
2570 ········return·o2570 ········return·o
2571 ····})()2571 ····})()
2572 });2572 });
2573 export·{2573 export·{
2574 ····Yo·as·a,·Zi·as·b,·wi·as·c,·Ci·as·d,·sa·as·e,·la·as·f,·ca·as·g,·da·as·h,·ua·as·i,·ma·as·j,·ha·as·k,·fa·as·l,·pa·as·m,·ga·as·n,·_a·as·o,·jo·as·p,·Zo·as·q,·Ji·as·r,·Ye·as·s,·ht·as·t,·tr·as·u,·_o·as·v,·Di·as·w,·vi·as·x,·Vn·as·y,·fo·as·z,·kr·as·A,·xo·as·B2574 ····Yo·as·a,·Zi·as·b,·wi·as·c,·Ci·as·d,·sa·as·e,·la·as·f,·ca·as·g,·da·as·h,·ua·as·i,·ma·as·j,·ha·as·k,·fa·as·l,·pa·as·m,·ga·as·n,·_a·as·o,·jo·as·p,·Zo·as·q,·Ji·as·r,·Ye·as·s,·ht·as·t,·tr·as·u,·_o·as·v,·Di·as·w,·vi·as·x,·Vn·as·y,·fo·as·z,·kr·as·A,·xo·as·B
2575 };2575 };
2576 //#·sourceMappingURL=chunk-3UN2ZJEW.js.map2576 //#·sourceMappingURL=chunk-BMOQZ47J.js.map