From c7730f0a0eb971081d5edbf22aeed26ace9ba060 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Tue, 9 Jan 2024 11:54:42 -0800 Subject: [PATCH 01/15] feat: climate api custom callback system --- .../climate-data/climate-data-api.service.ts | 85 +++++++++++++++++-- 1 file changed, 80 insertions(+), 5 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts index a13fe5cf6..e0ce49b28 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts @@ -1,18 +1,93 @@ import { Injectable } from '@angular/core'; +import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; import createClient from 'openapi-fetch'; import { paths } from './types/api'; const API_ENDPOINT = 'https://api.epicsa.idems.international'; -/** Service to interact with external PICSA Climate API */ +/** Custom client which tracks responses by callback id */ +type ICallbackClient = (id:string)=>ReturnType> + +/** Type-safe http client with added support for callbacks */ +type IClient = ReturnType> & {useCallback:ICallbackClient} + +type ICallbackStatus = 'pending' | 'success' | 'error' | 'unknown' + +/** + * Service to interact with external PICSA Climate API + * All methods are exposed through a type-safe `client` property, or can additionally use + * a custom client that includes status notification updates via the `useCallback` method + * @example + * Use custom callback that will show user notifications on error and record to service + * ```ts + * const {response, data, error} = await api.useCallback('myRequestId').POST(...) + * ``` + * Use default client without additional callbacks + * ```ts + * const {response, data, error} = await api.client.POST(...) + * ``` + * */ @Injectable({ providedIn: 'root' }) export class ClimateDataApiService { + + /** List of monitored callbacks with status */ + public cb:Record={} /** Http client with type-definitions for API endpoints */ - public client:ReturnType> - - constructor() { - this.client = createClient({ baseUrl: API_ENDPOINT,mode:'cors' }); + public client:IClient + + constructor(private notificationService:PicsaNotificationService) { + const client = createClient({ baseUrl: API_ENDPOINT,mode:'cors' }); + this.client = {...client,useCallback:()=>{ + return client + }} + } + + + /** + * Provide a callback id which will be monitored alongside requests + * and provide user notification on error + **/ + public useCallback(id:string){ + const customFetch = this.createCustomFetchClient(id) + const callbackClient = createClient({ baseUrl: API_ENDPOINT,mode:'cors',fetch:customFetch }); + return callbackClient + } + + /** Create a custom implementation of fetch client to handle status updates and notifications */ + private createCustomFetchClient(id:string){ + return async (...args:Parameters)=>{ + this.cb[id]='pending' + const response = await window.fetch(...args); + const callbackStatus = this.getCallbackStatus(response.status) + this.cb[id]= callbackStatus + if(callbackStatus==='error' ){ + await this.showCustomFetchErrorMessage(id,response) + } + return response + } + } + + /** Show error message when using custom fetch with callbacks */ + private async showCustomFetchErrorMessage(id:string,response:Response){ + // clone body so that open-api can still consume when constructing full fetch response + const clone = response.clone() + try { + const json = await clone.json() + const errorText = json.detail || 'failed, see console logs for details' + this.notificationService.showUserNotification({matIcon:'error',message:`[${id}] ${errorText}`}) + } catch (error) { + console.error(error) + console.error('Fetch Error',error) + this.notificationService.showUserNotification({matIcon:'error',message:`[${id}] 'failed, see console logs for details'`}) + } + } + + private getCallbackStatus(statusCode:number):ICallbackStatus{ + if(200 <= statusCode && statusCode <=299) return 'success' + if(400 <= statusCode && statusCode <=499) return 'error' + if(500 <= statusCode && statusCode <=599) return 'error' + return 'unknown' } } From 2f36e56e9a41156a6138ae8915cfa95f1649adc0 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Tue, 9 Jan 2024 11:55:26 -0800 Subject: [PATCH 02/15] feat: wip rainfall summary component --- .../climate-data/climate-data.service.ts | 5 ++++ .../station/components/rainfall-summary.html | 7 +++++ .../station/components/rainfall-summary.scss | 25 ++++++++++++++++ .../station/components/rainfall-summary.ts | 30 +++++++++++++++++++ .../pages/station/station-page.component.html | 1 + .../pages/station/station-page.component.ts | 15 ++++++---- 6 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts index b387f5862..71afb9dc8 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts @@ -20,6 +20,7 @@ export type IResourceEntry = Database['public']['Tables']['resources']['Row']; export class ClimateDataDashboardService extends PicsaAsyncService { public apiStatus: number; public stations: IStationRow[] = []; + public activeStation: IStationRow; constructor(private supabaseService: SupabaseService, private api: ClimateDataApiService) { super(); @@ -31,6 +32,10 @@ export class ClimateDataDashboardService extends PicsaAsyncService { await this.listStations(); } + public setActiveStation(station: IStationRow) { + this.activeStation = station; + } + private async checkStatus() { const { client } = this.api; const { response } = await client.GET('/v1/status/'); diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html new file mode 100644 index 000000000..2338f9081 --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html @@ -0,0 +1,7 @@ +
+

Rainfall Summary

+ +
diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss new file mode 100644 index 000000000..58125726c --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss @@ -0,0 +1,25 @@ +:host { + display: block; +} + +mat-icon.spin { + animation: spin 2s linear infinite; +} + +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + } +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts new file mode 100644 index 000000000..3b0ffa2e9 --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; + +import { ClimateDataDashboardService } from '../../../climate-data.service'; +import { ClimateDataApiService } from '../../../climate-data-api.service'; + +@Component({ + selector: 'dashboard-climate-rainfall-summary', + templateUrl: './rainfall-summary.html', + standalone: true, + imports: [MatButtonModule, MatIconModule], + styleUrl: './rainfall-summary.scss', +}) +export class RainfallSummaryComponent { + constructor(public api: ClimateDataApiService, private service: ClimateDataDashboardService) {} + + public async refreshData() { + const { response, data, error } = await this.api + .useCallback('rainfallSummary') + .POST('/v1/annual_rainfall_summaries/', { + body: { + country: 'zm', + station_id: '1', + summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], + }, + }); + console.log({ response, data, error }); + } +} diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html index 5cd92e295..85c9b7253 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html @@ -11,5 +11,6 @@

{{ station.station_name }}

{{ value }} } + } diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts index 77e55d000..ca8312d89 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts @@ -3,17 +3,20 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; -import { ClimateDataDashboardService, IStationRow } from '../../climate-data.service'; +import { ClimateDataDashboardService } from '../../climate-data.service'; +import { RainfallSummaryComponent } from './components/rainfall-summary'; @Component({ selector: 'dashboard-station-page', standalone: true, - imports: [CommonModule], + imports: [CommonModule, RainfallSummaryComponent], templateUrl: './station-page.component.html', styleUrls: ['./station-page.component.scss'], }) export class StationPageComponent implements OnInit { - public station: IStationRow | undefined; + public get station() { + return this.service.activeStation; + } public get stationSummary() { return { @@ -31,8 +34,10 @@ export class StationPageComponent implements OnInit { async ngOnInit() { await this.service.ready(); const { stationId } = this.route.snapshot.params; - this.station = this.service.stations.find((station) => station.station_id === parseInt(stationId)); - if (!this.station) { + const station = this.service.stations.find((station) => station.station_id === parseInt(stationId)); + if (station) { + this.service.setActiveStation(station); + } else { this.notificationService.showUserNotification({ matIcon: 'error', message: `Station data not found` }); } } From 95314718a2ff9f71112cbe6702028e679253dc94 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Tue, 9 Jan 2024 17:50:15 -0800 Subject: [PATCH 03/15] chore: update material icons --- libs/theme/src/_fonts.scss | 2 -- .../src/fonts/MaterialIcons-Regular.woff2 | Bin 125116 -> 128352 bytes libs/theme/src/fonts/Readme.md | 12 ++++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 libs/theme/src/fonts/Readme.md diff --git a/libs/theme/src/_fonts.scss b/libs/theme/src/_fonts.scss index 2147add06..49023e014 100644 --- a/libs/theme/src/_fonts.scss +++ b/libs/theme/src/_fonts.scss @@ -3,8 +3,6 @@ font-style: normal; font-weight: 400; - // Note, google does not host these fonts directly - // Downloaded updated icons from https://github.com/jossef/material-design-icons-iconfont/tree/master/dist/fonts src: local('Material Icons'), local('assets/fonts/MaterialIcons-Regular'), url(./fonts/MaterialIcons-Regular.woff2) format('woff2'); // url(./fonts/MaterialIcons-Regular.woff) format('woff'), diff --git a/libs/theme/src/fonts/MaterialIcons-Regular.woff2 b/libs/theme/src/fonts/MaterialIcons-Regular.woff2 index 2eb4fb4997c4987aa93c222b053a22d23e45f03c..5492a6e75937db19f9ba860cd2575744887fa26b 100644 GIT binary patch literal 128352 zcmV)EK)}CuPew8T0RR910rg-24*&oF1%B`V0rdp{0RR9100000000000000000000 z0000Q92*QAgWp63U;yh52m}!b3XsDrjK*{e#aI9VHUcCAqHqKt1%i49AY0vBlugt^ z-0b%Jye$%_R#YJBCL+M9QDf(;QTmXjw1U7cB5cD zGmctqU~3{eIH}u9YpsbE5fK%Sm{n3GRWkMaojeowl-nm^(oC2%6DG~z<;hS6Sh*U? zEP6H0YCJ0|xS7(syJlvJ)2LW6Num%goC%iyCEr>+<5g7UN0KQ_x*q$0zp0V5JF7tu zfyWe2er0y%AM!1F&HtY7r(W{6e73yYAFyymx&J`8bcZ+TE{Zh6@ILp~>wtazRa<$K zlowAp=AZMo{Of#er%W(3tPKT+bki5LXP)1k;E16wqspY)CgGq(yOSJG}43R(Sr8eDf`EJ&DrY1((#mJD=*@VXEs-{tg+%9+?tbM@w51|AM)vwK%0Rz#=>K{2Ybtg5Td7?wg?;5>D1|A_;1v#SQc z4GwFlfo?E=pdQi?>E?y85+EP)PbQfJ@*l>OCHX+Y2xH~LRCbWWfy!`H^G!I_Lx9SXeqgfi}MNlXlY|Nom>-CMPIZ`E?3dx&HyNz+iK zEh#X=0ZYDMseUZKIQ8>e@AuWOZ3VhBWa#FFzyLuU&32Y^_GI3i)=O9E8fud?14(1Y zZL<(83{bku-I1)$_|nw-zb{w&YQ4DyK0=ZXLP`U)rL=;N@DrF@KMTsi1}-GbBEb@Z zEt%CGOPx^KQiHQgvBcmJ%tU%9_3bxbk_)9h(7u+0@`w#$sYA1^jWWcFu{1`7D~SEx z;Ji@dh=UlXW*8$2aSlfaM>xV^-}QWJ%kazCm+iG@T(d0EPqjJCO_tx{5ewVANql`t z5xA&sh}mpb+1}-E$`oaaE~ImsZA`{&aJxpJrZGgdTolG)oDVr{_ZD-&e}?Dba<~5bw+ke}7!yx0q;RiW6Va&z zw^pw2C}S|)J~fD*UmJnxO{ta|MZ_S-v1~}c5EAs?<$8TT%{c>ZEr+oviBQvdl)o{< zDkv!U_~UtX_CKTmwsE;a_qt%Ciwy+L5ypUJYOG_d7%ZFEz&RJ&6caE`bVW(AG5www z60k{Wk{6RrNZ-{_7PgUOG4Dy~kKmM-m9$kUTau6Xm@O$UdAr=9$+!wstY- z?s?u|Um8>eICSAss_e({ebxHM^UX^T1R)BdD2WO)J3AZFOFzfTp?2lkZe4UPdQ%ZM z`R$6n4950Z^qvD5VtFLOr}V>5 zrLO<4vUlfL?x%P zcyj>!Lw;#^o%Z$AO6>!~!0w*SLmwy^I0nOBax~{6O)Ir_D+?WaKw!yCq4^sE!2xym zV@~U({Ws~)?MX81a%=}a0SMCgl0>uX%eB2uuVEJk+{8{woLT0y{cz)}O0D`LsZuqm z>VxW2HG8S%l;%|J@volitR0)z{PwutYnJJm31mhhK_C(d0trF_0a5}JBn!v{B_K&k z1VFMul%^~RQEC>eW=v9d?@FpZSn9)A>S|jM6jcC7Rg<7tB~ev1I;v`pdG2$c&waf2@p!F$Z)%mx8i_v5(S2&RPYT0Zp{;37 zpVHnLR`dOOmBae@RWZO+Gp2!J#S$zaw%Kg16!m^_HVPp30%Z4Y5Fq*jRRA|gcCQj= zD&+}jDQQ?|xMv$@8|Nv*wdDVAruL;>AVJylKed+HNVC=i8N~Hb>}=P4uIs&eRluum z0IWh2U^hY24Uj}PNJ zIBz?(YqA?*cHnk=6cS|+($fzp;eZs0)CEaB?DB}cv;dHV#WHB55>`|qb)eM8njvfe zNLmfVdSd_oZ)&%;{Z|{GHE10l$2SOPSmfUdKVYI9C}x{VJuSNE5W*8eDI!Pc{Cj@H zXJ(kayW3^QT4Ri=sEDelh={1#_j_(=3gm%h>Dp!nfYljU+-u zj7rhYp8fRc7o=zsbI}12fyhzNZLfayKE$@D1I$gVH4TH6Vo3nh(-A+{FaG^!mG4G`3e{N#C z#q-zv#?;Rz^W*;%3+(m^B&CJ5vF_jryD)5L9eO7ECmw^Lr$VB8gkLVIy(7c!A%Kp> zFyNI-GAnLbEWk-^HUq-}yR8*x8mK`k2!tb?7R0qwH2*i{*mYFcqET)X%)uH0v5`vG zw_-M4>V2?8@QN1k_M7ARSaBi}cWzZui`1T#xx^cCdJns9u3c(~n7THe^> zV9dJIP$^(!r36a&aVnmEq}@S0|0-m;pjA3dFxblx0kP>zs44?jzvq!BF;l5Zrnikh zl#LpYs*JiH+C)(!HAU*@C^7Uvkh(gDr=3%v9`z8|<)ueU6F4ON*DeDFOEcY9_n+AVH+grjTbr&*MrReI(Q0|5{Q(yG;ft#1#d5xDU7IN;0$~C zLC7GX^ zBE-@k%5YB~xH|b;eojPgF~%4Cjb#U^_pMUDfWn#$X)(6-5UxUl9uLElgY6PIoxX#` zrrMU5^eI|Zg?Z11f?sH`-H9l{zam5<@}irEmopSZuR)qA-gCBATboojRsI;b+*%CP zq&m&un?=ao4oTeU#={_C)N<7@FK^_Y11RhGC0GO0YQ2^0@F1zXuZh1&&&WS*w6rQX zr2B?%$-#z036*R?>$6-bB6i&cucVlq-o6ykwM-0E$dsvMN2YCJuf ziip4g(IinZzB;mEZME1_{LF_u;|^Cht^fvy_w;R`C$3O(-rHQmC!t(nDdQ%K>*PCN zw&gQNo&h^WvxsUO#%^4#NpdKc^N_tD5oldI&G&UblySrHSWq=D9jZ9~Y#S;K!hivZ ztFF~O6JMB!!O$UbCPtf-F!D56=_q;(sV%cjuPfNJ;7k(n*1#nTA`B~XDg*2|!`yng zEOt5DQQ0)M9PzKEHb&Cu0n%cO8v@Sh)%qWPIf=XtFOG8RMa2OE;tt8_UEd2Z!qj+U zou-_Vg7)>O&0_}w?#vv7L*_+CZ~DabUeS+3ePR-tl2_yWPU99bf7Zpo{)907E`qe{ zYdh>LefoUGG`OaAt_r06g$H`Hl=02<(>8iurZ0VRhtQ`2z@|ULOGR1WAiE3SXAS z(PH{@Mw$#>m%hH7wOz{rJX1AwJ)X1-F?i5FNiu*oQ+MF-Px2M0`^qi#bO*Ch6ZN*? zU~DX+tKt4>qN^oBp5g~_2&LXf;S`6W1uUGy1n|}a_O6v(g)*}?EI#y1hBxo|DvxdX ztvitLz(}*wv~B=|Dek>;!Qrqy{!=tF9Nke8X@Lo25(?Zef$yfekE%Lq`wW>N`j=QsMcTJuW~bL_2yfl=ZJ_$6OVDdj zAeP+>&h8r~ve94Uz}J`yS=KKOfw8HUL&!n>gY9052|nDeVvYr6&#SO~c0Wto0zZIL zp;RZ{a76gFz_-e^1#Z+eazdnq(y7bBduBlVlEZBbQTs_`Ck*ueGp7yK4dx7{49W~L z4B{+}x7f;~Z5Fx1l6eCMRHGgNmX57v>sKz%PYusajSb9<34Xcd2-l8v#t%kf0m`q- zxF@jRPt&(Nbg6>1cNnmTEJh+&(d^2>_>56ayN}1_N8aFg4iz?8MsXfr+)x zK$OL=x=RnE*3SqqYAOaa1fsMRTq12bEGtO&^aNrbEPT2Z5)?adF6yBUPiVaRDM-CN zN)b5n)5J^?j- zbU`J(Gghj{QJcYMEV#v>Y)K;5yKIB6H>R3C&n8|%dK!xphk(+$t$DR?O1sl^Lvcxn z2!MH%n@U2ap0mKI5a+xLCq;&pAG(V@fir7)sR55cb^e+?5 z6OA++SBV)Qo8pRj&R$FJp%Pk0Pe?Htp0w6s4pX0TDQJt?Dj9-=nTp**hl9Ugkge{W@q2cAJzo4xYFkbVLidquOyCgq8|a14-G9@Z}<; zUVqscr#=~;D*+>MSn!3{k{s%Bw64R8+nmjy314?5-;|R0*~T1!FBc_;JlNHbQ9*K# zU@{@Ny~nHu3=xc?jW~h@56S3$);A>eZ2Tl_V8?rPC$eoLF#9TYlKPkq1Mb;Rr#WW& z#xd(ReY+O}nnw{JSTF{5UxS6#Mb zO_r+EYz#XJ`BP?<`q(AL1R2zAZ;|B-maYcsW)eCJ)5qkQniMS+hWEB zQx++7_*bn+y+YLr4^z3tix!Yof@t|ATm~eW3{$3Dm~+cDONJ9M!D3($0Juhlz&t8& zBti*tuxU$*fEIE@DUhW2;6}{xp+ap%IniQu7<rHKhkr1zU!rAVR?%IUBmB#LtuTx_HEkRUyX z&U>1S*xazIj1yBSAEP#r)7KnU@R64Hb?+}J2ys$hD zg%n@(92CHE{7mc`-NE1E>oG&HbwBV0JlzN0+oCHc&jFzMM(IGY7?<`jD?vVwQ{RVN zf!TC}AY0(+7LVO6zgeIREZbCE0rmLIx7I*Gr0}&Kreh9|!j|&*d0L{bad42iFhgDw zHaSSza5dg^Xtbld55)ue^89ZTT;iT*XbGIL5}Z37C-FmvvJ=_T(5p9V=tupmRdAgC zi7UtoG2<{q($2Dcm*DPgPhvU|$jai3=d1uMF{lQli#MN0LYhy8H7~csuX{1(03Gmv z(0K~dMP0$o)`!954VtN>)TzzpE;QvyeOoW78l=;iwzTGChsfV7h^DzH7Aljhj`$cO=Z8p}ju!KwEe@|~Pn z7h^|Hdlr~c=sM$afF?4g-^62CRf#Qj+4-nk1JYR4smRC7S+sdZ9P}hrcL+^Pr;o~4 zuq639sOambMZ1M60+cU8Yr`}Vte86Qii$0iU=*CiqUtS@gHXX;q5fuDTr?vEQx>|o zb3W4=rf)GtLN5tSV|;kF6kVrTJ^z-e+hPmcz1(sGCL}5`-fTq?pdIj}J6mt1u(vJk zHEy=p0L%iFTP1F+w`((OcN?e^F_*SLG|sGH)CEo8EkUm;T>%uDn{9PA!A$*VJoVwi zmkUu*Yr(4*XIR08qO(RTnTFlsfCmp(?Vi;07^%Gs3JANJUweJ3GIeE)^3Q}8v@&1X zBq@wt@kK}q!1U0|FaUgx`BMGun~T?tj9k`hr6zk`%^&80B8EvEav_>@ zWJ&?1mf&zSFxx*F6IAbMP^I4}siQtni`4T5*kKqeO$HPt3&*ni2gihaFuQai4Ns6` zKTR`?v`_uqXyG47ek>Was^&f3r>#uOFlL+-{IHbe_}9an^1T$b#(90YJZPaUj<|7KkCa3cVZj|Jk!!#jK zj>dfiSQ>}nEWJ;3x4%0&(tjR0Myxy5Wf9I71!(rOp`zwRsUn4yrcU+T+=oM_ee-3o z_>|7Td0o;v@}TQJLcm1us#*zMfD3O>+G#B@saiG*Nyl-d0gdt_O5=ovX7qr3X@q`N zw#6eUR|$q6DrSoXYgLL1R4d|AcPgLplYCQqnR_X_X6hAIp}o=8i5^#|tYa=$@V#~h z%*y1b_Zslf99+N8dIhB`TcCjwrqaWLYTp4W5y~7rTSIQ>OVeTu<+&^K>|_{L*D>}| zm^os=o2WU>_639L^eHzj)K#)T-IeX&ZGero1K$LSCx550gPeKq9_*+5#O;T>gR*91O_B=9(2Q(xtAP1#@!eU zPJ5PwZnThvnG)p{s?&AOQm5G|ht{x@so6%KAd8)#_RULJ6ELi>0W_Wn|Ipxr;AZ0e zRsGA?!OGq72IsCw^7XV_;_I$tOuyjYXM4h1lsmo{MjdgG_P&e=z2R;ARe3s6^YSF$lc7D3OkEx>nJ^qTv+fO4 zs&;TEhH7?_AM#a#qynK}dS1?UyEE$_oXGhT61QXwrX|p4l0x&SI>H1 z>%)qj$f|dQNXWI6$|VC!%T;Zwf((r*)$nDSP45F9!R=o1A$2|LH{rgxM6sixrDlH% z9#(Vc5;%zPI`g7kZc1p|05y-?vdlOLa(7#oqHLFn+aVHGuiAE4eM`hLed*1S_SEMu ziFM=_b^{&4P#kXxkG!AZZsF0qQMWevf`3rDvX2Rb;v6K2H~8MW zH5n4nO|6Ywwuw4n{OkN`!50e!@hSD}rr>U;AdI!U6}Ii++5o!!(O45`OBMVb|`<_E$NY;H1Vn~XKpa4qmPucFzG_0 z2iwj~Z9KU!F*Lh0wzkKwbEtYTU824|)?q2z=L$<*6*HOZGK(`Qs^O|g%FeySq!HOj zue05#M6hN-O+!QQAQlKvbTz+%{Z#P#Ji2z8#S{F)uY6$Zh^p9mz!Tq^_5l;G1F>V5 zphG^91qo5*A%Bc?Con8*|xiDDHN-vDc2Wn;sxhK6-(tQK8jk)uv z6reCo#ndLg=s=US%*_Tvk2tKSfgb~q*^)-i{g&E&5ESPBS_PEvD8;pr64NPqLyO4{ zBT!?;Ex)OIn}budgiH6m?7MQFSHjTfD-*8x;F-%lYot zyh!@ukJ%%gqZR|l!C`ywpyPcfz4!!hDmQ0oPgyCs@SE~~Eb2z!TJXRv5QnbAG5M)9 zYfg>ITf@q%X>%4@+N2_NLLPjb4#SK9FEQ+=Sq=1htDCamm>1<%?)!_}S;oo2cPV%_U^|1fM)4 ztc0Y!H=$E=7{d->?mdDY56Pe8gYb4AgmxTFgP=@!{tn>OaRg57M~(%iTn@-|y%9@0 zX=AJpEqhQ)^uyjGWNmUr)z>2OcRYr&kYk{h{{(pRJY#8>H!r+3=_6#u$&9hZ{B_iF zO(X?8w88Nlzwte9xWlE6w4Jpeck{ZIT9q52P`Jx-R^mM?`h8@tY-}=BfpN&x3$L!o zmHfjnRIewXO~Hr|>pFGP5i0wOhM1k-=-7#!LMc1r!&?W{)SQRU79osR=vA#t4LR}x z0@&*s#~XM+ttP)r#qnV6xffvqH=aAGWq_;8MdZw~(Z9dGG0uyskETHoN_MO{U&dt6h| zwywOSB6aq`vDu`I3eO3DNK6WyP)Xni9h8E=BLVOwGK}TC391(ge&~5v!jwn@;p^88 z)@L`2E+3(C&1p?Jz@N4#lI<*7^AjPe7*NI>90|I zM+5a~#iLMqm|KPw=hpXA>0v4zJb0?F5iJo~<}VlL=ThvNeBtHTE;f&`EF@JQLW|J$ zMOV{wsG0EWA^nA;Y%5QLISODGG>+vG)37b!V9tWz1|YHgcWjrM$5$$;IIki#$FwlnR>SO^?030F zd1Kl;)TeFT&BbII1XF0qWx#zis4(uOZOwE!RWneVdMz-QT*0p$m0T&h%+(;@_PPYJ z(Bi2{=xp6+7gN`U9Ecb60bsv{$1E?yGCzzqoKX$#Zyxdc=IU*P6p{nplSG&4D=_f& z=vId$QpU01V7*CXc%x1uWH_Ujb-7l*OkaVK;B4iRXo?M_Et&1MNeqHb&$hRjK34#s z`>NmxLTp?B6CXB~&XSStK1K9i4R8oCE(z}QmP&*Be`==Fn5f}B!&m{p%E5$HQeb)A zDK^KeLAxNhFTYO)`x!*B$(A}uF?hvHXDCMoEZtakH4PUW)2-VypAU;m?f34Bm+KZ& zb}t?!WMLHI2jy{R)>1V$0^eC0 zlJWX@L><57#H&hnJE&=CnZgbYTy7Tdoaw=e;Wo96#Vnxu=mjX9As|lqb^W2oTiX0# zk*!TPf8pev*g5eTxhIyAvuOSqAV1v3E1|4h0BU>x0t?Upo1fN1LQ*ldRL<=+^|pQ~ z_?rPK)7RQo0(iqFG_AaBaP@kzg2~{>`b>(n-W7JE^wEW=#f%}OaxG0Xe5=hRC9)?) zcC=O#nzT4*<4l9hc7SBLXQv#KdwTo-+cD{PyW1n)lE_gvIAN)*6>5)CeZ!#th!gls zRjuZ|FQa|TC9>gKjsUts{BkKw<60l$h`M^sN;SLFgD0Wc>FO(l&G|dU3Rk=cwW;BK8}AmJ-vc z#vra$x=HLV7X5|tlyf&CeR<-FhLx?i-3O(%~SX(d_iPRIjHYu=MJP{a@EROvFMHP1b#c; z-HB#UypA~WmR{AtMOu7;rnK68^qPPfPN(AL<4xQJ7-G>r|K&@mB#uNC-{P;>ipl7V zf{2Nl&;}YryugpV;U*V4)K1noFr_{xYZj}`?~Gnzkk_s{7#$$>YCOdJ;I7s%&ZMQD z<7n;1_|Acw4_{hHoBk^r?UlUMulHeGKZf%!?Hisg^mp~uw=X=tL2aR>sN>Omg26z! zw4oTpZKXk&2jR}gVGzS9_R6kQFBU69@l6U2*>kg4W40j$VD1mE1wZIEmu`g)4unS3 ztmWM{g|H*kQD#Y2Q?!Ch*O_|~+5=dm#Nr7SY5PBa6$3cu@6y_36DtRo@BpenniS-& z8QcEu>rM-8vXK_WO4R3Ltpy9VKVF&&#jQ!>)F`)<31ni}rL*{p>u@XpzG2&mtrKgf zHZ(QZg1CnddCEO*sbaTxL0h{*ke1GsJPYuSdG*N2n?Bm0;uJn}g_Dev-KdkCju978phP=c#vY?$QjT8Z?DyS7Rg9D z*)VeCEAUz3WuuEAA|la7k>lJ@)aS$rlf`i++sJOU&O(#W^_XlxrlxaN+|3&g&?UmH z5a{*XC91`X%hflPm4Q5?bZS{u0_lP~e#KiDIyN>Ke7vSRN`8hO`I+JO+fB+7X;KwI zY~wARht-fMn|Gi$AQ5g7T&lvmq9s7U(hB$PaPhz*m?6%!_&@<#h{*}y!^C0}y*loI%h6$r%uB?m^`($rwf^uDc}8r_rKTAM`W75?M5pc2C1I1(u3pBOvl zb|Cy_pUC(-B)4)Xnr#VjZ(ZD`T+k28y7Yc{_w;xg-1BvrJx6paT3&r0H4!lBwopne z9R$JsjKb-!*~AGSD5hxifwJh?A0RYZxA^&SL>m!)-#?NcV#5lIR#6-R2OzMY5396f zpk!P6I81~Mc6K}pE@N_h@{u93kl2nnf%d0GmD&q^}>Y4myLb%MN!Jkk?Je^cIht1SEI6V~-~Fi0Xiw^F?ch zu6cX`oNL^NgJUn0b2}-jH~L)T4w60@!zH%o#FIO(Q6jpj*_ix;>b}k07>K^k1qv7P}F~15ViI*mN;hhhwOb9zpY#Z>0v(Is6?+XBd|uz|P#0xEorLvo;mf zxF1{pc&iHi5l{3TW7~s(~ERmi5MSXS%Z4 zQZg0$1F@@&#q(T_kPC1}Cy$hdyVU`r=m!ngu^pwAycMvo5g0nbd)1o}P>dAlbi0zSjWefllC- z)gQ6{+*Rs;dyb~qwnc&Onw^ltQ1}Z&fb^!gLnG}op*ImPLb=+N1q5&}k~8oiYM$AQ zrIE}f`iG-7ha-5r=7HD(g{U%B98R(y`Y#d@V}nv8B{e-QoJ$%O&Nvl08Fw(SCFG_$ z-KVIVSpd1zD0o~6H7K!qe$A$fBP&O@8YR)fB0w0*cbVx^ve9fXQ#?U$a;ZqYlxb6y zF3pt0tt(55TBet(g|OrjO^$;TkYH{gH!Mx;a(!-Wv$LaXKgf85KeQi9$#f5&ddls+ z<~}-$m|cmn<_$~HFD3pox4oY0ViR5|LJGC?@Kb)X$x6ir0L!WMDdn(yNe`9Dv;9ukDc6|}!wr%fNszd!n%?mn{M7)%ilZYU zawzQht%R6qCRn|-FN!U^TghQLSn%CL)1FnLD2yp#lpcws^?QU8p0yRcqhm9sH?DL( zGL+A8PP#eOecV%Z6MKnZJtPa?h`FpDr|?q>kE__3b+A#&ZTj1>cQR_feu+PJ{N zP5Tn%0qMuneT7H)45#BmM#DHoPe2#{14GP>xfhV2L^6076s>C!dH7~c%1F)0mRlIp zQMP{!zUY_qIXk~+#+2u_)eAnS^^~iToXcE}<54v3ZIZz&3rZ0xBj5M3+#&p_d3t$B zIX?~{ z+Fpj?($P2-WYA-=cTp9;u8gWt8mWJwzwBb~SK9R-2dKEa8Po;%fpy?LdV1Xu8%fKDf1HWFevUg4(ZgBnigLj*;C-9ES+7 zxBnnqz2~6!DRi~0_-s%ZL_~er_o-8N3%8qo@8npcetaB81`DJgWBj6U3G6ylearM^ zMtq79i}M|Yh7@^2_;f~5QHSDCK`IFMEBYtvzHY59_>j@ydYo(JkN~h<9zc49#I1Bz z1?Q3h2X)kW7(7bbr&#?!)sTWo(qk;Gh~W&Q-u6Xb!L$1-#kc^-irym0VCgcGXbcvt zgmkEl>q4s0^7d=c9kHof4W_{G<>~oy8JSJi$VeW#u1LwI1x8bqHorJi?&4g9KdDd= z1z-0*>YO<^vtfT1Tha6-be;HaggPEz#U9NK+QNi~BMFJ(RdcoF@!2Y3tZXR1q~x_L z=BIl{q$#qgxVHj0f`sLtny|!v(<)pv{*r2i@Qe?90|29MV@tzRL$2@=-}8){T958!B)yPk$=(8{e0ACJW5bf>i`VMsOTQWUC-dV9@{F`s9>A z&o}?%Y6-f&`6o{v>31ZL%~xs^|sTgZi5IH3}-uc zJ5}CUrOTSje(Z_6unjNikQuwppG2|n;y4J#Y5zekSk#I7koSN#VrfmNs6xhnvL+{|hXk0cyG zSNPz>d`)O2(Qqf8wwqcIYK~UeB+;xk=BA)_ZfW?uwvcWXf(`fi?GEVZ^E9FQQ~v-) zGP^gMu@5pCAcbVx#NV;x*NR3TXp43hJPpEbExs@c&HB76Ac`QSb=OPRi_sSmy;EQ7 zW8YmLRuI}8ivmrl&y!!J2{M2?7H<0^JfqA`e~((phyn3r5q&yGtVJB=?sa+i`^IKD zWZ(VL`()G>zgVkqP;-}s_G*~=GLGxU?g&7Fb_@jxBA2K)`>gxc-|B}_>aBp;95AlB zn-+vM@{;T41*48ZK}RB?6f`W?$K51tAvI;m0q1e<2Eo0KMdMsqz_<2ONSvKfhLQTy zLp}^TYjR%+e@>ej=p$xjqpV`>Mn?pU8_xgEw%e$It)@oR;l-1t8s!`AQm&M*4K?*P z(WT;vQD4kOTWih1Tq2ZkaIY4dRbodiOueBI!;%F+!GfvCiAW>2%XMQroST?kvbLNf zn1X<3_=BH$#a*?p-Oz0vkXyl3vx}cE@)LOVR_PSkBDI0gEHv*Ra~z9q8XWOEZ_dXb z6dYGjkpS^+(UqjOR57ZzE7EoN04Vt?fyg}8W+YIU+X^2Clb+Cl(ZNy_1-@GxPDc?H++FMxq+EY-ghl}l)Z#tpg{J`DH~Ak#S^sG)u(d2 zVHA!^+t3`6^uew$&S4oZJxTJnnNL*SeO+nY_};u^TRdmB=&ZqZ3bc#&)Jz-4_#Zw0 zN#9*6~6Vnw+QJ>mT zx>SM4EwLOb?WCZ2dZ!ilZ7*P_W#andJp>HR^ej8mK|Sb0x5#sL?LsE_{<~du!lD4( z4q?ml5Y*kM+RVC`@L@Tdj84+&7lu+@-LLlO`VSIgW7mjC*ZbPr{7}uJ0m$$XmvB)QYS~!P& zg~es0+Z?XC^9kX9(e?my7(T|HaMXPbxK@Kh_(sqVf9bhCL{vLE7y&;_OywG2=5bY83u?>UM{Wi4Yiqpm>GN(M^KlwU#5la7D@zsok47*>}k7J_*kl zU7ZO&Yi9nJC;VDgUx zPS7g{GbL^ubVtUz*eRh|;HeOLh#quWrp#b!B#;vqd@}xX>R#TEe&mR$4)JUc!v6jFkryH*g6Ba_tg3$Cfm_Q zXx*Ey`&w8CtOfi*;&muFajUIBvMy7QBA820RSh81$da^G7S8DD1}-m_FN?MOGJ7e> z&gZtO^jwH}Q{&9_QUoB#3ggGWStx)EC5=7f9MQG`UyoFc$|$MStjk@~V_C@bF2ON* zZfA;Ph8gAxG$$OVsUN6I!4SdXvvBe<=-P^}&zVc9ae6it$Q4GebnkUsgiurS6wH?S zxLESCr4q?sDwV>eGAUXrm*S-gDOqYFrAtkv?58QEoMt-5bJhn8Q*CF~4&c`ZeL#wJ z_qI5nk4TpOiEpsaPyM0ui3DIdb&yo=)imG=ei-!SrQ7lFpW%dCXRgh%Lioi!%wZV& zzpe?9Z+X7S$@rPappy17;QIlwG{X1}#@Na^3Sbby;EUUZ&h&JJ<1213M9pA;uh_sr z05WB_ARN@i+s=k$pjD;-SmD_(RRVE9-Is$kojxawaI;A^5k*X|1=XB>61aQuyzrnDr z;~;$OJ@o82QiP(6(>j5tnx^E;75Ej@F%v!8^qyc4E+6GR6^6Q}xp?2LKMZo+-n9C) z+qy{Wpm}aaEYVWdo7fYq&+7+E>p(#nNJuLkx_WXOulW*gvo9im-9nrpE?sKCEIuW| zHIofX#}Xrl!%fGiwuzRQJrg)!3YL? zG8Kqpr{z&K9qaYcmq$$rL1MXY)VG!7JZPx-Mnl0N{&Pm5 z(k{eIq@{GI@dq@HkM4Ov)D6Dh?UD!Sz43&)f=KXi9|L%UrbS-gdTXPfv^xr3W?Y|}wBdJw90J#yrKe2m&E`K~m69FS zeN2C1ZM=JaD)f@hg+W!rimEAB2xZ=%Q4bH5J(s3Jl3K~1_hEKXxw67mH#l}h_ca05QpemV-4){!xf?h z+sLkw?-zoWT<)e)?^Jm}zBS6>wJ5k=y}Vhn5{XGlvNF|VwJJ-XI z=6qD4(z)U}`b2ZP$QY^OX`DML13S&am)nUY6aDEE$q=Y%jaa%vl#=sr(|jpf?;)x>yD zY+z~#wUO(g@n7+B`wx+Iy3Acj zGGsCq+q>1S4v>*lplAs2!n(lT5@yK$D}jVzSbz3F{|FYr7I{h)qUsDc7uTk_h9W4t zk8I-+>P}J+=Zhr)31x47IxmWOo$AiPDC-o~Q@PTU(j?C`S~P^NcrA)$~#@Fk7v@4%58Q8t}R{bw%cgMOBVJ&I3wx5;b#vp~s-j`(Uur z1#2oQ((AhK_5}1cb>w&}L^(7_JkAbedW2h%9mbNNxuZ%Zi$H81*$9O+ZYNaJBDPgt z9$VF;L{U%qZ(Dj=JBg2&*zd05+dw9Aw1blRoFC>fqhVHH+tpq&w)9<-&X&ELisT+W zp{6OGzunV2NHA2HSB?tG74MkQGApocySvjhgYjNuiOcI%Vjs5(|50lfLOsL)y3`P( zAFqm+=vj83?C25v6uCCVc!@CYVEaw6&BHf+Q!MG)80Ra7!A> z>PFYpe_qG*As7!`pc#x8Mt&j!_7IsP(i)5}iJgi{*O;+DY@2|uXHVYS|8{0k)m(j! zLE1#SvwvSeXl9}quvbMFr8Y4{c_u(WVnoJ1a;-{Z3_!OXy9;&eL|>QYt;nO9wr)@& zr*l7!iG_ok%#?~-#+zxd)1Zy^j^td-Wf9-)_)oY{fN$!d@x)IN@S3u(9StB~K5kIs2TsOEQcG!dK&h$KyY@I(~;&Z#;d;iG%dr z=;pCC6HBJ+8mqhv|LXxO8povzNso_=3(6)kc=Ssn_t06O5xG;ElAb3lj0Fp&gfW0# za$R+N%D1a2gY`#XAO_};Hj%+-vBj$Cq4h?#n9>Wt`Q71^1-Y)ebkL(kqLOI7US+(v zzz8Zk>13R12zNtu2CrTDo1clWR*KakSRmLZBAFyWLSN3VS`QK1DK^`K)xZWsP&+xI zQ}WR2pV5#)>h^(;|1o+Y!x0CaMkP~s{*$sK$&W~Fck;A{i-bN<Xdgg+PL^V;A^V#NroGy@|sx+?%umo>+%5Qn2uBvc@}N4lN8 zPjWr{A|pR^Red+`|d*;=?&6{viZlfIr8qt1?Q9?r*NykV~KhT$7f>kncuD zF@bYz(MfYfRINs~c^E9z)QP45+s%nr&2ybXaY&L)Ncj+B(HmcYziy9h>SpW63suPO zij}mnjy2=i6guv)>=tutB8cU7+udrBQp@ii`Bww;TAL#89$1P}Sw2vM|o3K1%+xWLweB1G1IPnA2RVV8J-?ae#qKoGVEl65n z6h{Wqb509dMDkn{C$v#YK_{Bf-M#GqOcxKHq67d-P9iU<#pB5$A!dy8rdGKE30er`($1Kx3f>=q^4dcF!IV7 zwI8BBnN7*%AVnY^si{F(n?QC)@68sH*@3?4%{BmBCU)c_y!ArKLdtnoC^@1dgSljO z+HMXf%X2`nE<5L&oq65f)!IH4Nt(NClWJ8YBtjAPYIwLp*%cMp+&N}>LbU(YNy^ON z@o1hulhn1+Ufh$?Ez_63@{?Zn2jhbaeLJ0de7csGJ3^tinb1=krRQ!q^DD-oqwf@Kn4}E7O1`HE zIE%Sv&p4?2)<49f+{V{M%^br(4ry$2oEWz%yrl%AAU{q}Q}H#-@US-gvDEH^%K{SZ zv@}}eXZRX|Z#0dd%FwI0Spm|t=nBEmrZJCojrb!D>n@#|czFhGmLxNpt4H%d66Uqp zwYYxDCZwDou;#q$vIRG$tXJm(wuhohrH_-0;5{^#kQB&i z^+Pd(7gQnatpaNkgGd znO->)?!Mi-V5PIo+q(6;cG85Xov|R8dWcFfcb}Fd@IXw61rrUbhZj`C!<_=52SVR5 zY=&Mt-~TZRPYT+ODZP0CRM9zDB&>C0safE)1Kx#?}7=RyBrt#mzpgY|dqV-2PZO`o=hWrVvr$9VoY z`sG}@2~}!dOfqWW*jK1nEdM=eG((ohv2vzJU}6^6?&TfuQWAOhQc`*EQZjk}QgZp=QVRL-XPk&oLqok6FjjB# z83TbOC~xSQhe+w7iKy)b<{{6w6h0L5y+{K-z=pV(ngwDBCk)y2YvyR`Y%)&7irg6X#rkkA04TQo||Rnv|cQ3E`y)HQWUprEeV zm6I(PKu8lbzs}B}BNLSR$PMG%Sq>O_y$_>OT}g-Piq-8u!~8E7 zU*`fyXFEWRSaxJRo16tfAUDbHv^*Q zFBb!eRpT`kKG-_>Ga|oPW!EbV8Z&qKy>SfqfrDMenA^qPY4zOjGJZc{W_c$~^Hfg_ zzXu-PToHp@dje^ta83?u^xUA44_?LseLNy2^N}nNvdH4*TV7RI?TP-#ut!?V*eA$u zcE;g=fK^&nT0XTqCO3)bI_6$}5_2mz0t<}@m==O18WqGKd3&nPfFK+s@)O<<0G!Mw zX-;qDqkr~)7eI!X!j?clYfpm^&d98qi`&=wIiGl!z57Y#mOI$G3V`tU8}6Hol0Ob- zh`Lha7kM!uTECC92livqtoX`H+!XaXPNK=~N4k1OD^MM=_b=r!$oeB?{Y0vW4w88B)8a1O*kE10uM;~Mq%CB>r_LYg5Uc@U^gu^>=~lEUGc94tYX;i z?hncOO&dMR2SFU6;Ic|HNDHJJUEhi8%FuG=?;da=&KHXZHuAx9GZcU&!yDZ{4S@O} zUc)X*g4!vRZ5uyv4OUvw1!-w4bK$=OVPwpoQQ|=Ks4(dH+;A|JZDE1@LvJ4$J+asrIw=EP zZ?8}H=(v!BA~|_4e1RqX@HM1NaF=TY;5LO_a1BR(c7sGDxG~RCG2C0}#yuC$FqF_a zwz8KiG3z+#vqbcy<|zKN7VdE=4DCY-K2FAgHDO78udRqTc^%`>ismq_92JwN8=BQg z!r=5m$fBi5eg|f0$c_^t+ER34#|tsC3=RBnNLICXRF-b@LkMY^-0g&9V1k{jHaWCD zW%n?BPiStqZqapZZ(Z>)KVc06vF>$7$2s;2vE~aW>gHAIqzBqR511N6;T3GcE-%+b zFln71U}?o=c1%q}iu+|qsjCvoG0Sa6k^kug&C#8n2{#9w!`6+%c!>3kOKGsmBoZ5G zJ9zYF<6Kx4W7Ej^sJ(7O9%SlP&IwZ5a%U3}C1YypN*C0#y49*@Ue~F{`0E}%II)C) zk_w`CCOFUNuke4Op{;E4?27iKrUo$N5P{Foi~x9MSANde8RE6A(^A|M(6@D-EccwtN|O{n)HC*GhKLu}o&oh&ZCrUGK3Jg83>s4NuCn zu2TK*e8MD@EVt-ut9)&Q1qh#&K_bOr@85km1SLMa8Mlc&EI%m}E>qJP277&rsQS!? zg;5}TS$$H;2fd04dckh36Ohq>yjx8_cpKd0C3qTQ3ezMF@_d(7K``M46H#Dp5Ra$@SuAx^RIU`nIPJ0=`wKYLh-(uRf+=1!;& z>C4L{;O*NSOny}1*SFw2H@eW-4zZ0*AVg@6;LnJ5LX};+V66LguI4{ybCsdnbzsKs z=U}pX<&K2jLVd5Cee7fl)?<~B?ZHVdkkaQ^7ZHDRi|7!G*pP_$kcz~RZAqQ{f9L$3 z*Sz2{_qg1-PIjb2>}7`yUm30)$8iM5HfNkq`%1s0rgu8$KIa*E_mB(UPze9vy2*Ag zoG=aDoaP;%I{`7%LPAg|--6Ju=Mnw^6v<$Bmd@S3z<8k$Rhs1&1ePIU#pni>NS204 z#{v)Uov@Y}@6#y~P1`6DU)=ENFR<2s7NRNsVjpr!9b#n#IR13krXypmyz7|w3DLk={n602^=R$ zD3l^5cADvsVUvk6x_lhT1}kH}oW&3~9wP!oOiukuvLsE>mNIKQw!-Y83$p^{WaeWN zeKoz@!K^t)i(Y9=fpUZsVfM=fB z7Rk?kCTrR>PES46F~9n(!pin8pC<|U;Yh-hqHy{=`-B7cVa=fLuaj@}`0r42Mw)5ne3dVl&!7IZV2Xu*vo5Fl*#c_RC{n9dxjJu|0mwY~KQluc0DwUfI8T=HylGEZ*_Ld^30it7~9+AbglRiK5HZuM3 zM;2!O`7C=0DDW@K5n=I!<%{=Y*b-kUhIL6Pz#`=Ufm8y*QVnQGEnqA4hmhW>m*KNH zW0Zjo83)E?5}=T204uYAkjxtguZ409TL(D>n&b>Wa@nO54@a(Cg>&PE1QZkp_X;?6 z7?|O0AGjO5ARu5MA)&r1tl2dP-Ea@WEG7vT&QF90Q;F2<{{thw3`LUMDGFL35FnF* z$>lusdQhVg!eruOHuJYwc-m}&91h`5C#2gg(BlF3`^AYU6oMiVDHhWb2_%(LGC8VH zAW9{tQZZ^ZtkDo!tvI9rfE*B1fFLSRR0)R3#&LxNA(x_L(X=v_Rm5@fd0x68C>KQ; zk|a%*Wh#nlRaL5Ks&rkgVZfTrYOGexHk(GfU4z4+-sKh}9{?tVB7}q(iwUt%YG%y9 zxk?DDEGra6s;Wv&GwHg{FpQ=tvn+{is~t!0x?0bZ=le`^Hq}lbT2GO1;V_hx%A>OW zBO*jN5-HN2C{Y$gi?%67j6<mN|6)Q&P`HW(PJGBVm#uH2jo6_!=1w53XwX|-xSR;SK`diCx! zXmFuPlY7mYT`@6vqD6~S^UQOtRjW&87B4Ka$gwtU&MdaXjiov~)v42oE?v%Z24O9* zB|9IWsIM62J&yYlp#?ZAcYdNM-)Y)ghVhYQeT&lqS-Qt7Ws(Q3U;r^SHnH);lh5DJN;CzH(-iZhjJqR|vOU1l%@ zCX;8eD4XMk%eC-$PJF&95LksmyGVq^VkD6`q*9wqrZX5slgX{w%q$kLS`9XvWVd^C zIJ`KW-n(4x-EJQNzy}cY070H%*b{=dLs737<{ggvL=fJ*URR&bw|>7k=K$~^NC3l9 z1QDaC2E$l5t|bUHNir#lL(@WrQL-$X<77O~6$F(iN+d}k%OXXwsH#uXjJobO46kWA zEX!)!ZpU%CuHEx&zHbv7_`@G8z3_sOzx>76OE1~@&wrf!?|+VYtpyH1l=y7mj4xkq z{P+n(M;CyB0mGj^v;YCZ1PT<2i75mG5{!ifB}kAUY-~s{7y<$T7c3YI2Zui{EQ5e2@_%e2f{BV8VnnQ>GM{F{90#Ieiu^7{wC&y{#@btXXqn z!-hLscD&fL=gWZue~z34apnxog^L)jT*YzYCIJ*w0e4=CdGl7mho36`0yGE|s2L1Q zH#nqTL4u4yL75ON*tQTM_Jj&`AWWEZXlPe3Fz$p4_gsVsue51{uw5r7P&;#h&8644 z^2UOjx9?qzwD<1=az6S+(Qp4t{}X`|@tDDf&ki9D_BioE5g-FYmWC9Xv=!2!tCT)t z6-?NwWye`(TypUP*9Q&#+@A--Ji(1YKw3;tF3CYXbXbLX;p~VKZBL9ihvKC;l`6xH zOqm|bkxyHJLMAE7252nbkW3}4WmT%2q+P>2#O@YGV}HXVh|7b=Zg$-eX5YSC2M!dv za;4pa2ZvsJEzcWoZ2Iae2EY7L=eOT({qe^OfBjYOpMP@lUjzRKSl9ysasmuY4GtVu z@ZhP14_^xc1RM||gmhaaL=0mVgb1ZnmmqKzMdGq-S5fS1ngQltQ+OJ^cera)P;z-7x8AV&_ED%EHm0X1szs8dH$y?W{zG|<$jk*+393^i+$ zs9n1>9Xf32)ahE6F3)u9rlm)Z8@+n%=+h@%zkX5%40vqNpd~|w$Qm|m#)uKq88tY6 z#x&r3#s}w_3AczgWlE)4vrf&KBWK<`YmYp#@NaP4v*?D`mMmHRxwQF!62wKQah_pr zxWsXz1fi3n%+WM3!^me@0vtz#7aaXuiey=aqDa*=24*uKi-n-wPTt{?>GoRj`8?Ig z0tE{HjdvX>GT!5!a^t;crqV6WSEb4l)vA4|Mvbm&)p|*tI`h@5H%x;Dz0;z3-{`7X zZy7?oOi{Mdv>b+UB9CVU%X(I_WF)#|FND&2Hbqr12|>C%cI|1f zZ(p7R2P)BXs880;e=p7`>$%)*`QLmO@{9@=mLqB+L>Z(gog5`nzA_i}jOJAm$5+;3 zmKCM4qiArxq89gz&fU1)4YI;00@7Ew9ZUW%hHFprzdy(O)*acmgKLlktYH$jIV%H4 zGt8C9RWZqBVVF$#qU^oztC0yVdU&y0E zH?F&s>$^KzV>&RVXR9q3TUyUabg z5BKAM@1i7yG;;CAj{s0q(?k#b?C~cad5#x_;@J9OOJ3?SX1UOfZs*fQAllX-OMp9N z%9gK4i82+c)M(P8U8f#{hK-rAD3vx$%XV-*Unp_BBLL}3D9NbF#T-YV1b`%rNa9E& zojl5@qK0~!7-Eqo9aii)lleDOX^Q#U=%lAG!_BbUQDS>l*lrCeoJivv^l&?s+D($-UTdsTcuwK{4I@h0ntC=>^Sv&3FNmHiJIdSSnGi;{K zyjeHbh9;WRBKUU+#1zCSGzMS1sMoN|z_7@X({6kC*RK8qVKuS~oR8bwDQ7@SwS>6h zOQvu|Do&{)gjS~dG^@q`^i>q;T)_2i@)DNf4*v|Y_ZUpSl{$wKUBAio-I{x#%|HF< zjIqOYLF9=@a@GYEStQok5?ZhECC4@N5|E3EH|uDm zl?AG_>9OI+m4_9>Rhep`c0%KJ`=!sggQUCdn8zw|JmY`i=_N|M8t5}& z#}h)790mH7#z52iHIW?#hbB_yDxSU7jCs|ZtG{1>38OlaP;y|2VBq*+tLzIGH$aju z9>3mN`?UQNJ$x?OUt%c^60^jCCf3B5)FwLka2QYYrRcWkrf6Ids;Cw%6E!HVh-yN= zIzk(@9c{%A+xo5j*J=TmRDZ3}8mXcC9V)USD*PH3?Fz91SHKEBd)q~R+ktZfEFL>V zC-+3=^%3;iT%LVZU%l14XKQYU?a=B-S=v3>j5WsIyY~9swgRBHfo^Op(D5C@hgO5m z(Te>8G;e>cCmws`p$G1}=dL?$yXlI{E;#R;v(7l}l;e)!u!Hv7XRqDZYO_r?T4#+_ zVy&>uQY@p*_n z%N=__*&bcp>V0^*Pls>;&dljJU8m_JTyNLac|er*dN=N$*l##*L@*@kS{G3geY-Vq z94rlH$$yM{->ZV%voFoHAu^txkDLvlJ=d$}w{xh1cW7qD`&Ff%~aJy@{ ze{D~@f&b`OKG}|2^+tS^o*%C!{_i#Z?*B%w=N>8Ma@}X{kaj#VQP0SLb@^BujnCRj z<}OzljIjQH-o~>$ru|Wjk4Hengph+pZIokM%8~^ulX(OqoRA)HT`TNO^GZ5^LVxk_ zRWIW1zkrKjCO@x*lr!pb^_ECwa+O9qQB>7apQmwBn_f4E&t?P=62UlNd^{pzA(*(> zFfn4OprS>Jk}N@-B=J(rl5Vy%sWPc);4dg1uB%tRw!4NGDY&GE0-ZnrfQ|C z)WWLKtWkq{En3xS*QUdy38VT=>D8srxM5?ubs8{YNRPpbx#b=?+Z$Oqp=|3rSRkz! znjh!5#*Vg@W_Eg(tq~qWe^20zar5ya5MA7T{jfN^tH+l7Tsmh9e)6eI-WEN%&l0go zGJ#aGWgqz)-HwHOo}W+4%z-^C-@II&*6Tep@p0SnZ3`YIe*BWW)u>*JvotI!jdIYR z_XgAPrqs4}$9qxHE-6SWuwMzI(6*Ox!b@2G10?@4jCLZ zC^8~Etbf10eR}um*(22Vf}-NmvKI{#hny~4d_o~aBov~>Ns>vQ5lc3lxbx!8m%kt= zXffg>C{V0KsWKI+RIAaTQL}En`t%z!VcVVq=dRp&?v)?fpO2MPR5chdWW<;ma~3RF zv1Y?gp(4dfmFd)_TaR9S{Xh&DG;G8ow8>*QK~fCM@uDQFnr@gaHoL>=_GcQ@GNLF% zu0nY>)w%UTy&U|?oltX73kOJIiiPUpO582`?6e957XXG9LM~JcH4R;c5+zBNBF%!37>zI5%mX=k<1tUo2Hcv^Tt2z(poZvqI;ZQw!tlsx9#@791;CAC@g1F`Nd zq8WzAQa;MP?}Nw4;Igo?7Amj_T)k54qFd?4-y=czK|-x+&PR?BF*OLyA7P$ z7$ZXLI#t6YcL5<`j_^t4x_RcvUfK2tcK8GFJ=J7r zwqx!Hc>t;xLK(J4UQ6h_DTM()o!~2YfgxG0+hnF_WR^k$8!h;R#fTZOyBMFS0sP_o zxf@+z?LuE4b5zE3P#(P)IF~<}7c*?BS0VEdYmamtt#i|aT)F6oU~7+ArgtIjvT)s; zW)fhEhqd=J0knyjlgNYQL+UND%j8*CikS|WNyG!QMn6Q9hN!m}e(&

A;8>_mO!tKmDQZZYD`4VG$_$j{AO(sHF4}*bM-dV zS}%WGTKC-SYLs7BMa@ABC@SUvczaNsa)vn##it=%fU1E)rkX&lN@g8&S*ur5wp44S z4rN6gOQ)L{k(dvOJzopC1v}h=6dcEpu)tOE~8*=G%>I|Bfwuqk=q0uyE? z_G?)cE0?A`H(21tzl7t8C+Cf;&pi^e@MC?Wo)j9JOcPj$oph~;6Za?*>hW(fJ(L23Dvobl|Mz7+iQ-23?<1% z%|sd2VHB*~IIfj(CWXFKoUH6;i0oqq&uBIB%(JY5QZIF{adduW4bBDU51tcYQtds@ z+GdWeH)_dM?)s|d7sNZ_F|}eYf;~WCRwmWCLD_LAx(%U%q$1vTkX}NNeHoz-Jxr

l*K8_>P7#5$l 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 diff --git a/libs/theme/src/fonts/Readme.md b/libs/theme/src/fonts/Readme.md new file mode 100644 index 000000000..10c913571 --- /dev/null +++ b/libs/theme/src/fonts/Readme.md @@ -0,0 +1,12 @@ +# Material Design Icons + +Source for font can be obtained by inspecting url: +https://fonts.googleapis.com/icon?family=Material+Icons + +E.g. +https://fonts.gstatic.com/s/materialicons/v140/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 + +NOTE - material icons should not be confused with (newer) material symbols +https://github.com/angular/components/issues/24845 + +(see discussion about handling outdated fonts at: https://github.com/google/material-design-icons/issues/786) From db485a5da7223c8f505c87356fc66573e33c35e4 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Wed, 10 Jan 2024 10:57:40 -0800 Subject: [PATCH 04/15] chore: code tidying --- .../station/components/rainfall-summary.html | 7 - .../station/components/rainfall-summary.ts | 30 ---- .../rainfall-summary/rainfall-summary.html | 27 +++ .../rainfall-summary.scss | 0 .../rainfall-summary/rainfall-summary.spec.ts | 155 ++++++++++++++++++ .../rainfall-summary/rainfall-summary.ts | 44 +++++ .../pages/station/station-page.component.ts | 2 +- 7 files changed, 227 insertions(+), 38 deletions(-) delete mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html delete mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html rename apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/{ => rainfall-summary}/rainfall-summary.scss (100%) create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.spec.ts create mode 100644 apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html deleted file mode 100644 index 2338f9081..000000000 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.html +++ /dev/null @@ -1,7 +0,0 @@ -

diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts deleted file mode 100644 index 3b0ffa2e9..000000000 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; - -import { ClimateDataDashboardService } from '../../../climate-data.service'; -import { ClimateDataApiService } from '../../../climate-data-api.service'; - -@Component({ - selector: 'dashboard-climate-rainfall-summary', - templateUrl: './rainfall-summary.html', - standalone: true, - imports: [MatButtonModule, MatIconModule], - styleUrl: './rainfall-summary.scss', -}) -export class RainfallSummaryComponent { - constructor(public api: ClimateDataApiService, private service: ClimateDataDashboardService) {} - - public async refreshData() { - const { response, data, error } = await this.api - .useCallback('rainfallSummary') - .POST('/v1/annual_rainfall_summaries/', { - body: { - country: 'zm', - station_id: '1', - summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], - }, - }); - console.log({ response, data, error }); - } -} diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html new file mode 100644 index 000000000..415a9bf04 --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html @@ -0,0 +1,27 @@ +
+

Rainfall Summary

+ +
+ + + + view_list + Table + + + + + show_chart + Chart + + + + + description + Definition + + + diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.scss similarity index 100% rename from apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary.scss rename to apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.scss diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.spec.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.spec.ts new file mode 100644 index 000000000..8f36dfe9e --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.spec.ts @@ -0,0 +1,155 @@ +export const RAINFALL_SUMMARY_MOCK = { + metadata: { + annual_rain: { + annual_rain: ['TRUE'], + n_rain: ['TRUE'], + na_rm: ['FALSE'], + }, + start_rains: { + threshold: [1], + start_day: [1], + end_day: [366], + total_rainfall: ['TRUE'], + amount_rain: [25], + over_days: [3], + proportion: ['FALSE'], + number_rain_days: ['FALSE'], + dry_spell: ['TRUE'], + spell_max_dry_days: [10], + spell_interval: [21], + dry_period: ['FALSE'], + _last_updated: ['2022-11-25'], + }, + end_rains: { + start_day: [121], + end_day: [366], + interval_length: [1], + min_rainfall: [10], + }, + end_season: { + start_day: [121], + end_day: [366], + capacity: [100], + water_balance_max: [60], + evaporation: ['value'], + evaporation_value: [5], + }, + seasonal_rain: { + seasonal_rain: ['TRUE'], + n_rain: ['TRUE'], + na_rm: ['FALSE'], + rain_day: [0.85], + total_rain: [0], + }, + }, + data: [ + { + year: 1945, + station_name: 'CHIPATA MET', + annual_rain: '', + n_rain: '', + start_rains: '', + end_rains: 365, + end_season: '', + seasonal_rain: '', + n_seasonal_rain: '', + season_length: '', + }, + { + year: 1946, + station_name: 'CHIPATA MET', + annual_rain: 1081.2, + n_rain: 90, + start_rains: 1, + end_rains: 366, + end_season: 121, + seasonal_rain: 652.2, + n_seasonal_rain: 54, + season_length: 120, + }, + { + year: 1947, + station_name: 'CHIPATA MET', + annual_rain: 1055.3, + n_rain: 89, + start_rains: 3, + end_rains: 362, + end_season: 121, + seasonal_rain: 760, + n_seasonal_rain: 64, + season_length: 118, + }, + { + year: 1948, + station_name: 'CHIPATA MET', + annual_rain: 1212.3, + n_rain: 88, + start_rains: 5, + end_rains: 359, + end_season: 125, + seasonal_rain: 901.9, + n_seasonal_rain: 65, + season_length: 120, + }, + { + year: 1949, + station_name: 'CHIPATA MET', + annual_rain: 896.7, + n_rain: 68, + start_rains: 20, + end_rains: 366, + end_season: 121, + seasonal_rain: 492, + n_seasonal_rain: 35, + season_length: 101, + }, + { + year: 1950, + station_name: 'CHIPATA MET', + annual_rain: 1048.1, + n_rain: 82, + start_rains: 2, + end_rains: 365, + end_season: 121, + seasonal_rain: 870.6, + n_seasonal_rain: 66, + season_length: 119, + }, + { + year: 1951, + station_name: 'CHIPATA MET', + annual_rain: 1100.1, + n_rain: 98, + start_rains: 5, + end_rains: 366, + end_season: 121, + seasonal_rain: 564, + n_seasonal_rain: 57, + season_length: 116, + }, + { + year: 1952, + station_name: 'CHIPATA MET', + annual_rain: 893.1999999999999, + n_rain: 74, + start_rains: 2, + end_rains: 365, + end_season: 121, + seasonal_rain: 697, + n_seasonal_rain: 51, + season_length: 119, + }, + { + year: 1953, + station_name: 'CHIPATA MET', + annual_rain: 1056.9, + n_rain: 84, + start_rains: 1, + end_rains: 366, + end_season: 121, + seasonal_rain: 775.5, + n_seasonal_rain: 58, + season_length: 120, + }, + ], +}; diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts new file mode 100644 index 000000000..21bde9f58 --- /dev/null +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts @@ -0,0 +1,44 @@ +import { AfterViewInit, Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; + +import { ClimateDataDashboardService } from '../../../../climate-data.service'; +import { ClimateDataApiService } from '../../../../climate-data-api.service'; +import { RAINFALL_SUMMARY_MOCK } from './rainfall-summary.spec'; + +@Component({ + selector: 'dashboard-climate-rainfall-summary', + templateUrl: './rainfall-summary.html', + standalone: true, + imports: [MatButtonModule, MatIconModule, MatTabsModule], + styleUrl: './rainfall-summary.scss', +}) +export class RainfallSummaryComponent implements AfterViewInit { + constructor(public api: ClimateDataApiService, private service: ClimateDataDashboardService) {} + + ngAfterViewInit() { + // TODO - retrieve from server + this.loadData(RAINFALL_SUMMARY_MOCK); + } + + public async refreshData() { + const { station_id, country_code } = this.service.activeStation; + const { response, data, error } = await this.api + .useCallback('rainfallSummary') + .POST('/v1/annual_rainfall_summaries/', { + body: { + country: `${country_code}` as any, + station_id: `${station_id}`, + summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], + }, + }); + console.log({ response, data, error }); + this.loadData(data); + } + + private loadData(summaryData) { + console.log('loading data', summaryData); + const { data, metadata } = summaryData; + } +} diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts index ca8312d89..1e3cf7685 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts @@ -4,7 +4,7 @@ import { ActivatedRoute } from '@angular/router'; import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; import { ClimateDataDashboardService } from '../../climate-data.service'; -import { RainfallSummaryComponent } from './components/rainfall-summary'; +import { RainfallSummaryComponent } from './components/rainfall-summary/rainfall-summary'; @Component({ selector: 'dashboard-station-page', From fa8beee1c6e4b48a0f24668c9e93f3e962ce40a0 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Wed, 10 Jan 2024 14:24:14 -0800 Subject: [PATCH 05/15] feat: common data table component --- .../data-table/data-table.component.html | 31 ++++++ .../data-table/data-table.component.scss | 13 +++ .../data-table/data-table.component.spec.ts | 21 ++++ .../data-table/data-table.component.ts | 96 +++++++++++++++++++ libs/shared/src/features/data-table/index.ts | 1 + libs/shared/src/features/index.ts | 1 + 6 files changed, 163 insertions(+) create mode 100644 libs/shared/src/features/data-table/data-table.component.html create mode 100644 libs/shared/src/features/data-table/data-table.component.scss create mode 100644 libs/shared/src/features/data-table/data-table.component.spec.ts create mode 100644 libs/shared/src/features/data-table/data-table.component.ts create mode 100644 libs/shared/src/features/data-table/index.ts diff --git a/libs/shared/src/features/data-table/data-table.component.html b/libs/shared/src/features/data-table/data-table.component.html new file mode 100644 index 000000000..d9766576f --- /dev/null +++ b/libs/shared/src/features/data-table/data-table.component.html @@ -0,0 +1,31 @@ + +@if(tableOptions.search){ + + Search Data + + search + +} + + + + @for(column of tableOptions.displayColumns; track column){ + + + + + } + + +
{{ column }}{{ el[column] }}
+ + + + diff --git a/libs/shared/src/features/data-table/data-table.component.scss b/libs/shared/src/features/data-table/data-table.component.scss new file mode 100644 index 000000000..aa4eef843 --- /dev/null +++ b/libs/shared/src/features/data-table/data-table.component.scss @@ -0,0 +1,13 @@ +:host { + display: block; +} +.search-field { + margin-top: 2rem; + width: 100%; + input { + text-align: left; + } +} +tr:hover { + background: whitesmoke; +} diff --git a/libs/shared/src/features/data-table/data-table.component.spec.ts b/libs/shared/src/features/data-table/data-table.component.spec.ts new file mode 100644 index 000000000..58e1caa18 --- /dev/null +++ b/libs/shared/src/features/data-table/data-table.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { DataTableComponent } from './data-table.component'; + +describe('DataTableComponent', () => { + let component: DataTableComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [DataTableComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(DataTableComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/shared/src/features/data-table/data-table.component.ts b/libs/shared/src/features/data-table/data-table.component.ts new file mode 100644 index 000000000..4709630dd --- /dev/null +++ b/libs/shared/src/features/data-table/data-table.component.ts @@ -0,0 +1,96 @@ +import { CommonModule } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, ViewChild } from '@angular/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort, MatSortModule } from '@angular/material/sort'; +import { MatTableDataSource, MatTableModule } from '@angular/material/table'; + +export interface IDataTableOptions { + /** Optional list of columns to display (default selects first keys from first data entry) */ + displayColumns?: string[]; + /** Specify whether to include column sort headers (default true) */ + sort?: boolean; + /** Specify size options to show in page paginator, e.g. [5,10,25] or just [25] (no paginator if left blank) */ + paginatorSizes?: number[]; + /** Specify whether to enable search input box and table filtering (will include all data during filter) */ + search?: boolean; + /** Bind to row click events */ + handleRowClick?: (row: any) => void; +} + +/** + * The `picsa-data-table` component is a lightweight wrapper around `mat-table`, used + * to simplify display of basic tables. + * + * By default the table has support for sort, pagination and data search (filter) + * + * For more advanced use cases such as custom column display prefer to directly use `mat-table` + */ +@Component({ + selector: 'picsa-data-table', + standalone: true, + imports: [ + CommonModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + MatSortModule, + MatTableModule, + MatPaginator, + ], + templateUrl: './data-table.component.html', + styleUrls: ['./data-table.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PicsaDataTableComponent implements OnChanges { + @Input() data: Record[] = []; + + /** User option overrides */ + @Input() options: IDataTableOptions = {}; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + public tableOptions: Required = { + displayColumns: [], + sort: true, + paginatorSizes: [], + search: true, + handleRowClick: () => null, + }; + + public dataSource: MatTableDataSource; + + constructor(private cdr: ChangeDetectorRef) {} + + // Load data when inputs updated (prefer changes over input setters to avoid duplicate load) + ngOnChanges(): void { + this.loadData(this.data, this.options); + } + + public applyFilter(value: string) { + this.dataSource.filter = value.trim().toLowerCase(); + } + + private loadData(data: T[] = [], overrides: IDataTableOptions = {}) { + // Assign default columns from first data entry if not specified + const displayColumns = overrides.displayColumns || Object.keys(data[0] || {}); + + // Merge default options with generated and user overrides + const mergedOptions = { ...this.tableOptions, displayColumns, ...overrides }; + this.tableOptions = mergedOptions; + + this.dataSource = new MatTableDataSource(data); + + // apply data sort and paginate if enabled + if (mergedOptions.paginatorSizes.length > 0) { + this.dataSource.paginator = this.paginator; + } + + // sort will be disabled in html template if not included + this.dataSource.sort = this.sort; + this.cdr.markForCheck(); + } +} diff --git a/libs/shared/src/features/data-table/index.ts b/libs/shared/src/features/data-table/index.ts new file mode 100644 index 000000000..4eb29f724 --- /dev/null +++ b/libs/shared/src/features/data-table/index.ts @@ -0,0 +1 @@ +export * from './data-table.component'; diff --git a/libs/shared/src/features/index.ts b/libs/shared/src/features/index.ts index aa435282d..9adf9998a 100644 --- a/libs/shared/src/features/index.ts +++ b/libs/shared/src/features/index.ts @@ -1,4 +1,5 @@ export * from './animations'; export * from './charts'; +export * from './data-table'; export * from './dialog'; export * from './video-player'; From 94677db8b48e33ef986f880ffbdcae093efebb4d Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Wed, 10 Jan 2024 14:24:41 -0800 Subject: [PATCH 06/15] feat: wip rainfall summary --- .../rainfall-summary/rainfall-summary.html | 2 ++ .../rainfall-summary/rainfall-summary.ts | 31 ++++++++++++++----- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html index 415a9bf04..e637d417d 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html @@ -11,6 +11,7 @@

Rainfall Summary

view_list Table + @@ -23,5 +24,6 @@

Rainfall Summary

description Definition
+
{{summary.metadata | json}}
diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts index 21bde9f58..cb7250d96 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts @@ -1,21 +1,38 @@ -import { AfterViewInit, Component } from '@angular/core'; +import { JsonPipe } from '@angular/common'; +import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatTabsModule } from '@angular/material/tabs'; +import { IDataTableOptions, PicsaDataTableComponent } from '@picsa/shared/features/data-table'; import { ClimateDataDashboardService } from '../../../../climate-data.service'; import { ClimateDataApiService } from '../../../../climate-data-api.service'; import { RAINFALL_SUMMARY_MOCK } from './rainfall-summary.spec'; +interface IRainfallSummary { + data: any[]; + metadata: any; +} + @Component({ selector: 'dashboard-climate-rainfall-summary', templateUrl: './rainfall-summary.html', standalone: true, - imports: [MatButtonModule, MatIconModule, MatTabsModule], + imports: [MatButtonModule, MatIconModule, MatTabsModule, PicsaDataTableComponent, JsonPipe], styleUrl: './rainfall-summary.scss', + changeDetection: ChangeDetectionStrategy.OnPush, }) export class RainfallSummaryComponent implements AfterViewInit { - constructor(public api: ClimateDataApiService, private service: ClimateDataDashboardService) {} + public summary: IRainfallSummary = { data: [], metadata: {} }; + constructor( + public api: ClimateDataApiService, + private service: ClimateDataDashboardService, + private cdr: ChangeDetectorRef + ) {} + + public tableOptions: IDataTableOptions = { + paginatorSizes: [25, 50], + }; ngAfterViewInit() { // TODO - retrieve from server @@ -34,11 +51,11 @@ export class RainfallSummaryComponent implements AfterViewInit { }, }); console.log({ response, data, error }); - this.loadData(data); + this.loadData(data as any); } - private loadData(summaryData) { - console.log('loading data', summaryData); - const { data, metadata } = summaryData; + private loadData(summary: IRainfallSummary) { + this.summary = summary; + this.cdr.markForCheck(); } } From 902531983ac22014fe1b5eb1d1822db465a1220e Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Thu, 11 Jan 2024 16:14:15 -0800 Subject: [PATCH 07/15] feat: add climate producs db --- apps/picsa-server/README.md | 2 +- ...20240112001154_climate_products_create.sql | 10 ++++++ apps/picsa-server/supabase/types/index.ts | 31 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql diff --git a/apps/picsa-server/README.md b/apps/picsa-server/README.md index f9839907e..41ddc6d5b 100644 --- a/apps/picsa-server/README.md +++ b/apps/picsa-server/README.md @@ -1,3 +1,3 @@ # PICSA Server -See docs at: https://docs.picsa.app/advanced/server/setup +See docs at: https://docs.picsa.app/server/setup diff --git a/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql b/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql new file mode 100644 index 000000000..be03125c0 --- /dev/null +++ b/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql @@ -0,0 +1,10 @@ +create table + public.climate_products ( + id bigint generated by default as identity, + created_at timestamp with time zone not null default now(), + station_id bigint null, + type text not null, + data jsonb not null, + constraint climate_products_pkey primary key (id), + constraint climate_products_station_id_fkey foreign key (station_id) references climate_stations (station_id) on delete cascade + ) tablespace pg_default; \ No newline at end of file diff --git a/apps/picsa-server/supabase/types/index.ts b/apps/picsa-server/supabase/types/index.ts index 7da0ffaea..4ee3347ff 100644 --- a/apps/picsa-server/supabase/types/index.ts +++ b/apps/picsa-server/supabase/types/index.ts @@ -34,6 +34,37 @@ export interface Database { } public: { Tables: { + climate_products: { + Row: { + created_at: string + data: Json + id: number + station_id: number | null + type: string + } + Insert: { + created_at?: string + data: Json + id?: number + station_id?: number | null + type: string + } + Update: { + created_at?: string + data?: Json + id?: number + station_id?: number | null + type?: string + } + Relationships: [ + { + foreignKeyName: "climate_products_station_id_fkey" + columns: ["station_id"] + referencedRelation: "climate_stations" + referencedColumns: ["station_id"] + } + ] + } climate_stations: { Row: { country_code: string | null From 841b2660f6d06362fb4ac6eb38913bb78cd5b8d1 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Thu, 11 Jan 2024 16:14:34 -0800 Subject: [PATCH 08/15] refactor: picsa-loading component --- libs/shared/src/features/loading/loading.scss | 6 +++++- libs/shared/src/features/loading/loading.ts | 14 ++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/libs/shared/src/features/loading/loading.scss b/libs/shared/src/features/loading/loading.scss index 5ade40b0c..5919e8002 100644 --- a/libs/shared/src/features/loading/loading.scss +++ b/libs/shared/src/features/loading/loading.scss @@ -1,4 +1,8 @@ +:host { + display: block; + width: 100px; +} .picsa-loading-container { - width: 50px; + width: 100%; margin: auto; } diff --git a/libs/shared/src/features/loading/loading.ts b/libs/shared/src/features/loading/loading.ts index 530064df8..9f42ca9a7 100644 --- a/libs/shared/src/features/loading/loading.ts +++ b/libs/shared/src/features/loading/loading.ts @@ -1,21 +1,27 @@ +import { CommonModule } from '@angular/common'; import { Component, Input } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import SVGS from './svgs'; @Component({ + imports: [CommonModule], selector: 'picsa-loading', templateUrl: './loading.html', styleUrls: ['./loading.scss'], + standalone: true, }) export class PicsaLoadingComponent { - @Input() set name(name: IPicsaLoaders) { + @Input() name: IPicsaLoaders; + loaderHtml: SafeHtml; + constructor(private sanitizer: DomSanitizer) {} + + ngOnInit() { + const svgName = this.name || 'bars'; // select svg by name (or use default bars) - const svg = name && SVGS[name] ? SVGS[name] : SVGS.BARS; + const svg = SVGS[svgName] || SVGS.BARS; this.loaderHtml = this.convertSVGToImageData(svg); } - loaderHtml: SafeHtml; - constructor(private sanitizer: DomSanitizer) {} /********************************************************************** * Helper Methods From fe5272463f7a15ff293cbd274bac1ba0dae9192c Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Thu, 11 Jan 2024 16:15:29 -0800 Subject: [PATCH 09/15] refactor: climate api meta --- .../climate-data/climate-data-api.service.ts | 40 +++++++++++-------- .../climate-data/climate-data.service.ts | 4 +- .../home/climate-data-home.component.html | 5 ++- .../pages/home/climate-data-home.component.ts | 3 +- .../rainfall-summary/rainfall-summary.html | 4 +- .../rainfall-summary/rainfall-summary.ts | 20 +++++----- .../pages/station/station-page.component.html | 2 + .../pages/station/station-page.component.ts | 4 +- 8 files changed, 47 insertions(+), 35 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts index e0ce49b28..414381324 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data-api.service.ts @@ -10,18 +10,24 @@ const API_ENDPOINT = 'https://api.epicsa.idems.international'; type ICallbackClient = (id:string)=>ReturnType> /** Type-safe http client with added support for callbacks */ -type IClient = ReturnType> & {useCallback:ICallbackClient} +type IClient = ReturnType> & {useMeta:ICallbackClient} + + + +interface IMetaEntry{ + status:'pending' | 'success' | 'error' | 'unknown', + rawResponse?:Response, +} -type ICallbackStatus = 'pending' | 'success' | 'error' | 'unknown' /** * Service to interact with external PICSA Climate API * All methods are exposed through a type-safe `client` property, or can additionally use - * a custom client that includes status notification updates via the `useCallback` method + * a custom client that includes status notification updates via the `useMeta` method * @example * Use custom callback that will show user notifications on error and record to service * ```ts - * const {response, data, error} = await api.useCallback('myRequestId').POST(...) + * const {response, data, error} = await api.useMeta('myRequestId').POST(...) * ``` * Use default client without additional callbacks * ```ts @@ -31,38 +37,38 @@ type ICallbackStatus = 'pending' | 'success' | 'error' | 'unknown' @Injectable({ providedIn: 'root' }) export class ClimateDataApiService { - /** List of monitored callbacks with status */ - public cb:Record={} + /** Request additional meta by id */ + public meta:Record={} /** Http client with type-definitions for API endpoints */ public client:IClient constructor(private notificationService:PicsaNotificationService) { const client = createClient({ baseUrl: API_ENDPOINT,mode:'cors' }); - this.client = {...client,useCallback:()=>{ + this.client = {...client,useMeta:()=>{ return client }} } /** - * Provide a callback id which will be monitored alongside requests - * and provide user notification on error + * Provide an id which which will be updated alongside requests. + * The cache will also include interceptors to provide user notification on error **/ - public useCallback(id:string){ + public useMeta(id:string){ const customFetch = this.createCustomFetchClient(id) - const callbackClient = createClient({ baseUrl: API_ENDPOINT,mode:'cors',fetch:customFetch }); - return callbackClient + const customClient = createClient({ baseUrl: API_ENDPOINT,mode:'cors',fetch:customFetch }); + return customClient } /** Create a custom implementation of fetch client to handle status updates and notifications */ private createCustomFetchClient(id:string){ return async (...args:Parameters)=>{ - this.cb[id]='pending' + this.meta[id]={status:'pending'} const response = await window.fetch(...args); - const callbackStatus = this.getCallbackStatus(response.status) - this.cb[id]= callbackStatus - if(callbackStatus==='error' ){ + this.meta[id].status = this.getCallbackStatus(response.status) + this.meta[id].rawResponse = response + if(this.meta[id].status ==='error' ){ await this.showCustomFetchErrorMessage(id,response) } return response @@ -84,7 +90,7 @@ export class ClimateDataApiService { } } - private getCallbackStatus(statusCode:number):ICallbackStatus{ + private getCallbackStatus(statusCode:number):IMetaEntry['status']{ if(200 <= statusCode && statusCode <=299) return 'success' if(400 <= statusCode && statusCode <=499) return 'error' if(500 <= statusCode && statusCode <=599) return 'error' diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts index 71afb9dc8..48bfc8dc5 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts @@ -37,9 +37,7 @@ export class ClimateDataDashboardService extends PicsaAsyncService { } private async checkStatus() { - const { client } = this.api; - const { response } = await client.GET('/v1/status/'); - this.apiStatus = response.status; + await this.api.useMeta('serverStatus').GET('/v1/status/'); } private async listStations() { diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.html index db6cd8153..39cc37626 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.html @@ -1,9 +1,10 @@

Climate Data

- @if(service.apiStatus; as status){ + @if(api.meta.serverStatus; as meta){
- Server Status {{ status }} + Server Status + {{ meta.rawResponse?.status }}
}
diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.ts index 182f99612..094aa4b0c 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/home/climate-data-home.component.ts @@ -5,6 +5,7 @@ import { RouterModule } from '@angular/router'; import { IMapMarker, PicsaMapComponent } from '@picsa/shared/features/map/map'; import { ClimateDataDashboardService, IStationRow } from '../../climate-data.service'; +import { ClimateDataApiService } from '../../climate-data-api.service'; @Component({ selector: 'dashboard-climate-data-home', @@ -18,7 +19,7 @@ export class ClimateDataHomeComponent implements OnInit { public mapMarkers: IMapMarker[]; - constructor(public service: ClimateDataDashboardService) {} + constructor(public service: ClimateDataDashboardService, public api: ClimateDataApiService) {} async ngOnInit() { await this.service.ready(); diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html index e637d417d..4e148a04f 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html @@ -1,7 +1,7 @@

Rainfall Summary

-
diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts index cb7250d96..265e9e452 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts @@ -34,6 +34,10 @@ export class RainfallSummaryComponent implements AfterViewInit { paginatorSizes: [25, 50], }; + public get res() { + return this.api.meta.rainfallSummary || {}; + } + ngAfterViewInit() { // TODO - retrieve from server this.loadData(RAINFALL_SUMMARY_MOCK); @@ -41,15 +45,13 @@ export class RainfallSummaryComponent implements AfterViewInit { public async refreshData() { const { station_id, country_code } = this.service.activeStation; - const { response, data, error } = await this.api - .useCallback('rainfallSummary') - .POST('/v1/annual_rainfall_summaries/', { - body: { - country: `${country_code}` as any, - station_id: `${station_id}`, - summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], - }, - }); + const { response, data, error } = await this.api.useMeta('rainfallSummary').POST('/v1/annual_rainfall_summaries/', { + body: { + country: `${country_code}` as any, + station_id: `${station_id}`, + summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], + }, + }); console.log({ response, data, error }); this.loadData(data as any); } diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html index 85c9b7253..437e5e86b 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.html @@ -12,5 +12,7 @@

{{ station.station_name }}

} + } @else { + }
diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts index 1e3cf7685..dd0d3e5e1 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts @@ -1,6 +1,8 @@ import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; import { ActivatedRoute } from '@angular/router'; +import { PicsaLoadingComponent } from '@picsa/shared/features/loading/loading'; import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; import { ClimateDataDashboardService } from '../../climate-data.service'; @@ -9,7 +11,7 @@ import { RainfallSummaryComponent } from './components/rainfall-summary/rainfall @Component({ selector: 'dashboard-station-page', standalone: true, - imports: [CommonModule, RainfallSummaryComponent], + imports: [CommonModule, MatProgressBarModule, RainfallSummaryComponent, PicsaLoadingComponent], templateUrl: './station-page.component.html', styleUrls: ['./station-page.component.scss'], }) From eb65301c42946d43b0400a077192187d4e3bdda1 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Fri, 12 Jan 2024 18:36:33 -0800 Subject: [PATCH 10/15] feat: climate-data service route subscriptions --- .../climate-data/climate-data.service.ts | 31 +++++++++++-- .../pages/station/station-page.component.ts | 15 +----- libs/utils/angular.ts | 46 ++++++++++++++++++- 3 files changed, 74 insertions(+), 18 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts index 48bfc8dc5..9749b00b8 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts @@ -1,9 +1,12 @@ import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; // eslint-disable-next-line @nx/enforce-module-boundaries import { Database } from '@picsa/server-types'; import { PicsaAsyncService } from '@picsa/shared/services/asyncService.service'; +import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; import { SupabaseService } from '@picsa/shared/services/core/supabase'; import { IStorageEntry } from '@picsa/shared/services/core/supabase/services/supabase-storage.service'; +import { ngRouterMergedSnapshot$ } from '@picsa/utils'; import { ClimateDataApiService } from './climate-data-api.service'; @@ -22,18 +25,40 @@ export class ClimateDataDashboardService extends PicsaAsyncService { public stations: IStationRow[] = []; public activeStation: IStationRow; - constructor(private supabaseService: SupabaseService, private api: ClimateDataApiService) { + constructor( + private supabaseService: SupabaseService, + private api: ClimateDataApiService, + private notificationService: PicsaNotificationService, + private router: Router + ) { super(); + this.ready(); } public override async init() { await this.supabaseService.ready(); await this.checkStatus(); await this.listStations(); + this.subscribeToRouteChanges(); } - public setActiveStation(station: IStationRow) { - this.activeStation = station; + private setActiveStation(id: number) { + const station = this.stations.find((station) => station.station_id === id); + if (station) { + this.activeStation = station; + } else { + this.activeStation = undefined as any; + this.notificationService.showUserNotification({ matIcon: 'error', message: `Station data not found` }); + } + } + + private subscribeToRouteChanges() { + // Use merged router as service cannot access route params directly like component + ngRouterMergedSnapshot$(this.router).subscribe(({ params }) => { + if (params.stationId) { + this.setActiveStation(parseInt(params.stationId)); + } + }); } private async checkStatus() { diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts index dd0d3e5e1..1c7e35ab5 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts @@ -1,9 +1,7 @@ import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { ActivatedRoute } from '@angular/router'; import { PicsaLoadingComponent } from '@picsa/shared/features/loading/loading'; -import { PicsaNotificationService } from '@picsa/shared/services/core/notification.service'; import { ClimateDataDashboardService } from '../../climate-data.service'; import { RainfallSummaryComponent } from './components/rainfall-summary/rainfall-summary'; @@ -27,20 +25,9 @@ export class StationPageComponent implements OnInit { }; } - constructor( - private service: ClimateDataDashboardService, - private route: ActivatedRoute, - private notificationService: PicsaNotificationService - ) {} + constructor(private service: ClimateDataDashboardService) {} async ngOnInit() { await this.service.ready(); - const { stationId } = this.route.snapshot.params; - const station = this.service.stations.find((station) => station.station_id === parseInt(stationId)); - if (station) { - this.service.setActiveStation(station); - } else { - this.notificationService.showUserNotification({ matIcon: 'error', message: `Station data not found` }); - } } } diff --git a/libs/utils/angular.ts b/libs/utils/angular.ts index 60ce40726..188c23ba8 100644 --- a/libs/utils/angular.ts +++ b/libs/utils/angular.ts @@ -1,4 +1,12 @@ -import type { Route, Router } from '@angular/router'; +import { + NavigationEnd, + type ActivatedRoute, + type ActivatedRouteSnapshot, + type Params, + type Route, + type Router, +} from '@angular/router'; +import { filter, map, startWith } from 'rxjs'; export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) { if (parentModule) { @@ -24,3 +32,39 @@ export function registerEmbeddedRoutes(routes: Route[], router: Router, prefix: const filteredRoutes = router.config.filter((route) => !route.path?.startsWith(prefix)); router.resetConfig([...filteredRoutes, ...mappedRoutes]); } + +/** + * When accessing ActivatedRoute from a provider router hierarchy includes all routers, not just + * current view router (as identified when using from within a component) + * + * Workaround to check all nested routers for params and combined. Adapted from: + * https://medium.com/simars/ngrx-router-store-reduce-select-route-params-6baff607dd9 + */ + +function mergeRouterSnapshots(router: Router) { + const merged: Partial = { data: {}, params: {}, queryParams: {} }; + let route: ActivatedRoute | undefined = router.routerState.root; + while (route !== undefined) { + const { data, params, queryParams } = route.snapshot; + merged.data = { ...merged.data, ...data }; + merged.params = { ...merged.params, ...params }; + merged.queryParams = { ...merged.queryParams, ...queryParams }; + route = route.children.find((child) => child.outlet === 'primary'); + } + return merged as ActivatedRouteSnapshot; +} + +/** + * Subscribe to snapshot across all active routers + * This may be useful in cases where a service wants to subscribe to route parameter changes + * (default behaviour would only detect changes to top-most route) + * + * Adapted from https://github.com/angular/angular/issues/46891#issuecomment-1190590046 + */ +export function ngRouterMergedSnapshot$(router: Router) { + return router.events.pipe( + filter((e) => e instanceof NavigationEnd), + map(() => mergeRouterSnapshots(router)), + startWith(mergeRouterSnapshots(router)) + ); +} From a5c2baa344d171dd87af2c9b48dc5b6c03352402 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Fri, 12 Jan 2024 18:36:52 -0800 Subject: [PATCH 11/15] feat: climate rainfall summary db --- .../rainfall-summary/rainfall-summary.ts | 30 +++++++++++++++---- ...20240112001154_climate_products_create.sql | 3 +- apps/picsa-server/supabase/seed.sql | 4 +++ 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts index 265e9e452..f50b218bd 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts @@ -4,10 +4,10 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatTabsModule } from '@angular/material/tabs'; import { IDataTableOptions, PicsaDataTableComponent } from '@picsa/shared/features/data-table'; +import { SupabaseService } from '@picsa/shared/services/core/supabase'; import { ClimateDataDashboardService } from '../../../../climate-data.service'; import { ClimateDataApiService } from '../../../../climate-data-api.service'; -import { RAINFALL_SUMMARY_MOCK } from './rainfall-summary.spec'; interface IRainfallSummary { data: any[]; @@ -27,7 +27,8 @@ export class RainfallSummaryComponent implements AfterViewInit { constructor( public api: ClimateDataApiService, private service: ClimateDataDashboardService, - private cdr: ChangeDetectorRef + private cdr: ChangeDetectorRef, + private supabase: SupabaseService ) {} public tableOptions: IDataTableOptions = { @@ -38,9 +39,19 @@ export class RainfallSummaryComponent implements AfterViewInit { return this.api.meta.rainfallSummary || {}; } - ngAfterViewInit() { - // TODO - retrieve from server - this.loadData(RAINFALL_SUMMARY_MOCK); + private get db() { + return this.supabase.db.table('climate_products'); + } + + async ngAfterViewInit() { + const { station_id } = this.service.activeStation; + // Load data stored in supabase db if available. Otherwise load from api + const { data } = await this.db.select('*').eq('station_id', station_id).eq('type', 'rainfallSummary').single(); + if (data) { + this.loadData(data?.data || { data: [], metadata: {} }); + } else { + await this.refreshData(); + } } public async refreshData() { @@ -52,8 +63,15 @@ export class RainfallSummaryComponent implements AfterViewInit { summaries: ['annual_rain', 'start_rains', 'end_rains', 'end_season', 'seasonal_rain', 'seasonal_length'], }, }); - console.log({ response, data, error }); + console.log('rainfallSummary', { response, data, error }); this.loadData(data as any); + // TODO - generalise way to persist db updates from api queries + const dbRes = await this.supabase.db.table('climate_products').upsert({ + data, + station_id, + type: 'rainfallSummary', + }); + console.log('climate data persist', dbRes); } private loadData(summary: IRainfallSummary) { diff --git a/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql b/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql index be03125c0..2f691ac5d 100644 --- a/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql +++ b/apps/picsa-server/supabase/migrations/20240112001154_climate_products_create.sql @@ -1,10 +1,9 @@ create table public.climate_products ( - id bigint generated by default as identity, created_at timestamp with time zone not null default now(), station_id bigint null, type text not null, data jsonb not null, - constraint climate_products_pkey primary key (id), + constraint climate_products_pkey primary key (station_id, type), constraint climate_products_station_id_fkey foreign key (station_id) references climate_stations (station_id) on delete cascade ) tablespace pg_default; \ No newline at end of file diff --git a/apps/picsa-server/supabase/seed.sql b/apps/picsa-server/supabase/seed.sql index e69de29bb..f3f351705 100644 --- a/apps/picsa-server/supabase/seed.sql +++ b/apps/picsa-server/supabase/seed.sql @@ -0,0 +1,4 @@ +-- CC note - copy csv not supported in supabase +-- https://github.com/orgs/supabase/discussions/9314 + +-- COPY climate_stations FROM 'data/climate_stations_rows.csv' WITH (FORMAT csv); \ No newline at end of file From 5ba41d328ce29b03972ec3696378b68105fa29ce Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Fri, 12 Jan 2024 18:52:22 -0800 Subject: [PATCH 12/15] chore: route tidying --- .../dashboard/src/app/app.component.html | 14 ++------------ apps/picsa-apps/dashboard/src/app/app.component.ts | 8 ++++---- apps/picsa-apps/dashboard/src/app/app.routes.ts | 5 +++++ 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/app.component.html b/apps/picsa-apps/dashboard/src/app/app.component.html index 1330340b3..64c995e17 100644 --- a/apps/picsa-apps/dashboard/src/app/app.component.html +++ b/apps/picsa-apps/dashboard/src/app/app.component.html @@ -27,12 +27,7 @@ @for (link of navLinks; track link.href) { -
+ {{ link.label }} } @@ -40,12 +35,7 @@
Global Admin
@for (link of globalLinks; track link.href) { - + {{ link.label }} } diff --git a/apps/picsa-apps/dashboard/src/app/app.component.ts b/apps/picsa-apps/dashboard/src/app/app.component.ts index 20d61aaf4..9a68d4a97 100644 --- a/apps/picsa-apps/dashboard/src/app/app.component.ts +++ b/apps/picsa-apps/dashboard/src/app/app.component.ts @@ -22,10 +22,10 @@ export class AppComponent implements AfterViewInit { title = 'picsa-apps-dashboard'; navLinks: INavLink[] = [ - { - label: 'Home', - href: '/', - }, + // { + // label: 'Home', + // href: '', + // }, { label: 'Resources', href: '/resources', diff --git a/apps/picsa-apps/dashboard/src/app/app.routes.ts b/apps/picsa-apps/dashboard/src/app/app.routes.ts index 3245ea90c..4f079dc74 100644 --- a/apps/picsa-apps/dashboard/src/app/app.routes.ts +++ b/apps/picsa-apps/dashboard/src/app/app.routes.ts @@ -9,4 +9,9 @@ export const appRoutes: Route[] = [ path: 'climate-data', loadChildren: () => import('./modules/climate-data/climate-data.module').then((m) => m.ClimateDataModule), }, + { + path: '', + redirectTo: 'resources', + pathMatch: 'full', + }, ]; From a6c0a9299dedd8624e542576da4f432ef7099090 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Fri, 12 Jan 2024 19:20:27 -0800 Subject: [PATCH 13/15] feat: data-table csv export --- .../rainfall-summary/rainfall-summary.ts | 1 + .../data-table/data-table.component.html | 24 ++++++++++++------- .../data-table/data-table.component.ts | 19 ++++++++++++--- package.json | 1 + yarn.lock | 8 +++++++ 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts index f50b218bd..9fe7655b5 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.ts @@ -75,6 +75,7 @@ export class RainfallSummaryComponent implements AfterViewInit { } private loadData(summary: IRainfallSummary) { + this.tableOptions.exportFilename = `${this.service.activeStation.station_name}_rainfallSummary.csv`; this.summary = summary; this.cdr.markForCheck(); } diff --git a/libs/shared/src/features/data-table/data-table.component.html b/libs/shared/src/features/data-table/data-table.component.html index d9766576f..b85436fc8 100644 --- a/libs/shared/src/features/data-table/data-table.component.html +++ b/libs/shared/src/features/data-table/data-table.component.html @@ -1,11 +1,19 @@ - -@if(tableOptions.search){ - - Search Data - - search - -} +
+ + @if(tableOptions.search){ + + Search Data + + search + + } + + @if(tableOptions.exportFilename){ + + } +
diff --git a/libs/shared/src/features/data-table/data-table.component.ts b/libs/shared/src/features/data-table/data-table.component.ts index 4709630dd..8b1e75c11 100644 --- a/libs/shared/src/features/data-table/data-table.component.ts +++ b/libs/shared/src/features/data-table/data-table.component.ts @@ -1,21 +1,26 @@ import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, ViewChild } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort, MatSortModule } from '@angular/material/sort'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; +import download from 'downloadjs'; +import { unparse } from 'papaparse'; export interface IDataTableOptions { /** Optional list of columns to display (default selects first keys from first data entry) */ displayColumns?: string[]; - /** Specify whether to include column sort headers (default true) */ - sort?: boolean; + /** Provide filename to export data as csv. If omitted export option will not be presented */ + exportFilename?: string; /** Specify size options to show in page paginator, e.g. [5,10,25] or just [25] (no paginator if left blank) */ paginatorSizes?: number[]; /** Specify whether to enable search input box and table filtering (will include all data during filter) */ search?: boolean; + /** Specify whether to include column sort headers (default true) */ + sort?: boolean; /** Bind to row click events */ handleRowClick?: (row: any) => void; } @@ -33,6 +38,7 @@ export interface IDataTableOptions { standalone: true, imports: [ CommonModule, + MatButtonModule, MatFormFieldModule, MatIconModule, MatInputModule, @@ -55,9 +61,10 @@ export class PicsaDataTableComponent implements OnChanges { public tableOptions: Required = { displayColumns: [], - sort: true, + exportFilename: '', paginatorSizes: [], search: true, + sort: true, handleRowClick: () => null, }; @@ -74,6 +81,12 @@ export class PicsaDataTableComponent implements OnChanges { this.dataSource.filter = value.trim().toLowerCase(); } + public handleExport() { + const { displayColumns, exportFilename } = this.tableOptions; + const csv = unparse(this.dataSource.filteredData, { columns: displayColumns }); + download(csv, exportFilename, 'text/csv'); + } + private loadData(data: T[] = [], overrides: IDataTableOptions = {}) { // Assign default columns from first data entry if not specified const displayColumns = overrides.displayColumns || Object.keys(data[0] || {}); diff --git a/package.json b/package.json index 386795c7d..437dc9808 100644 --- a/package.json +++ b/package.json @@ -137,6 +137,7 @@ "@swc-node/register": "~1.6.7", "@swc/core": "~1.3.85", "@types/c3": "^0.7.8", + "@types/downloadjs": "^1.4.6", "@types/hammerjs": "^2.0.41", "@types/intro.js": "^5.1.1", "@types/jest": "29.4.4", diff --git a/yarn.lock b/yarn.lock index c8466eb94..89118e008 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8162,6 +8162,13 @@ __metadata: languageName: node linkType: hard +"@types/downloadjs@npm:^1.4.6": + version: 1.4.6 + resolution: "@types/downloadjs@npm:1.4.6" + checksum: 0e98425946c12315a7b9646edb75285bcc0fda2d59f9d296fa3bf9455ef62d6d73383c52ee86eec50e9b4cee6f9af9dba78c6fb56bc6444395b4ac4f76a86ec0 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.3": version: 3.7.4 resolution: "@types/eslint-scope@npm:3.7.4" @@ -18991,6 +18998,7 @@ __metadata: "@swc-node/register": ~1.6.7 "@swc/core": ~1.3.85 "@types/c3": ^0.7.8 + "@types/downloadjs": ^1.4.6 "@types/hammerjs": ^2.0.41 "@types/intro.js": ^5.1.1 "@types/jest": 29.4.4 From b45cfbc4ce9b36202477b3777fedb03e1fac9b1a Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Fri, 12 Jan 2024 19:32:15 -0800 Subject: [PATCH 14/15] chore: code tidying --- .../climate-data/pages/station/station-page.component.ts | 3 +-- libs/shared/src/features/dialog/dialog.module.ts | 4 ++-- libs/shared/src/features/loading/index.ts | 9 --------- 3 files changed, 3 insertions(+), 13 deletions(-) delete mode 100644 libs/shared/src/features/loading/index.ts diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts index 1c7e35ab5..85d6a6439 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/station-page.component.ts @@ -1,7 +1,6 @@ import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { PicsaLoadingComponent } from '@picsa/shared/features/loading/loading'; import { ClimateDataDashboardService } from '../../climate-data.service'; import { RainfallSummaryComponent } from './components/rainfall-summary/rainfall-summary'; @@ -9,7 +8,7 @@ import { RainfallSummaryComponent } from './components/rainfall-summary/rainfall @Component({ selector: 'dashboard-station-page', standalone: true, - imports: [CommonModule, MatProgressBarModule, RainfallSummaryComponent, PicsaLoadingComponent], + imports: [CommonModule, MatProgressBarModule, RainfallSummaryComponent], templateUrl: './station-page.component.html', styleUrls: ['./station-page.component.scss'], }) diff --git a/libs/shared/src/features/dialog/dialog.module.ts b/libs/shared/src/features/dialog/dialog.module.ts index 70bc01e37..0b9719d87 100644 --- a/libs/shared/src/features/dialog/dialog.module.ts +++ b/libs/shared/src/features/dialog/dialog.module.ts @@ -6,7 +6,7 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { PicsaTranslateModule } from '../../modules'; -import { PicsaLoadingModule } from '../loading'; +import { PicsaLoadingComponent } from '../loading/loading'; import { PicsaActionDialog, PicsaDialogComponent, PicsaSelectDialog } from './components/dialog'; import { PicsaDialogService } from './dialog.service'; @@ -18,7 +18,7 @@ import { PicsaDialogService } from './dialog.service'; MatButtonModule, MatIconModule, A11yModule, - PicsaLoadingModule, + PicsaLoadingComponent, PicsaTranslateModule, CommonModule, ], diff --git a/libs/shared/src/features/loading/index.ts b/libs/shared/src/features/loading/index.ts deleted file mode 100644 index fdcd3b176..000000000 --- a/libs/shared/src/features/loading/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from '@angular/core'; - -import { PicsaLoadingComponent } from './loading'; - -@NgModule({ - declarations: [PicsaLoadingComponent], - exports: [PicsaLoadingComponent] -}) -export class PicsaLoadingModule {} From 60e4e7d2cdf96f679eada708264d23418e048ba6 Mon Sep 17 00:00:00 2001 From: chrismclarke Date: Mon, 15 Jan 2024 17:50:15 -0800 Subject: [PATCH 15/15] chore: code tidying --- .../src/app/modules/climate-data/climate-data.service.ts | 6 ++++++ .../components/rainfall-summary/rainfall-summary.html | 4 ++-- libs/shared/src/features/map/map.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts index 9749b00b8..e33d57360 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/climate-data.service.ts @@ -72,6 +72,12 @@ export class ClimateDataDashboardService extends PicsaAsyncService { if (error) { throw error; } + if (data.length === 0) { + this.notificationService.showUserNotification({ + matIcon: 'warning', + message: 'climate_stations_rows must be imported into database for this feature to work', + }); + } this.stations = data || []; } } diff --git a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html index 4e148a04f..613ca95f3 100644 --- a/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html +++ b/apps/picsa-apps/dashboard/src/app/modules/climate-data/pages/station/components/rainfall-summary/rainfall-summary.html @@ -13,12 +13,12 @@

Rainfall Summary

- + description diff --git a/libs/shared/src/features/map/map.ts b/libs/shared/src/features/map/map.ts index f0d5be5da..dcdfa4ebd 100644 --- a/libs/shared/src/features/map/map.ts +++ b/libs/shared/src/features/map/map.ts @@ -71,7 +71,7 @@ export class PicsaMapComponent { }); marker.addTo(this.map); }); - if (fitMap) { + if (fitMap && mapMarkers.length > 0) { this.fitMapToMarkers(mapMarkers); } }