diff --git a/public/flags/ad.svg b/public/flags/ad.svg new file mode 100644 index 000000000..4bd91b72b --- /dev/null +++ b/public/flags/ad.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ae.svg b/public/flags/ae.svg new file mode 100644 index 000000000..b59e11352 --- /dev/null +++ b/public/flags/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/af.svg b/public/flags/af.svg new file mode 100644 index 000000000..0b7939c69 --- /dev/null +++ b/public/flags/af.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ag.svg b/public/flags/ag.svg new file mode 100644 index 000000000..9b951b6a5 --- /dev/null +++ b/public/flags/ag.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/ai.svg b/public/flags/ai.svg new file mode 100644 index 000000000..eeaebcf64 --- /dev/null +++ b/public/flags/ai.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/al.svg b/public/flags/al.svg new file mode 100644 index 000000000..15ee8bbe2 --- /dev/null +++ b/public/flags/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/am.svg b/public/flags/am.svg new file mode 100644 index 000000000..a188adfe4 --- /dev/null +++ b/public/flags/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/ao.svg b/public/flags/ao.svg new file mode 100644 index 000000000..46d6600ad --- /dev/null +++ b/public/flags/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/aq.svg b/public/flags/aq.svg new file mode 100644 index 000000000..a4d9a201f --- /dev/null +++ b/public/flags/aq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/ar.svg b/public/flags/ar.svg new file mode 100644 index 000000000..984d6ea6a --- /dev/null +++ b/public/flags/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/arab.svg b/public/flags/arab.svg new file mode 100644 index 000000000..841f11adf --- /dev/null +++ b/public/flags/arab.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/as.svg b/public/flags/as.svg new file mode 100644 index 000000000..b0789e9c9 --- /dev/null +++ b/public/flags/as.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/at.svg b/public/flags/at.svg new file mode 100644 index 000000000..473631911 --- /dev/null +++ b/public/flags/at.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/au.svg b/public/flags/au.svg new file mode 100644 index 000000000..38bb24505 --- /dev/null +++ b/public/flags/au.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/aw.svg b/public/flags/aw.svg new file mode 100644 index 000000000..1f03d61a2 --- /dev/null +++ b/public/flags/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ax.svg b/public/flags/ax.svg new file mode 100644 index 000000000..481d2a33c --- /dev/null +++ b/public/flags/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/az.svg b/public/flags/az.svg new file mode 100644 index 000000000..d692e2250 --- /dev/null +++ b/public/flags/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/ba.svg b/public/flags/ba.svg new file mode 100644 index 000000000..456ca1236 --- /dev/null +++ b/public/flags/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/bb.svg b/public/flags/bb.svg new file mode 100644 index 000000000..5af2bd030 --- /dev/null +++ b/public/flags/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/bd.svg b/public/flags/bd.svg new file mode 100644 index 000000000..86fcfbab0 --- /dev/null +++ b/public/flags/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/be.svg b/public/flags/be.svg new file mode 100644 index 000000000..31d6210c7 --- /dev/null +++ b/public/flags/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/bf.svg b/public/flags/bf.svg new file mode 100644 index 000000000..a5078df3f --- /dev/null +++ b/public/flags/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/bg.svg b/public/flags/bg.svg new file mode 100644 index 000000000..16fe7e0ec --- /dev/null +++ b/public/flags/bg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/bh.svg b/public/flags/bh.svg new file mode 100644 index 000000000..2d131aa59 --- /dev/null +++ b/public/flags/bh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/bi.svg b/public/flags/bi.svg new file mode 100644 index 000000000..36a0d3a68 --- /dev/null +++ b/public/flags/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/bj.svg b/public/flags/bj.svg new file mode 100644 index 000000000..bb27414c0 --- /dev/null +++ b/public/flags/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/bl.svg b/public/flags/bl.svg new file mode 100644 index 000000000..65550d936 --- /dev/null +++ b/public/flags/bl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/bm.svg b/public/flags/bm.svg new file mode 100644 index 000000000..b4df19244 --- /dev/null +++ b/public/flags/bm.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bn.svg b/public/flags/bn.svg new file mode 100644 index 000000000..b536651cf --- /dev/null +++ b/public/flags/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bo.svg b/public/flags/bo.svg new file mode 100644 index 000000000..b69b23089 --- /dev/null +++ b/public/flags/bo.svg @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bq.svg b/public/flags/bq.svg new file mode 100644 index 000000000..4b9168e13 --- /dev/null +++ b/public/flags/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/br.svg b/public/flags/br.svg new file mode 100644 index 000000000..be62f6ff9 --- /dev/null +++ b/public/flags/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bs.svg b/public/flags/bs.svg new file mode 100644 index 000000000..0faa4bbac --- /dev/null +++ b/public/flags/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/bt.svg b/public/flags/bt.svg new file mode 100644 index 000000000..81f6788c0 --- /dev/null +++ b/public/flags/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bv.svg b/public/flags/bv.svg new file mode 100644 index 000000000..dcc6ad106 --- /dev/null +++ b/public/flags/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/bw.svg b/public/flags/bw.svg new file mode 100644 index 000000000..328e13c11 --- /dev/null +++ b/public/flags/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/by.svg b/public/flags/by.svg new file mode 100644 index 000000000..16730e0e9 --- /dev/null +++ b/public/flags/by.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/bz.svg b/public/flags/bz.svg new file mode 100644 index 000000000..e99106a56 --- /dev/null +++ b/public/flags/bz.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ca.svg b/public/flags/ca.svg new file mode 100644 index 000000000..84cde348e --- /dev/null +++ b/public/flags/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/cc.svg b/public/flags/cc.svg new file mode 100644 index 000000000..f6c1755ce --- /dev/null +++ b/public/flags/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/cd.svg b/public/flags/cd.svg new file mode 100644 index 000000000..ea1772873 --- /dev/null +++ b/public/flags/cd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/cefta.svg b/public/flags/cefta.svg new file mode 100644 index 000000000..ff1a19bb6 --- /dev/null +++ b/public/flags/cefta.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/cf.svg b/public/flags/cf.svg new file mode 100644 index 000000000..b0625db75 --- /dev/null +++ b/public/flags/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/cg.svg b/public/flags/cg.svg new file mode 100644 index 000000000..f7868842f --- /dev/null +++ b/public/flags/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/ch.svg b/public/flags/ch.svg new file mode 100644 index 000000000..52578bfde --- /dev/null +++ b/public/flags/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/ci.svg b/public/flags/ci.svg new file mode 100644 index 000000000..2abf64119 --- /dev/null +++ b/public/flags/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/ck.svg b/public/flags/ck.svg new file mode 100644 index 000000000..43a105763 --- /dev/null +++ b/public/flags/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/cl.svg b/public/flags/cl.svg new file mode 100644 index 000000000..5fb6096b7 --- /dev/null +++ b/public/flags/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/cm.svg b/public/flags/cm.svg new file mode 100644 index 000000000..ed4952b43 --- /dev/null +++ b/public/flags/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/cn.svg b/public/flags/cn.svg new file mode 100644 index 000000000..e152f0166 --- /dev/null +++ b/public/flags/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/co.svg b/public/flags/co.svg new file mode 100644 index 000000000..5804bfe48 --- /dev/null +++ b/public/flags/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/cp.svg b/public/flags/cp.svg new file mode 100644 index 000000000..ea3bfdcb4 --- /dev/null +++ b/public/flags/cp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/cr.svg b/public/flags/cr.svg new file mode 100644 index 000000000..4e7889e22 --- /dev/null +++ b/public/flags/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/cu.svg b/public/flags/cu.svg new file mode 100644 index 000000000..a28490235 --- /dev/null +++ b/public/flags/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/cv.svg b/public/flags/cv.svg new file mode 100644 index 000000000..1170cd767 --- /dev/null +++ b/public/flags/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/cw.svg b/public/flags/cw.svg new file mode 100644 index 000000000..57062abaa --- /dev/null +++ b/public/flags/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/cx.svg b/public/flags/cx.svg new file mode 100644 index 000000000..f14536f03 --- /dev/null +++ b/public/flags/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/cy.svg b/public/flags/cy.svg new file mode 100644 index 000000000..39a87c870 --- /dev/null +++ b/public/flags/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/cz.svg b/public/flags/cz.svg new file mode 100644 index 000000000..dcd0a6b1e --- /dev/null +++ b/public/flags/cz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/de.svg b/public/flags/de.svg new file mode 100644 index 000000000..05a0a69ae --- /dev/null +++ b/public/flags/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/dg.svg b/public/flags/dg.svg new file mode 100644 index 000000000..0b8baf149 --- /dev/null +++ b/public/flags/dg.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/dj.svg b/public/flags/dj.svg new file mode 100644 index 000000000..f5534d2a0 --- /dev/null +++ b/public/flags/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/dk.svg b/public/flags/dk.svg new file mode 100644 index 000000000..5aaaa1906 --- /dev/null +++ b/public/flags/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/dm.svg b/public/flags/dm.svg new file mode 100644 index 000000000..6f8f36646 --- /dev/null +++ b/public/flags/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/do.svg b/public/flags/do.svg new file mode 100644 index 000000000..867e12d1a --- /dev/null +++ b/public/flags/do.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/dz.svg b/public/flags/dz.svg new file mode 100644 index 000000000..8abcd258e --- /dev/null +++ b/public/flags/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/eac.svg b/public/flags/eac.svg new file mode 100644 index 000000000..385fe9d66 --- /dev/null +++ b/public/flags/eac.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ec.svg b/public/flags/ec.svg new file mode 100644 index 000000000..9545c5ddd --- /dev/null +++ b/public/flags/ec.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ee.svg b/public/flags/ee.svg new file mode 100644 index 000000000..f1f0a8de2 --- /dev/null +++ b/public/flags/ee.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/eg.svg b/public/flags/eg.svg new file mode 100644 index 000000000..3ef77112c --- /dev/null +++ b/public/flags/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/eh.svg b/public/flags/eh.svg new file mode 100644 index 000000000..ae509fa8b --- /dev/null +++ b/public/flags/eh.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/er.svg b/public/flags/er.svg new file mode 100644 index 000000000..0f140e092 --- /dev/null +++ b/public/flags/er.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/es-ct.svg b/public/flags/es-ct.svg new file mode 100644 index 000000000..a06a2e3d3 --- /dev/null +++ b/public/flags/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/es-ga.svg b/public/flags/es-ga.svg new file mode 100644 index 000000000..2fecfa090 --- /dev/null +++ b/public/flags/es-ga.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/es-pv.svg b/public/flags/es-pv.svg new file mode 100644 index 000000000..7d383ed5e --- /dev/null +++ b/public/flags/es-pv.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/es.svg b/public/flags/es.svg new file mode 100644 index 000000000..0e6338fac --- /dev/null +++ b/public/flags/es.svg @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/et.svg b/public/flags/et.svg new file mode 100644 index 000000000..eb7f3c423 --- /dev/null +++ b/public/flags/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/eu.svg b/public/flags/eu.svg new file mode 100644 index 000000000..4a07fbe58 --- /dev/null +++ b/public/flags/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/fi.svg b/public/flags/fi.svg new file mode 100644 index 000000000..aba2ef3b0 --- /dev/null +++ b/public/flags/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/fj.svg b/public/flags/fj.svg new file mode 100644 index 000000000..7a1cade2d --- /dev/null +++ b/public/flags/fj.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/fk.svg b/public/flags/fk.svg new file mode 100644 index 000000000..21e654f22 --- /dev/null +++ b/public/flags/fk.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/fm.svg b/public/flags/fm.svg new file mode 100644 index 000000000..4f7d31324 --- /dev/null +++ b/public/flags/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/fo.svg b/public/flags/fo.svg new file mode 100644 index 000000000..eec994583 --- /dev/null +++ b/public/flags/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/fr.svg b/public/flags/fr.svg new file mode 100644 index 000000000..0f60170fc --- /dev/null +++ b/public/flags/fr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/ga.svg b/public/flags/ga.svg new file mode 100644 index 000000000..113a5b58a --- /dev/null +++ b/public/flags/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/gb-eng.svg b/public/flags/gb-eng.svg new file mode 100644 index 000000000..ee48fed99 --- /dev/null +++ b/public/flags/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/gb-nir.svg b/public/flags/gb-nir.svg new file mode 100644 index 000000000..77a91f071 --- /dev/null +++ b/public/flags/gb-nir.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/gb-sct.svg b/public/flags/gb-sct.svg new file mode 100644 index 000000000..44d38cc10 --- /dev/null +++ b/public/flags/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/gb-wls.svg b/public/flags/gb-wls.svg new file mode 100644 index 000000000..31268824c --- /dev/null +++ b/public/flags/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/gb.svg b/public/flags/gb.svg new file mode 100644 index 000000000..ce4d1e000 --- /dev/null +++ b/public/flags/gb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/gd.svg b/public/flags/gd.svg new file mode 100644 index 000000000..c3b2cef56 --- /dev/null +++ b/public/flags/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ge.svg b/public/flags/ge.svg new file mode 100644 index 000000000..53b709fc1 --- /dev/null +++ b/public/flags/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/gf.svg b/public/flags/gf.svg new file mode 100644 index 000000000..9cf5aa2b1 --- /dev/null +++ b/public/flags/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/gg.svg b/public/flags/gg.svg new file mode 100644 index 000000000..480f5503f --- /dev/null +++ b/public/flags/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/gh.svg b/public/flags/gh.svg new file mode 100644 index 000000000..a64271b84 --- /dev/null +++ b/public/flags/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/gi.svg b/public/flags/gi.svg new file mode 100644 index 000000000..7b26bb2e9 --- /dev/null +++ b/public/flags/gi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/gl.svg b/public/flags/gl.svg new file mode 100644 index 000000000..eaa817b1a --- /dev/null +++ b/public/flags/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/gm.svg b/public/flags/gm.svg new file mode 100644 index 000000000..2a8f72443 --- /dev/null +++ b/public/flags/gm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/gn.svg b/public/flags/gn.svg new file mode 100644 index 000000000..ae81f9d7b --- /dev/null +++ b/public/flags/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/gp.svg b/public/flags/gp.svg new file mode 100644 index 000000000..9dd8e3bba --- /dev/null +++ b/public/flags/gp.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/gq.svg b/public/flags/gq.svg new file mode 100644 index 000000000..5fd7b6a17 --- /dev/null +++ b/public/flags/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/gr.svg b/public/flags/gr.svg new file mode 100644 index 000000000..a2688303a --- /dev/null +++ b/public/flags/gr.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/gs.svg b/public/flags/gs.svg new file mode 100644 index 000000000..1db72cffb --- /dev/null +++ b/public/flags/gs.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/gt.svg b/public/flags/gt.svg new file mode 100644 index 000000000..97ea6aa5b --- /dev/null +++ b/public/flags/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/gu.svg b/public/flags/gu.svg new file mode 100644 index 000000000..57024874f --- /dev/null +++ b/public/flags/gu.svg @@ -0,0 +1,23 @@ + + + + + + + + + + G + U + A + M + + + + + + + + + + diff --git a/public/flags/gw.svg b/public/flags/gw.svg new file mode 100644 index 000000000..61a054812 --- /dev/null +++ b/public/flags/gw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/gy.svg b/public/flags/gy.svg new file mode 100644 index 000000000..35e2f08bb --- /dev/null +++ b/public/flags/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/hk.svg b/public/flags/hk.svg new file mode 100644 index 000000000..eef02a18b --- /dev/null +++ b/public/flags/hk.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/hm.svg b/public/flags/hm.svg new file mode 100644 index 000000000..1f4d00704 --- /dev/null +++ b/public/flags/hm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/hn.svg b/public/flags/hn.svg new file mode 100644 index 000000000..847df20c7 --- /dev/null +++ b/public/flags/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/hr.svg b/public/flags/hr.svg new file mode 100644 index 000000000..91009eb7d --- /dev/null +++ b/public/flags/hr.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ht.svg b/public/flags/ht.svg new file mode 100644 index 000000000..a61736cda --- /dev/null +++ b/public/flags/ht.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/hu.svg b/public/flags/hu.svg new file mode 100644 index 000000000..088242d93 --- /dev/null +++ b/public/flags/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/ic.svg b/public/flags/ic.svg new file mode 100644 index 000000000..096603d4b --- /dev/null +++ b/public/flags/ic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/id.svg b/public/flags/id.svg new file mode 100644 index 000000000..df0801815 --- /dev/null +++ b/public/flags/id.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/ie.svg b/public/flags/ie.svg new file mode 100644 index 000000000..e13de22df --- /dev/null +++ b/public/flags/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/il.svg b/public/flags/il.svg new file mode 100644 index 000000000..0a2a6d99b --- /dev/null +++ b/public/flags/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/im.svg b/public/flags/im.svg new file mode 100644 index 000000000..cff1c4b2b --- /dev/null +++ b/public/flags/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/in.svg b/public/flags/in.svg new file mode 100644 index 000000000..26a02cff0 --- /dev/null +++ b/public/flags/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/io.svg b/public/flags/io.svg new file mode 100644 index 000000000..6f1a8ca20 --- /dev/null +++ b/public/flags/io.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/iq.svg b/public/flags/iq.svg new file mode 100644 index 000000000..a64456d4f --- /dev/null +++ b/public/flags/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/flags/ir.svg b/public/flags/ir.svg new file mode 100644 index 000000000..095d9717e --- /dev/null +++ b/public/flags/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/is.svg b/public/flags/is.svg new file mode 100644 index 000000000..26510b99e --- /dev/null +++ b/public/flags/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/it.svg b/public/flags/it.svg new file mode 100644 index 000000000..b9596d050 --- /dev/null +++ b/public/flags/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/je.svg b/public/flags/je.svg new file mode 100644 index 000000000..8a9fdd57e --- /dev/null +++ b/public/flags/je.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/jm.svg b/public/flags/jm.svg new file mode 100644 index 000000000..07f023c79 --- /dev/null +++ b/public/flags/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/jo.svg b/public/flags/jo.svg new file mode 100644 index 000000000..fbbd68104 --- /dev/null +++ b/public/flags/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/jp.svg b/public/flags/jp.svg new file mode 100644 index 000000000..118686a0e --- /dev/null +++ b/public/flags/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/ke.svg b/public/flags/ke.svg new file mode 100644 index 000000000..110600ec9 --- /dev/null +++ b/public/flags/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/kg.svg b/public/flags/kg.svg new file mode 100644 index 000000000..2ab176a3b --- /dev/null +++ b/public/flags/kg.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/kh.svg b/public/flags/kh.svg new file mode 100644 index 000000000..4b63b327d --- /dev/null +++ b/public/flags/kh.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ki.svg b/public/flags/ki.svg new file mode 100644 index 000000000..14dab1530 --- /dev/null +++ b/public/flags/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/km.svg b/public/flags/km.svg new file mode 100644 index 000000000..d9b775119 --- /dev/null +++ b/public/flags/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/kn.svg b/public/flags/kn.svg new file mode 100644 index 000000000..42d5adfe5 --- /dev/null +++ b/public/flags/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/kp.svg b/public/flags/kp.svg new file mode 100644 index 000000000..253930406 --- /dev/null +++ b/public/flags/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/kr.svg b/public/flags/kr.svg new file mode 100644 index 000000000..af3d35eb5 --- /dev/null +++ b/public/flags/kr.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/flags/kw.svg b/public/flags/kw.svg new file mode 100644 index 000000000..b2fe54faa --- /dev/null +++ b/public/flags/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/ky.svg b/public/flags/ky.svg new file mode 100644 index 000000000..e55d5207d --- /dev/null +++ b/public/flags/ky.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/kz.svg b/public/flags/kz.svg new file mode 100644 index 000000000..f9f9b98fe --- /dev/null +++ b/public/flags/kz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/la.svg b/public/flags/la.svg new file mode 100644 index 000000000..af70d0dcc --- /dev/null +++ b/public/flags/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/lb.svg b/public/flags/lb.svg new file mode 100644 index 000000000..65201091b --- /dev/null +++ b/public/flags/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/lc.svg b/public/flags/lc.svg new file mode 100644 index 000000000..aa18fac83 --- /dev/null +++ b/public/flags/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/li.svg b/public/flags/li.svg new file mode 100644 index 000000000..bf8181029 --- /dev/null +++ b/public/flags/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/lk.svg b/public/flags/lk.svg new file mode 100644 index 000000000..08212a5b8 --- /dev/null +++ b/public/flags/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/lr.svg b/public/flags/lr.svg new file mode 100644 index 000000000..74382abbe --- /dev/null +++ b/public/flags/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/ls.svg b/public/flags/ls.svg new file mode 100644 index 000000000..605c087af --- /dev/null +++ b/public/flags/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/lt.svg b/public/flags/lt.svg new file mode 100644 index 000000000..52ada948c --- /dev/null +++ b/public/flags/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/lu.svg b/public/flags/lu.svg new file mode 100644 index 000000000..5c0d6daf0 --- /dev/null +++ b/public/flags/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/lv.svg b/public/flags/lv.svg new file mode 100644 index 000000000..5af883c70 --- /dev/null +++ b/public/flags/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/ly.svg b/public/flags/ly.svg new file mode 100644 index 000000000..4375a9eaf --- /dev/null +++ b/public/flags/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/ma.svg b/public/flags/ma.svg new file mode 100644 index 000000000..804166728 --- /dev/null +++ b/public/flags/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/mc.svg b/public/flags/mc.svg new file mode 100644 index 000000000..04173a415 --- /dev/null +++ b/public/flags/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/md.svg b/public/flags/md.svg new file mode 100644 index 000000000..18a77ea92 --- /dev/null +++ b/public/flags/md.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/me.svg b/public/flags/me.svg new file mode 100644 index 000000000..37e96b00a --- /dev/null +++ b/public/flags/me.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/mf.svg b/public/flags/mf.svg new file mode 100644 index 000000000..8d3285b86 --- /dev/null +++ b/public/flags/mf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/mg.svg b/public/flags/mg.svg new file mode 100644 index 000000000..4f901cad0 --- /dev/null +++ b/public/flags/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/mh.svg b/public/flags/mh.svg new file mode 100644 index 000000000..1db268d22 --- /dev/null +++ b/public/flags/mh.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/mk.svg b/public/flags/mk.svg new file mode 100644 index 000000000..0ee923a35 --- /dev/null +++ b/public/flags/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/ml.svg b/public/flags/ml.svg new file mode 100644 index 000000000..665d6b243 --- /dev/null +++ b/public/flags/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/mm.svg b/public/flags/mm.svg new file mode 100644 index 000000000..391f0c70b --- /dev/null +++ b/public/flags/mm.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/flags/mn.svg b/public/flags/mn.svg new file mode 100644 index 000000000..998fe5ceb --- /dev/null +++ b/public/flags/mn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/mo.svg b/public/flags/mo.svg new file mode 100644 index 000000000..bd5cbcd98 --- /dev/null +++ b/public/flags/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/mp.svg b/public/flags/mp.svg new file mode 100644 index 000000000..6179fb7d7 --- /dev/null +++ b/public/flags/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/mq.svg b/public/flags/mq.svg new file mode 100644 index 000000000..dcf005443 --- /dev/null +++ b/public/flags/mq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/mr.svg b/public/flags/mr.svg new file mode 100644 index 000000000..ffe8c114f --- /dev/null +++ b/public/flags/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/ms.svg b/public/flags/ms.svg new file mode 100644 index 000000000..c06dfccf8 --- /dev/null +++ b/public/flags/ms.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/mt.svg b/public/flags/mt.svg new file mode 100644 index 000000000..dbfa6092c --- /dev/null +++ b/public/flags/mt.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/mu.svg b/public/flags/mu.svg new file mode 100644 index 000000000..2afe1d384 --- /dev/null +++ b/public/flags/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/mv.svg b/public/flags/mv.svg new file mode 100644 index 000000000..c9a6c5bcc --- /dev/null +++ b/public/flags/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/mw.svg b/public/flags/mw.svg new file mode 100644 index 000000000..25bbf2efc --- /dev/null +++ b/public/flags/mw.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/mx.svg b/public/flags/mx.svg new file mode 100644 index 000000000..bb991c17f --- /dev/null +++ b/public/flags/mx.svg @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/my.svg b/public/flags/my.svg new file mode 100644 index 000000000..b10f76e61 --- /dev/null +++ b/public/flags/my.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/mz.svg b/public/flags/mz.svg new file mode 100644 index 000000000..bb751482c --- /dev/null +++ b/public/flags/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/na.svg b/public/flags/na.svg new file mode 100644 index 000000000..36ac8d77e --- /dev/null +++ b/public/flags/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/nc.svg b/public/flags/nc.svg new file mode 100644 index 000000000..1cc81eb01 --- /dev/null +++ b/public/flags/nc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/ne.svg b/public/flags/ne.svg new file mode 100644 index 000000000..a96b027ab --- /dev/null +++ b/public/flags/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/nf.svg b/public/flags/nf.svg new file mode 100644 index 000000000..d9be1566c --- /dev/null +++ b/public/flags/nf.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/ng.svg b/public/flags/ng.svg new file mode 100644 index 000000000..62813e861 --- /dev/null +++ b/public/flags/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/ni.svg b/public/flags/ni.svg new file mode 100644 index 000000000..847f33125 --- /dev/null +++ b/public/flags/ni.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/nl.svg b/public/flags/nl.svg new file mode 100644 index 000000000..eb0e360f3 --- /dev/null +++ b/public/flags/nl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/no.svg b/public/flags/no.svg new file mode 100644 index 000000000..939920d40 --- /dev/null +++ b/public/flags/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/np.svg b/public/flags/np.svg new file mode 100644 index 000000000..498a1000f --- /dev/null +++ b/public/flags/np.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/nr.svg b/public/flags/nr.svg new file mode 100644 index 000000000..c8c827e70 --- /dev/null +++ b/public/flags/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/nu.svg b/public/flags/nu.svg new file mode 100644 index 000000000..ce316723d --- /dev/null +++ b/public/flags/nu.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/flags/nz.svg b/public/flags/nz.svg new file mode 100644 index 000000000..ee617d6f2 --- /dev/null +++ b/public/flags/nz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/om.svg b/public/flags/om.svg new file mode 100644 index 000000000..2021f9386 --- /dev/null +++ b/public/flags/om.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/pa.svg b/public/flags/pa.svg new file mode 100644 index 000000000..108c40bff --- /dev/null +++ b/public/flags/pa.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/pc.svg b/public/flags/pc.svg new file mode 100644 index 000000000..a38dd212b --- /dev/null +++ b/public/flags/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/pe.svg b/public/flags/pe.svg new file mode 100644 index 000000000..9ba4c6124 --- /dev/null +++ b/public/flags/pe.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/pf.svg b/public/flags/pf.svg new file mode 100644 index 000000000..92b2803c5 --- /dev/null +++ b/public/flags/pf.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/pg.svg b/public/flags/pg.svg new file mode 100644 index 000000000..8c8a2b8eb --- /dev/null +++ b/public/flags/pg.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/ph.svg b/public/flags/ph.svg new file mode 100644 index 000000000..7ae39fec8 --- /dev/null +++ b/public/flags/ph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/pk.svg b/public/flags/pk.svg new file mode 100644 index 000000000..e71cd9261 --- /dev/null +++ b/public/flags/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/pl.svg b/public/flags/pl.svg new file mode 100644 index 000000000..8c43577b0 --- /dev/null +++ b/public/flags/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/pm.svg b/public/flags/pm.svg new file mode 100644 index 000000000..950c6e8c0 --- /dev/null +++ b/public/flags/pm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/pn.svg b/public/flags/pn.svg new file mode 100644 index 000000000..0bae95e0d --- /dev/null +++ b/public/flags/pn.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/pr.svg b/public/flags/pr.svg new file mode 100644 index 000000000..eb302ad45 --- /dev/null +++ b/public/flags/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/ps.svg b/public/flags/ps.svg new file mode 100644 index 000000000..2c10079c1 --- /dev/null +++ b/public/flags/ps.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/pt.svg b/public/flags/pt.svg new file mode 100644 index 000000000..95ad6d79d --- /dev/null +++ b/public/flags/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/pw.svg b/public/flags/pw.svg new file mode 100644 index 000000000..ef6be7983 --- /dev/null +++ b/public/flags/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/py.svg b/public/flags/py.svg new file mode 100644 index 000000000..e7e1bced9 --- /dev/null +++ b/public/flags/py.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/qa.svg b/public/flags/qa.svg new file mode 100644 index 000000000..897a21bca --- /dev/null +++ b/public/flags/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/re.svg b/public/flags/re.svg new file mode 100644 index 000000000..41d87d938 --- /dev/null +++ b/public/flags/re.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/ro.svg b/public/flags/ro.svg new file mode 100644 index 000000000..e6cf0f6e1 --- /dev/null +++ b/public/flags/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/rs.svg b/public/flags/rs.svg new file mode 100644 index 000000000..d10ebb3e4 --- /dev/null +++ b/public/flags/rs.svg @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/ru.svg b/public/flags/ru.svg new file mode 100644 index 000000000..485c24e0d --- /dev/null +++ b/public/flags/ru.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/rw.svg b/public/flags/rw.svg new file mode 100644 index 000000000..3d484fd90 --- /dev/null +++ b/public/flags/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/sa.svg b/public/flags/sa.svg new file mode 100644 index 000000000..fd6418eef --- /dev/null +++ b/public/flags/sa.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sb.svg b/public/flags/sb.svg new file mode 100644 index 000000000..398c70847 --- /dev/null +++ b/public/flags/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/sc.svg b/public/flags/sc.svg new file mode 100644 index 000000000..2996bac45 --- /dev/null +++ b/public/flags/sc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/sd.svg b/public/flags/sd.svg new file mode 100644 index 000000000..0b9abdc8a --- /dev/null +++ b/public/flags/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/se.svg b/public/flags/se.svg new file mode 100644 index 000000000..8f3f134d2 --- /dev/null +++ b/public/flags/se.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/sg.svg b/public/flags/sg.svg new file mode 100644 index 000000000..60625e97f --- /dev/null +++ b/public/flags/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/sh-ac.svg b/public/flags/sh-ac.svg new file mode 100644 index 000000000..85cd9d1c5 --- /dev/null +++ b/public/flags/sh-ac.svg @@ -0,0 +1,690 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sh-hl.svg b/public/flags/sh-hl.svg new file mode 100644 index 000000000..4cb199048 --- /dev/null +++ b/public/flags/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sh-ta.svg b/public/flags/sh-ta.svg new file mode 100644 index 000000000..7933fc21b --- /dev/null +++ b/public/flags/sh-ta.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sh.svg b/public/flags/sh.svg new file mode 100644 index 000000000..2fd372750 --- /dev/null +++ b/public/flags/sh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/si.svg b/public/flags/si.svg new file mode 100644 index 000000000..33a03c625 --- /dev/null +++ b/public/flags/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sj.svg b/public/flags/sj.svg new file mode 100644 index 000000000..ecb9c796b --- /dev/null +++ b/public/flags/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/sk.svg b/public/flags/sk.svg new file mode 100644 index 000000000..d1868226c --- /dev/null +++ b/public/flags/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/sl.svg b/public/flags/sl.svg new file mode 100644 index 000000000..b649f1bd5 --- /dev/null +++ b/public/flags/sl.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/flags/sm.svg b/public/flags/sm.svg new file mode 100644 index 000000000..30c249015 --- /dev/null +++ b/public/flags/sm.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sn.svg b/public/flags/sn.svg new file mode 100644 index 000000000..ff9cf2eb3 --- /dev/null +++ b/public/flags/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/so.svg b/public/flags/so.svg new file mode 100644 index 000000000..4848dbe0b --- /dev/null +++ b/public/flags/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/sr.svg b/public/flags/sr.svg new file mode 100644 index 000000000..0ca359627 --- /dev/null +++ b/public/flags/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/ss.svg b/public/flags/ss.svg new file mode 100644 index 000000000..bb50fac15 --- /dev/null +++ b/public/flags/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/st.svg b/public/flags/st.svg new file mode 100644 index 000000000..c5e7c5ce6 --- /dev/null +++ b/public/flags/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/sv.svg b/public/flags/sv.svg new file mode 100644 index 000000000..14e98b058 --- /dev/null +++ b/public/flags/sv.svg @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sx.svg b/public/flags/sx.svg new file mode 100644 index 000000000..758f483c9 --- /dev/null +++ b/public/flags/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/sy.svg b/public/flags/sy.svg new file mode 100644 index 000000000..39e63f7fb --- /dev/null +++ b/public/flags/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/sz.svg b/public/flags/sz.svg new file mode 100644 index 000000000..12ae0cdc6 --- /dev/null +++ b/public/flags/sz.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/tc.svg b/public/flags/tc.svg new file mode 100644 index 000000000..0b5af9811 --- /dev/null +++ b/public/flags/tc.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/td.svg b/public/flags/td.svg new file mode 100644 index 000000000..8201312b6 --- /dev/null +++ b/public/flags/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/tf.svg b/public/flags/tf.svg new file mode 100644 index 000000000..1ab7f6a8f --- /dev/null +++ b/public/flags/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/tg.svg b/public/flags/tg.svg new file mode 100644 index 000000000..32c28af4f --- /dev/null +++ b/public/flags/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/flags/th.svg b/public/flags/th.svg new file mode 100644 index 000000000..35141d39a --- /dev/null +++ b/public/flags/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/tj.svg b/public/flags/tj.svg new file mode 100644 index 000000000..9232ec1d3 --- /dev/null +++ b/public/flags/tj.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/tk.svg b/public/flags/tk.svg new file mode 100644 index 000000000..9ff92e5ee --- /dev/null +++ b/public/flags/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/tl.svg b/public/flags/tl.svg new file mode 100644 index 000000000..4fbb245e9 --- /dev/null +++ b/public/flags/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/flags/tm.svg b/public/flags/tm.svg new file mode 100644 index 000000000..ac39386b8 --- /dev/null +++ b/public/flags/tm.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/tn.svg b/public/flags/tn.svg new file mode 100644 index 000000000..ab3e36e4b --- /dev/null +++ b/public/flags/tn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/to.svg b/public/flags/to.svg new file mode 100644 index 000000000..3f1b60079 --- /dev/null +++ b/public/flags/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/flags/tr.svg b/public/flags/tr.svg new file mode 100644 index 000000000..0fe9017c9 --- /dev/null +++ b/public/flags/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/tt.svg b/public/flags/tt.svg new file mode 100644 index 000000000..0f7f26e7e --- /dev/null +++ b/public/flags/tt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/tv.svg b/public/flags/tv.svg new file mode 100644 index 000000000..098b91610 --- /dev/null +++ b/public/flags/tv.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/tw.svg b/public/flags/tw.svg new file mode 100644 index 000000000..83f4e442e --- /dev/null +++ b/public/flags/tw.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/tz.svg b/public/flags/tz.svg new file mode 100644 index 000000000..846cbb5ad --- /dev/null +++ b/public/flags/tz.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/flags/ua.svg b/public/flags/ua.svg new file mode 100644 index 000000000..7ceb89463 --- /dev/null +++ b/public/flags/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/flags/ug.svg b/public/flags/ug.svg new file mode 100644 index 000000000..a82a8fcf6 --- /dev/null +++ b/public/flags/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/um.svg b/public/flags/um.svg new file mode 100644 index 000000000..b8d4502e6 --- /dev/null +++ b/public/flags/um.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/un.svg b/public/flags/un.svg new file mode 100644 index 000000000..322569d14 --- /dev/null +++ b/public/flags/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/flags/us.svg b/public/flags/us.svg new file mode 100644 index 000000000..a7220476a --- /dev/null +++ b/public/flags/us.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/flags/uy.svg b/public/flags/uy.svg new file mode 100644 index 000000000..f6b08b280 --- /dev/null +++ b/public/flags/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/uz.svg b/public/flags/uz.svg new file mode 100644 index 000000000..3385bc5aa --- /dev/null +++ b/public/flags/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/va.svg b/public/flags/va.svg new file mode 100644 index 000000000..9348ad238 --- /dev/null +++ b/public/flags/va.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/vc.svg b/public/flags/vc.svg new file mode 100644 index 000000000..21d41a805 --- /dev/null +++ b/public/flags/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/flags/ve.svg b/public/flags/ve.svg new file mode 100644 index 000000000..665135ba6 --- /dev/null +++ b/public/flags/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/vg.svg b/public/flags/vg.svg new file mode 100644 index 000000000..cfcbbba42 --- /dev/null +++ b/public/flags/vg.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/vi.svg b/public/flags/vi.svg new file mode 100644 index 000000000..081f8c6c9 --- /dev/null +++ b/public/flags/vi.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/vn.svg b/public/flags/vn.svg new file mode 100644 index 000000000..49a68f02e --- /dev/null +++ b/public/flags/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/flags/vu.svg b/public/flags/vu.svg new file mode 100644 index 000000000..0e695b95a --- /dev/null +++ b/public/flags/vu.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/wf.svg b/public/flags/wf.svg new file mode 100644 index 000000000..5ba64e4da --- /dev/null +++ b/public/flags/wf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/ws.svg b/public/flags/ws.svg new file mode 100644 index 000000000..ab08fdb91 --- /dev/null +++ b/public/flags/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/xk.svg b/public/flags/xk.svg new file mode 100644 index 000000000..28bdeadbd --- /dev/null +++ b/public/flags/xk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/xx.svg b/public/flags/xx.svg new file mode 100644 index 000000000..5a44cb701 --- /dev/null +++ b/public/flags/xx.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/flags/ye.svg b/public/flags/ye.svg new file mode 100644 index 000000000..2ccb23bf6 --- /dev/null +++ b/public/flags/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/flags/yt.svg b/public/flags/yt.svg new file mode 100644 index 000000000..41a4408cb --- /dev/null +++ b/public/flags/yt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/flags/za.svg b/public/flags/za.svg new file mode 100644 index 000000000..397696eda --- /dev/null +++ b/public/flags/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/flags/zm.svg b/public/flags/zm.svg new file mode 100644 index 000000000..a2084fb28 --- /dev/null +++ b/public/flags/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/flags/zw.svg b/public/flags/zw.svg new file mode 100644 index 000000000..98e1a42d4 --- /dev/null +++ b/public/flags/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/dashboard-header.webp b/public/images/dashboard-header.webp new file mode 100644 index 000000000..4a79de494 Binary files /dev/null and b/public/images/dashboard-header.webp differ diff --git a/public/images/graphic-1.png b/public/images/graphic-1.png new file mode 100644 index 000000000..41f753875 Binary files /dev/null and b/public/images/graphic-1.png differ diff --git a/public/images/graphic-2.png b/public/images/graphic-2.png new file mode 100644 index 000000000..9a61624d1 Binary files /dev/null and b/public/images/graphic-2.png differ diff --git a/public/images/graphic-3.png b/public/images/graphic-3.png new file mode 100644 index 000000000..c90143bc3 Binary files /dev/null and b/public/images/graphic-3.png differ diff --git a/public/images/graphic-4.png b/public/images/graphic-4.png new file mode 100644 index 000000000..265490f86 Binary files /dev/null and b/public/images/graphic-4.png differ diff --git a/public/images/graphic-5.png b/public/images/graphic-5.png new file mode 100644 index 000000000..a91366c84 Binary files /dev/null and b/public/images/graphic-5.png differ diff --git a/public/images/graphic-6.png b/public/images/graphic-6.png new file mode 100644 index 000000000..a91366c84 Binary files /dev/null and b/public/images/graphic-6.png differ diff --git a/public/images/graphic-7.png b/public/images/graphic-7.png new file mode 100644 index 000000000..c93023b6a Binary files /dev/null and b/public/images/graphic-7.png differ diff --git a/public/images/img-tree.png b/public/images/img-tree.png new file mode 100644 index 000000000..cb05f45e5 Binary files /dev/null and b/public/images/img-tree.png differ diff --git a/public/images/map-img.png b/public/images/map-img.png index feb3dc919..7164094a7 100644 Binary files a/public/images/map-img.png and b/public/images/map-img.png differ diff --git a/src/admin/apiProvider/utils/entryFormat.ts b/src/admin/apiProvider/utils/entryFormat.ts index e02829c6e..99d7abcb3 100644 --- a/src/admin/apiProvider/utils/entryFormat.ts +++ b/src/admin/apiProvider/utils/entryFormat.ts @@ -32,8 +32,10 @@ export const convertDateFormat = (value: any) => { const formattedDay = dateObject.getUTCDate().toString().padStart(2, "0"); const formattedMonth = (dateObject.getUTCMonth() + 1).toString().padStart(2, "0"); const formattedYear = dateObject.getUTCFullYear(); - const formattedDate = `${formattedDay}/${formattedMonth}/${formattedYear}`; + const formattedHours = dateObject.getUTCHours().toString().padStart(2, "0"); + const formattedMinutes = dateObject.getUTCMinutes().toString().padStart(2, "0"); + const formattedDate = `${formattedDay}/${formattedMonth}/${formattedYear} ${formattedHours}:${formattedMinutes}`; return formattedDate; } - return format(new Date(value), "dd/MM/yyyy"); + return format(new Date(value), "dd/MM/yyyy HH:mm"); }; diff --git a/src/admin/components/ResourceTabs/AuditLogTab/components/AuditLogTable.tsx b/src/admin/components/ResourceTabs/AuditLogTab/components/AuditLogTable.tsx index b7183733e..025690d8f 100644 --- a/src/admin/components/ResourceTabs/AuditLogTab/components/AuditLogTable.tsx +++ b/src/admin/components/ResourceTabs/AuditLogTab/components/AuditLogTable.tsx @@ -15,19 +15,24 @@ const formattedTextStatus = (text: string) => { return text?.replace(/-/g, " ").replace(/\b\w/g, char => char.toUpperCase()); }; -const getTextForActionTable = (item: { type: string; status: string; request_removed: boolean }): string => { - if (item.type === "comment") { +const getTextForActionTable = ( + item: { type: string; status: string; request_removed: boolean }, + entity?: string +): string => { + if (item.type === "comment" && entity == "site-polygon") { return "New Comment"; - } else if (item.type === "status") { + } else if (item.type === "status" && entity == "site-polygon") { return `New Status: ${formattedTextStatus(item.status)}`; } else if (item.type === "change-request-updated") { return "Change Request Updated"; - } else if (item.request_removed) { + } else if (item.request_removed && entity == "site-polygon") { return "Change Request Removed"; } else if (item.type === "reminder-sent") { return "Reminder Sent"; - } else { + } else if (item.type === "change-request") { return "Change Requested"; + } else { + return "-"; } }; @@ -42,10 +47,30 @@ const AuditLogTable: FC<{ const menuOverflowContainerRef = useRef(null); const route = useRouter(); const isAdmin = route.asPath.includes("admin"); - const columnTitles = isAdmin - ? ["Date", "User", "Action", "Comments", "Attachments", ""] - : ["Date", "User", "Action", "Comments", "Attachments"]; - const gridColumnSize = isAdmin ? "grid-cols-[14%_20%_15%_27%_19%_5%]" : "grid-cols-[14%_20%_15%_30%_21%]"; + + const getColumnTitles = (entity: string, isAdmin: boolean) => { + if (entity === "site-polygon") { + return isAdmin + ? ["Date", "User", "Action", "Comments", "Attachments", ""] + : ["Date", "User", "Action", "Comments", "Attachments"]; + } else { + return isAdmin + ? ["Date", "User", "Status", "Change Request", "Comments", "Attachments", ""] + : ["Date", "User", "Status", "Change Request", "Comments", "Attachments"]; + } + }; + + const getGridColumnSize = (entity: string, isAdmin: boolean) => { + if (entity === "site-polygon") { + return isAdmin ? "grid-cols-[14%_20%_15%_27%_19%_5%]" : "grid-cols-[14%_20%_15%_30%_21%]"; + } else { + return isAdmin ? "grid-cols-[14%_10%_10%_15%_27%_19%_5%]" : "grid-cols-[14%_10%_10%_15%_30%_21%]"; + } + }; + + const columnTitles = getColumnTitles(auditData?.entity as string, isAdmin); + const gridColumnSize = getGridColumnSize(auditData?.entity as string, isAdmin); + const { openNotification } = useNotificationContext(); const t = useT(); const { mutate } = useDeleteV2ENTITYUUIDIDDelete({ @@ -87,8 +112,16 @@ const AuditLogTable: FC<{ {generateUserName(item.first_name, item.last_name)} + + + {formattedTextStatus(item.status as string) ?? "-"} + + - {getTextForActionTable(item as { type: string; status: string; request_removed: boolean })} + {getTextForActionTable( + item as { type: string; status: string; request_removed: boolean }, + auditData?.entity + )} {item.comment ?? "-"} diff --git a/src/admin/components/ResourceTabs/GalleryTab/GalleryTab.tsx b/src/admin/components/ResourceTabs/GalleryTab/GalleryTab.tsx index c5fb99ca8..7e32e558d 100644 --- a/src/admin/components/ResourceTabs/GalleryTab/GalleryTab.tsx +++ b/src/admin/components/ResourceTabs/GalleryTab/GalleryTab.tsx @@ -1,11 +1,19 @@ +import { t } from "@transifex/native"; import { FC, useEffect, useState } from "react"; import { TabbedShowLayout, TabProps, useShowContext } from "react-admin"; import { When } from "react-if"; +import Button from "@/components/elements/Button/Button"; import ImageGallery from "@/components/elements/ImageGallery/ImageGallery"; import ImageGalleryItem from "@/components/elements/ImageGallery/ImageGalleryItem"; +import { VARIANT_FILE_INPUT_MODAL_ADD_IMAGES } from "@/components/elements/Inputs/FileInput/FileInputVariants"; +import Text from "@/components/elements/Text/Text"; +import ModalAddImages from "@/components/extensive/Modal/ModalAddImages"; +import { ModalId } from "@/components/extensive/Modal/ModalConst"; +import { useModalContext } from "@/context/modal.provider"; import { useDeleteV2FilesUUID, useGetV2MODELUUIDFiles } from "@/generated/apiComponents"; -import { EntityName } from "@/types/common"; +import { getCurrentPathEntity } from "@/helpers/entity"; +import { EntityName, FileType } from "@/types/common"; interface IProps extends Omit { label?: string; @@ -19,6 +27,7 @@ const GalleryTab: FC = ({ label, entity, ...rest }) => { const [searchString, setSearchString] = useState(""); const [isGeotagged, setIsGeotagged] = useState(0); const [sortOrder, setSortOrder] = useState<"asc" | "desc">("desc"); + const { openModal, closeModal } = useModalContext(); const [filters, setFilters] = useState<{ isPublic: boolean | undefined; modelType: string | undefined }>({ isPublic: undefined, modelType: undefined @@ -63,41 +72,81 @@ const GalleryTab: FC = ({ label, entity, ...rest }) => { refetch(); }, [filters, pagination, searchString, isGeotagged, sortOrder, refetch]); + const openFormModalHandlerUploadImages = () => { + openModal( + ModalId.UPLOAD_IMAGES, + closeModal(ModalId.UPLOAD_IMAGES)} + content={t( + `if operations have begun, please upload images or videos of this specific ${getCurrentPathEntity()}` + )} + acceptedTypes={FileType.Image.split(",") as FileType[]} + primaryButtonText={t("Save")} + primaryButtonProps={{ + className: "px-8 py-3", + variant: "primary", + onClick: () => { + refetch(); + closeModal(ModalId.UPLOAD_IMAGES); + } + }} + model={resource} + collection="media" + entityData={ctx?.record} + setErrorMessage={message => { + console.error(message); + }} + /> + ); + }; + return ( - ({ - //@ts-ignore - uuid: file.uuid!, - fullImageUrl: file.file_url!, - thumbnailImageUrl: file.thumb_url!, - label: file.model_name!, - isPublic: file.is_public!, - isGeotagged: file?.location?.lat !== 0 && file?.location?.lng !== 0, - isCover: file.is_cover, - raw: file - })) || [] - } - entity={resource} - entityData={ctx.record} - pageCount={data?.meta?.last_page || 1} - onGalleryStateChange={pagination => { - setPagination(pagination); - }} - onDeleteConfirm={uuid => deleteFile({ pathParams: { uuid } })} - ItemComponent={ImageGalleryItem} - onChangeSearch={setSearchString} - onChangeGeotagged={setIsGeotagged} - reloadGalleryImages={refetch} - sortOrder={sortOrder} - setSortOrder={setSortOrder} - setFilters={setFilters} - className="mt-3" - isAdmin={true} - isLoading={isLoading} - /> +
+
+ {t("All Images")} + +
+ ({ + //@ts-ignore + uuid: file.uuid!, + fullImageUrl: file.file_url!, + thumbnailImageUrl: file.thumb_url!, + label: file.model_name!, + isPublic: file.is_public!, + isGeotagged: file?.location?.lat !== 0 && file?.location?.lng !== 0, + isCover: file.is_cover, + raw: file + })) || [] + } + entity={resource} + entityData={ctx.record} + pageCount={data?.meta?.last_page || 1} + onGalleryStateChange={pagination => { + setPagination(pagination); + }} + onDeleteConfirm={uuid => deleteFile({ pathParams: { uuid } })} + ItemComponent={ImageGalleryItem} + onChangeSearch={setSearchString} + onChangeGeotagged={setIsGeotagged} + reloadGalleryImages={refetch} + sortOrder={sortOrder} + setSortOrder={setSortOrder} + setFilters={setFilters} + className="mt-3" + isAdmin={true} + isLoading={isLoading} + /> +
); diff --git a/src/admin/components/ResourceTabs/PolygonReviewTab/components/PolygonDrawer/PolygonDrawer.tsx b/src/admin/components/ResourceTabs/PolygonReviewTab/components/PolygonDrawer/PolygonDrawer.tsx index da1e0de09..34f2d0b79 100644 --- a/src/admin/components/ResourceTabs/PolygonReviewTab/components/PolygonDrawer/PolygonDrawer.tsx +++ b/src/admin/components/ResourceTabs/PolygonReviewTab/components/PolygonDrawer/PolygonDrawer.tsx @@ -22,7 +22,7 @@ import { usePostV2TerrafundClipPolygonsPolygonUuid, usePostV2TerrafundValidationPolygon } from "@/generated/apiComponents"; -import { ClippedPolygonsResponse, SitePolygon, SitePolygonsDataResponse } from "@/generated/apiSchemas"; +import { ClippedPolygonResponse, SitePolygon, SitePolygonsDataResponse } from "@/generated/apiSchemas"; import { parseValidationData } from "@/helpers/polygonValidation"; import CommentarySection from "../CommentarySection/CommentarySection"; @@ -122,7 +122,7 @@ const PolygonDrawer = ({ ); const { mutate: clipPolygons } = usePostV2TerrafundClipPolygonsPolygonUuid({ - onSuccess: async (data: ClippedPolygonsResponse) => { + onSuccess: async (data: ClippedPolygonResponse) => { if (!data.updated_polygons?.length) { openNotification("warning", t("No polygon have been fixed"), t("Please run 'Check Polygons' again.")); hideLoader(); diff --git a/src/admin/components/ResourceTabs/PolygonReviewTab/index.tsx b/src/admin/components/ResourceTabs/PolygonReviewTab/index.tsx index 9878a345b..86d5d276e 100644 --- a/src/admin/components/ResourceTabs/PolygonReviewTab/index.tsx +++ b/src/admin/components/ResourceTabs/PolygonReviewTab/index.tsx @@ -312,14 +312,21 @@ const PolygonReviewTab: FC = props => { hideLoader(); } catch (error) { if (error && typeof error === "object" && "message" in error) { - let errorMessage = error.message as string; - const parsedMessage = JSON.parse(errorMessage); - if (parsedMessage && typeof parsedMessage === "object" && "message" in parsedMessage) { - errorMessage = parsedMessage.message; + let errorMessage = error.message; + if (typeof errorMessage === "string") { + const parsedMessage = JSON.parse(errorMessage); + if (parsedMessage && typeof parsedMessage === "object" && "message" in parsedMessage) { + errorMessage = parsedMessage.message; + } + } + if (errorMessage && typeof errorMessage === "object" && "message" in errorMessage) { + errorMessage = errorMessage.message; } openNotification("error", t("Error uploading file"), errorMessage); + hideLoader(); } else { openNotification("error", t("Error uploading file"), t("An unknown error occurred")); + hideLoader(); } } }; diff --git a/src/assets/icons/about-us.svg b/src/assets/icons/about-us.svg new file mode 100644 index 000000000..97825bfb8 --- /dev/null +++ b/src/assets/icons/about-us.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/chevron-down-dash.svg b/src/assets/icons/chevron-down-dash.svg new file mode 100644 index 000000000..13317d172 --- /dev/null +++ b/src/assets/icons/chevron-down-dash.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/collapse.svg b/src/assets/icons/collapse.svg new file mode 100644 index 000000000..494bea02a --- /dev/null +++ b/src/assets/icons/collapse.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/dashboard-airtable.svg b/src/assets/icons/dashboard-airtable.svg new file mode 100644 index 000000000..38be379f5 --- /dev/null +++ b/src/assets/icons/dashboard-airtable.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/dashboard-reports.svg b/src/assets/icons/dashboard-reports.svg new file mode 100644 index 000000000..e518aa923 --- /dev/null +++ b/src/assets/icons/dashboard-reports.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/dashboards.svg b/src/assets/icons/dashboards.svg new file mode 100644 index 000000000..1156f6d3a --- /dev/null +++ b/src/assets/icons/dashboards.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/edit-pa.svg b/src/assets/icons/edit-pa.svg new file mode 100644 index 000000000..dea031927 --- /dev/null +++ b/src/assets/icons/edit-pa.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/expand.svg b/src/assets/icons/expand.svg new file mode 100644 index 000000000..d0a10a6a7 --- /dev/null +++ b/src/assets/icons/expand.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/framework-programme.svg b/src/assets/icons/framework-programme.svg new file mode 100644 index 000000000..985fa274c --- /dev/null +++ b/src/assets/icons/framework-programme.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/ic-legend-map.svg b/src/assets/icons/ic-legend-map.svg new file mode 100644 index 000000000..9473ace94 --- /dev/null +++ b/src/assets/icons/ic-legend-map.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/ic-terrafund-mini.svg b/src/assets/icons/ic-terrafund-mini.svg new file mode 100644 index 000000000..0bee2e92c --- /dev/null +++ b/src/assets/icons/ic-terrafund-mini.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/pin.svg b/src/assets/icons/pin.svg new file mode 100644 index 000000000..e747b6e0b --- /dev/null +++ b/src/assets/icons/pin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/project-profile.svg b/src/assets/icons/project-profile.svg new file mode 100644 index 000000000..246b98595 --- /dev/null +++ b/src/assets/icons/project-profile.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/targetLand/Agroforest.svg b/src/assets/icons/targetLand/Agroforest.svg new file mode 100644 index 000000000..200c60f07 --- /dev/null +++ b/src/assets/icons/targetLand/Agroforest.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/Mangrove.svg b/src/assets/icons/targetLand/Mangrove.svg new file mode 100644 index 000000000..c42544191 --- /dev/null +++ b/src/assets/icons/targetLand/Mangrove.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/NaturalForest.svg b/src/assets/icons/targetLand/NaturalForest.svg new file mode 100644 index 000000000..b83513634 --- /dev/null +++ b/src/assets/icons/targetLand/NaturalForest.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/OpenNaturalEcosystem.svg b/src/assets/icons/targetLand/OpenNaturalEcosystem.svg new file mode 100644 index 000000000..19bdd4986 --- /dev/null +++ b/src/assets/icons/targetLand/OpenNaturalEcosystem.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/Peatland.svg b/src/assets/icons/targetLand/Peatland.svg new file mode 100644 index 000000000..1492ad904 --- /dev/null +++ b/src/assets/icons/targetLand/Peatland.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/RiparianArea.svg b/src/assets/icons/targetLand/RiparianArea.svg new file mode 100644 index 000000000..d236617a1 --- /dev/null +++ b/src/assets/icons/targetLand/RiparianArea.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/Silvopasture.svg b/src/assets/icons/targetLand/Silvopasture.svg new file mode 100644 index 000000000..1363bccbe --- /dev/null +++ b/src/assets/icons/targetLand/Silvopasture.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/UrbanForest.svg b/src/assets/icons/targetLand/UrbanForest.svg new file mode 100644 index 000000000..faadab658 --- /dev/null +++ b/src/assets/icons/targetLand/UrbanForest.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/icons/targetLand/Woodlot.svg b/src/assets/icons/targetLand/Woodlot.svg new file mode 100644 index 000000000..be75e8a88 --- /dev/null +++ b/src/assets/icons/targetLand/Woodlot.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/elements/Cards/ItemMonitoringCard/__snapshots__/ItemMonitoringCard.stories.storyshot b/src/components/elements/Cards/ItemMonitoringCard/__snapshots__/ItemMonitoringCard.stories.storyshot index d18922244..a540a0dae 100644 --- a/src/components/elements/Cards/ItemMonitoringCard/__snapshots__/ItemMonitoringCard.stories.storyshot +++ b/src/components/elements/Cards/ItemMonitoringCard/__snapshots__/ItemMonitoringCard.stories.storyshot @@ -23,7 +23,7 @@ exports[`Storyshots Components/Elements/Cards/ItemMonitoringCards Default 1`] = className="group relative flex flex-col items-center undefined" >

= ({ try { const response = await mutateAsync({ body: { - imageUrl: data.fullImageUrl + uuid: data.uuid } }); @@ -107,7 +107,7 @@ const ImageGalleryItem: FC = ({ const link = document.createElement("a"); link.href = url; - link.download = "image.jpg"; + link.download = data?.raw?.file_name ? data?.raw?.file_name : "image.jpg"; document.body.appendChild(link); link.click(); diff --git a/src/components/elements/ImageGallery/__snapshots__/ImageGalleryPreviewer.stories.storyshot b/src/components/elements/ImageGallery/__snapshots__/ImageGalleryPreviewer.stories.storyshot index 629cb45e4..fe0eb787a 100644 --- a/src/components/elements/ImageGallery/__snapshots__/ImageGalleryPreviewer.stories.storyshot +++ b/src/components/elements/ImageGallery/__snapshots__/ImageGalleryPreviewer.stories.storyshot @@ -49,7 +49,7 @@ exports[`Storyshots Components/Elements/Cards/ImageGalleryCard/Previewer Default className="relative flex h-full w-full items-center justify-center overflow-hidden bg-primary-100" > Molestiae quod quod esse totam porro dolorum dicta.) => { const t = useT(); + const { variant = VARIANT_DROPDOWN_DEFAULT } = props; const [selected, setSelected] = useState(() => getDefaultDropDownValue(props.defaultValue || props.value || [], props.options, !!props.hasOtherOptions) ); @@ -137,27 +141,12 @@ const Dropdown = (props: PropsWithChildren) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [otherIsSelected, otherValue, t]); - const getColorStatus = (option: string): string => { - const colorMap: { [key: string]: string } = { - approved: "bg-secondary", - submitted: "bg-blue", - draft: "bg-pinkCustom", - started: "bg-pinkCustom", - "Under Review": "bg-tertiary-600", - "needs-more-information": "bg-tertiary-600", - "restoration-in-progress": "bg-blue", - "awaiting-approval": "bg-tertiary-600" - }; - - return colorMap[option] ?? ""; - }; - const verifyDisableOption = (title: string) => { return props?.disableOptionTitles?.includes(title); }; return ( -

+
{({ open, value }) => ( <> @@ -184,29 +173,27 @@ const Dropdown = (props: PropsWithChildren) => { -
- -
(value)) ?? "" - )}`} - /> - - + {props.prefix} +
+ {getPrefix(options, toArray(value))} + (value))} + > {formatOptionsList(options, toArray(value)) || props.placeholder}
- ) => { name="" checked={isSelected} label={option.title} + textClassName={variant.optionLabelClassName} + inputClassName={variant.optionCheckboxClassName} className="flex flex-row-reverse items-center gap-3" onChange={() => { !isSelected @@ -265,6 +254,7 @@ const Dropdown = (props: PropsWithChildren) => {
+ {option.prefix} ) => { > {option.title} - - -
diff --git a/src/components/elements/Inputs/Dropdown/DropdownVariant.tsx b/src/components/elements/Inputs/Dropdown/DropdownVariant.tsx new file mode 100644 index 000000000..5b9ea1568 --- /dev/null +++ b/src/components/elements/Inputs/Dropdown/DropdownVariant.tsx @@ -0,0 +1,34 @@ +import { IconNames } from "@/components/extensive/Icon/Icon"; + +export interface DropdownVariant { + containerClassName: string; + className: string; + iconClassName?: string; + titleContainerClassName: string; + titleClassname?: string; + iconName?: IconNames; + optionCheckboxClassName?: string; + optionLabelClassName?: string; +} + +export const VARIANT_DROPDOWN_DEFAULT: DropdownVariant = { + containerClassName: "", + className: "", + iconClassName: "w-4", + iconName: undefined, + titleContainerClassName: "flex items-center gap-2", + titleClassname: "line-clamp-1", + optionCheckboxClassName: "", + optionLabelClassName: "" +}; + +export const VARIANT_DROPDOWN_HEADER: DropdownVariant = { + containerClassName: "relative z-10", + className: "gap-2 text-white", + iconClassName: "w-3 h-[9px] fill-trasparent", + iconName: IconNames.CHEVRON_DOWN_DASH, + titleContainerClassName: "flex-1 overflow-hidden", + titleClassname: "leading-none text-ellipsis whitespace-nowrap overflow-hidden", + optionCheckboxClassName: "checked:text-blueCustom-700", + optionLabelClassName: "text-14-semibold" +}; diff --git a/src/components/elements/Inputs/Dropdown/__snapshots__/Dropdown.stories.storyshot b/src/components/elements/Inputs/Dropdown/__snapshots__/Dropdown.stories.storyshot index c10b8aa9b..764ba57ca 100644 --- a/src/components/elements/Inputs/Dropdown/__snapshots__/Dropdown.stories.storyshot +++ b/src/components/elements/Inputs/Dropdown/__snapshots__/Dropdown.stories.storyshot @@ -33,7 +33,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select 1`] = ` aria-expanded={false} aria-haspopup="listbox" aria-labelledby="headlessui-listbox-label-:rj: headlessui-listbox-button-:rk:" - className="flex h-10 items-center justify-between gap-3 rounded-lg py-2 px-3 hover:cursor-pointer border-light" + className="flex h-10 items-center justify-between gap-3 rounded-lg px-3 py-2 hover:cursor-pointer border-light" data-headlessui-state="" disabled={false} id="headlessui-listbox-button-:rk:" @@ -47,6 +47,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select 1`] = `

placeholder

@@ -55,7 +56,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select 1`] = ` style={ Object { "height": undefined, - "width": 16, + "width": 24, } } /> @@ -97,7 +98,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select With Other aria-expanded={false} aria-haspopup="listbox" aria-labelledby="headlessui-listbox-label-:rn: headlessui-listbox-button-:ro:" - className="flex h-10 items-center justify-between gap-3 rounded-lg py-2 px-3 hover:cursor-pointer border-light" + className="flex h-10 items-center justify-between gap-3 rounded-lg px-3 py-2 hover:cursor-pointer border-light" data-headlessui-state="" disabled={false} id="headlessui-listbox-button-:ro:" @@ -111,6 +112,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select With Other

placeholder

@@ -119,7 +121,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Multi Select With Other style={ Object { "height": undefined, - "width": 16, + "width": 24, } } /> @@ -161,7 +163,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select 1`] = ` aria-expanded={false} aria-haspopup="listbox" aria-labelledby="headlessui-listbox-label-:rh: headlessui-listbox-button-:ri:" - className="flex h-10 items-center justify-between gap-3 rounded-lg py-2 px-3 hover:cursor-pointer border-light" + className="flex h-10 items-center justify-between gap-3 rounded-lg px-3 py-2 hover:cursor-pointer border-light" data-headlessui-state="" disabled={false} id="headlessui-listbox-button-:ri:" @@ -175,6 +177,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select 1`] = `

placeholder

@@ -183,7 +186,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select 1`] = ` style={ Object { "height": undefined, - "width": 16, + "width": 24, } } /> @@ -213,7 +216,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Meta aria-expanded={false} aria-haspopup="listbox" aria-labelledby="headlessui-listbox-label-:rp: headlessui-listbox-button-:rq:" - className="flex h-10 items-center justify-between gap-3 rounded-lg py-2 px-3 hover:cursor-pointer border-light" + className="flex h-10 items-center justify-between gap-3 rounded-lg px-3 py-2 hover:cursor-pointer border-light" data-headlessui-state="" disabled={false} id="headlessui-listbox-button-:rq:" @@ -224,12 +227,10 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Meta
-

Aerobic Agroforestry

@@ -238,7 +239,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Meta style={ Object { "height": undefined, - "width": 16, + "width": 24, } } /> @@ -279,7 +280,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Other aria-expanded={false} aria-haspopup="listbox" aria-labelledby="headlessui-listbox-label-:rl: headlessui-listbox-button-:rm:" - className="flex h-10 items-center justify-between gap-3 rounded-lg py-2 px-3 hover:cursor-pointer border-light" + className="flex h-10 items-center justify-between gap-3 rounded-lg px-3 py-2 hover:cursor-pointer border-light" data-headlessui-state="" disabled={false} id="headlessui-listbox-button-:rm:" @@ -293,6 +294,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Other

placeholder

@@ -301,7 +303,7 @@ exports[`Storyshots Components/Elements/Inputs/Dropdown Single Select With Other style={ Object { "height": undefined, - "width": 16, + "width": 24, } } /> diff --git a/src/components/elements/Inputs/FileInput/FileInput.tsx b/src/components/elements/Inputs/FileInput/FileInput.tsx index bf85009ef..01f0e4c91 100644 --- a/src/components/elements/Inputs/FileInput/FileInput.tsx +++ b/src/components/elements/Inputs/FileInput/FileInput.tsx @@ -1,7 +1,8 @@ import { useT } from "@transifex/react"; import { ChangeEvent, Fragment, ReactNode, useId, useMemo, useRef } from "react"; import { useDropzone } from "react-dropzone"; -import { When } from "react-if"; +import { UseFormReturn } from "react-hook-form"; +import { Else, If, Then, When } from "react-if"; import { twMerge as tw } from "tailwind-merge"; import { FileCardContent } from "@/components/elements/Inputs/FileInput/FileCardContent"; @@ -14,11 +15,12 @@ import Text from "../../Text/Text"; import InputWrapper, { InputWrapperProps } from "../InputElements/InputWrapper"; import { FileInputVariant, VARIANT_FILE_INPUT_DEFAULT } from "./FileInputVariants"; import FilePreviewCard from "./FilePreviewCard"; +import FilePreviewTable from "./FilePreviewTable"; export type FileInputProps = InputWrapperProps & { accept?: FileType[]; files: Partial[]; - + previewAsTable?: boolean; allowMultiple?: boolean; maxFileSize?: number; // in MB showPrivateCheckbox?: boolean; @@ -26,10 +28,12 @@ export type FileInputProps = InputWrapperProps & { descriptionInput?: string; descriptionList?: ReactNode; descriptionListStatus?: string; - onChange?: (file: File[]) => any; onDelete?: (file: Partial) => void; onPrivateChange?: (uuid: Partial, checked: boolean) => void; + formHook?: UseFormReturn; + updateFile?: (file: Partial) => void; + entityData?: any; }; export interface FileStatus { @@ -160,22 +164,36 @@ const FileInput = (props: FileInputProps) => {
- ( - props.onDelete?.(file)} + + + + + + ( + props.onDelete?.(file)} + onPrivateChange={props.onPrivateChange} + showPrivateCheckbox={props.showPrivateCheckbox} + /> + )} /> - )} - /> + + ); }; diff --git a/src/components/elements/Inputs/FileInput/FilePreviewTable.tsx b/src/components/elements/Inputs/FileInput/FilePreviewTable.tsx new file mode 100644 index 000000000..793b0a28b --- /dev/null +++ b/src/components/elements/Inputs/FileInput/FilePreviewTable.tsx @@ -0,0 +1,254 @@ +import { useT } from "@transifex/react"; +import Lottie from "lottie-react"; +import { UseFormReturn } from "react-hook-form"; +import { Else, If, Then, When } from "react-if"; + +import SpinnerLottie from "@/assets/animations/spinner.json"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import { ModalId } from "@/components/extensive/Modal/ModalConst"; +import ModalImageDetails from "@/components/extensive/Modal/ModalImageDetails"; +import { useLoading } from "@/context/loaderAdmin.provider"; +import { useModalContext } from "@/context/modal.provider"; +import { usePatchV2MediaProjectProjectMediaUuid, usePatchV2MediaUuid } from "@/generated/apiComponents"; +import { UploadedFile } from "@/types/common"; + +import Menu from "../../Menu/Menu"; +import Table from "../../Table/Table"; +import { VARIANT_TABLE_SITE_POLYGON_REVIEW } from "../../Table/TableVariants"; +import Text from "../../Text/Text"; +import Checkbox from "../Checkbox/Checkbox"; + +export interface FilePreviewTableProps { + items: Partial[]; + className?: string; + onDelete?: (file: Partial) => void; + onPrivateChange?: (file: Partial, checked: boolean) => void; + formHook?: UseFormReturn; + updateFile?: (file: Partial) => void; + entityData?: any; +} + +const FilePreviewTable = ({ items, onDelete, updateFile, entityData }: FilePreviewTableProps) => { + const t = useT(); + const { openModal, closeModal } = useModalContext(); + const { showLoader, hideLoader } = useLoading(); + + const { mutate: updateMedia } = usePatchV2MediaUuid(); + const { mutateAsync: updateIsCover } = usePatchV2MediaProjectProjectMediaUuid(); + + const openModalImageDetail = (item: any) => { + const data = { + uuid: item.uuid!, + fullImageUrl: item.url!, + thumbnailImageUrl: item.thumb_url!, + label: item.model_name, + isPublic: item.is_public!, + isGeotagged: item?.lat !== 0 && item?.lng !== 0, + isCover: item.is_cover, + raw: { ...item, location: { lat: item.lat, lng: item.lng }, name: item.title, created_date: item.created_at } + }; + + openModal( + ModalId.MODAL_IMAGE_DETAIL, + closeModal(ModalId.MODAL_IMAGE_DETAIL)} + reloadGalleryImages={() => {}} + handleDelete={onDelete && (() => onDelete(item))} + updateValuesInForm={updatedItem => { + if (updatedItem.is_cover) { + items.forEach(item => { + if (item.uuid !== updatedItem.uuid && item.is_cover) { + updateFile?.({ ...item, is_cover: false }); + } + }); + } + updateFile?.(updatedItem); + }} + />, + true + ); + }; + + const handleUpdateIsCover = async (selectedItem: Partial, checked: boolean) => { + showLoader(); + + try { + const updatedItems = items.map(item => ({ + ...item, + is_cover: item.uuid === selectedItem.uuid ? checked : false + })); + + updatedItems.forEach(item => updateFile?.(item)); + + if (checked) { + await updateIsCover({ + pathParams: { project: entityData.uuid, mediaUuid: selectedItem.uuid! } + }); + } + } catch (error) { + console.error("Error updating cover status:", error); + } finally { + hideLoader(); + } + }; + + const handleUpdateIsPublic = async (item: Partial, checked: boolean) => { + showLoader(); + try { + await updateMedia({ + pathParams: { uuid: item.uuid! }, + body: { is_public: checked } + }); + updateFile?.({ ...item, is_public: checked }); + } catch (error) { + console.error("Error updating public status:", error); + } finally { + hideLoader(); + } + }; + + const formatFileSize = (sizeInBytes: number) => { + if (sizeInBytes < 1024) return `${sizeInBytes} B`; + const units = ["kB", "MB", "GB", "TB"]; + let size = sizeInBytes / 1024; + let unitIndex = 0; + + while (size >= 1024 && unitIndex < units.length - 1) { + size /= 1024; + unitIndex++; + } + + return `${size.toFixed(1)} ${units[unitIndex]}`; + }; + + const data = items.map(item => ({ + id: item.uuid, + image: item.title, + size: formatFileSize(item.size ?? 0), + cover: item, + public: item, + geoCoded: item?.lat !== 0 && item?.lng !== 0, + elipsis: item + })); + + return ( + 0}> + ( + { + handleUpdateIsCover(props.getValue(), e.target.checked); + }} + disabled={!entityData?.project} + /> + ), + header: `${t("Cover")}`, + meta: { align: "center" } + }, + { + accessorKey: "public", + cell: (props: any) => ( + { + handleUpdateIsPublic(props.getValue(), e.target.checked); + }} + /> + ), + header: `${t("Public")}`, + meta: { align: "center" } + }, + { + accessorKey: "geoCoded", + header: `${t("GeoCoded")}`, + cell: (props: any) => ( + + +
+ + {t("Yes")} + +
+
+ +
+ + {t("No")} + +
+
+
+ ), + meta: { align: "center" } + }, + { + accessorKey: "elipsis", + header: "", + cell: (props: any) => ( + + + + + + ( +
+ + {t("Edit")} +
+ ), + onClick: () => { + openModalImageDetail(props.getValue()); + } + }, + { + id: "2", + render: () => ( +
+ + {t("Delete")} +
+ ), + onClick: () => { + onDelete && onDelete(props.getValue()); + } + } + ]} + > + +
+
+
+ ), + meta: { align: "right" }, + enableSorting: false + } + ]} + /> + + ); +}; + +export default FilePreviewTable; diff --git a/src/components/elements/Inputs/FileInput/RHFFileInput.tsx b/src/components/elements/Inputs/FileInput/RHFFileInput.tsx index 3797d0bb9..630b2ec4a 100644 --- a/src/components/elements/Inputs/FileInput/RHFFileInput.tsx +++ b/src/components/elements/Inputs/FileInput/RHFFileInput.tsx @@ -9,11 +9,13 @@ import { usePostV2FileUploadMODELCOLLECTIONUUID, usePutV2FilesUUID } from "@/generated/apiComponents"; +import { getCurrentPathEntity } from "@/helpers/entity"; import { UploadedFile } from "@/types/common"; import { toArray } from "@/utils/array"; import { getErrorMessages } from "@/utils/errors"; import FileInput, { FileInputProps } from "./FileInput"; +import { VARIANT_FILE_INPUT_MODAL_ADD_IMAGES_WITH_MAP } from "./FileInputVariants"; export interface RHFFileInputProps extends Omit, @@ -24,6 +26,7 @@ export interface RHFFileInputProps formHook?: UseFormReturn; showPrivateCheckbox?: boolean; onChangeCapture?: () => void; + isPhotosAndVideo?: boolean; } /** @@ -37,41 +40,47 @@ const RHFFileInput = ({ uuid, showPrivateCheckbox, onChangeCapture, + isPhotosAndVideo = false, ...fileInputProps }: RHFFileInputProps) => { const t = useT(); + const { field } = useController(fileInputProps); const value = field.value as UploadedFile | UploadedFile[]; const onChange = field.onChange; const [files, setFiles] = useState[]>(toArray(value)); - const { mutate: upload } = usePostV2FileUploadMODELCOLLECTIONUUID({ onSuccess(data, variables) { //@ts-ignore swagger issue addFileToValue({ ...data.data, rawFile: variables.file, uploadState: { isSuccess: true, isLoading: false } }); }, onError(err, variables: any) { + const file = variables.file; + let errorMessage = t("UPLOAD ERROR UNKNOWN: An unknown error occurred during upload. Please try again."); + if (err?.statusCode === 422 && Array.isArray(err?.errors)) { const error = err?.errors[0]; const formError = getErrorMessages(t, error.code, { ...error.variables, label: fileInputProps.label }); formHook?.setError(fileInputProps.name, formError); - - const file = variables.file; - - addFileToValue({ - collection_name: variables.pathParams.collection, - size: file?.size, - file_name: file?.name, - title: file?.name, - mime_type: file?.type, - rawFile: file, - uploadState: { - isLoading: false, - isSuccess: false, - error: formError.message - } - }); + errorMessage = formError.message; + } else if (err?.statusCode === 413 || err?.statusCode === -1) { + errorMessage = t("UPLOAD ERROR: An error occurred during upload. Please try again or upload a smaller file."); + formHook?.setError(fileInputProps.name, { type: "manual", message: errorMessage }); } + + addFileToValue({ + collection_name: variables.pathParams.collection, + size: file?.size, + file_name: file?.name, + title: file?.name, + mime_type: file?.type, + rawFile: file, + uploadState: { + isLoading: false, + isSuccess: false, + error: errorMessage + } + }); } }); @@ -170,7 +179,7 @@ const RHFFileInput = ({ try { const location = await exifr.gps(file); - if (location) { + if (location && !isNaN(location.latitude) && !isNaN(location.longitude)) { body.append("lat", location.latitude.toString()); body.append("lng", location.longitude.toString()); } @@ -217,6 +226,13 @@ const RHFFileInput = ({ } }; + const updateFileInValue = (updatedFile: Partial) => { + setFiles(prevFiles => { + const updatedFiles = prevFiles.map(file => (file.uuid === updatedFile.uuid ? { ...file, ...updatedFile } : file)); + return updatedFiles; + }); + }; + useEffect(() => { const tmp = toArray(files) //Only store uploaded files into form state. @@ -227,12 +243,22 @@ const RHFFileInput = ({ return ( files.forEach(onSelectFile)} onPrivateChange={handleFileUpdate} showPrivateCheckbox={showPrivateCheckbox} + formHook={formHook} + updateFile={updateFileInValue} + entityData={{ model, collection, uuid }} /> ); }; diff --git a/src/components/elements/Map-mapbox/Map.tsx b/src/components/elements/Map-mapbox/Map.tsx index aa9f5063d..e3f3f3f71 100644 --- a/src/components/elements/Map-mapbox/Map.tsx +++ b/src/components/elements/Map-mapbox/Map.tsx @@ -3,6 +3,7 @@ import "mapbox-gl/dist/mapbox-gl.css"; import { useT } from "@transifex/react"; import _ from "lodash"; import mapboxgl, { LngLat } from "mapbox-gl"; +import { useRouter } from "next/router"; import React, { useEffect } from "react"; import { DetailedHTMLProps, HTMLAttributes, useState } from "react"; import { When } from "react-if"; @@ -12,9 +13,13 @@ import { ValidationError } from "yup"; import ControlGroup from "@/components/elements/Map-mapbox/components/ControlGroup"; import { AdditionalPolygonProperties } from "@/components/elements/Map-mapbox/MapLayers/ShapePropertiesModal"; import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import { ModalId } from "@/components/extensive/Modal/ModalConst"; +import ModalImageDetails from "@/components/extensive/Modal/ModalImageDetails"; import { LAYERS_NAMES, layersList } from "@/constants/layers"; import { DELETED_POLYGONS } from "@/constants/statuses"; +import { useLoading } from "@/context/loaderAdmin.provider"; import { useMapAreaContext } from "@/context/mapArea.provider"; +import { useModalContext } from "@/context/modal.provider"; import { useNotificationContext } from "@/context/notification.provider"; import { useSitePolygonData } from "@/context/sitePolygon.provider"; import { @@ -22,17 +27,20 @@ import { fetchGetV2TerrafundPolygonBboxUuid, fetchGetV2TerrafundPolygonGeojsonUuid, GetV2MODELUUIDFilesResponse, + useDeleteV2FilesUUID, + usePatchV2MediaProjectProjectMediaUuid, + usePostV2ExportImage, usePostV2GeometryUUIDNewVersion, usePutV2TerrafundPolygonUuid } from "@/generated/apiComponents"; import { SitePolygonsDataResponse } from "@/generated/apiSchemas"; +import { ImageGalleryItemData } from "../ImageGallery/ImageGalleryItem"; import { AdminPopup } from "./components/AdminPopup"; import { BBox } from "./GeoJSON"; import type { TooltipType } from "./Map.d"; import CheckIndividualPolygonControl from "./MapControls/CheckIndividualPolygonControl"; import CheckPolygonControl from "./MapControls/CheckPolygonControl"; -import DeleteBulkPolygonsControl from "./MapControls/DeleteBulkPolygonsControl"; import EditControl from "./MapControls/EditControl"; import EmptyStateDisplay from "./MapControls/EmptyStateDisplay"; import { FilterControl } from "./MapControls/FilterControl"; @@ -41,6 +49,7 @@ import ImageControl from "./MapControls/ImageControl"; import PolygonCheck from "./MapControls/PolygonCheck"; import { PolygonHandler } from "./MapControls/PolygonHandler"; import PolygonModifier from "./MapControls/PolygonModifier"; +import ProcessBulkPolygonsControl from "./MapControls/ProcessBulkPolygonsControl"; import { StyleControl } from "./MapControls/StyleControl"; import { MapStyle } from "./MapControls/types"; import ViewImageCarousel from "./MapControls/ViewImageCarousel"; @@ -105,6 +114,8 @@ interface MapProps extends Omit formMap?: boolean; pdView?: boolean; location?: LngLat; + entityData?: any; + imageGalleryRef?: React.RefObject; } export const MapContainer = ({ @@ -133,6 +144,8 @@ export const MapContainer = ({ formMap, pdView = false, location, + entityData, + imageGalleryRef, ...props }: MapProps) => { const [showMediaPopups, setShowMediaPopups] = useState(true); @@ -143,6 +156,11 @@ export const MapContainer = ({ const contextMapArea = useMapAreaContext(); const { reloadSiteData } = context ?? {}; const t = useT(); + const { mutateAsync } = usePostV2ExportImage(); + const { showLoader, hideLoader } = useLoading(); + const router = useRouter(); + const { openModal, closeModal } = useModalContext(); + const { mutateAsync: updateIsCoverAsync } = usePatchV2MediaProjectProjectMediaUuid(); const { openNotification } = useNotificationContext(); const { isUserDrawingEnabled, @@ -150,10 +168,15 @@ export const MapContainer = ({ editPolygon: editPolygonSelected, setEditPolygon, setShouldRefetchPolygonData, + setShouldRefetchMediaData, setStatusSelectedPolygon, selectedPolygonsInCheckbox } = contextMapArea; - + const { mutateAsync: deleteFile } = useDeleteV2FilesUUID({ + onSuccess() { + setShouldRefetchMediaData(true); + } + }); if (!mapFunctions) { return null; } @@ -238,9 +261,98 @@ export const MapContainer = ({ }, [bbox]); useEffect(() => { + const projectUUID = router.query.uuid as string; + const isProjectPath = router.isReady && router.asPath.includes("project"); + + const handleDelete = (id: string) => { + deleteFile({ pathParams: { uuid: id } }); + closeModal(ModalId.DELETE_IMAGE); + }; + + const openModalImageDetail = (data: ImageGalleryItemData | any) => { + const dataImage = { + uuid: data.uuid!, + fullImageUrl: data.file_url!, + thumbnailImageUrl: data.file_url!, + label: data.model_name, + isPublic: data.is_public!, + isGeotagged: true, + isCover: data.is_cover, + raw: { ...data, location: JSON.parse(data.location), created_date: data.created_date } + }; + openModal( + ModalId.MODAL_IMAGE_DETAIL, + closeModal(ModalId.MODAL_IMAGE_DETAIL)} + reloadGalleryImages={() => { + setShouldRefetchMediaData(true); + }} + handleDelete={handleDelete} + />, + true + ); + }; + + const setImageCover = async (uuid: string) => { + const result = await updateIsCoverAsync({ + pathParams: { project: projectUUID, mediaUuid: uuid } + }); + if (result) { + openNotification("success", t("Success!"), t("Image set as cover successfully")); + setShouldRefetchMediaData(true); + } else { + openNotification("error", t("Error!"), t("Failed to set image as cover")); + } + }; + + const handleDownload = async (uuid: string, file_name: string): Promise => { + showLoader(); + try { + const response = await mutateAsync({ + body: { + uuid: uuid + } + }); + + if (!response) { + console.error("No response received from the server."); + openNotification("error", t("Error!"), t("No response received from the server.")); + return; + } + + const blob = new Blob([response], { type: "image/jpeg" }); + const url = window.URL.createObjectURL(blob); + + const link = document.createElement("a"); + link.href = url; + link.download = file_name || "image.jpg"; + document.body.appendChild(link); + link.click(); + + link.remove(); + window.URL.revokeObjectURL(url); + hideLoader(); + openNotification("success", t("Success!"), t("Image downloaded successfully")); + } catch (error) { + console.error("Download error:", error); + hideLoader(); + } + }; + if (map?.current && styleLoaded && props?.modelFilesData) { if (showMediaPopups) { - addMediaSourceAndLayer(map.current, props?.modelFilesData); + addMediaSourceAndLayer( + map.current, + props?.modelFilesData, + setImageCover, + handleDownload, + handleDelete, + openModalImageDetail, + isProjectPath + ); } else { removePopups("MEDIA"); removeMediaLayer(map.current); @@ -390,8 +502,8 @@ export const MapContainer = ({ - - + + @@ -450,7 +562,7 @@ export const MapContainer = ({ - + diff --git a/src/components/elements/Map-mapbox/MapControls/CheckIndividualPolygonControl.tsx b/src/components/elements/Map-mapbox/MapControls/CheckIndividualPolygonControl.tsx index cd71b8256..ce10f1775 100644 --- a/src/components/elements/Map-mapbox/MapControls/CheckIndividualPolygonControl.tsx +++ b/src/components/elements/Map-mapbox/MapControls/CheckIndividualPolygonControl.tsx @@ -10,7 +10,7 @@ import { usePostV2TerrafundClipPolygonsPolygonUuid, usePostV2TerrafundValidationPolygon } from "@/generated/apiComponents"; -import { ClippedPolygonsResponse, SitePolygonsDataResponse } from "@/generated/apiSchemas"; +import { ClippedPolygonResponse, SitePolygonsDataResponse } from "@/generated/apiSchemas"; import Button from "../../Button/Button"; @@ -50,7 +50,7 @@ const CheckIndividualPolygonControl = ({ viewRequestSuport }: { viewRequestSupor }); const { mutate: clipPolygons } = usePostV2TerrafundClipPolygonsPolygonUuid({ - onSuccess: async (data: ClippedPolygonsResponse) => { + onSuccess: async (data: ClippedPolygonResponse) => { if (!data.updated_polygons?.length) { openNotification("warning", t("No polygon have been fixed"), t("Please run 'Check Polygons' again.")); hideLoader(); diff --git a/src/components/elements/Map-mapbox/MapControls/CheckPolygonControl.tsx b/src/components/elements/Map-mapbox/MapControls/CheckPolygonControl.tsx index af2770eff..6bbfed0b7 100644 --- a/src/components/elements/Map-mapbox/MapControls/CheckPolygonControl.tsx +++ b/src/components/elements/Map-mapbox/MapControls/CheckPolygonControl.tsx @@ -21,7 +21,7 @@ import { usePostV2TerrafundClipPolygonsSiteUuid, usePostV2TerrafundValidationSitePolygons } from "@/generated/apiComponents"; -import { ClippedPolygonsResponse, SitePolygon } from "@/generated/apiSchemas"; +import { ClippedPolygonResponse, SitePolygon } from "@/generated/apiSchemas"; import Button from "../../Button/Button"; import Text from "../../Text/Text"; @@ -100,7 +100,7 @@ const CheckPolygonControl = (props: CheckSitePolygonProps) => { }); const { mutate: clipPolygons } = usePostV2TerrafundClipPolygonsSiteUuid({ - onSuccess: (data: ClippedPolygonsResponse) => { + onSuccess: (data: ClippedPolygonResponse) => { if (!data.updated_polygons?.length) { openNotification("warning", t("No polygon have been fixed"), t("Please run 'Check Polygons' again.")); hideLoader(); diff --git a/src/components/elements/Map-mapbox/MapControls/DeleteBulkPolygonsControl.tsx b/src/components/elements/Map-mapbox/MapControls/DeleteBulkPolygonsControl.tsx deleted file mode 100644 index ed9636b4f..000000000 --- a/src/components/elements/Map-mapbox/MapControls/DeleteBulkPolygonsControl.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { useT } from "@transifex/react"; - -import Button from "@/components/elements/Button/Button"; -import Text from "@/components/elements/Text/Text"; -import { ModalId } from "@/components/extensive/Modal/ModalConst"; -import ModalDeleteBulkPolygons from "@/components/extensive/Modal/ModalDeleteBulkPolygons"; -import { useMapAreaContext } from "@/context/mapArea.provider"; -import { useModalContext } from "@/context/modal.provider"; -import { useSitePolygonData } from "@/context/sitePolygon.provider"; -import { SitePolygon } from "@/generated/apiSchemas"; - -const DeleteBulkPolygonsControl = () => { - const t = useT(); - const { openModal, closeModal } = useModalContext(); - const context = useSitePolygonData(); - const { selectedPolygonsInCheckbox, setSelectedPolygonsInCheckbox, setShouldRefetchPolygonData } = - useMapAreaContext(); - const sitePolygonData = context?.sitePolygonData as Array; - - const openFormModalHandlerDeleteBulkPolygons = () => { - openModal( - ModalId.DELETE_BULK_POLYGONS, - closeModal(ModalId.DELETE_BULK_POLYGONS)} - content={t("Confirm that the following polygons will be deleted. This operation is not reversible.")} - primaryButtonText={t("Delete")} - primaryButtonProps={{ - className: "px-8 py-3", - variant: "primary", - onClick: () => { - closeModal(ModalId.DELETE_BULK_POLYGONS); - } - }} - secondaryButtonText={t("Cancel")} - secondaryButtonProps={{ - className: "px-8 py-3", - variant: "white-page-admin", - onClick: () => closeModal(ModalId.DELETE_BULK_POLYGONS) - }} - sitePolygonData={sitePolygonData} - selectedPolygonsInCheckbox={selectedPolygonsInCheckbox} - refetch={() => { - context?.reloadSiteData(); - setShouldRefetchPolygonData(true); - setSelectedPolygonsInCheckbox([]); - }} - /> - ); - }; - return ( -
-
- - {t("Click below to delete the selected polygons")} - - -
-
- ); -}; - -export default DeleteBulkPolygonsControl; diff --git a/src/components/elements/Map-mapbox/MapControls/ProcessBulkPolygonsControl.tsx b/src/components/elements/Map-mapbox/MapControls/ProcessBulkPolygonsControl.tsx new file mode 100644 index 000000000..a83ee4497 --- /dev/null +++ b/src/components/elements/Map-mapbox/MapControls/ProcessBulkPolygonsControl.tsx @@ -0,0 +1,215 @@ +import { useT } from "@transifex/react"; + +import Button from "@/components/elements/Button/Button"; +import Text from "@/components/elements/Text/Text"; +import { ModalId } from "@/components/extensive/Modal/ModalConst"; +import ModalFixOverlaps from "@/components/extensive/Modal/ModalFixOverlaps"; +import ModalProcessBulkPolygons from "@/components/extensive/Modal/ModalProcessBulkPolygons"; +import { useLoading } from "@/context/loaderAdmin.provider"; +import { useMapAreaContext } from "@/context/mapArea.provider"; +import { useModalContext } from "@/context/modal.provider"; +import { useNotificationContext } from "@/context/notification.provider"; +import { useSitePolygonData } from "@/context/sitePolygon.provider"; +import { + useDeleteV2TerrafundProjectPolygons, + usePostV2TerrafundClipPolygonsPolygons, + usePostV2TerrafundValidationPolygons +} from "@/generated/apiComponents"; +import { SitePolygon } from "@/generated/apiSchemas"; + +const ProcessBulkPolygonsControl = ({ entityData }: { entityData: any }) => { + const t = useT(); + const { openModal, closeModal } = useModalContext(); + const context = useSitePolygonData(); + const { mutate: checkPolygons } = usePostV2TerrafundValidationPolygons(); + const { + selectedPolygonsInCheckbox, + setSelectedPolygonsInCheckbox, + setShouldRefetchPolygonData, + setShouldRefetchValidation + } = useMapAreaContext(); + const refetchData = () => { + context?.reloadSiteData(); + setShouldRefetchValidation(true); + setShouldRefetchPolygonData(true); + setSelectedPolygonsInCheckbox([]); + }; + const { showLoader, hideLoader } = useLoading(); + const { openNotification } = useNotificationContext(); + const { mutate: fixPolygons } = usePostV2TerrafundClipPolygonsPolygons(); + const sitePolygonData = context?.sitePolygonData as Array; + const { mutate: deletePolygons } = useDeleteV2TerrafundProjectPolygons(); + const openFormModalHandlerProcessBulkPolygons = (selectedUUIDs: string[]) => { + openModal( + ModalId.DELETE_BULK_POLYGONS, + closeModal(ModalId.DELETE_BULK_POLYGONS)} + content={t("Confirm that the following polygons will be deleted. This operation is not reversible.")} + primaryButtonText={t("Delete")} + primaryButtonProps={{ + className: "px-8 py-3", + variant: "primary", + onClick: () => { + showLoader(); + closeModal(ModalId.DELETE_BULK_POLYGONS); + deletePolygons( + { + body: { + uuids: selectedUUIDs + } + }, + { + onSuccess: () => { + refetchData(); + hideLoader(); + openNotification("success", t("Success!"), t("Polygons deleted successfully")); + }, + onError: () => { + hideLoader(); + openNotification("error", t("Error!"), t("Failed to delete polygons")); + } + } + ); + } + }} + secondaryButtonText={t("Cancel")} + secondaryButtonProps={{ + className: "px-8 py-3", + variant: "white-page-admin", + onClick: () => closeModal(ModalId.DELETE_BULK_POLYGONS) + }} + sitePolygonData={sitePolygonData} + selectedPolygonsInCheckbox={selectedPolygonsInCheckbox} + /> + ); + }; + const openFormModalHandlerSubmitPolygon = (selectedUUIDs: string[]) => { + openModal( + ModalId.FIX_POLYGONS, + closeModal(ModalId.FIX_POLYGONS)} + content={t( + "The following polygons have one or more failed criteria, for which an automated solution may be applied. Click 'Fix Polygons' to correct the issue as a new version." + )} + primaryButtonText={t("Fix Polygons")} + primaryButtonProps={{ + className: "px-8 py-3", + variant: "primary", + onClick: () => { + showLoader(); + fixPolygons( + { + body: { + uuids: selectedUUIDs + } + }, + { + onSuccess: response => { + const processedNames = response?.processed?.map(item => item.poly_name).join(", "); + closeModal(ModalId.FIX_POLYGONS); + if (processedNames) { + openNotification( + "success", + t("Success!"), + t(`Polygons fixed successfully. Fixed: ${processedNames}`) + ); + } else { + openNotification("warning", t("Warning"), t("No polygons were fixed.")); + } + refetchData?.(); + hideLoader(); + }, + onError: () => { + hideLoader(); + openNotification("error", t("Error!"), t("Failed to fix polygons")); + } + } + ); + } + }} + secondaryButtonText={t("Cancel")} + secondaryButtonProps={{ + className: "px-8 py-3", + variant: "white-page-admin", + onClick: () => closeModal(ModalId.FIX_POLYGONS) + }} + selectedUUIDs={selectedUUIDs} + /> + ); + }; + const runCheckPolygonsSelected = (selectedUUIDs: string[]) => { + checkPolygons( + { + body: { + uuids: selectedUUIDs + } + }, + { + onSuccess: () => { + refetchData?.(); + openNotification("success", t("Success!"), t("Polygons checked successfully")); + hideLoader(); + }, + onError: () => { + hideLoader(); + openNotification("error", t("Error!"), t("Failed to check polygons")); + } + } + ); + }; + + const handleOpen = (type: "check" | "fix" | "delete") => { + const initialSelection = sitePolygonData.map((polygon: any) => + selectedPolygonsInCheckbox.includes(polygon.poly_id) + ); + const selectedUUIDs: string[] = sitePolygonData + .filter((_, index) => initialSelection[index]) + .map((polygon: SitePolygon) => polygon.poly_id || ""); + if (type === "check") { + showLoader(); + runCheckPolygonsSelected(selectedUUIDs); + } else if (type === "fix") { + openFormModalHandlerSubmitPolygon(selectedUUIDs); + } else { + openFormModalHandlerProcessBulkPolygons(selectedUUIDs); + } + }; + + return ( +
+
+ + {t("Click below to process the selected polygons")} + +
+ + + +
+
+
+ ); +}; + +export default ProcessBulkPolygonsControl; diff --git a/src/components/elements/Map-mapbox/MapControls/ViewImageCarousel.tsx b/src/components/elements/Map-mapbox/MapControls/ViewImageCarousel.tsx index 01a13e581..a0438e908 100644 --- a/src/components/elements/Map-mapbox/MapControls/ViewImageCarousel.tsx +++ b/src/components/elements/Map-mapbox/MapControls/ViewImageCarousel.tsx @@ -1,5 +1,5 @@ import { t } from "@transifex/native"; -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; import ModalImageGallery, { TabImagesItem } from "@/components/extensive/Modal/ModalImageGallery"; @@ -8,7 +8,13 @@ import { GetV2MODELUUIDFilesResponse } from "@/generated/apiComponents"; import Button from "../../Button/Button"; import Text from "../../Text/Text"; -const ViewImageCarousel = ({ modelFilesData }: { modelFilesData: GetV2MODELUUIDFilesResponse["data"] }) => { +const ViewImageCarousel = ({ + modelFilesData, + imageGalleryRef +}: { + modelFilesData: GetV2MODELUUIDFilesResponse["data"]; + imageGalleryRef?: React.RefObject; +}) => { const modelFilesTabItems: TabImagesItem[] = useMemo(() => { const modelFilesGeolocalized: GetV2MODELUUIDFilesResponse["data"] = []; const modelFilesNonGeolocalized: GetV2MODELUUIDFilesResponse["data"] = []; @@ -46,9 +52,54 @@ const ViewImageCarousel = ({ modelFilesData }: { modelFilesData: GetV2MODELUUIDF }, [modelFilesData]); const [openModal, setOpenModal] = useState(false); + + const scrollToGalleryElement = () => { + if (imageGalleryRef?.current) { + const element = imageGalleryRef.current; + const topPosition = element.getBoundingClientRect().top + window.scrollY - 70; + window.scrollTo({ + top: topPosition, + behavior: "smooth" + }); + } + }; + + const scrollToElement = () => { + let route = window.location.href; + if (route.includes("admin")) { + if (window.location.hash.includes("show")) { + const newUrl = window.location.hash.replace(/show\/\d+/, "show/2"); + window.location.hash = newUrl; + } + return; + } + + if ((route.includes("site/") || route.includes("project/")) && !route.includes("tab=")) { + const newUrl = `${route}?tab=overview`; + route = newUrl; + window.history.replaceState(null, "", newUrl); + } + + if (route.includes("tab=overview")) { + const newUrl = route.replace("tab=overview", "tab=gallery"); + + sessionStorage.setItem("scrollToElement", "true"); + window.location.href = newUrl; + } + + scrollToGalleryElement(); + }; + + useEffect(() => { + if (sessionStorage.getItem("scrollToElement") === "true") { + scrollToGalleryElement(); + sessionStorage.removeItem("scrollToElement"); + } + }, []); + return (
- diff --git a/src/components/elements/Map-mapbox/components/ControlGroup.tsx b/src/components/elements/Map-mapbox/components/ControlGroup.tsx index 2c6fdaed2..6ef67eb6f 100644 --- a/src/components/elements/Map-mapbox/components/ControlGroup.tsx +++ b/src/components/elements/Map-mapbox/components/ControlGroup.tsx @@ -13,7 +13,8 @@ export interface ControlGroupProps | "bottom-left-site" | "top-center" | "top-left-site" - | "top-centerSite"; + | "top-centerSite" + | "top-centerPolygonsInCheckbox"; } const ControlGroup = ({ children, position, className, ...props }: ControlGroupProps) => { @@ -28,7 +29,8 @@ const ControlGroup = ({ children, position, className, ...props }: ControlGroupP "bottom-8": position.includes("bottom"), "!left-[24vw] items-start": position.includes("site"), "left-[45%]": position.includes("center"), - "left-[calc(50%+11.5vw)] -translate-x-1/2": position.includes("centerSite") + "left-[calc(50%+11.5vw)] -translate-x-1/2": position.includes("centerSite"), + "left-[34%] lg:left-[35.5%]": position.includes("centerPolygonsInCheckbox") }), className )} diff --git a/src/components/elements/Map-mapbox/components/MediaPopup.tsx b/src/components/elements/Map-mapbox/components/MediaPopup.tsx index e16d633e4..1a1d36c88 100644 --- a/src/components/elements/Map-mapbox/components/MediaPopup.tsx +++ b/src/components/elements/Map-mapbox/components/MediaPopup.tsx @@ -7,6 +7,8 @@ import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; import ImagePreview from "../../ImageGallery/ImagePreview"; import ImageWithPlaceholder from "../../ImageWithPlaceholder/ImageWithPlaceholder"; +import Menu from "../../Menu/Menu"; +import { MENU_PLACEMENT_RIGHT_BOTTOM } from "../../Menu/MenuVariant"; const client = new QueryClient(); @@ -15,16 +17,60 @@ export const MediaPopup = ({ name, created_date, file_url, - onClose + onClose, + handleDownload, + coverImage, + handleDelete, + openModalImageDetail, + isProjectPath }: { uuid: string; name: string; created_date: string; file_url: string; onClose: () => void; + handleDownload: () => void; + coverImage: () => void; + handleDelete: () => void; + openModalImageDetail: () => void; + isProjectPath: boolean; }) => { const [openModal, setOpenModal] = useState(false); const t = useT(); + + const addMenuItems = [ + { + id: "1", + render: () => {t("Edit Attributes")}, + onClick: openModalImageDetail + }, + { + id: "2", + render: () => {t("Download")}, + onClick: handleDownload + }, + ...(isProjectPath + ? [ + { + id: "3", + render: () => {t("Make Cover")}, + onClick: coverImage + } + ] + : []), + + { + id: "3.5", + type: "line" as const, + render: () => null + }, + { + id: "4", + render: () => {t("Delete")}, + onClick: handleDelete + } + ]; + return ( <> @@ -42,22 +88,30 @@ export const MediaPopup = ({ -
- - {name} - - - {new Date(created_date).toLocaleDateString("en-US", { - month: "long", - day: "numeric", - year: "numeric", - timeZone: "UTC" - })} - +
+
+ + {name} + + + {new Date(created_date).toLocaleDateString("en-US", { + month: "long", + day: "numeric", + year: "numeric", + timeZone: "UTC" + })} + +
+ + {" "} +
diff --git a/src/components/elements/Map-mapbox/utils.ts b/src/components/elements/Map-mapbox/utils.ts index 2cb156c7b..aae52aeac 100644 --- a/src/components/elements/Map-mapbox/utils.ts +++ b/src/components/elements/Map-mapbox/utils.ts @@ -216,7 +216,15 @@ export const addGeojsonToDraw = ( } }; -export const addMediaSourceAndLayer = (map: mapboxgl.Map, modelFilesData: GetV2MODELUUIDFilesResponse["data"]) => { +export const addMediaSourceAndLayer = ( + map: mapboxgl.Map, + modelFilesData: GetV2MODELUUIDFilesResponse["data"], + setImageCover: Function, + handleDownload: Function, + handleDelete: Function, + openModalImageDetail: Function, + isProjectPath: boolean +) => { const layerName = LAYERS_NAMES.MEDIA_IMAGES; removeMediaLayer(map); removePopups("MEDIA"); @@ -235,9 +243,19 @@ export const addMediaSourceAndLayer = (map: mapboxgl.Map, modelFilesData: GetV2M }, properties: { uuid: modelFile.uuid, - name: modelFile.file_name, + name: modelFile.name, created_date: modelFile.created_date, - file_url: modelFile.file_url + file_url: modelFile.file_url, + location: { + lat: modelFile.location?.lat, + lng: modelFile.location?.lng + }, + is_cover: modelFile.is_cover, + is_public: modelFile.is_public, + photographer: (modelFile as any).photographer || null, + description: (modelFile as any).description || null, + mime_type: modelFile.mime_type, + file_name: modelFile.file_name } })); @@ -270,12 +288,30 @@ export const addMediaSourceAndLayer = (map: mapboxgl.Map, modelFilesData: GetV2M let popupContent = document.createElement("div"); popupContent.className = "popup-content-media"; const root = createRoot(popupContent); + + const coverImage = () => { + setImageCover(feature?.properties?.uuid); + }; + const handleDownloadFunction = () => { + handleDownload(feature?.properties?.uuid, feature?.properties?.name); + }; + const handleDeleteFunction = () => { + handleDelete(feature?.properties?.uuid); + }; + const openModalImageDetailFunction = () => { + openModalImageDetail(feature?.properties); + }; root.render( createElement(MediaPopup, { ...feature.properties, onClose: () => { removePopups("MEDIA"); - } + }, + handleDownload: handleDownloadFunction, + coverImage: coverImage, + handleDelete: handleDeleteFunction, + openModalImageDetail: openModalImageDetailFunction, + isProjectPath: isProjectPath }) ); popup = new mapboxgl.Popup({ className: "popup-media", closeButton: false }) diff --git a/src/components/elements/Menu/Menu.tsx b/src/components/elements/Menu/Menu.tsx index 072efb300..d627644d9 100644 --- a/src/components/elements/Menu/Menu.tsx +++ b/src/components/elements/Menu/Menu.tsx @@ -169,7 +169,7 @@ const Menu = (props: MenuProps) => { return (
{ e.stopPropagation(); setIsOpen(!isOpen); diff --git a/src/components/elements/Menu/__snapshots__/Menu.stories.storyshot b/src/components/elements/Menu/__snapshots__/Menu.stories.storyshot index 69ab43fa1..716b6733c 100644 --- a/src/components/elements/Menu/__snapshots__/Menu.stories.storyshot +++ b/src/components/elements/Menu/__snapshots__/Menu.stories.storyshot @@ -2,7 +2,7 @@ exports[`Storyshots Components/Elements/Menu Placement Bottom Left 1`] = `
} - > - ({ - //@ts-ignore - uuid: file.uuid!, - fullImageUrl: file.file_url!, - thumbnailImageUrl: file.thumb_url!, - label: file.model_name!, - isPublic: file.is_public!, - isGeotagged: file?.location?.lat !== 0 && file?.location?.lng !== 0, - isCover: file.is_cover, - raw: file - })) || [] - } - entity={modelName} - entityData={entityData} - pageCount={data?.meta?.last_page || 1} - onDeleteConfirm={uuid => deleteFile({ pathParams: { uuid } })} - onGalleryStateChange={(pagination, filter) => { - setPagination(pagination); - setFilter(filter); - }} - filterOptions={filterOptions} - onChangeSearch={setSearchString} - onChangeGeotagged={setIsGeotagged} - reloadGalleryImages={refetch} - sortOrder={sortOrder} - setSortOrder={setSortOrder} - setFilters={setFilters} - isLoading={isLoading} - /> - +
+ {t("Upload Images")}} + > + ({ + //@ts-ignore + uuid: file.uuid!, + fullImageUrl: file.file_url!, + thumbnailImageUrl: file.thumb_url!, + label: file.model_name!, + isPublic: file.is_public!, + isGeotagged: file?.location?.lat !== 0 && file?.location?.lng !== 0, + isCover: file.is_cover, + raw: file + })) || [] + } + entity={modelName} + entityData={entityData} + pageCount={data?.meta?.last_page || 1} + onDeleteConfirm={uuid => deleteFile({ pathParams: { uuid } })} + onGalleryStateChange={(pagination, filter) => { + setPagination(pagination); + setFilter(filter); + }} + filterOptions={filterOptions} + onChangeSearch={setSearchString} + onChangeGeotagged={setIsGeotagged} + reloadGalleryImages={refetch} + sortOrder={sortOrder} + setSortOrder={setSortOrder} + setFilters={setFilters} + isLoading={isLoading} + /> + +
diff --git a/src/components/extensive/Icon/Icon.tsx b/src/components/extensive/Icon/Icon.tsx index da039294c..bac307a12 100644 --- a/src/components/extensive/Icon/Icon.tsx +++ b/src/components/extensive/Icon/Icon.tsx @@ -131,6 +131,8 @@ export enum IconNames { REQUEST = "request", COMMENT = "comment", CHEVRON_DOWN_PA = "chevron-down-pa", + CHEVRON_DOWN_DASH = "chevron-down-dash", + FRAMEWORK_PROGRAMME = "framework-programme", PAPER_CLIP = "paper-clip", CHECK_PROGRESSBAR_NULL = "check-progressbar-null", UPLOAD_CLOUD = "upload-cloud", @@ -164,7 +166,27 @@ export enum IconNames { DOCUMENT_CIRCLE_HOMEPAGE = "document-circle-home", TREE_CIRCLE_HOMEPAGE = "tree-circle-home", IC_A_TO_Z_CUSTOM = "ic-a-to-z-custom", - IC_Z_TO_A_CUSTOM = "ic-z-to-a-custom" + IC_Z_TO_A_CUSTOM = "ic-z-to-a-custom", + TERRAFUND_lOGO_MINI = "ic-terrafund-mini", + DASHBOARDS = "dashboards", + PROJECT_PROFILE = "project-profile", + DASHBOARD_AIRTABLE = "dashboard-airtable", + DASHBOARD_REPORTS = "dashboard-reports", + ABOUT_US = "about-us", + EXPAND = "expand", + COLLAPSE = "collapse", + IC_AGROFOREST = "targetLand/Agroforest", + IC_NATURAL_FOREST = "targetLand/NaturalForest", + IC_MANGROVE = "targetLand/Mangrove", + IC_WOODLOT = "targetLand/Woodlot", + IC_OPEN_NATURAL_ECOSYSTEM = "targetLand/OpenNaturalEcosystem", + IC_RIPARIAN_AREA = "targetLand/RiparianArea", + IC_URBAN_FOREST = "targetLand/UrbanForest", + IC_SILVOPASTURE = "targetLand/Silvopasture", + IC_PEATLAND = "targetLand/Peatland", + IC_LEGEND_MAP = "ic-legend-map", + EDIT_PA = "edit-pa", + PIN = "pin" } export interface IconProps { diff --git a/src/components/extensive/Modal/ModalAdd.tsx b/src/components/extensive/Modal/ModalAdd.tsx index 456bc2ff1..1aa0d5d17 100644 --- a/src/components/extensive/Modal/ModalAdd.tsx +++ b/src/components/extensive/Modal/ModalAdd.tsx @@ -36,6 +36,7 @@ export interface ModalAddProps extends ModalProps { secondContent?: string; btnDownloadProps?: IButtonProps; setErrorMessage?: (message: string) => void; + previewAsTable?: boolean; } const ModalAdd: FC = ({ @@ -62,6 +63,7 @@ const ModalAdd: FC = ({ btnDownload = false, btnDownloadProps, setErrorMessage, + previewAsTable, ...rest }) => { const [files, setFiles] = useState([]); @@ -167,6 +169,7 @@ const ModalAdd: FC = ({ void; + setFile?: (file: UploadedFile[]) => void; + allowMultiple?: boolean; + btnDownload?: boolean; + secondTitle?: string; + secondContent?: string; + btnDownloadProps?: IButtonProps; + setErrorMessage?: (message: string) => void; + previewAsTable?: boolean; + model: string; + collection: string; + entityData: any; +} + +const ModalAddImages: FC = ({ + iconProps, + title, + secondTitle, + content, + secondContent, + primaryButtonProps, + primaryButtonText, + secondaryButtonProps, + secondaryButtonText, + descriptionInput, + descriptionList, + descriptionListStatus, + acceptedTypes, + maxFileSize = 10485760, // Default to 10MB + variantFileInput = VARIANT_FILE_INPUT_MODAL_ADD, + children, + status, + setFile, + onClose, + allowMultiple = true, + btnDownload = false, + btnDownloadProps, + setErrorMessage, + previewAsTable, + model, + collection, + entityData, + ...rest +}) => { + const t = useT(); + const [files, setFiles] = useState([]); + + const { mutate: uploadFile } = usePostV2FileUploadMODELCOLLECTIONUUID({ + onSuccess(data, variables) { + //@ts-ignore swagger issue + addFileToValue({ ...data.data, rawFile: variables.file, uploadState: { isSuccess: true, isLoading: false } }); + }, + onError(err, variables: any) { + if (err?.statusCode === 422 && Array.isArray(err?.errors)) { + const file = variables.file; + + addFileToValue({ + collection_name: variables.pathParams.collection, + size: file?.size, + file_name: file?.name, + title: file?.name, + mime_type: file?.type, + is_cover: false, + is_public: true, + rawFile: file, + uploadState: { + isLoading: false, + isSuccess: false + } + }); + } + } + }); + + const { mutate: deleteFile } = useDeleteV2FilesUUID({ + onSuccess(data) { + //@ts-ignore swagger issue + removeFileFromValue(data.data); + }, + onError(err) { + setErrorMessage?.(`Error deleting file: ${err}`); + } + }); + + useEffect(() => { + if (setFile) { + setFile(files); + } + }, [files, setFile]); + + const addFileToValue = (file: Partial) => { + setFiles(value => { + if (Array.isArray(value) && allowMultiple) { + const tmp = [...value]; + const index = tmp.findIndex(item => { + if (!!file.uuid && file.uuid === item.uuid) { + return true; + } else if (!!file.rawFile && item.rawFile === file.rawFile) { + return true; + } else { + return false; + } + }); + + if (index === -1) { + return [...tmp, file as UploadedFile]; + } else { + tmp.splice(index, 1, file as UploadedFile); + return tmp; + } + } else { + return [file as UploadedFile]; + } + }); + }; + + const removeFileFromValue = (file: Partial) => { + setFiles(value => { + if (Array.isArray(value)) { + return value.filter(v => v.uuid !== file.uuid); + } else { + return []; + } + }); + }; + + const handleDeleteFile = (file: Partial) => { + if (file.uuid) { + addFileToValue({ + ...file, + uploadState: { + isLoading: false, + isSuccess: false, + isDeleting: true + } + }); + deleteFile({ pathParams: { uuid: file.uuid } }); + } else { + removeFileFromValue(file); + } + }; + + const handleFileChange = async (newFiles: File[]) => { + const acceptedFileTypes = (acceptedTypes ?? []).map(type => `${type}`.trim()); + + for (const file of newFiles) { + if ( + acceptedFileTypes.length > 0 && + !acceptedFileTypes.some(type => file.type === type || file.name.endsWith(type)) + ) { + setErrorMessage?.(t(`Unsupported file type. Please upload files of type: ${acceptedFileTypes.join(", ")}`)); + continue; + } + if (file.size > maxFileSize) { + setErrorMessage?.(t(`File size exceeds the limit of ${maxFileSize / 1048576} MB`)); + continue; + } + + addFileToValue({ + collection_name: collection, + size: file.size, + file_name: file.name, + title: file.name, + mime_type: file.type, + rawFile: file, + uploadState: { + isLoading: true + } + }); + + const body = new FormData(); + body.append("upload_file", file); + + try { + const location = await exifr.gps(file); + + if (location) { + body.append("lat", location.latitude.toString()); + body.append("lng", location.longitude.toString()); + } + } catch (e) { + console.log(e); + } + + uploadFile?.({ + pathParams: { model, collection, uuid: entityData.uuid }, + file: file, + //@ts-ignore swagger issue + body + }); + } + }; + + const deleteAllFiles = useCallback(() => { + files.forEach(file => { + if (file.uuid) { + deleteFile({ pathParams: { uuid: file.uuid } }); + } + }); + setFiles([]); + }, [files, deleteFile]); + + const handleClose = useCallback(() => { + deleteAllFiles(); + onClose?.(); + }, [deleteAllFiles, onClose]); + + const updateFileInValue = (updatedFile: Partial) => { + setFiles(prevFiles => { + const updatedFiles = prevFiles.map(file => (file.uuid === updatedFile.uuid ? { ...file, ...updatedFile } : file)); + return updatedFiles; + }); + }; + + return ( + +
+ +
+ + + + +
+
+
+ + + +
+ {title} +
+ + + {content} + + + + + + +
+ {secondTitle} +
+
+ + + {secondContent} + + + + {children} +
+
+ + + + +
+
+ ); +}; + +export default ModalAddImages; diff --git a/src/components/extensive/Modal/ModalFixOverlaps.tsx b/src/components/extensive/Modal/ModalFixOverlaps.tsx index e9cae6df8..8dafdfcb2 100644 --- a/src/components/extensive/Modal/ModalFixOverlaps.tsx +++ b/src/components/extensive/Modal/ModalFixOverlaps.tsx @@ -27,6 +27,7 @@ export interface ModalFixOverlapsProps extends ModalProps { toggleButton?: boolean; status?: StatusEnum; onClose?: () => void; + selectedUUIDs?: string[]; site: any; } @@ -60,6 +61,7 @@ const ModalFixOverlaps: FC = ({ status, site, onClose, + selectedUUIDs, ...rest }) => { const { data: polygonList } = useGetV2SitesSitePolygon({ pathParams: { site: site.uuid } }); @@ -83,9 +85,13 @@ const ModalFixOverlaps: FC = ({ useEffect(() => { if (!polygonList || !polygonsCriteriaData) return; - const failingPolygons = polygonList.filter(polygon => { + const filteredPolygonList = selectedUUIDs + ? polygonList.filter(polygon => polygon.poly_id && selectedUUIDs.includes(polygon.poly_id)) + : polygonList; + + const failingPolygons = filteredPolygonList.filter(polygon => { const criteria = polygonsCriteriaData.find(criteria => criteria.uuid === polygon.poly_id); - return !memoizedCheckValidCriteria(criteria as Criteria); + return polygon.poly_id && !memoizedCheckValidCriteria(criteria as Criteria); }); setDisplayedPolygons( diff --git a/src/components/extensive/Modal/ModalImageDetails.tsx b/src/components/extensive/Modal/ModalImageDetails.tsx index fdee88092..346c4fea4 100644 --- a/src/components/extensive/Modal/ModalImageDetails.tsx +++ b/src/components/extensive/Modal/ModalImageDetails.tsx @@ -27,6 +27,7 @@ export interface ModalImageDetailProps extends ModalProps { handleDelete?: (uuid: string) => void; data: any; entityData: any; + updateValuesInForm?: (updatedItem: any) => void; } const ModalImageDetails: FC = ({ @@ -41,6 +42,7 @@ const ModalImageDetails: FC = ({ handleDelete: onDeleteConfirm, data, entityData, + updateValuesInForm, ...rest }) => { const t = useT(); @@ -94,17 +96,17 @@ const ModalImageDetails: FC = ({ formData.photographer !== initialFormData.photographer || formData.is_public !== initialFormData.is_public ) { - updatePromises.push( - updateMedia({ - pathParams: { uuid: data.uuid }, - body: { - name: formData.name, - description: formData.description, - photographer: formData.photographer, - is_public: formData.is_public - } - }) - ); + const mediaUpdate = updateMedia({ + pathParams: { uuid: data.uuid }, + body: { + name: formData.name, + description: formData.description, + photographer: formData.photographer, + is_public: formData.is_public + } + }); + + updatePromises.push(mediaUpdate); } if (formData.is_cover !== initialFormData.is_cover && formData.is_cover) { @@ -118,6 +120,19 @@ const ModalImageDetails: FC = ({ await Promise.all(updatePromises); openNotification("success", t("Success!"), t("Image updated successfully")); reloadGalleryImages?.(); + + const updatedData = { + ...data.raw, + name: formData.name, + title: formData.name, + description: formData.description, + photographer: formData.photographer, + is_public: formData.is_public, + is_cover: formData.is_cover, + uuid: data.uuid + }; + updateValuesInForm?.(updatedData); + onClose?.(); } catch (error) { openNotification("error", t("Error"), t("Failed to update image details")); @@ -192,7 +207,7 @@ const ModalImageDetails: FC = ({ onChange={e => handleInputChange("name", e.target.value)} labelClassName="text-14-bold !normal-case" /> - {entityData.project ? ( + {entityData.project || entityData.model !== "project" ? ( <> ) : (
diff --git a/src/components/extensive/Modal/ModalDeleteBulkPolygons.tsx b/src/components/extensive/Modal/ModalProcessBulkPolygons.tsx similarity index 79% rename from src/components/extensive/Modal/ModalDeleteBulkPolygons.tsx rename to src/components/extensive/Modal/ModalProcessBulkPolygons.tsx index 4faf60c1b..4da225a1d 100644 --- a/src/components/extensive/Modal/ModalDeleteBulkPolygons.tsx +++ b/src/components/extensive/Modal/ModalProcessBulkPolygons.tsx @@ -6,9 +6,6 @@ import { twMerge } from "tailwind-merge"; import Button from "@/components/elements/Button/Button"; import Checkbox from "@/components/elements/Inputs/Checkbox/Checkbox"; import Text from "@/components/elements/Text/Text"; -import { useLoading } from "@/context/loaderAdmin.provider"; -import { useNotificationContext } from "@/context/notification.provider"; -import { useDeleteV2TerrafundProjectPolygons } from "@/generated/apiComponents"; import { SitePolygonsDataResponse } from "@/generated/apiSchemas"; import Icon, { IconNames } from "../Icon/Icon"; @@ -24,7 +21,7 @@ export interface ModalDeleteBulkPolygonsProps extends ModalProps { refetch?: () => void; } -const ModalDeleteBulkPolygons: FC = ({ +const ModalProcessBulkPolygons: FC = ({ iconProps, title, content, @@ -41,9 +38,6 @@ const ModalDeleteBulkPolygons: FC = ({ }) => { const t = useT(); const [polygonsSelected, setPolygonsSelected] = useState([]); - const { showLoader, hideLoader } = useLoading(); - const { openNotification } = useNotificationContext(); - const { mutate: deletePolygons } = useDeleteV2TerrafundProjectPolygons(); useEffect(() => { if (sitePolygonData) { @@ -61,38 +55,10 @@ const ModalDeleteBulkPolygons: FC = ({ return newSelected; }); }; - const handleSelectAll = (isChecked: boolean) => { setPolygonsSelected(sitePolygonData.map(() => isChecked)); }; - const handleDelete = () => { - showLoader(); - const selectedUUIDs: any = sitePolygonData - .filter((_, index) => polygonsSelected[index]) - .map(polygon => polygon.poly_id); - - deletePolygons( - { - body: { - uuids: selectedUUIDs - } - }, - { - onSuccess: () => { - onClose?.(); - refetch?.(); - hideLoader(); - openNotification("success", t("Success!"), t("Polygons deleted successfully")); - }, - onError: () => { - hideLoader(); - openNotification("error", t("Error!"), t("Failed to delete polygons")); - } - } - ); - }; - return (
@@ -152,7 +118,7 @@ const ModalDeleteBulkPolygons: FC = ({ - + +
+ + +
+ {isEmpty && !!emptyStateProps ? : children} +
+
+ + ); +}; export default withFrameworkShow(PageCard); diff --git a/src/components/extensive/PageElements/Card/__snapshots__/PageCard.stories.storyshot b/src/components/extensive/PageElements/Card/__snapshots__/PageCard.stories.storyshot index f7885858b..323672232 100644 --- a/src/components/extensive/PageElements/Card/__snapshots__/PageCard.stories.storyshot +++ b/src/components/extensive/PageElements/Card/__snapshots__/PageCard.stories.storyshot @@ -17,12 +17,16 @@ exports[`Storyshots Components/Extensive/Page/Card Default 1`] = ` Card title

-

- Card subtitle -

+ + Card subtitle + +
`; diff --git a/src/components/extensive/WizardForm/FieldMapper.tsx b/src/components/extensive/WizardForm/FieldMapper.tsx index fe7036731..0f6dd4701 100644 --- a/src/components/extensive/WizardForm/FieldMapper.tsx +++ b/src/components/extensive/WizardForm/FieldMapper.tsx @@ -80,6 +80,7 @@ export const FieldMapper = ({ field, formHook, onChange }: FieldMapperProps) => control={formHook.control} onChangeCapture={onChange} maxFileSize={10} + isPhotosAndVideo={field.fieldProps.collection === "photos" || field.fieldProps.collection === "videos"} /> ); diff --git a/src/components/extensive/WizardForm/index.tsx b/src/components/extensive/WizardForm/index.tsx index 03c6d9c0a..887c5a9f3 100644 --- a/src/components/extensive/WizardForm/index.tsx +++ b/src/components/extensive/WizardForm/index.tsx @@ -24,7 +24,7 @@ export interface WizardFormProps { steps: FormStepSchema[]; defaultValues?: any; onStepChange?: (values: any, step: FormStepSchema) => void; - onChange?: (values: any) => void; + onChange?: (values: any, isCloseAndSave?: boolean) => void; onSubmit?: (values: any) => void; onBackFirstStep: () => void; onCloseForm?: () => void; @@ -70,7 +70,6 @@ function WizardForm(props: WizardFormProps) { const selectedStep = props.steps?.[selectedStepIndex]; const selectedValidationSchema = selectedStep ? getSchema(selectedStep.fields) : undefined; const lastIndex = props.summaryOptions ? props.steps.length : props.steps.length - 1; - const formHook = useForm( selectedValidationSchema ? { @@ -115,7 +114,7 @@ function WizardForm(props: WizardFormProps) { }; const onClickSaveAndClose = () => { - props.onChange?.(formHook.getValues()); + props.onChange?.(formHook.getValues(), true); modal.openModal( ModalId.SAVE_AND_CLOSE_MODAL, , HTMLDivElement> { + isLoggedIn?: boolean; +} + +const DashboardLayout = (props: PropsWithChildren) => { + return ( + +
+ +
+ + {props.children} +
+
+
+ ); +}; + +export default DashboardLayout; diff --git a/src/components/generic/Sidebar/Sidebar.tsx b/src/components/generic/Sidebar/Sidebar.tsx new file mode 100644 index 000000000..5e5ef3e66 --- /dev/null +++ b/src/components/generic/Sidebar/Sidebar.tsx @@ -0,0 +1,67 @@ +import classNames from "classnames"; +import { useRouter } from "next/router"; +import React from "react"; + +import Text from "@/components/elements/Text/Text"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; + +const Sidebar = () => { + const router = useRouter(); + + return ( + + ); +}; + +export default Sidebar; diff --git a/src/context/mapArea.provider.tsx b/src/context/mapArea.provider.tsx index a7a6aef4f..d39b1e31b 100644 --- a/src/context/mapArea.provider.tsx +++ b/src/context/mapArea.provider.tsx @@ -17,6 +17,8 @@ type MapAreaType = { setSiteData: (value: any) => void; shouldRefetchPolygonData: boolean; setShouldRefetchPolygonData: (value: boolean) => void; + shouldRefetchMediaData: boolean; + setShouldRefetchMediaData: (value: boolean) => void; shouldRefetchValidation: boolean; setShouldRefetchValidation: (value: boolean) => void; shouldRefetchPolygonVersions: boolean; @@ -61,6 +63,8 @@ const defaultValue: MapAreaType = { setSiteData: () => {}, shouldRefetchPolygonData: false, setShouldRefetchPolygonData: () => {}, + shouldRefetchMediaData: false, + setShouldRefetchMediaData: () => {}, shouldRefetchValidation: false, setShouldRefetchValidation: () => {}, shouldRefetchPolygonVersions: false, @@ -94,6 +98,7 @@ export const MapAreaProvider: React.FC<{ children: ReactNode }> = ({ children }) const [openEditNewPolygon, setOpenEditNewPolygon] = useState(false); const [siteData, setSiteData] = useState(); const [shouldRefetchPolygonData, setShouldRefetchPolygonData] = useState(false); + const [shouldRefetchMediaData, setShouldRefetchMediaData] = useState(false); const [shouldRefetchValidation, setShouldRefetchValidation] = useState(false); const [shouldRefetchPolygonVersions, setShouldRefetchPolygonVersions] = useState(false); const [hasOverlaps, setHasOverlaps] = useState(false); @@ -148,6 +153,8 @@ export const MapAreaProvider: React.FC<{ children: ReactNode }> = ({ children }) setSiteData, shouldRefetchPolygonData, setShouldRefetchPolygonData, + shouldRefetchMediaData, + setShouldRefetchMediaData, shouldRefetchValidation, setShouldRefetchValidation, shouldRefetchPolygonVersions, diff --git a/src/generated/apiComponents.ts b/src/generated/apiComponents.ts index 35abb608f..56ac91a99 100644 --- a/src/generated/apiComponents.ts +++ b/src/generated/apiComponents.ts @@ -156,6 +156,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -170,6 +171,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -184,6 +186,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -198,6 +201,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -212,6 +216,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -401,6 +406,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -415,6 +421,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -429,6 +436,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -443,6 +451,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -457,6 +466,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -471,6 +481,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -485,6 +496,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -499,6 +511,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -513,6 +526,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -527,6 +541,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -541,6 +556,7 @@ export type GetV2AdminProjectsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -671,6 +687,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -685,6 +702,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -699,6 +717,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -713,6 +732,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -727,6 +747,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -916,6 +937,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -930,6 +952,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -944,6 +967,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -958,6 +982,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -972,6 +997,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -986,6 +1012,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -1000,6 +1027,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -1014,6 +1042,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -1028,6 +1057,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -1042,6 +1072,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -1056,6 +1087,7 @@ export type GetV2AdminNurseriesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -1191,6 +1223,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -1205,6 +1238,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -1219,6 +1253,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -1233,6 +1268,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -1247,6 +1283,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -1436,6 +1473,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -1450,6 +1488,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -1464,6 +1503,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -1478,6 +1518,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -1492,6 +1533,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -1506,6 +1548,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -1520,6 +1563,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -1534,6 +1578,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -1548,6 +1593,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -1562,6 +1608,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -1576,6 +1623,7 @@ export type GetV2AdminSitesMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -1700,6 +1748,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -1714,6 +1763,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -1728,6 +1778,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -1742,6 +1793,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -1756,6 +1808,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -1930,6 +1983,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -1944,6 +1998,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -1958,6 +2013,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -1972,6 +2028,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -1986,6 +2043,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -2000,6 +2058,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -2014,6 +2073,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -2028,6 +2088,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -2042,6 +2103,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -2056,6 +2118,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -2070,6 +2133,7 @@ export type PostUsersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -2315,6 +2379,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -2329,6 +2394,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -2343,6 +2409,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -2357,6 +2424,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -2371,6 +2439,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -2560,6 +2629,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -2574,6 +2644,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -2588,6 +2659,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -2602,6 +2674,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -2616,6 +2689,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -2630,6 +2704,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -2644,6 +2719,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -2658,6 +2734,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -2672,6 +2749,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -2686,6 +2764,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -2700,6 +2779,7 @@ export type GetV2MyProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -3080,6 +3160,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -3094,6 +3175,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -3108,6 +3190,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -3122,6 +3205,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -3136,6 +3220,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -3325,6 +3410,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -3339,6 +3425,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -3353,6 +3440,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -3367,6 +3455,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -3381,6 +3470,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -3395,6 +3485,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -3409,6 +3500,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -3423,6 +3515,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -3437,6 +3530,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -3451,6 +3545,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -3465,6 +3560,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -3545,6 +3641,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -3559,6 +3656,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -3573,6 +3671,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -3587,6 +3686,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -3601,6 +3701,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -3790,6 +3891,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -3804,6 +3906,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -3818,6 +3921,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -3832,6 +3936,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -3846,6 +3951,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -3860,6 +3966,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -3874,6 +3981,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -3888,6 +3996,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -3902,6 +4011,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -3916,6 +4026,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -3930,6 +4041,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -4018,6 +4130,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -4032,6 +4145,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -4046,6 +4160,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -4060,6 +4175,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -4074,6 +4190,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -4263,6 +4380,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -4277,6 +4395,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -4291,6 +4410,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -4305,6 +4425,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -4319,6 +4440,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -4333,6 +4455,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -4347,6 +4470,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -4361,6 +4485,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -4375,6 +4500,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -4389,6 +4515,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -4403,6 +4530,7 @@ export type GetV2AdminNurseryReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -4547,6 +4675,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -4561,6 +4690,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -4575,6 +4705,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -4589,6 +4720,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -4603,6 +4735,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -4792,6 +4925,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -4806,6 +4940,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -4820,6 +4955,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -4834,6 +4970,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -4848,6 +4985,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -4862,6 +5000,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -4876,6 +5015,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -4890,6 +5030,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -4904,6 +5045,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -4918,6 +5060,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -4932,6 +5075,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -5012,6 +5156,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -5026,6 +5171,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -5040,6 +5186,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -5054,6 +5201,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -5068,6 +5216,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -5257,6 +5406,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -5271,6 +5421,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -5285,6 +5436,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -5299,6 +5451,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -5313,6 +5466,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -5327,6 +5481,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -5341,6 +5496,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -5355,6 +5511,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -5369,6 +5526,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -5383,6 +5541,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -5397,6 +5556,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -5485,6 +5645,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -5499,6 +5660,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -5513,6 +5675,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -5527,6 +5690,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -5541,6 +5705,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -5730,6 +5895,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -5744,6 +5910,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -5758,6 +5925,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -5772,6 +5940,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -5786,6 +5955,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -5800,6 +5970,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -5814,6 +5985,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -5828,6 +6000,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -5842,6 +6015,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -5856,6 +6030,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -5870,6 +6045,7 @@ export type GetV2AdminSiteReportsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -6127,6 +6303,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -6141,6 +6318,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -6155,6 +6333,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -6169,6 +6348,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -6183,6 +6363,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -6372,6 +6553,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -6386,6 +6568,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -6400,6 +6583,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -6414,6 +6598,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -6428,6 +6613,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -6442,6 +6628,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -6456,6 +6643,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -6470,6 +6658,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -6484,6 +6673,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -6498,6 +6688,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -6512,6 +6703,7 @@ export type GetV2AdminNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -9441,6 +9633,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -9455,6 +9648,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -9469,6 +9663,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -9483,6 +9678,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -9497,6 +9693,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -9671,6 +9868,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -9685,6 +9883,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -9699,6 +9898,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -9713,6 +9913,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -9727,6 +9928,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -9741,6 +9943,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -9755,6 +9958,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -9769,6 +9973,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -9783,6 +9988,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -9797,6 +10003,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -9811,6 +10018,7 @@ export type GetV2AdminOrganisationsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -9955,6 +10163,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -9969,6 +10178,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -9983,6 +10193,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -9997,6 +10208,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -10011,6 +10223,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -10185,6 +10398,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -10199,6 +10413,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -10213,6 +10428,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -10227,6 +10443,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -10241,6 +10458,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -10255,6 +10473,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -10269,6 +10488,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -10283,6 +10503,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -10297,6 +10518,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -10311,6 +10533,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -10325,6 +10548,7 @@ export type GetV2AdminOrganisationsMultiResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -10442,6 +10666,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -10456,6 +10681,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -10470,6 +10696,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -10484,6 +10711,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -10498,6 +10726,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -10672,6 +10901,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -10686,6 +10916,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -10700,6 +10931,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -10714,6 +10946,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -10728,6 +10961,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -10742,6 +10976,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -10756,6 +10991,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -10770,6 +11006,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -10784,6 +11021,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -10798,6 +11036,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -10812,6 +11051,7 @@ export type GetV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -10929,6 +11169,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -10943,6 +11184,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -10957,6 +11199,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -10971,6 +11214,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -10985,6 +11229,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -11159,6 +11404,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -11173,6 +11419,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -11187,6 +11434,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -11201,6 +11449,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -11215,6 +11464,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -11229,6 +11479,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -11243,6 +11494,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -11257,6 +11509,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -11271,6 +11524,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -11285,6 +11539,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -11299,6 +11554,7 @@ export type PutV2AdminOrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -11893,6 +12149,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -11907,6 +12164,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -11921,6 +12179,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -11935,6 +12194,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -11949,6 +12209,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -12138,6 +12399,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -12152,6 +12414,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -12166,6 +12429,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -12180,6 +12444,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -12194,6 +12459,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -12208,6 +12474,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -12222,6 +12489,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -12236,6 +12504,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -12250,6 +12519,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -12264,6 +12534,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -12278,6 +12549,7 @@ export type GetV2OrganisationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -12474,6 +12746,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -12488,6 +12761,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -12502,6 +12776,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -12516,6 +12791,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -12530,6 +12806,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -12719,6 +12996,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -12733,6 +13011,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -12747,6 +13026,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -12761,6 +13041,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -12775,6 +13056,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -12789,6 +13071,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -12803,6 +13086,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -12817,6 +13101,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -12831,6 +13116,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -12845,6 +13131,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -12859,6 +13146,7 @@ export type PostV2OrganisationsJoinExistingResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -12992,6 +13280,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -13006,6 +13295,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -13020,6 +13310,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -13034,6 +13325,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -13048,6 +13340,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -13222,6 +13515,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -13236,6 +13530,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -13250,6 +13545,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -13264,6 +13560,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -13278,6 +13575,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -13292,6 +13590,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -13306,6 +13605,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -13320,6 +13620,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -13334,6 +13635,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -13348,6 +13650,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -13362,6 +13665,7 @@ export type GetV2OrganisationsUserRequestsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -13524,6 +13828,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -13538,6 +13843,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -13552,6 +13858,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -13566,6 +13873,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -13580,6 +13888,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -13754,6 +14063,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -13768,6 +14078,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -13782,6 +14093,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -13796,6 +14108,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -13810,6 +14123,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -13824,6 +14138,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -13838,6 +14153,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -13852,6 +14168,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -13866,6 +14183,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -13880,6 +14198,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -13894,6 +14213,7 @@ export type GetV2OrganisationsApprovedUsersUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -14459,6 +14779,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -14473,6 +14794,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -14487,6 +14809,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -14501,6 +14824,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -14515,6 +14839,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -14529,6 +14854,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -14543,6 +14869,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -14557,6 +14884,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -14571,6 +14899,7 @@ export type PutV2AdminUsersUUIDRequestBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -14833,6 +15162,7 @@ export type GetV2MODELUUIDFilesResponse = { file_url?: string; thumb_url?: string; file_name?: string; + name?: string; created_date?: string; model_name?: string; is_public?: boolean; @@ -14985,6 +15315,7 @@ export type PostV2FileUploadMODELCOLLECTIONUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; @@ -15060,6 +15391,7 @@ export type PostV2FileUploadSitePhotosUUIDBulkUrlResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; @@ -15169,6 +15501,7 @@ export type PutV2FilesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; @@ -16055,6 +16388,7 @@ export type GetV2AdminProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -16069,6 +16403,7 @@ export type GetV2AdminProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -16083,6 +16418,7 @@ export type GetV2AdminProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -16097,6 +16433,7 @@ export type GetV2AdminProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -16111,6 +16448,7 @@ export type GetV2AdminProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -16349,6 +16687,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -16363,6 +16702,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -16377,6 +16717,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -16391,6 +16732,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -16405,6 +16747,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -16594,6 +16937,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -16608,6 +16952,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -16622,6 +16967,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -16636,6 +16982,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -16650,6 +16997,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -16664,6 +17012,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -16678,6 +17027,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -16692,6 +17042,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -16706,6 +17057,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -16720,6 +17072,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -16734,6 +17087,7 @@ export type GetV2AdminProjectsResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -16869,6 +17223,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -16883,6 +17238,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -16897,6 +17253,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -16911,6 +17268,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -16925,6 +17283,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -17114,6 +17473,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -17128,6 +17488,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -17142,6 +17503,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -17156,6 +17518,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -17170,6 +17533,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -17184,6 +17548,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -17198,6 +17563,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -17212,6 +17578,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -17226,6 +17593,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -17240,6 +17608,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -17254,6 +17623,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -17614,6 +17984,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -17686,6 +18057,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -17700,6 +18072,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -17714,6 +18087,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -17728,6 +18102,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -17742,6 +18117,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -17916,6 +18292,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -17930,6 +18307,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -17944,6 +18322,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -17958,6 +18337,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -17972,6 +18352,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -17986,6 +18367,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -18000,6 +18382,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -18014,6 +18397,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -18028,6 +18412,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -18042,6 +18427,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -18056,6 +18442,7 @@ export type GetV2ProjectsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -18351,6 +18738,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -18365,6 +18753,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -18379,6 +18768,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -18393,6 +18783,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -18407,6 +18798,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -18596,6 +18988,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -18610,6 +19003,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -18624,6 +19018,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -18638,6 +19033,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -18652,6 +19048,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -18666,6 +19063,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -18680,6 +19078,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -18694,6 +19093,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -18708,6 +19108,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -18722,6 +19123,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -18736,6 +19138,7 @@ export type GetV2ProjectsUUIDNurseriesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -19419,6 +19822,7 @@ export type GetV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -19433,6 +19837,7 @@ export type GetV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -19447,6 +19852,7 @@ export type GetV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -19461,6 +19867,7 @@ export type GetV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -19475,6 +19882,7 @@ export type GetV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -19661,6 +20069,7 @@ export type PostV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -19675,6 +20084,7 @@ export type PostV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -19689,6 +20099,7 @@ export type PostV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -19703,6 +20114,7 @@ export type PostV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -19717,6 +20129,7 @@ export type PostV2ProjectPitchesResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -19996,6 +20409,7 @@ export type GetV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -20010,6 +20424,7 @@ export type GetV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -20024,6 +20439,7 @@ export type GetV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -20038,6 +20454,7 @@ export type GetV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -20052,6 +20469,7 @@ export type GetV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -20231,6 +20649,7 @@ export type PatchV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -20245,6 +20664,7 @@ export type PatchV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -20259,6 +20679,7 @@ export type PatchV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -20273,6 +20694,7 @@ export type PatchV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -20287,6 +20709,7 @@ export type PatchV2ProjectPitchesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -22042,6 +22465,7 @@ export type GetV2FundingProgrammeResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -22237,6 +22661,7 @@ export type GetV2AdminFundingProgrammeResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -22420,6 +22845,7 @@ export type PostV2AdminFundingProgrammeResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -22589,6 +23015,7 @@ export type GetV2FundingProgrammeUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -22755,6 +23182,7 @@ export type GetV2AdminFundingProgrammeUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -22929,6 +23357,7 @@ export type PutV2AdminFundingProgrammeUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -24585,6 +25014,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -24599,6 +25029,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -24613,6 +25044,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -24627,6 +25059,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -24641,6 +25074,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -24815,6 +25249,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -24829,6 +25264,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -24843,6 +25279,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -24857,6 +25294,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -24871,6 +25309,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -24885,6 +25324,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -24899,6 +25339,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -24913,6 +25354,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -24927,6 +25369,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -24941,6 +25384,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -24955,6 +25399,7 @@ export type PatchV2MyBannersResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -25711,6 +26156,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -25783,6 +26229,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -25797,6 +26244,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -25811,6 +26259,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -25825,6 +26274,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -25839,6 +26289,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -26013,6 +26464,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -26027,6 +26479,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -26041,6 +26494,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -26055,6 +26509,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -26069,6 +26524,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -26083,6 +26539,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -26097,6 +26554,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -26111,6 +26569,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -26125,6 +26584,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -26139,6 +26599,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -26153,6 +26614,7 @@ export type GetV2AdminFormsApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -26965,6 +27427,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -27037,6 +27500,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -27051,6 +27515,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -27065,6 +27530,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -27079,6 +27545,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -27093,6 +27560,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -27267,6 +27735,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -27281,6 +27750,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -27295,6 +27765,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -27309,6 +27780,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -27323,6 +27795,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -27337,6 +27810,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -27351,6 +27825,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -27365,6 +27840,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -27379,6 +27855,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -27393,6 +27870,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -27407,6 +27885,7 @@ export type GetV2ApplicationsUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -28669,6 +29148,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -28683,6 +29163,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -28697,6 +29178,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -28711,6 +29193,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -28725,6 +29208,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -28914,6 +29398,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -28928,6 +29413,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -28942,6 +29428,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -28956,6 +29443,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -28970,6 +29458,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -28984,6 +29473,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -28998,6 +29488,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -29012,6 +29503,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -29026,6 +29518,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -29040,6 +29533,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -29054,6 +29548,7 @@ export type GetV2SitesUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -29769,7 +30264,7 @@ export type PostV2ExportImageRequestBody = { /** * The URL of the image to be downloaded. */ - imageUrl: string; + uuid: string; }; export type PostV2ExportImageVariables = { @@ -30714,6 +31209,7 @@ export type GetV2AuditStatusENTITYUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; }[]; @@ -30789,6 +31285,7 @@ export type PostV2AuditStatusENTITYUUIDResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; }; @@ -32467,13 +32964,13 @@ export const useDeleteV2TerrafundProjectPolygons = ( export type GetV2DashboardJobsCreatedQueryParams = { /** - * Optional. Filter counts and metrics by country. + * search term to use on the collection */ - country?: string; + search?: string; /** - * Optional. Filter counts and metrics by UUID. + * multiple filters can be applied. syntax is ?filter[foo]=value1,value2$filter[bar]=value3 */ - uuid?: string; + filter?: string; }; export type GetV2DashboardJobsCreatedError = Fetcher.ErrorWrapper; @@ -32534,13 +33031,13 @@ export const useGetV2DashboardJobsCreated = ; @@ -32617,13 +33114,13 @@ export const useGetV2DashboardRestorationStrategy = ; @@ -32743,9 +33240,9 @@ export const useGetV2DashboardProjectListExport = ( export type GetV2DashboardGetPolygonsQueryParams = { /** - * uuid for the given project + * multiple filters can be applied. syntax is ?filter[foo]=value1,value2$filter[bar]=value3 */ - uuid?: string; + filter?: string; }; export type GetV2DashboardGetPolygonsError = Fetcher.ErrorWrapper; @@ -32805,9 +33302,9 @@ export const useGetV2DashboardGetPolygons = ; @@ -32867,9 +33364,9 @@ export const useGetV2DashboardGetPolygonsStatuses = ; @@ -32915,9 +33412,9 @@ export const useGetV2DashboardGetBboxProject = ; @@ -33130,9 +33627,13 @@ export const useGetV2DashboardProjectDataUuid = ; @@ -33405,13 +33914,13 @@ export const useGetV2DashboardTotalSectionHeader = ; @@ -33471,9 +33980,13 @@ export const useGetV2DashboardActiveCountries = ; @@ -33529,9 +34042,13 @@ export const useGetV2DashboardCountries = ; @@ -33673,9 +34190,13 @@ export const useGetV2DashboardProjectDetailsProject = ; @@ -35081,6 +35602,140 @@ export const usePostV2TerrafundClipPolygonsSiteUuid = ( ); }; +export type PostV2TerrafundClipPolygonsPolygonsError = Fetcher.ErrorWrapper; + +export type PostV2TerrafundClipPolygonsPolygonsResponse = { + /** + * A list of processed polygons + */ + processed?: { + /** + * The UUID of the unprocessed polygon + * + * @example uuid1 + */ + uuid?: string; + /** + * The name of the unprocessed polygon + * + * @example Polygon Name + */ + poly_name?: string; + }[]; + /** + * A list of polygons that couldn't be processed + */ + unprocessed?: { + /** + * The UUID of the unprocessed polygon + * + * @example uuid1 + */ + uuid?: string; + /** + * The name of the unprocessed polygon + * + * @example Polygon Name + */ + poly_name?: string; + }[]; +}; + +export type PostV2TerrafundClipPolygonsPolygonsRequestBody = { + uuids?: string[]; +}; + +export type PostV2TerrafundClipPolygonsPolygonsVariables = { + body?: PostV2TerrafundClipPolygonsPolygonsRequestBody; +} & ApiContext["fetcherOptions"]; + +export const fetchPostV2TerrafundClipPolygonsPolygons = ( + variables: PostV2TerrafundClipPolygonsPolygonsVariables, + signal?: AbortSignal +) => + apiFetch< + PostV2TerrafundClipPolygonsPolygonsResponse, + PostV2TerrafundClipPolygonsPolygonsError, + PostV2TerrafundClipPolygonsPolygonsRequestBody, + {}, + {}, + {} + >({ url: "/v2/terrafund/clip-polygons/polygons", method: "post", ...variables, signal }); + +export const usePostV2TerrafundClipPolygonsPolygons = ( + options?: Omit< + reactQuery.UseMutationOptions< + PostV2TerrafundClipPolygonsPolygonsResponse, + PostV2TerrafundClipPolygonsPolygonsError, + PostV2TerrafundClipPolygonsPolygonsVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useApiContext(); + return reactQuery.useMutation< + PostV2TerrafundClipPolygonsPolygonsResponse, + PostV2TerrafundClipPolygonsPolygonsError, + PostV2TerrafundClipPolygonsPolygonsVariables + >( + (variables: PostV2TerrafundClipPolygonsPolygonsVariables) => + fetchPostV2TerrafundClipPolygonsPolygons({ ...fetcherOptions, ...variables }), + options + ); +}; + +export type PostV2TerrafundValidationPolygonsError = Fetcher.ErrorWrapper; + +export type PostV2TerrafundValidationPolygonsResponse = { + /** + * A message indicating the completion of validation for all site polygons. + */ + message?: string; +}; + +export type PostV2TerrafundValidationPolygonsRequestBody = { + uuids?: string[]; +}; + +export type PostV2TerrafundValidationPolygonsVariables = { + body?: PostV2TerrafundValidationPolygonsRequestBody; +} & ApiContext["fetcherOptions"]; + +export const fetchPostV2TerrafundValidationPolygons = ( + variables: PostV2TerrafundValidationPolygonsVariables, + signal?: AbortSignal +) => + apiFetch< + PostV2TerrafundValidationPolygonsResponse, + PostV2TerrafundValidationPolygonsError, + PostV2TerrafundValidationPolygonsRequestBody, + {}, + {}, + {} + >({ url: "/v2/terrafund/validation/polygons", method: "post", ...variables, signal }); + +export const usePostV2TerrafundValidationPolygons = ( + options?: Omit< + reactQuery.UseMutationOptions< + PostV2TerrafundValidationPolygonsResponse, + PostV2TerrafundValidationPolygonsError, + PostV2TerrafundValidationPolygonsVariables + >, + "mutationFn" + > +) => { + const { fetcherOptions } = useApiContext(); + return reactQuery.useMutation< + PostV2TerrafundValidationPolygonsResponse, + PostV2TerrafundValidationPolygonsError, + PostV2TerrafundValidationPolygonsVariables + >( + (variables: PostV2TerrafundValidationPolygonsVariables) => + fetchPostV2TerrafundValidationPolygons({ ...fetcherOptions, ...variables }), + options + ); +}; + export type QueryOperation = | { path: "/v2/tree-species/{entity}/{UUID}"; diff --git a/src/generated/apiRequestBodies.ts b/src/generated/apiRequestBodies.ts index f976b946c..4b4ff19da 100644 --- a/src/generated/apiRequestBodies.ts +++ b/src/generated/apiRequestBodies.ts @@ -40,29 +40,6 @@ export type Body = { status?: string; }; -export type PostV2FundingProgrammeBody = { - name?: string; - description?: string; - read_more_url?: string; - location?: string; - organisation_types?: string[]; - cover?: { - uuid?: string; - url?: string; - thumb_url?: string; - collection_name?: string; - title?: string; - file_name?: string; - mime_type?: string; - size?: number; - lat?: number; - lng?: number; - is_public?: boolean; - created_at?: string; - }; - status?: string; -}; - export type PostV2FormsEntityFormUuidBody = { /** * allowed values projects/sites/nurseries/project-reports/site-reports/nursery-reports @@ -187,6 +164,30 @@ export type V2PostOrganisationsBody = { tags?: string[]; }; +export type PostV2FundingProgrammeBody = { + name?: string; + description?: string; + read_more_url?: string; + location?: string; + organisation_types?: string[]; + cover?: { + uuid?: string; + url?: string; + thumb_url?: string; + collection_name?: string; + title?: string; + file_name?: string; + mime_type?: string; + size?: number; + lat?: number; + lng?: number; + is_public?: boolean; + is_cover?: boolean; + created_at?: string; + }; + status?: string; +}; + export type V2AdminOrganisationApproveBody = { uuid: string; }; @@ -343,6 +344,7 @@ export type GetV2FundingProgrammeIDBody = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; diff --git a/src/generated/apiSchemas.ts b/src/generated/apiSchemas.ts index d17239d9d..7a1a5b2ce 100644 --- a/src/generated/apiSchemas.ts +++ b/src/generated/apiSchemas.ts @@ -169,6 +169,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -183,6 +184,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -197,6 +199,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -211,6 +214,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -225,6 +229,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -399,6 +404,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -413,6 +419,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -427,6 +434,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -441,6 +449,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -455,6 +464,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -469,6 +479,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -483,6 +494,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -497,6 +509,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -511,6 +524,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -525,6 +539,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -539,6 +554,7 @@ export type UserRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -648,6 +664,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -662,6 +679,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -676,6 +694,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -690,6 +709,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -704,6 +724,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -878,6 +899,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -892,6 +914,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -906,6 +929,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -920,6 +944,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -934,6 +959,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -948,6 +974,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -962,6 +989,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -976,6 +1004,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -990,6 +1019,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -1004,6 +1034,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -1018,6 +1049,7 @@ export type UserReadAll = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -1172,6 +1204,7 @@ export type FundingProgramme = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -1212,6 +1245,7 @@ export type FundingProgrammeCreate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; status?: string; @@ -1918,6 +1952,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -1932,6 +1967,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -1946,6 +1982,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -1960,6 +1997,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -1974,6 +2012,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -2148,6 +2187,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -2162,6 +2202,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -2176,6 +2217,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -2190,6 +2232,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -2204,6 +2247,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -2218,6 +2262,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -2232,6 +2277,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -2246,6 +2292,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -2260,6 +2307,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -2274,6 +2322,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -2288,6 +2337,7 @@ export type V2AdminOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -2370,6 +2420,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -2384,6 +2435,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -2398,6 +2450,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -2412,6 +2465,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -2426,6 +2480,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -2440,6 +2495,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -2454,6 +2510,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -2468,6 +2525,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -2482,6 +2540,7 @@ export type V2MonitoringOrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -2792,6 +2851,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -2806,6 +2866,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -2820,6 +2881,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -2834,6 +2896,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -2848,6 +2911,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -3037,6 +3101,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -3051,6 +3116,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -3065,6 +3131,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -3079,6 +3146,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -3093,6 +3161,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -3107,6 +3176,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -3121,6 +3191,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -3135,6 +3206,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -3149,6 +3221,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -3163,6 +3236,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -3177,6 +3251,7 @@ export type V2OrganisationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -3298,6 +3373,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -3312,6 +3388,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -3326,6 +3403,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -3340,6 +3418,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -3354,6 +3433,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -3368,6 +3448,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -3382,6 +3463,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -3396,6 +3478,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -3410,6 +3493,7 @@ export type V2AdminUserUpdate = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -3433,6 +3517,7 @@ export type V2FileRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; @@ -3441,6 +3526,7 @@ export type V2FileGallery = { file_url?: string; thumb_url?: string; file_name?: string; + name?: string; created_date?: string; model_name?: string; is_public?: boolean; @@ -4067,6 +4153,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -4081,6 +4168,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -4095,6 +4183,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -4109,6 +4198,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -4123,6 +4213,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -4312,6 +4403,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -4326,6 +4418,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -4340,6 +4433,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -4354,6 +4448,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -4368,6 +4463,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -4382,6 +4478,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -4396,6 +4493,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -4410,6 +4508,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -4424,6 +4523,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -4438,6 +4538,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -4452,6 +4553,7 @@ export type V2NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -4672,6 +4774,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -4686,6 +4789,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -4700,6 +4804,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -4714,6 +4819,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -4728,6 +4834,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -4917,6 +5024,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -4931,6 +5039,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -4945,6 +5054,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -4959,6 +5069,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -4973,6 +5084,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -4987,6 +5099,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -5001,6 +5114,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -5015,6 +5129,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -5029,6 +5144,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -5043,6 +5159,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -5057,6 +5174,7 @@ export type ProjectLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -5142,6 +5260,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -5156,6 +5275,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -5170,6 +5290,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -5184,6 +5305,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -5198,6 +5320,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -5387,6 +5510,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -5401,6 +5525,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -5415,6 +5540,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -5429,6 +5555,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -5443,6 +5570,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -5457,6 +5585,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -5471,6 +5600,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -5485,6 +5615,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -5499,6 +5630,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -5513,6 +5645,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -5527,6 +5660,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -5887,6 +6021,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -5959,6 +6094,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -5973,6 +6109,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -5987,6 +6124,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -6001,6 +6139,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -6015,6 +6154,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -6189,6 +6329,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -6203,6 +6344,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -6217,6 +6359,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -6231,6 +6374,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -6245,6 +6389,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -6259,6 +6404,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -6273,6 +6419,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -6287,6 +6434,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -6301,6 +6449,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -6315,6 +6464,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -6329,6 +6479,7 @@ export type ProjectFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -6521,6 +6672,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -6535,6 +6687,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -6549,6 +6702,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -6563,6 +6717,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -6577,6 +6732,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -6766,6 +6922,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -6780,6 +6937,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -6794,6 +6952,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -6808,6 +6967,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -6822,6 +6982,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -6836,6 +6997,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -6850,6 +7012,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -6864,6 +7027,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -6878,6 +7042,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -6892,6 +7057,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -6906,6 +7072,7 @@ export type SiteFullRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -7055,6 +7222,7 @@ export type ProjectPitchRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -7069,6 +7237,7 @@ export type ProjectPitchRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -7083,6 +7252,7 @@ export type ProjectPitchRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -7097,6 +7267,7 @@ export type ProjectPitchRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -7111,6 +7282,7 @@ export type ProjectPitchRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -8325,6 +8497,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; deleted_at?: string; @@ -8397,6 +8570,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -8411,6 +8585,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -8425,6 +8600,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -8439,6 +8615,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -8453,6 +8630,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -8627,6 +8805,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -8641,6 +8820,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -8655,6 +8835,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -8669,6 +8850,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -8683,6 +8865,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -8697,6 +8880,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -8711,6 +8895,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -8725,6 +8910,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -8739,6 +8925,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -8753,6 +8940,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -8767,6 +8955,7 @@ export type ApplicationRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -8915,6 +9104,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -8929,6 +9119,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -8943,6 +9134,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -8957,6 +9149,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -8971,6 +9164,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -9160,6 +9354,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -9174,6 +9369,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -9188,6 +9384,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -9202,6 +9399,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -9216,6 +9414,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -9230,6 +9429,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -9244,6 +9444,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -9258,6 +9459,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -9272,6 +9474,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -9286,6 +9489,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -9300,6 +9504,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -9380,6 +9585,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -9394,6 +9600,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -9408,6 +9615,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -9422,6 +9630,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -9436,6 +9645,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -9625,6 +9835,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -9639,6 +9850,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -9653,6 +9865,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -9667,6 +9880,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -9681,6 +9895,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -9695,6 +9910,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -9709,6 +9925,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -9723,6 +9940,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -9737,6 +9955,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -9751,6 +9970,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -9765,6 +9985,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -9853,6 +10074,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -9867,6 +10089,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -9881,6 +10104,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -9895,6 +10119,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -9909,6 +10134,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -10098,6 +10324,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -10112,6 +10339,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -10126,6 +10354,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -10140,6 +10369,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -10154,6 +10384,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -10168,6 +10399,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -10182,6 +10414,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -10196,6 +10429,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -10210,6 +10444,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -10224,6 +10459,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -10238,6 +10474,7 @@ export type SiteReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -10336,6 +10573,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -10350,6 +10588,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -10364,6 +10603,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -10378,6 +10618,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -10392,6 +10633,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -10581,6 +10823,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -10595,6 +10838,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -10609,6 +10853,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -10623,6 +10868,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -10637,6 +10883,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -10651,6 +10898,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -10665,6 +10913,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -10679,6 +10928,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -10693,6 +10943,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -10707,6 +10958,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -10721,6 +10973,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -10801,6 +11054,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -10815,6 +11069,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -10829,6 +11084,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -10843,6 +11099,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -10857,6 +11114,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -11046,6 +11304,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -11060,6 +11319,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -11074,6 +11334,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -11088,6 +11349,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -11102,6 +11364,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -11116,6 +11379,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -11130,6 +11394,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -11144,6 +11409,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -11158,6 +11424,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -11172,6 +11439,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -11186,6 +11454,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -11274,6 +11543,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -11288,6 +11558,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -11302,6 +11573,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -11316,6 +11588,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -11330,6 +11603,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -11519,6 +11793,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -11533,6 +11808,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -11547,6 +11823,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -11561,6 +11838,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -11575,6 +11853,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -11589,6 +11868,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -11603,6 +11883,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -11617,6 +11898,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -11631,6 +11913,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -11645,6 +11928,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -11659,6 +11943,7 @@ export type SiteReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -11769,6 +12054,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -11783,6 +12069,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -11797,6 +12084,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -11811,6 +12099,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -11825,6 +12114,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -12014,6 +12304,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -12028,6 +12319,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -12042,6 +12334,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -12056,6 +12349,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -12070,6 +12364,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -12084,6 +12379,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -12098,6 +12394,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -12112,6 +12409,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -12126,6 +12424,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -12140,6 +12439,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -12154,6 +12454,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -12234,6 +12535,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -12248,6 +12550,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -12262,6 +12565,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -12276,6 +12580,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -12290,6 +12595,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -12479,6 +12785,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -12493,6 +12800,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -12507,6 +12815,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -12521,6 +12830,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -12535,6 +12845,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -12549,6 +12860,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -12563,6 +12875,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -12577,6 +12890,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -12591,6 +12905,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -12605,6 +12920,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -12619,6 +12935,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -12707,6 +13024,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -12721,6 +13039,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -12735,6 +13054,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -12749,6 +13069,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -12763,6 +13084,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -12952,6 +13274,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -12966,6 +13289,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -12980,6 +13304,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -12994,6 +13319,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -13008,6 +13334,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -13022,6 +13349,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -13036,6 +13364,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -13050,6 +13379,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -13064,6 +13394,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -13078,6 +13409,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -13092,6 +13424,7 @@ export type NurseryReportLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -13189,6 +13522,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -13203,6 +13537,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -13217,6 +13552,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -13231,6 +13567,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -13245,6 +13582,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -13434,6 +13772,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -13448,6 +13787,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -13462,6 +13802,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -13476,6 +13817,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -13490,6 +13832,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -13504,6 +13847,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -13518,6 +13862,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -13532,6 +13877,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -13546,6 +13892,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -13560,6 +13907,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -13574,6 +13922,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -13654,6 +14003,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -13668,6 +14018,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -13682,6 +14033,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -13696,6 +14048,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -13710,6 +14063,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -13899,6 +14253,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -13913,6 +14268,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -13927,6 +14283,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -13941,6 +14298,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -13955,6 +14313,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -13969,6 +14328,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -13983,6 +14343,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -13997,6 +14358,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -14011,6 +14373,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -14025,6 +14388,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -14039,6 +14403,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -14127,6 +14492,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -14141,6 +14507,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -14155,6 +14522,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -14169,6 +14537,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -14183,6 +14552,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -14372,6 +14742,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -14386,6 +14757,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -14400,6 +14772,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -14414,6 +14787,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -14428,6 +14802,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -14442,6 +14817,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -14456,6 +14832,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -14470,6 +14847,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -14484,6 +14862,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -14498,6 +14877,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -14512,6 +14892,7 @@ export type NurseryReportPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -14624,6 +15005,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -14638,6 +15020,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -14652,6 +15035,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -14666,6 +15050,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -14680,6 +15065,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -14869,6 +15255,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -14883,6 +15270,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -14897,6 +15285,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -14911,6 +15300,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -14925,6 +15315,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -14939,6 +15330,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -14953,6 +15345,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -14967,6 +15360,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -14981,6 +15375,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -14995,6 +15390,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -15009,6 +15405,7 @@ export type NurseryPaginated = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -15110,6 +15507,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -15124,6 +15522,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -15138,6 +15537,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -15152,6 +15552,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -15166,6 +15567,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -15355,6 +15757,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -15369,6 +15772,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -15383,6 +15787,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -15397,6 +15802,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -15411,6 +15817,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -15425,6 +15832,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -15439,6 +15847,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -15453,6 +15862,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -15467,6 +15877,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -15481,6 +15892,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -15495,6 +15907,7 @@ export type NurseryRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -15608,6 +16021,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -15622,6 +16036,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -15636,6 +16051,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -15650,6 +16066,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -15664,6 +16081,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -15853,6 +16271,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -15867,6 +16286,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -15881,6 +16301,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -15895,6 +16316,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -15909,6 +16331,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -15923,6 +16346,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -15937,6 +16361,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -15951,6 +16376,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -15965,6 +16391,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -15979,6 +16406,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -15993,6 +16421,7 @@ export type NurseryLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -16087,6 +16516,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -16101,6 +16531,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -16115,6 +16546,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -16129,6 +16561,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -16143,6 +16576,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -16332,6 +16766,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -16346,6 +16781,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -16360,6 +16796,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -16374,6 +16811,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -16388,6 +16826,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -16402,6 +16841,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -16416,6 +16856,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -16430,6 +16871,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -16444,6 +16886,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -16458,6 +16901,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -16472,6 +16916,7 @@ export type SiteLiteRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -16571,6 +17016,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -16585,6 +17031,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -16599,6 +17046,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -16613,6 +17061,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -16627,6 +17076,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -16816,6 +17266,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -16830,6 +17281,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -16844,6 +17296,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -16858,6 +17311,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -16872,6 +17326,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -16886,6 +17341,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -16900,6 +17356,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -16914,6 +17371,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -16928,6 +17386,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -16942,6 +17401,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -16956,6 +17416,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -17057,6 +17518,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -17071,6 +17533,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -17085,6 +17548,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -17099,6 +17563,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -17113,6 +17578,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -17287,6 +17753,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -17301,6 +17768,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -17315,6 +17783,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -17329,6 +17798,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -17343,6 +17813,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -17357,6 +17828,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -17371,6 +17843,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -17385,6 +17858,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -17399,6 +17873,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -17413,6 +17888,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -17427,6 +17903,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -17535,6 +18012,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -17549,6 +18027,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -17563,6 +18042,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -17577,6 +18057,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -17591,6 +18072,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -17765,6 +18247,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -17779,6 +18262,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -17793,6 +18277,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -17807,6 +18292,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -17821,6 +18307,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -17835,6 +18322,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -17849,6 +18337,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -17863,6 +18352,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -17877,6 +18367,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -17891,6 +18382,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -17905,6 +18397,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -18005,6 +18498,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -18019,6 +18513,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -18033,6 +18528,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -18047,6 +18543,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -18061,6 +18558,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -18250,6 +18748,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -18264,6 +18763,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -18278,6 +18778,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -18292,6 +18793,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -18306,6 +18808,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -18320,6 +18823,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -18334,6 +18838,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -18348,6 +18853,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -18362,6 +18868,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -18376,6 +18883,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -18390,6 +18898,7 @@ export type NurseryReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -18481,6 +18990,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -18495,6 +19005,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -18509,6 +19020,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -18523,6 +19035,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -18537,6 +19050,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -18726,6 +19240,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -18740,6 +19255,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -18754,6 +19270,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -18768,6 +19285,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -18782,6 +19300,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -18796,6 +19315,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -18810,6 +19330,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -18824,6 +19345,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -18838,6 +19360,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -18852,6 +19375,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -18866,6 +19390,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -18963,6 +19488,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -18977,6 +19503,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -18991,6 +19518,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -19005,6 +19533,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -19019,6 +19548,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -19193,6 +19723,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -19207,6 +19738,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -19221,6 +19753,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -19235,6 +19768,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -19249,6 +19783,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -19263,6 +19798,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -19277,6 +19813,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -19291,6 +19828,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -19305,6 +19843,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -19319,6 +19858,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -19333,6 +19873,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -19441,6 +19982,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -19455,6 +19997,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -19469,6 +20012,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -19483,6 +20027,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -19497,6 +20042,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -19671,6 +20217,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -19685,6 +20232,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -19699,6 +20247,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -19713,6 +20262,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -19727,6 +20277,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -19741,6 +20292,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -19755,6 +20307,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -19769,6 +20322,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -19783,6 +20337,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -19797,6 +20352,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -19811,6 +20367,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -19981,6 +20538,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -19995,6 +20553,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -20009,6 +20568,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -20023,6 +20583,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -20037,6 +20598,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -20226,6 +20788,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -20240,6 +20803,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -20254,6 +20818,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -20268,6 +20833,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -20282,6 +20848,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -20296,6 +20863,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -20310,6 +20878,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -20324,6 +20893,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -20338,6 +20908,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -20352,6 +20923,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -20366,6 +20938,7 @@ export type SiteReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -20579,6 +21152,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -20593,6 +21167,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -20607,6 +21182,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -20621,6 +21197,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -20635,6 +21212,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -20824,6 +21402,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -20838,6 +21417,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -20852,6 +21432,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -20866,6 +21447,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -20880,6 +21462,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -20894,6 +21477,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -20908,6 +21492,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -20922,6 +21507,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -20936,6 +21522,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -20950,6 +21537,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -20964,6 +21552,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -21049,6 +21638,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; restoration_photos?: { @@ -21063,6 +21653,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; cover?: { @@ -21077,6 +21668,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; proof_of_land_tenure_mou?: { @@ -21091,6 +21683,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; detailed_project_budget?: { @@ -21105,6 +21698,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; expected_active_restoration_start_date?: string; @@ -21279,6 +21873,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; previous_annual_reports?: { @@ -21293,6 +21888,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; logo?: { @@ -21307,6 +21903,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; cover?: { @@ -21321,6 +21918,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }; reference?: { @@ -21335,6 +21933,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; additional?: { @@ -21349,6 +21948,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_2year?: { @@ -21363,6 +21963,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_last_year?: { @@ -21377,6 +21978,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_this_year?: { @@ -21391,6 +21993,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; op_budget_next_year?: { @@ -21405,6 +22008,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; legal_registration?: { @@ -21419,6 +22023,7 @@ export type ProjectReportRead = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; /** @@ -21774,6 +22379,7 @@ export type AuditStatusResponse = { lat?: number; lng?: number; is_public?: boolean; + is_cover?: boolean; created_at?: string; }[]; }; @@ -22633,13 +23239,50 @@ export type SitePolygonLoaded = { version_name?: string; }; -export type ClippedPolygonsResponse = { +export type ClippedPolygonResponse = { updated_polygons?: { uuid?: string; poly_name?: string; }[]; }; +export type ClippedPolygonsResponse = { + /** + * A list of processed polygons + */ + processed?: { + /** + * The UUID of the unprocessed polygon + * + * @example uuid1 + */ + uuid?: string; + /** + * The name of the unprocessed polygon + * + * @example Polygon Name + */ + poly_name?: string; + }[]; + /** + * A list of polygons that couldn't be processed + */ + unprocessed?: { + /** + * The UUID of the unprocessed polygon + * + * @example uuid1 + */ + uuid?: string; + /** + * The name of the unprocessed polygon + * + * @example Polygon Name + */ + poly_name?: string; + }[]; +}; + export type DeletedPolygonsResponse = { /** * Success message diff --git a/src/helpers/entity.ts b/src/helpers/entity.ts index 5e85d9195..8a73c31d0 100644 --- a/src/helpers/entity.ts +++ b/src/helpers/entity.ts @@ -45,3 +45,11 @@ export const getEntityCombinedStatus = (entity: any): string => { ? entity.update_request_status : entity.status; }; + +export const getCurrentPathEntity = () => { + const currentRoute = window.location.href + window.location.hash; + if (currentRoute?.includes("nursery")) return "nursery"; + if (currentRoute?.includes("site")) return "site"; + if (currentRoute?.includes("project")) return "project"; + return ""; +}; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 88a6d7b7e..c869c66d2 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -8,9 +8,11 @@ import App from "next/app"; import dynamic from "next/dynamic"; import { useRouter } from "next/router"; import nookies from "nookies"; +import { Else, If, Then } from "react-if"; import Toast from "@/components/elements/Toast/Toast"; import ModalRoot from "@/components/extensive/Modal/ModalRoot"; +import DashboardLayout from "@/components/generic/Layout/DashboardLayout"; import MainLayout from "@/components/generic/Layout/MainLayout"; import AuthProvider from "@/context/auth.provider"; import { LoadingProvider } from "@/context/loaderAdmin.provider"; @@ -31,6 +33,7 @@ const _App = ({ Component, pageProps, props, accessToken }: AppProps & { accessT const t = useT(); const router = useRouter(); const isAdmin = router.asPath.includes("/admin"); + const isOnDashboards = router.asPath.includes("/dashboard"); setClientSideTranslations(props); setupYup(t); @@ -66,10 +69,20 @@ const _App = ({ Component, pageProps, props, accessToken }: AppProps & { accessT - - - - + + + + + + + + + + + + + + diff --git a/src/pages/auth/create-account/index.page.tsx b/src/pages/auth/create-account/index.page.tsx index fd98a2306..e2f83d264 100644 --- a/src/pages/auth/create-account/index.page.tsx +++ b/src/pages/auth/create-account/index.page.tsx @@ -18,7 +18,7 @@ const Page = () => { const [selectedTitleOption, setSelectedTitleOption] = useState(); const [showSignUp, setShowSignUp] = useState(false); const { data: dashboardCountries } = useGetV2DashboardCountries({ - queryParams: { country: "all" } + queryParams: {} }); const refContentCard = React.useRef(null); diff --git a/src/pages/dashboard/components/BlurContainer.tsx b/src/pages/dashboard/components/BlurContainer.tsx new file mode 100644 index 000000000..6ff7b02e3 --- /dev/null +++ b/src/pages/dashboard/components/BlurContainer.tsx @@ -0,0 +1,28 @@ +import classNames from "classnames"; +import React from "react"; +import { twMerge as tw } from "tailwind-merge"; +interface BlurContainerProps { + isCollapse?: boolean; + children: React.ReactNode; + className?: string; +} + +const BlurContainer = (props: BlurContainerProps) => { + const { isCollapse, children, className } = props; + return ( +
+
+ {children} +
+ ); +}; + +export default BlurContainer; diff --git a/src/pages/dashboard/components/ContentOverview.tsx b/src/pages/dashboard/components/ContentOverview.tsx new file mode 100644 index 000000000..83778a2e9 --- /dev/null +++ b/src/pages/dashboard/components/ContentOverview.tsx @@ -0,0 +1,112 @@ +import { ColumnDef, RowData } from "@tanstack/react-table"; +import { useT } from "@transifex/react"; +import classNames from "classnames"; +import React, { useState } from "react"; +import { When } from "react-if"; + +import Button from "@/components/elements/Button/Button"; +import Table from "@/components/elements/Table/Table"; +import { VARIANT_TABLE_DASHBOARD_COUNTRIES } from "@/components/elements/Table/TableVariants"; +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon from "@/components/extensive/Icon/Icon"; +import { IconNames } from "@/components/extensive/Icon/Icon"; + +import TooltipGridMap from "./TooltipGridMap"; + +interface ContentOverviewProps { + data: TData[]; + columns: ColumnDef[]; +} + +const ContentOverview = (props: ContentOverviewProps) => { + const { data, columns } = props; + const [collapseMap, setCollapseMap] = useState(false); + const t = useT(); + + return ( +
+
+
+
+ {t("MAP")} +
+ map + + + + +
+
+ + + {t("Non-Profit Projects (32)")} + +
+
+ + + {t("Enterprise Projects (457)")} + +
+
+
+
+ +
+
+
+ {t("ACTIVE COUNTRIES")} + + + +
+ +
+
+
+
+ + + + + + ); +}; + +export default ContentOverview; diff --git a/src/pages/dashboard/components/ContentOverviewProject.tsx b/src/pages/dashboard/components/ContentOverviewProject.tsx new file mode 100644 index 000000000..91aface60 --- /dev/null +++ b/src/pages/dashboard/components/ContentOverviewProject.tsx @@ -0,0 +1,101 @@ +import { useT } from "@transifex/react"; +import React from "react"; + +import Table from "@/components/elements/Table/Table"; +import { VARIANT_TABLE_DASHBOARD_COUNTRIES } from "@/components/elements/Table/TableVariants"; +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon from "@/components/extensive/Icon/Icon"; +import { IconNames } from "@/components/extensive/Icon/Icon"; +import PageCard from "@/components/extensive/PageElements/Card/PageCard"; + +import { COLUMN_ACTIVE_COUNTRY, DATA_ACTIVE_COUNTRY } from "../mockedData/dashboard"; +import ImpactStoryCard from "./ImpactStoryCard"; +import TooltipGridMap from "./TooltipGridMap"; + +const ContentOverviewProject = () => { + const t = useT(); + const dataImpactStories = [ + { + id: "1", + by: "FilmsForChange", + date: "23 Sep 2023", + description: "Mud Floods in our village in Kasese Uganda.", + image: "/images/pitch-placeholder.webp", + title: "Huge mudslide Causes Damage" + }, + { + id: "2", + by: "FilmsForChange", + date: "23 Sep 2023", + description: "Women’s Tree Nursery is doing well. After receiving trees and he Lorem ipsum dolor sit amet", + image: "/images/landing-page-hero-banner.webp", + title: "Kyemihoko Rural Women’s Initiative" + }, + { + id: "3", + by: "FilmsForChange", + date: "23 Sep 2023", + description: "Mud Floods in our village in Kasese Uganda.", + image: "/images/terrafund-afr-100-explainer.webp", + title: "Wild Fire" + } + ]; + return ( +
+
+
+ map + +
+
+ + + {t("Non-Profit Projects (32)")} + +
+
+ + + {t("Enterprise Projects (457)")} + +
+
+
+ + + {dataImpactStories.map(story => ( + + ))} + + +
+
+ {t("OTHER PROJECTS IN NIGER")} + + + +
+
+
+
+ + + + + + ); +}; + +export default ContentOverviewProject; diff --git a/src/pages/dashboard/components/GraphicDashboard.tsx b/src/pages/dashboard/components/GraphicDashboard.tsx new file mode 100644 index 000000000..e6f3a3910 --- /dev/null +++ b/src/pages/dashboard/components/GraphicDashboard.tsx @@ -0,0 +1,33 @@ +import { useT } from "@transifex/react"; + +import Text from "@/components/elements/Text/Text"; + +import { DashboardTableDataProps } from "../index.page"; + +const GraphicDashboard = ({ data, maxValue }: { data: DashboardTableDataProps[]; maxValue: number }) => { + const t = useT(); + + return ( +
+ {data.map((item, index) => { + const widthBar = (item.value * 100) / maxValue; + + return ( +
+
+ + {t(item.valueText)} + +
+ + + {t(item.label)} + +
+ ); + })} +
+ ); +}; + +export default GraphicDashboard; diff --git a/src/pages/dashboard/components/GraphicIconDashoard.tsx b/src/pages/dashboard/components/GraphicIconDashoard.tsx new file mode 100644 index 000000000..9055ad752 --- /dev/null +++ b/src/pages/dashboard/components/GraphicIconDashoard.tsx @@ -0,0 +1,86 @@ +import classNames from "classnames"; + +import Text from "@/components/elements/Text/Text"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; + +import { DashboardTableDataProps } from "../index.page"; + +const GraphicIconDashoard = ({ data }: { data: DashboardTableDataProps[] }) => { + const colorIconLabel = (label: string): { color: string; icon: keyof typeof IconNames } => { + switch (label) { + case "Agroforest": + return { color: "bg-tertiary-800", icon: "IC_AGROFOREST" }; + + case "Natural Forest": + return { color: "bg-green-60", icon: "IC_NATURAL_FOREST" }; + + case "Mangrove": + return { color: "bg-green-300", icon: "IC_MANGROVE" }; + + case "Woodlot / Plantation": + return { color: "bg-yellow-600", icon: "IC_WOODLOT" }; + + case "Open Natural Ecosystem": + return { color: "bg-green-40", icon: "IC_OPEN_NATURAL_ECOSYSTEM" }; + + case "Riparian Area / Wetland": + return { color: "bg-primary-350", icon: "IC_RIPARIAN_AREA" }; + + case "Urban Forest": + return { color: "bg-purpleCustom-100", icon: "IC_URBAN_FOREST" }; + + case "Silvopasture": + return { color: "bg-yellow-550", icon: "IC_SILVOPASTURE" }; + case "Peatland": + return { color: "bg-primary-250", icon: "IC_PEATLAND" }; + default: + return { color: "bg-tertiary-800", icon: "IC_AGROFOREST" }; + } + }; + + return ( +
+
+ {data.map((item, index) => { + return ( +
+ ); + })} +
+
+ {data.map((item, index) => ( +
+
+
+ + + {item.label} + +
+ + {item.valueText} + +
+
+
+
+
+ ))} +
+
+ ); +}; + +export default GraphicIconDashoard; diff --git a/src/pages/dashboard/components/HeaderDashboard.tsx b/src/pages/dashboard/components/HeaderDashboard.tsx new file mode 100644 index 000000000..30f07ea0b --- /dev/null +++ b/src/pages/dashboard/components/HeaderDashboard.tsx @@ -0,0 +1,209 @@ +import { useT } from "@transifex/react"; +import classNames from "classnames"; +import { useRouter } from "next/router"; +import React, { useContext, useEffect, useState } from "react"; + +import Dropdown from "@/components/elements/Inputs/Dropdown/Dropdown"; +import { VARIANT_DROPDOWN_HEADER } from "@/components/elements/Inputs/Dropdown/DropdownVariant"; +import Text from "@/components/elements/Text/Text"; +import { useGetV2DashboardCountries } from "@/generated/apiComponents"; +import { OptionValue } from "@/types/common"; + +import { RefContext } from "../context/ScrollContext.provider"; +import BlurContainer from "./BlurContainer"; + +const HeaderDashboard = () => { + const sharedRef = useContext(RefContext); + const t = useT(); + const router = useRouter(); + const [isHeaderCollapsed, setIsHeaderCollapsed] = useState(false); + const dropdwonOptions = [ + { + title: "Tree Planting", + value: "1" + }, + { + title: "Direct Seeding", + value: "2" + }, + { + title: "Natural Regeneration", + value: "3" + } + ]; + + const { data: dashboardCountries } = useGetV2DashboardCountries({ + queryParams: {} + }); + + const dropdwonCountryOptions = [ + { + title: "Global", + value: "global", + prefix: undefined + }, + ...(dashboardCountries?.data?.map((country: any) => ({ + title: country.data.label, + value: country.id, + prefix: flag + })) || []) + ]; + + const [filterValues, setFilterValues] = useState<{ + dropdown1: OptionValue[]; + dropdown2: OptionValue[]; + dropdown3: OptionValue[]; + dropdown4: OptionValue[]; + }>({ + dropdown1: [], + dropdown2: [], + dropdown3: [], + dropdown4: [] + }); + + const resetValues = () => { + setFilterValues({ + dropdown1: [], + dropdown2: [], + dropdown3: [], + dropdown4: [] + }); + }; + + const handleChange = (selectName: string, value: OptionValue[]) => { + setFilterValues(prevValues => ({ + ...prevValues, + [selectName]: value + })); + }; + + useEffect(() => { + const scrollElement = sharedRef?.current; + const handleScroll = () => { + if (scrollElement) { + const currentScrollY = scrollElement.scrollTop; + if (currentScrollY === 0) { + setIsHeaderCollapsed(true); + } else { + setIsHeaderCollapsed(false); + } + } + }; + scrollElement?.addEventListener("scroll", handleScroll); + + return () => { + scrollElement?.removeEventListener("scroll", handleScroll); + }; + }, [sharedRef]); + + const handleChangeCountry = (value: OptionValue[]) => { + if (value[0] === "global") { + router.push(`/dashboard/programme`); + return; + } + setFilterValues(prevValues => ({ + ...prevValues, + dropdown3: value + })); + const selectedCountry = dashboardCountries?.data.find((country: { id: OptionValue }) => { + if (country.id === value[0]) { + return country; + } + }); + + router.push(`/dashboard/country/${selectedCountry?.country_slug}`); + }; + + return ( +
+
+ + {t("TerraMatch Insights")} + +
+ + + {t("Programme:")} + + } + inputVariant="text-14-semibold" + variant={VARIANT_DROPDOWN_HEADER} + value={filterValues.dropdown1} + placeholder="Top100" + onChange={(value: OptionValue[]) => { + handleChange("dropdown1", value); + }} + options={dropdwonOptions} + /> + + + + {t("Landscape:")} + + } + inputVariant="text-14-semibold" + variant={VARIANT_DROPDOWN_HEADER} + placeholder="Top100" + value={filterValues.dropdown2} + onChange={value => { + handleChange("dropdown2", value); + }} + options={dropdwonOptions} + /> + + + + {t("Country:")} + + } + inputVariant="text-14-semibold" + variant={VARIANT_DROPDOWN_HEADER} + placeholder="Global" + value={filterValues.dropdown3} + onChange={value => { + handleChangeCountry(value); + }} + options={dropdwonCountryOptions} + /> + + + + {t("Organization:")} + + } + inputVariant="text-14-semibold" + multiSelect + variant={VARIANT_DROPDOWN_HEADER} + placeholder="Private" + value={filterValues.dropdown4} + onChange={value => { + handleChange("dropdown4", value); + }} + options={dropdwonOptions} + /> + + +
+
+
+
+ +
+
+ ); +}; + +export default HeaderDashboard; diff --git a/src/pages/dashboard/components/ImpactStoryCard.tsx b/src/pages/dashboard/components/ImpactStoryCard.tsx new file mode 100644 index 000000000..c020aeb67 --- /dev/null +++ b/src/pages/dashboard/components/ImpactStoryCard.tsx @@ -0,0 +1,42 @@ +import { useT } from "@transifex/react"; +import React from "react"; + +import Text from "@/components/elements/Text/Text"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +interface ImpactStoryCardProps { + key?: string; + date: string; + by: string; + title: string; + description: string; + image: string; +} +const ImpactStoryCard = (porps: ImpactStoryCardProps) => { + const { key, date, by, title, description, image } = porps; + const t = useT(); + + return ( +
+ profile +
+
+ + {t(`${date} by ${by}`)} + + +
+ + {t(title)} + + + {t(description)} + +
+
+ ); +}; + +export default ImpactStoryCard; diff --git a/src/pages/dashboard/components/ObjectiveSec.tsx b/src/pages/dashboard/components/ObjectiveSec.tsx new file mode 100644 index 000000000..48875fcdb --- /dev/null +++ b/src/pages/dashboard/components/ObjectiveSec.tsx @@ -0,0 +1,44 @@ +import { useT } from "@transifex/react"; +import { When } from "react-if"; + +import Text from "@/components/elements/Text/Text"; + +import { DashboardDataProps } from "../project/index.page"; + +const ObjectiveSec = ({ data }: { data: DashboardDataProps }) => { + const t = useT(); + + return ( +
+ +
+ + {t(data.objetiveText)} + + + {t("Read More...")} + +
+
+ +
+ + {t(`Preferred Language: ${data.preferredLanguage}`)} + +
+
+ +
+ + {t("Land Tenure")} + + + {t(data.landTenure)} + +
+
+
+ ); +}; + +export default ObjectiveSec; diff --git a/src/pages/dashboard/components/SecDashboard.tsx b/src/pages/dashboard/components/SecDashboard.tsx new file mode 100644 index 000000000..b83112939 --- /dev/null +++ b/src/pages/dashboard/components/SecDashboard.tsx @@ -0,0 +1,158 @@ +import { useT } from "@transifex/react"; +import classNames from "classnames"; +import { useEffect, useState } from "react"; +import { When } from "react-if"; + +import Table from "@/components/elements/Table/Table"; +import { VARIANT_TABLE_SITE_POLYGON_REVIEW } from "@/components/elements/Table/TableVariants"; +import Text from "@/components/elements/Text/Text"; +import Toggle from "@/components/elements/Toggle/Toggle"; +import { VARIANT_TOGGLE_DASHBOARD } from "@/components/elements/Toggle/ToggleVariants"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import { TextVariants } from "@/types/common"; + +import { DashboardDataProps } from "../project/index.page"; +import GraphicDashboard from "./GraphicDashboard"; +import GraphicIconDashoard from "./GraphicIconDashoard"; +import ObjectiveSec from "./ObjectiveSec"; +import TooltipGraphicDashboard from "./TooltipGraphicDashboard"; +import ValueNumberDashboard from "./ValueNumberDashboard"; + +const SecDashboard = ({ + title, + type, + secondOptionsData, + className, + classNameBody, + classNameHeader, + classNameTitle, + tooltipGraphic = false, + variantTitle, + data +}: { + title: string; + type?: "legend" | "toggle"; + secondOptionsData?: any; + className?: string; + classNameBody?: string; + classNameHeader?: string; + classNameTitle?: string; + tooltipGraphic?: boolean; + variantTitle?: TextVariants; + data: DashboardDataProps; +}) => { + const [toggleValue, setToggleValue] = useState(0); + const t = useT(); + + const tableColumns = [ + { + header: "Specie", + accessorKey: "label" + }, + { + header: "Count", + accessorKey: "valueText" + } + ]; + + useEffect(() => { + if (data?.tableData) { + setToggleValue(1); + } + }, []); + + return ( +
+
+
+ + {t(title)} + + + + +
+ +
+ {secondOptionsData && + secondOptionsData.map((item: any, index: number) => ( +
+
+ + {t(item.label)} + +
+ ))} +
+ + + { + setToggleValue(toggleValue === 0 ? 1 : 0); + }} + variant={VARIANT_TOGGLE_DASHBOARD} + /> + +
+
+ {data?.value && } + + secondValue + + + + + + {data?.graphic} +
+ +
+ {data?.graphicLegend?.map((item, index) => ( +
+
+
+ + {t(item.label)} + + + {t(item.value)} + +
+
+ ))} +
+ +
+
+ + + {data?.tableData && } + + +
+ {data && ( +
+ )} + + + + + + + + + + + + ); +}; + +export default SecDashboard; diff --git a/src/pages/dashboard/components/TooltipGraphicDashboard.tsx b/src/pages/dashboard/components/TooltipGraphicDashboard.tsx new file mode 100644 index 000000000..e04201907 --- /dev/null +++ b/src/pages/dashboard/components/TooltipGraphicDashboard.tsx @@ -0,0 +1,41 @@ +import { useT } from "@transifex/react"; + +import Text from "@/components/elements/Text/Text"; + +const TooltipGraphicDashboard = () => { + const t = useT(); + + const data = [ + { + label: "Total", + value: "555" + }, + { + label: "Non-Profit", + value: "271" + }, + { + label: "Enterprise", + value: "284" + } + ]; + + return ( +
+ + {t("Number of Trees in 2024")} + + {data.map((item, index) => ( +
+ + {t(item.label)} + + + {t(item.value)} + +
+ ))} +
+ ); +}; +export default TooltipGraphicDashboard; diff --git a/src/pages/dashboard/components/TooltipGridMap.tsx b/src/pages/dashboard/components/TooltipGridMap.tsx new file mode 100644 index 000000000..6e9165b1e --- /dev/null +++ b/src/pages/dashboard/components/TooltipGridMap.tsx @@ -0,0 +1,76 @@ +import { useT } from "@transifex/react"; +import { When } from "react-if"; + +import Text from "@/components/elements/Text/Text"; + +export interface TooltipItemProps { + id: string; + title: string; + value: string; +} + +export interface TooltipGridProps { + label: string; + learnMore?: boolean; +} + +const TooltipGridMap = (props: TooltipGridProps) => { + const { label, learnMore } = props; + const t = useT(); + + const items = [ + { + id: "1", + title: "No. of Projects", + value: "32" + }, + { + id: "2", + title: "Trees Plantedd", + value: "2,234" + }, + { + id: "3", + title: "Restoration Hectares", + value: "832" + }, + { + id: "4", + title: "Jobs Created", + value: "1,306" + } + ]; + + return ( +
+
+
+ flag + + {t(label)} + +
+
+ {items.map(item => ( +
+ + {t(item.title)} + + + {t(item.value)} + +
+ ))} +
+ + + + {t("Learn More")} + + +
+
+ ); +}; + +export default TooltipGridMap; diff --git a/src/pages/dashboard/components/ValueNumberDashboard.tsx b/src/pages/dashboard/components/ValueNumberDashboard.tsx new file mode 100644 index 000000000..753e7dd86 --- /dev/null +++ b/src/pages/dashboard/components/ValueNumberDashboard.tsx @@ -0,0 +1,31 @@ +import { useT } from "@transifex/react"; +import { When } from "react-if"; + +import Text from "@/components/elements/Text/Text"; + +export interface ValueNumberDashboardProps { + value: string; + unit?: string; +} + +const ValueNumberDashboard = ({ value, unit }: ValueNumberDashboardProps) => { + const t = useT(); + + return ( +
+ + {t(value)} + + + {t(unit)} + + + + {t("out of 20M")} + + +
+ ); +}; + +export default ValueNumberDashboard; diff --git a/src/pages/dashboard/context/ScrollContext.provider.tsx b/src/pages/dashboard/context/ScrollContext.provider.tsx new file mode 100644 index 000000000..420667dde --- /dev/null +++ b/src/pages/dashboard/context/ScrollContext.provider.tsx @@ -0,0 +1,13 @@ +import React, { createContext, MutableRefObject, PropsWithChildren, useRef } from "react"; + +type RefContextType = MutableRefObject; + +export const RefContext = createContext(null); + +const RefProvider = ({ children }: PropsWithChildren) => { + const sharedRef = useRef(null); + + return {children}; +}; + +export default RefProvider; diff --git a/src/pages/dashboard/country/[id].page.tsx b/src/pages/dashboard/country/[id].page.tsx new file mode 100644 index 000000000..7c4472871 --- /dev/null +++ b/src/pages/dashboard/country/[id].page.tsx @@ -0,0 +1,198 @@ +import { useT } from "@transifex/react"; +import React, { useContext } from "react"; + +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import { IconNames } from "@/components/extensive/Icon/Icon"; +import Icon from "@/components/extensive/Icon/Icon"; +import PageCard from "@/components/extensive/PageElements/Card/PageCard"; +import PageRow from "@/components/extensive/PageElements/Row/PageRow"; + +import ContentOverview from "../components/ContentOverview"; +import SecDashboard from "../components/SecDashboard"; +import { RefContext } from "../context/ScrollContext.provider"; +import { + COLUMN_ACTIVE_COUNTRY, + DATA_ACTIVE_COUNTRY, + JOBS_CREATED_BY_AGE, + JOBS_CREATED_BY_GENDER, + LABEL_LEGEND, + NEW_FULL_TIME_JOBS, + NEW_PART_TIME_JOBS, + NUMBER_OF_TREES_PLANTED, + NUMBER_OF_TREES_PLANTED_BY_YEAR, + RESTORATION_STRATEGIES_REPRESENTED, + TARGET_LAND_USE_TYPES_REPRESENTED, + TOP_10_PROJECTS_WITH_THE_MOST_PLANTED_TREES, + TOTAL_HECTARES_UNDER_RESTORATION, + TOTAL_NUMBER_OF_SITES, + TOTAL_VOLUNTEERS, + VOLUNTEERS_CREATED_BY_AGE, + VOLUNTEERS_CREATED_BY_GENDER +} from "../mockedData/dashboard"; + +const Country = () => { + const t = useT(); + const dataToggle = ["Absolute", "Relative"]; + const dataToggleGraphic = ["Table", "Graphic"]; + const sharedRef = useContext(RefContext); + + const dashboardHeader = [ + { + label: "Trees Planted", + value: "12.2M" + }, + { + label: "Hectares Under Restoration", + value: "5,220 ha" + }, + { + label: "Jobs Created", + value: "23,000" + } + ]; + + return ( +
+ + +
+ +
+ {dashboardHeader.map((item, index) => ( +
+ + {t(item.label)} + + +
+ + {t(item.value)} + + + + +
+
+ ))} +
+ + TerraFund’s MRV framework . Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > + + + + + TerraFund’s MRV framework. Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > +
+ + +
+ + +
+ TerraFund’s MRV framework. TerraFund defines a job as a set of tasks and duties performed by one person aged 18 or over in exchange for monetary pay in line with living wage standards. All indicators in the Jobs Created category are disaggregated by number of women, number of men, and number of youths. Restoration Champions are required to report on jobs and volunteers every 6 months and provide additional documentation to verify employment. Please refer to the linked MRV framework for additional details on how these numbers are sourced and verified.` + )} + > +
+ + +
+
+ + +
+ +
+ + +
+
+
+
+
+ ); +}; + +export default Country; diff --git a/src/pages/dashboard/index.page.tsx b/src/pages/dashboard/index.page.tsx new file mode 100644 index 000000000..c6eaa78f3 --- /dev/null +++ b/src/pages/dashboard/index.page.tsx @@ -0,0 +1,208 @@ +import { useT } from "@transifex/react"; +import { useContext } from "react"; + +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import PageCard from "@/components/extensive/PageElements/Card/PageCard"; +import PageRow from "@/components/extensive/PageElements/Row/PageRow"; + +import ContentOverview from "./components/ContentOverview"; +import SecDashboard from "./components/SecDashboard"; +import { RefContext } from "./context/ScrollContext.provider"; +import { + COLUMN_ACTIVE_PROGRAMME, + DATA_ACTIVE_PROGRAMME, + JOBS_CREATED_BY_AGE, + JOBS_CREATED_BY_GENDER, + LABEL_LEGEND, + NEW_FULL_TIME_JOBS, + NEW_PART_TIME_JOBS, + NUMBER_OF_TREES_PLANTED, + NUMBER_OF_TREES_PLANTED_BY_YEAR, + RESTORATION_STRATEGIES_REPRESENTED, + TARGET_LAND_USE_TYPES_REPRESENTED, + TOP_10_PROJECTS_WITH_THE_MOST_PLANTED_TREES, + TOTAL_HECTARES_UNDER_RESTORATION, + TOTAL_NUMBER_OF_SITES, + TOTAL_VOLUNTEERS, + VOLUNTEERS_CREATED_BY_AGE, + VOLUNTEERS_CREATED_BY_GENDER +} from "./mockedData/dashboard"; + +export interface DashboardTableDataProps { + label: string; + valueText: string; + value: number; +} + +export interface GraphicLegendProps { + label: string; + value: string; + color: string; +} + +const Dashboard = () => { + const t = useT(); + const dataToggle = ["Absolute", "Relative"]; + const dataToggleGraphic = ["Table", "Graphic"]; + const sharedRef = useContext(RefContext); + const dashboardHeader = [ + { + label: "Trees Planted", + value: "12.2M" + }, + { + label: "Hectares Under Restoration", + value: "5,220 ha" + }, + { + label: "Jobs Created", + value: "23,000" + } + ]; + + return ( +
+ + +
+ +
+ {dashboardHeader.map((item, index) => ( +
+ + {t(item.label)} + + +
+ + {t(item.value)} + + + + +
+
+ ))} +
+ + TerraFund’s MRV framework . Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > + + + + + TerraFund’s MRV framework. Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > +
+ + +
+ + +
+ TerraFund’s MRV framework. TerraFund defines a job as a set of tasks and duties performed by one person aged 18 or over in exchange for monetary pay in line with living wage standards. All indicators in the Jobs Created category are disaggregated by number of women, number of men, and number of youths. Restoration Champions are required to report on jobs and volunteers every 6 months and provide additional documentation to verify employment. Please refer to the linked MRV framework for additional details on how these numbers are sourced and verified.` + )} + > +
+ + +
+
+ + +
+ +
+ + +
+
+
+
+
+ ); +}; + +export default Dashboard; diff --git a/src/pages/dashboard/mockedData/dashboard.ts b/src/pages/dashboard/mockedData/dashboard.ts new file mode 100644 index 000000000..d1ccee1b8 --- /dev/null +++ b/src/pages/dashboard/mockedData/dashboard.ts @@ -0,0 +1,430 @@ +export const LABEL_LEGEND = [ + { + label: "Non-Profit", + color: "bg-secondary-600" + }, + { + label: "Enterprise", + color: "bg-primary" + } +]; + +export const NUMBER_OF_TREES_PLANTED = { + value: "12.2", + unit: "M" +}; + +export const NUMBER_OF_TREES_PLANTED_BY_YEAR = { + graphic: "/images/graphic-1.png" +}; + +export const TOP_10_PROJECTS_WITH_THE_MOST_PLANTED_TREES = { + tableData: [ + { + label: "Aerobic Agroforestry", + valueText: "1,515,000", + value: 1515000 + }, + { + label: "Wells for Zoe", + valueText: "952789", + value: 952789 + }, + { + label: "Trees for the Future", + valueText: "646,247", + value: 646247 + }, + { + label: "KIJABE FOREST TRUST", + valueText: "549,995", + value: 549995 + }, + { + label: "Kijani Forestry", + valueText: "500,005", + value: 500005 + } + ], + maxValue: 1889396.551724138 +}; + +export const TOTAL_HECTARES_UNDER_RESTORATION = { + value: "23,000" +}; + +export const TOTAL_NUMBER_OF_SITES = { + value: "345" +}; + +export const RESTORATION_STRATEGIES_REPRESENTED = { + graphic: "/images/graphic-2.png" +}; + +export const TARGET_LAND_USE_TYPES_REPRESENTED = { + graphicTargetLandUseTypes: [ + { + label: "Agroforest", + value: 60, + valueText: "212 ha 60%" + }, + { + label: "Natural Forest", + value: 25, + valueText: "205 ha 30%" + }, + { + label: "Mangrove", + value: 2, + valueText: "158 ha 2%" + }, + { + label: "Woodlot / Plantation", + value: 6, + valueText: "127 ha 5%" + }, + { + label: "Open Natural Ecosystem", + value: 3, + valueText: "89 ha 3%" + }, + { + label: "Riparian Area / Wetland", + value: 1, + valueText: "76 ha <1%" + }, + { + label: "Urban Forest", + value: 1, + valueText: "43 ha <1%" + }, + { + label: "Silvopasture", + value: 1, + valueText: "34 ha <1%" + }, + { + label: "Peatland", + value: 1, + valueText: "11 ha <1%" + } + ] +}; + +export const NEW_PART_TIME_JOBS = { + value: "22,000" +}; + +export const NEW_FULL_TIME_JOBS = { + value: "1,000" +}; + +export const JOBS_CREATED_BY_GENDER = { + graphic: "/images/graphic-3.png", + graphicLegend: [ + { + label: "Women", + value: "20,500 (15.4%)", + color: "bg-secondary-600" + }, + { + label: "Men", + value: "20,500 (15.4%)", + color: "bg-primary" + } + ] +}; + +export const JOBS_CREATED_BY_AGE = { + graphic: "/images/graphic-4.png", + graphicLegend: [ + { + label: "Youth", + value: "20,500 (15.4%)", + color: "bg-secondary-600" + }, + { + label: "Non-Youth", + value: "20,500 (15.4%)", + color: "bg-primary" + } + ] +}; + +export const TOTAL_VOLUNTEERS = { + value: "23,000" +}; + +export const VOLUNTEERS_CREATED_BY_GENDER = { + graphic: "/images/graphic-5.png", + graphicLegend: [ + { + label: "Women", + value: "20,500 (15.4%)", + color: "bg-secondary-600" + }, + { + label: "Men", + value: "20,500 (15.4%)", + color: "bg-primary" + } + ] +}; + +export const VOLUNTEERS_CREATED_BY_AGE = { + graphic: "/images/graphic-6.png", + graphicLegend: [ + { + label: "Youth", + value: "20,500 (15.4%)", + color: "bg-secondary-600" + }, + { + label: "Non-Youth", + value: "20,500 (15.4%)", + color: "bg-primary" + } + ] +}; + +export const COLUMN_ACTIVE_PROGRAMME = [ + { + header: "Country", + accessorKey: "country" + }, + { + header: "Projest", + accessorKey: "project" + }, + { + header: "Trees Planted", + accessorKey: "treesPlanted" + }, + { + header: "Restoration Hectares", + accessorKey: "restoratioHectares" + }, + { + header: "Jobs Created", + accessorKey: "jobsCreated" + } +]; + +export const DATA_ACTIVE_PROGRAMME = [ + { + country: "Angola", + project: "32", + treesPlanted: "2,234", + restoratioHectares: "2,234", + jobsCreated: "1306" + }, + { + country: "Liberia", + project: "14", + treesPlanted: "760", + restoratioHectares: "760", + jobsCreated: "430" + }, + { + country: "Kenya", + project: "25", + treesPlanted: "787", + restoratioHectares: "787", + jobsCreated: "636" + }, + { + country: "Mozambique", + project: "8", + treesPlanted: "1,838", + restoratioHectares: "1,838", + jobsCreated: "1,767" + }, + { + country: "Sierra Leone", + project: "19", + treesPlanted: "2,058", + restoratioHectares: "2,058", + jobsCreated: "1,213" + }, + { + country: "Tanzania", + project: "5", + treesPlanted: "3,816", + restoratioHectares: "3,816", + jobsCreated: "3,720" + }, + { + country: "Angola", + project: "32", + treesPlanted: "2,234", + restoratioHectares: "2,234", + jobsCreated: "1306" + }, + { + country: "Liberia", + project: "14", + treesPlanted: "760", + restoratioHectares: "760", + jobsCreated: "430" + }, + { + country: "Kenya", + project: "25", + treesPlanted: "787", + restoratioHectares: "787", + jobsCreated: "636" + }, + { + country: "Mozambique", + project: "8", + treesPlanted: "1,838", + restoratioHectares: "1,838", + jobsCreated: "1,767" + }, + { + country: "Sierra Leone", + project: "19", + treesPlanted: "2,058", + restoratioHectares: "2,058", + jobsCreated: "1,213" + }, + { + country: "Tanzania", + project: "5", + treesPlanted: "3,816", + restoratioHectares: "3,816", + jobsCreated: "3,720" + }, + { + country: "Angola", + project: "32", + treesPlanted: "2,234", + restoratioHectares: "2,234", + jobsCreated: "1306" + }, + { + country: "Liberia", + project: "14", + treesPlanted: "760", + restoratioHectares: "760", + jobsCreated: "430" + }, + { + country: "Kenya", + project: "25", + treesPlanted: "787", + restoratioHectares: "787", + jobsCreated: "636" + }, + { + country: "Mozambique", + project: "8", + treesPlanted: "1,838", + restoratioHectares: "1,838", + jobsCreated: "1,767" + }, + { + country: "Sierra Leone", + project: "19", + treesPlanted: "2,058", + restoratioHectares: "2,058", + jobsCreated: "1,213" + }, + { + country: "Tanzania", + project: "5", + treesPlanted: "3,816", + restoratioHectares: "3,816", + jobsCreated: "3,720" + }, + { + country: "Angola", + project: "32", + treesPlanted: "2,234", + restoratioHectares: "2,234", + jobsCreated: "1306" + }, + { + country: "Liberia", + project: "14", + treesPlanted: "760", + restoratioHectares: "760", + jobsCreated: "430" + }, + { + country: "Kenya", + project: "25", + treesPlanted: "787", + restoratioHectares: "787", + jobsCreated: "636" + }, + { + country: "Mozambique", + project: "8", + treesPlanted: "1,838", + restoratioHectares: "1,838", + jobsCreated: "1,767" + }, + { + country: "Sierra Leone", + project: "19", + treesPlanted: "2,058", + restoratioHectares: "2,058", + jobsCreated: "1,213" + }, + { + country: "Tanzania", + project: "5", + treesPlanted: "3,816", + restoratioHectares: "3,816", + jobsCreated: "3,720" + } +]; + +export const COLUMN_ACTIVE_COUNTRY = [ + { + header: "Project", + accessorKey: "project" + }, + { + header: "Trees Planted", + accessorKey: "treesPlanted" + }, + { + header: "Restoration Hectares", + accessorKey: "restoratioHectares" + }, + { + header: "Jobs Created", + accessorKey: "jobsCreated" + }, + { + header: "Volunteers", + accessorKey: "volunteers" + } +]; + +export const DATA_ACTIVE_COUNTRY = [ + { + project: "Resturation de mangroves et des peripheries de la chaine de I’Atacora au Benin - Eco - Benin", + treesPlanted: "14", + restoratioHectares: "200", + jobsCreated: "14", + volunteers: "760" + }, + { + project: "Initiative bande verte durable - dedras", + treesPlanted: "14", + restoratioHectares: "3500", + jobsCreated: "3500", + volunteers: "760" + } +]; + +export const OBJETIVE = { + objetiveText: `Goshen Global Vision restores the vitality of the damaged forests of Western Ghana’s cocoa belt, where local incomes and soil quality are falling. Over the past five years, they have worked with 7,000 community members to establish a network of seven nurseries that has grown and planted 220,000 trees across 11,500 hectares. + + A grant will enable the organization to mobilize young people and women to grow hundreds of thousands of biodiverse native trees with high economic value, like African mahogany. By planting those trees to shade the crops of struggling cocoa farmers, they will build both economic and climate resilience in this vulnerable region.`, + preferredLanguage: "English", + landTenure: "Communal Government" +}; diff --git a/src/pages/dashboard/programme/index.page.tsx b/src/pages/dashboard/programme/index.page.tsx new file mode 100644 index 000000000..ec1cbd82b --- /dev/null +++ b/src/pages/dashboard/programme/index.page.tsx @@ -0,0 +1,208 @@ +import { useT } from "@transifex/react"; +import { useContext } from "react"; + +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import PageCard from "@/components/extensive/PageElements/Card/PageCard"; +import PageRow from "@/components/extensive/PageElements/Row/PageRow"; + +import ContentOverview from "../components/ContentOverview"; +import SecDashboard from "../components/SecDashboard"; +import { RefContext } from "../context/ScrollContext.provider"; +import { + COLUMN_ACTIVE_PROGRAMME, + DATA_ACTIVE_PROGRAMME, + JOBS_CREATED_BY_AGE, + JOBS_CREATED_BY_GENDER, + LABEL_LEGEND, + NEW_FULL_TIME_JOBS, + NEW_PART_TIME_JOBS, + NUMBER_OF_TREES_PLANTED, + NUMBER_OF_TREES_PLANTED_BY_YEAR, + RESTORATION_STRATEGIES_REPRESENTED, + TARGET_LAND_USE_TYPES_REPRESENTED, + TOP_10_PROJECTS_WITH_THE_MOST_PLANTED_TREES, + TOTAL_HECTARES_UNDER_RESTORATION, + TOTAL_NUMBER_OF_SITES, + TOTAL_VOLUNTEERS, + VOLUNTEERS_CREATED_BY_AGE, + VOLUNTEERS_CREATED_BY_GENDER +} from "../mockedData/dashboard"; + +export interface DashboardTableDataProps { + label: string; + valueText: string; + value: number; +} + +export interface GraphicLegendProps { + label: string; + value: string; + color: string; +} + +const Dashboard = () => { + const t = useT(); + const dataToggle = ["Absolute", "Relative"]; + const dataToggleGraphic = ["Table", "Graphic"]; + const sharedRef = useContext(RefContext); + const dashboardHeader = [ + { + label: "Trees Planted", + value: "12.2M" + }, + { + label: "Hectares Under Restoration", + value: "5,220 ha" + }, + { + label: "Jobs Created", + value: "23,000" + } + ]; + + return ( +
+ + +
+ +
+ {dashboardHeader.map((item, index) => ( +
+ + {t(item.label)} + + +
+ + {t(item.value)} + + + + +
+
+ ))} +
+ + TerraFund’s MRV framework . Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > + + + + + TerraFund’s MRV framework. Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > +
+ + +
+ + +
+ TerraFund’s MRV framework. TerraFund defines a job as a set of tasks and duties performed by one person aged 18 or over in exchange for monetary pay in line with living wage standards. All indicators in the Jobs Created category are disaggregated by number of women, number of men, and number of youths. Restoration Champions are required to report on jobs and volunteers every 6 months and provide additional documentation to verify employment. Please refer to the linked MRV framework for additional details on how these numbers are sourced and verified.` + )} + > +
+ + +
+
+ + +
+ +
+ + +
+
+
+
+
+ ); +}; + +export default Dashboard; diff --git a/src/pages/dashboard/project/index.page.tsx b/src/pages/dashboard/project/index.page.tsx new file mode 100644 index 000000000..e91da9809 --- /dev/null +++ b/src/pages/dashboard/project/index.page.tsx @@ -0,0 +1,257 @@ +import { useT } from "@transifex/react"; +import { useContext } from "react"; + +import Breadcrumbs from "@/components/elements/Breadcrumbs/Breadcrumbs"; +import Text from "@/components/elements/Text/Text"; +import ToolTip from "@/components/elements/Tooltip/Tooltip"; +import Icon, { IconNames } from "@/components/extensive/Icon/Icon"; +import PageCard from "@/components/extensive/PageElements/Card/PageCard"; +import PageRow from "@/components/extensive/PageElements/Row/PageRow"; + +import ContentOverviewProject from "../components/ContentOverviewProject"; +import SecDashboard from "../components/SecDashboard"; +import { RefContext } from "../context/ScrollContext.provider"; +import { + JOBS_CREATED_BY_AGE, + JOBS_CREATED_BY_GENDER, + LABEL_LEGEND, + NEW_FULL_TIME_JOBS, + NEW_PART_TIME_JOBS, + NUMBER_OF_TREES_PLANTED, + NUMBER_OF_TREES_PLANTED_BY_YEAR, + OBJETIVE, + RESTORATION_STRATEGIES_REPRESENTED, + TARGET_LAND_USE_TYPES_REPRESENTED, + TOP_10_PROJECTS_WITH_THE_MOST_PLANTED_TREES, + TOTAL_HECTARES_UNDER_RESTORATION, + TOTAL_NUMBER_OF_SITES, + TOTAL_VOLUNTEERS, + VOLUNTEERS_CREATED_BY_AGE, + VOLUNTEERS_CREATED_BY_GENDER +} from "../mockedData/dashboard"; + +export interface DashboardTableDataProps { + label: string; + valueText: string; + value: number; +} + +export interface GraphicLegendProps { + label: string; + value: string; + color: string; +} + +export interface DashboardDataProps { + value?: string; + unit?: string; + secondValue?: string; + graphic?: string; + tableData?: DashboardTableDataProps[]; + maxValue?: number; + graphicLegend?: GraphicLegendProps[]; + graphicTargetLandUseTypes?: DashboardTableDataProps[]; + objetiveText?: string; + preferredLanguage?: string; + landTenure?: string; +} + +const ProjectView = () => { + const t = useT(); + const dataToggle = ["Absolute", "Relative"]; + const dataToggleGraphic = ["Table", "Graphic"]; + const sharedRef = useContext(RefContext); + const dashboardHeader = [ + { + label: "Trees Planted", + value: "12.2M" + }, + { + label: "Hectares Under Restoration", + value: "5,220 ha" + }, + { + label: "Jobs Created", + value: "23,000" + } + ]; + + return ( +
+ + +
+ +
+ +
+ +
+ {dashboardHeader.map((item, index) => ( +
+ + {t(item.label)} + + +
+ + {t(item.value)} + + + + +
+
+ ))} +
+ + +
+ tree +
+ {t("Restoration of Degraded Forest Lands in Ghana - PADO")} + + {t("Operations: Niger")} + + {t("Registration: Niger")} + + {t(" Organization: Non-Profit")} + +
+
+ +
+ + TerraFund’s MRV framework . Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > + + + + + TerraFund’s MRV framework. Please refer to the linked MRV framework for details on how these numbers are sourced and verified.` + )} + > +
+ + +
+ + +
+ TerraFund’s MRV framework. TerraFund defines a job as a set of tasks and duties performed by one person aged 18 or over in exchange for monetary pay in line with living wage standards. All indicators in the Jobs Created category are disaggregated by number of women, number of men, and number of youths. Restoration Champions are required to report on jobs and volunteers every 6 months and provide additional documentation to verify employment. Please refer to the linked MRV framework for additional details on how these numbers are sourced and verified.` + )} + > +
+ + +
+
+ + +
+ +
+ + +
+
+
+
+
+ ); +}; + +export default ProjectView; diff --git a/src/pages/entity/[entityName]/edit/[uuid]/EditEntityForm.tsx b/src/pages/entity/[entityName]/edit/[uuid]/EditEntityForm.tsx index eae72bd1c..47658d87e 100644 --- a/src/pages/entity/[entityName]/edit/[uuid]/EditEntityForm.tsx +++ b/src/pages/entity/[entityName]/edit/[uuid]/EditEntityForm.tsx @@ -90,10 +90,14 @@ const EditEntityForm = ({ entityName, entityUUID, entity, formData }: EditEntity errors={error} onBackFirstStep={router.back} onCloseForm={() => router.push("/home")} - onChange={data => + onChange={(data, closeAndSave?: boolean) => updateEntity({ pathParams: { uuid: entityUUID, entity: entityName }, - body: { answers: normalizedFormData(data, formSteps!) } + // @ts-ignore + body: { + answers: normalizedFormData(data, formSteps!), + ...(closeAndSave ? { continue_later_action: true } : {}) + } }) } formStatus={isSuccess ? "saved" : isUpdating ? "saving" : undefined} diff --git a/src/types/common.ts b/src/types/common.ts index 968ef56b0..886c60342 100644 --- a/src/types/common.ts +++ b/src/types/common.ts @@ -1,5 +1,7 @@ /* eslint-disable no-unused-vars */ +import { ReactNode } from "react"; + export type Colors = "white" | "black" | "neutral" | "secondary" | "tertiary" | "primary" | "success" | "error"; export type ColorCodes = "none" | 50 | 100 | 150 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; export type TextSizes = "xs" | "sm" | "base" | "md" | "m" | "lg"; @@ -150,6 +152,7 @@ export type ButtonTextVariants = | "text-button-700"; export type Option = { + prefix?: ReactNode; title: string; value: OptionValue; meta?: any; @@ -190,7 +193,10 @@ export type UploadedFile = { created_at: string; collection_name: string; is_public?: boolean; + is_cover?: boolean; status?: boolean; + lat?: number; + lng?: number; //Client side data rawFile?: File; diff --git a/src/utils/options.ts b/src/utils/options.ts index 77ac07c4c..4c4d6b61f 100644 --- a/src/utils/options.ts +++ b/src/utils/options.ts @@ -9,13 +9,11 @@ import { toArray } from "@/utils/array"; * @returns Comma separated values as string. */ -export const statusColor = (options: Option[], values?: string | string[]): string => { - if (!values) return ""; - if (options.length === 0) return toArray(values).join(","); +export const getPrefix = (options: Option[], values?: string | string[]): any => { + if (!values) return undefined; + if (options.length === 0) return undefined; - return toArray(values) - .map(c => options.find(o => o.value === c)?.meta) - .join(); + return options.find(o => o.value === values[0])?.prefix; }; export const formatOptionsList = (options: Option[], values?: string | string[]): string => { diff --git a/tailwind.config.js b/tailwind.config.js index 7abca0c0a..5080e80aa 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -66,12 +66,15 @@ module.exports = { DEFAULT: "#27A9E0", 500: "#27A9E0", 400: "#4EBBEA", + 350: "#6BBFCC", 300: "#98CEED", + 250: "#C5FCFF", 200: "#E5F8FF", 100: "#F2FAFD" }, secondary: { DEFAULT: "#8CC63F", + 600: "#7BBD31", 500: "#8CC63F", 400: "#BFE372", 300: "#DFF5B0", @@ -102,11 +105,13 @@ module.exports = { 200: "#E3E3E3", 150: "#F5F7F9", 100: "#F2F2F2", + 70: "#eeeff0", 50: "#FAFAFA", 40: "#f2f4f5" }, tertiary: { DEFAULT: "#F0AB00", + 800: "#795305", 650: "#FF8838", 600: "#FF8938", 550: "#FFA160", @@ -136,19 +141,28 @@ module.exports = { 200: "#E6E9EC", 100: "#cfe6f4", 50: "#f1fafd", + 30: "#ebf0f4", 10: "#eaf7fc" }, darkCustom: { DEFAULT: "#353535", + 200: "#84959D", 100: "#637579", 60: "#35353599", - 50: "#697A7F" + 50: "#697A7F", + 40: "#919EAB" }, pinkCustom: { DEFAULT: "#E468EF", + 300: "#BF7589", 200: "#FDF0FE" }, + purpleCustom: { + DEFAULT: "#5674C5", + 100: "#8096D3" + }, grey: { + 100: "#F4F4F4", 200: "#F0F2F2", 350: "#E6E6E6", 500: "#676D71", @@ -159,35 +173,46 @@ module.exports = { 740: "#E0E0E0", 750: "#E6EAEB", 800: "#E9EDF0", - 900: "#F6FAFD" + 900: "#F6FAFD", + 950: "#ebebeb", + 1000: "#DFE3E8" }, blue: { DEFAULT: "#2398D8", + 50:"#0079FF", 100: "#1B59F8", 200: "#E9F5FC" }, green: { DEFAULT: "#72D961", - 400: "#1BA631", 500: "#198E2B", + 400: "#1BA631", + 300: "#4FB967", 100: "#28C499", + 60: "#0D614D", 50: "rgba(40, 196, 153, 0.10)", + 40: "#A2DCB3", 30: "#EAFAF5" }, yellow: { DEFAULT: "#FCFBE8", 700: "#F4B059", + 600: "#BB881E", + 550: "#F8CE7B", 500: "#F3EFB0", 300: "#FEF8EF" }, red: { DEFAULT: "#FF6464", 100: "#CBC8D2", - 200: "#E42222" + 200: "#E42222", + 900: "#8D2D0E", + 1000: "#632424" } }, boxShadow: { DEFAULT: "0px 4px 16px rgba(0, 0, 0, 0.12)", + all: "0 4px 6px rgba(0, 0, 0, 0.1), 0 -4px 4px rgba(0, 0, 0, 0.06)", "t-secondary": "0px -1px 0 #8CC63F", //to add additional border, secondary-500 1px none: "0 0 #0000" }, @@ -233,7 +258,8 @@ module.exports = { leavesWithOverlay: "url('/images/leaves-with-overlay.webp')", treesHeaderWithOverlay: "linear-gradient(270deg, rgba(0, 0, 0, 0.31) 0%, rgba(0, 0, 0, 0.66) 100%), url('/images/trees-header.webp')", - mapsImg: "url('/images/Maps.svg')" + mapsImg: "url('/images/Maps.svg')", + dashboardHeader: 'url("/images/dashboard-header.webp")' } }, plugins: [ diff --git a/yarn.lock b/yarn.lock index 9db16060e..5b5ccc96c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1544,10 +1544,10 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.23.1": - version "7.23.1" - resolved "http://registry.chelsea-apps.com:4873/@babel%2fruntime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" - integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== +"@babel/runtime@^7.23.1", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" + integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== dependencies: regenerator-runtime "^0.14.0" @@ -1903,9 +1903,9 @@ integrity sha512-dGGHpb61hLwifAu7sotuHFDBw6GTdpG8aKC0fsK17EuTzMRvUrH7lEAr6LTJ+sx3AZYed9yZ77rltVDHyg2hRg== "@faker-js/faker@^8.0.2": - version "8.0.2" - resolved "http://registry.chelsea-apps.com:4873/@faker-js%2ffaker/-/faker-8.0.2.tgz#bab698c5d3da9c52744e966e0e3eedb6c8b05c37" - integrity sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A== + version "8.4.1" + resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.4.1.tgz#5d5e8aee8fce48f5e189bf730ebd1f758f491451" + integrity sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg== "@fal-works/esbuild-plugin-global-externals@^2.1.2": version "2.1.2" @@ -2607,6 +2607,11 @@ csstype "^3.1.1" prop-types "^15.8.1" +"@mui/types@^7.2.15": + version "7.2.17" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.17.tgz#329826062d4079de5ea2b97007575cebbba1fdbc" + integrity sha512-oyumoJgB6jDV8JFzRqjBo2daUuHpzDjoO/e3IrRhhHo/FxJlaVhET6mcNrKHUq2E+R+q3ql0qAtvQ4rfWHhAeQ== + "@mui/types@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.3.tgz#06faae1c0e2f3a31c86af6f28b3a4a42143670b9" @@ -2623,20 +2628,32 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/utils@^5.14.11": - version "5.14.12" - resolved "http://registry.chelsea-apps.com:4873/@mui%2futils/-/utils-5.14.12.tgz#58b570839e22e0fba71e17d37d9c083fe233704d" - integrity sha512-RFNXnhKQlzIkIUig6mmv0r5VbtjPdWoaBPYicq25LETdZux59HAqoRdWw15T7lp3c7gXOoE8y67+hTB8C64m2g== +"@mui/utils@^5.14.11", "@mui/utils@^5.14.16": + version "5.16.6" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.16.6.tgz#905875bbc58d3dcc24531c3314a6807aba22a711" + integrity sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA== dependencies: - "@babel/runtime" "^7.23.1" - "@types/prop-types" "^15.7.7" + "@babel/runtime" "^7.23.9" + "@mui/types" "^7.2.15" + "@types/prop-types" "^15.7.12" + clsx "^2.1.1" prop-types "^15.8.1" - react-is "^18.2.0" + react-is "^18.3.1" "@mui/x-data-grid@^6.16.1": + version "6.20.4" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-6.20.4.tgz#51120757078764dc8cccef50bc1257c2407e103d" + integrity sha512-I0JhinVV4e25hD2dB+R6biPBtpGeFrXf8RwlMPQbr9gUggPmPmNtWKo8Kk2PtBBMlGtdMAgHWe7PqhmucUxU1w== + dependencies: + "@babel/runtime" "^7.23.2" + "@mui/utils" "^5.14.16" + clsx "^2.0.0" + prop-types "^15.8.1" + reselect "^4.1.8" + +"@mui/x-data-grid@https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-6.16.1.tgz": version "6.16.1" - resolved "http://registry.chelsea-apps.com:4873/@mui%2fx-data-grid/-/x-data-grid-6.16.1.tgz#b7a33c25193d70b80ffbe4b168d8524752dfa5c5" - integrity sha512-jiV4kMegueNiaB3Qs0VpHG0Cp+eIZa5upMr9fcdPMPNLhOYnkNtexTyezfptJyfD8Adbjrjt4bbRktBcDCC5DA== + resolved "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-6.16.1.tgz#b7a33c25193d70b80ffbe4b168d8524752dfa5c5" dependencies: "@babel/runtime" "^7.23.1" "@mui/utils" "^5.14.11" @@ -4978,10 +4995,10 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/prop-types@^15.7.7": - version "15.7.8" - resolved "http://registry.chelsea-apps.com:4873/@types%2fprop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3" - integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ== +"@types/prop-types@^15.7.12": + version "15.7.13" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" + integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== "@types/qs@*", "@types/qs@^6.9.5": version "6.9.7" @@ -6664,10 +6681,10 @@ clsx@^1.1.1, clsx@^1.2.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -clsx@^2.0.0: - version "2.0.0" - resolved "http://registry.chelsea-apps.com:4873/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" - integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== +clsx@^2.0.0, clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== co@^4.6.0: version "4.6.0" @@ -13402,6 +13419,11 @@ react-is@^17.0.1, react-is@^17.0.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + react-joyride@^2.5.5: version "2.5.5" resolved "https://registry.yarnpkg.com/react-joyride/-/react-joyride-2.5.5.tgz#a12024902347bea0a565ad2e69b291e35c6a274b" @@ -13624,9 +13646,9 @@ regenerator-runtime@^0.13.11: integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "http://registry.chelsea-apps.com:4873/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.1: version "0.15.1" @@ -13756,7 +13778,7 @@ requires-port@^1.0.0: reselect@^4.1.8: version "4.1.8" - resolved "http://registry.chelsea-apps.com:4873/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== resolve-alpn@^1.2.0: